※ [GoF 디자인 패턴! 이렇게 활용한다 : C++로 배우는 패턴의 이해와 활용] 책을 보고 공부한 내용중 중요하다 생각되는 부분들을 적어놓았습니다.


소프트웨어 개발 과정은 일반적으로 아래와 같이 이루어진다.


요구사항 명세 -> 요구사항 분석 -> 기본 설계 -> 상세 설계 -> 구현 -> 테스팅 -> 유지 보수



이 과정도 프로젝트의 특성에 따라 여러 종류의 모델이 있다.

ex) 폭포수 모델, 프로토타이핑 모델, 점증적 모델, V 모형, 일정 중심 설계 모형, 진화적 출시 모형


이 뿐만 아니라 프로젝트 개발을 관리해주는 관리 프로세스 모델 또한 존재한다.

이와 관련해서는 나중에 포스팅을 하고자 한다.


소프트웨어 개발 과정을 구성하는 각 단계별 주요 작업 및 산출물은 아래와 같이 정리된다.


개발 단계 

주요 작업

주요 산출물

 요구 사항 명세

 - 요구 사항의 정확한 이해 및 유도

 - 과다하거나 불필요한 요구 사항에 대한 협상 및 조율

 - 요구사항의 적합성 검토 및 향후 예측

 - 전반적인 업무 흐름도

 - 요구 사항 (상세)기술서

 - 요구 사항 검토 의견서

 요구 사항 분석

 - 요구 사항에 대한 체계적이고 구체적인 분석

 - 실제 실행 환경에 대한 분석

 - 기능, 행위, 데이터 측면의 요구사항 분석 명세서

 - 실행 환경 분석 보고서

 기본 설계

 - 시스템 아키텍쳐 설계

 - 데이터베이스 설계

 - 시스템 구성요소간 프로토콜 설계

 - 사용자 인터페이스 설계

 - 시스템 아키텍쳐 설계도

 - 데이터베이스 스키마

 - 프로토콜 설계도

 - UI 설계 결과물

 상세 설계

 - 상세 자료구조 설계

 - 상세 알고리즘 설계

 - 자료구조 설계도(클래스 다이어그램)

 - 알고리즘 명세서(슈도 코드 등)

 구현

 - 구현 언어 및 개발 환경 선정

   (OS, 표준 라이브러리 등)

 - 코딩

 - 프로그램 소스코드

 테스팅

 - 단위 테스팅: 단위 모듈 테스팅

 - 통합 테스팅: 모듈간 통합 테스팅

 - 적합성 테스팅: 요구 사항과 일치성 여부 테스팅

 - 시스템 테스팅: 시스템 복구 테스팅, 보안 테스팅, 스트레스 테스팅, 성능 테스팅

 - 테스트 계획서

 - 테스트 결과 보고서

 - 수정된 최종 소스코드

 유지 보수

 - 추가, 수정 요구 사항 검토 및 반영

 - 장애 및 오류 발생 시 대처와 복구

 - 시스템 및 서비스 운영, 유지보수 보고

 - 역공학 또는 재공학 필요성 검토

 - 추가, 수정 요구 사항이 반영된 모든 개발 산출물

 - 각종 보고서

 - 역공학 또는 재공학을 위한 자료


- 요구 사항 명세 단계: 소프트웨어 개발의 목적을 명확히 이해하고 공유하며, 구체적인 요구사항에 대해 논리적이고 합리적인지를 검토하여 필요 시 요구 사항을 조율하거나 조정한다.


- 요구 사항 분석 단계: 기능(Function), 행위(Behavior), 데이터(Data) 측면에서 요구 사항을 체계적이고 구체적으로 분석하고, 실제 개발될 소프트웨어가 실행될 환경에 대해서도 분석, 검토를 수행한다.


- 기본 설계 단계: 개발할 소프트웨어의 전반적인 아키텍쳐를 구상하고, 구성 요소간 사용할 프로토콜을 정의하며, 사용자 인터페이스를 결정한다. 또한 데이터베이스를 사용할 경우 데이터베이스 스키마를 설계한다.


- 상세 설계 단계: 프로그램 구현을 위한 구체적인 자료구조와 알고리즘을 결정한다.


- 구현 단계: 상세 설계된 결과물을 실제 프로그래밍 언어를 사용해서 코딩한다.


- 테스팅 단계: 구현된 개별 모듈별 단위 테스트와 각 모듈들을 통합해서 제대로 동작하는지 여부를 점검하는 통합 테스트, 요구 사항과 정확히 일치하게 동작하는지 여부를 검증하는 적합성 테스트, 실제 실행 환경을 대상으로 장애 복구나 보안, 안정성, 성능 등에 대한 점검을 수행하는 시스템 테스트를 수행한다.


- 유지 보수 단계: 개발 완료된 소프트웨어에 대해 추가, 변경 요구 사항을 검토하고 반영하거나 장애나 오류 발생 시 이에 대한 대처 및 복구, 실행되는 소프트웨어의 지속적인 모니터링 및 시스템 운영 등을 수행한다.

'Study > Design Pattern' 카테고리의 다른 글

[Design Pattern] 소프트웨어 설계  (0) 2015.08.11
[Design Pattern] 소프트웨어 개발 개념  (0) 2015.08.10
Posted by BeraPP
,