컴퓨터

소프트웨어 공학 프로세스 모델

Candoit 2015. 3. 19. 17:05

프로세스 모델은 원래 혼돈스러운 소프트웨어 개발에 질서를 주기 위해 제안되었다고 한다.

프로세스 모델 : 소프트웨어공학 업무를 진행함에 있어서 특수한 로드맵을 제공한다. 

   프로세스 모델은 모든 액티비티, 태스크 그리고 어무들의 흐름, 반복 정도, 산출물 그리고 업무 조직들에 

                 대한 정의를 한다.


- 일반적인 프로세스의 모델 

 1. 폭포수 모델 (waterfall model)

 2. 반복적 개발 모델 (Iterative development models)

 3. 컴포넌트 기반 소프트웨어 공학 (component based software engineering)


1. 폭포수 모델

- 계획 : 문제를 정의하고 타당성 분석 및 비용, 일정을 예측한다.


-요구 분석 : 개발하고자 하는 소프트웨어에 대한 요구사항 수집, 문제 이해 및 분석 단계, 엔지니어 또는 분석가(고객의 요구사항을 기능, 성능, 인터페이스 등으로 파악하고 문서화), 산출물(요구사항 명세서: 분석 및 설계자에게 충분하게 상세하고, 시스템 검증에 필요한 정보를 줄 수 있는 소프트웨어 요구사항의 모든 것)


-설계 : 프로그램의 데이터 구조, 소프트웨어 구조, 인터페이스 구조, 알고리즘 등등 모든 시스템의 구조를 결정한다. 

산출물(설계 명세서 : 요구사항 분석에서 나타난 자료흐름도나 정보 모델링의 결과를 이용하여 만들어진다.)


-구현 : 설계 명세서를 시스템의 실제 모습으로 변환 시키는 것. 산출물(소스 코드 및 프로그램)


- 테스트 : 프로그램이 입력에 따라 요구되는 결과대로 작동하는지 내부적 이상 여부 및 오류를 발견하기 위해 수행한다. 

  테스트 계획을 세운 후 문서화한다.


- 유지보수 : 개밸된 소프트웨어의 변경사항을 수정한다. 수정 유지보수, 적응 유지보수, 기능 추가 유지보수 등이 있다.


2. 반복적 개발 모델 




- 반복적 개발 모델은 각 단계별 프로세스에 일정한 주기를 두고 반복적으로 개발 프로세스를 진행하게 된다.

- 특징 : 초기에 구체적으로 모습을 갖추는 프로세스를 사용한다, 높은 위험가능성을 회피하고 경감시킬 수 있으며 사용자가          참여하므로 평가하여 적응을 시키고 좀더 완성된 프로세스를 도출할 수 있다.

반복 진행을 하기 때문에 개발 프로세스 자체를 개선해서 산출물 복잡성의 관리가 가능하다.  


2-1 증분개발모델 : 증분 개발 모델의 생명주기는 요구사항에 대한 분석설계를 증분 개발할 수 있도록 진행한다.

특징 : 1) 각 증분의 병행 개발로 인해 개발 기간을 단축 시킨다.

  2) 증분의 수가 많아지고 병행 개발이 많이 일어나면 개발 프로젝트의 관리가 어려워진다, 


2-2 진화적 개발 모델 (Evolutionary Development Model) : 기능의 일부를 최초로 개발하고 이를 사용자에게 확인받으면서                                                        만족할 때 까지 반복한다,