Home 소프트웨어 개발 공정 과정
Post
Cancel

소프트웨어 개발 공정 과정

소프트웨어 개발의 일반적 공정과정

요구사항 명세서와 설계 문서의 차이

요구사항 명세서(Requirements specification)는 요구사항 분석(Requirements Analysis)단계에서 작성되는데 이는 하드웨어나 소프트웨어의 측면부터 시작하여 사용자의 요구사항, 타당성, 비용과 시간 등을 종합적으로 분석하고 이를 산출하여 만들어진 문서이다. 요구사항 명세서는 다른 말로 기능명세서(functional spec..) 또는 목표 문서 (target document)라고도 한다. 반면 설계 문서(design document)는 설계(Design)단계에서 작성되는데 이는 시스템의 안정감과 생명력, 유지 보수에 대한 대비, 품질 향상을 위하여 작성된다. 따라서 요구사항 명세서는 설계 전 소프트웨어 공학에 있어 전반적으로 추상적인 부분을 분석하고 건축에서 본격적으로 시공 전 토지나 자재의 상태, 건물의 형태를 정의하는 역할이고, 설계 문서는 실제로 현장에서 사용되는 설계 도면이라는 점에서 차이가 있다.


시스템의 What과 How to의 차이

시스템을 설계할 때 중요하게 구분되는 차이는 what과 how to이다. 무엇(what)은 사용자나 고객에게 제공되어야 하는 시스템의 기능이며 따라서 이는 사용자의 관점을 대변하고 있다. 예를들어 자판기 프로그램이라 한다면 무엇의 관점에서 사용자나 고객에게 제공되어야 하는 것은 음료수가 있을 것이다. 자판기의 목적이 음료를 뽑아 먹는 것이기 때문이다. 반면 어떻게(how to)는 시스템의 기능을 어떤 방법으로 만족시켜야 할 것인지를 나타내는 엔지니어의 관점이다. 위의 예시에서 사용자가 원하는 what이 음료수였다면 엔지니어는 그 음료수를 어떻게 사용자에게 제공할 수 있을지 자판기 내부의 흐름을 생각한다. 이것이 시스템 설계의 어떻게(how to)이다.


유지 보수 활동의 4가지 유형

유지 보수는 설계-테스트 단계 이후 사용자에게 보내진 제품에 대한 이용 중 발생하는 오류, 여러 변경 사항 등에 대해 처리하는 활동이다. 유지보수의 단계는 크게 4가지로 나뉘는데 그것은 다음과 같다.

  1. 잘못된 것을 수정(하자보수)하는 유지보수(corrective maintenance)
  2. 시스템을 새 환경에 적응시키는 유지보수(adaptive maintenance)
  3. 새로운 기능을 추가하는 유지보수(perfective maintenance)
  4. 미래의 시스템 관리를 위한 유지보수(preventive maintenance)

첫 번째 유지보수는 실제로 소프트웨어를 코딩함에 있어 일반적으로 오류가 아예 존재하지 않는 경우는 드물다. 따라서 이러한 오류를 해결하기 위한 유지보수이고, 두 번째 유지 보수는 사용자가 제품을 사용하는 도중 발생하는 하드웨어의 변화나 기타 소프트웨어의 변화 또는 DB 적용 등에 대해서 시행하는 유형이다. 세 번째로 새로운 기능을 추가하기 위한 유지보수는 말 그대로 시스템 기능을 향상시키거나 인터페이스의 편의성 등을 개선 또는 기타 업무나 시스템과 관련된 처리를 원활하게 할 목적으로 수행하는 유형이고 마지막으로 네 번째는 현재의 오류가 아닌 미래에 발생할 수 있는 시스템 측면의 오류를 예방한다. 현재의 시스템이 적정한 선에서 작동되고 있는가, 시스템의 한계보다 많은 업무를 처리하고 있지 않는가, 시스템의 수명, 향후 오류 교정에 필요한 시스템 설치 등을 확인하여 발생할 수 있는 오류에 대한 대비를 하고 예방하는 유형이다.

This post is licensed under CC BY 4.0 by the author.

소프트웨어 개발의 오해와 실체

소프트웨어 개발 방법론 1