프로세스 (4) - 점진적 프로세스 모델 (1) - 증분 / 진화 / 나선형

소프트웨어공학

2020. 5. 13. 11:05

1. Incremental Model (증분형 모델)

[그림] 증분형 모델

  • 개발해야할 요구사항을 n개로 증분하여, 병렬적으로 구현해서 합치는 방식
  • 병렬개발로 인해 속도는 빨라질 수 있지만, 증분이 많아지면 관리, 통합 등이 매우 어려워짐

 

2. Evolutional Model (진화적 모델)

[그림] 진화적 모델

  • 빠른시간 안에 시장에 출시해야 이윤에 직결되는 시스템의 경우 적용할 수 있음
  • 개발시간을 줄이기 위해서 나눠서 여러번으로 릴리즈함 (사이클 n번에 끝남)
  • 자주 릴리즈 할때마다 유저에 의해서 테스트가 자동으로 진행되기 때문에 좋은 품질의 프로그램이 만들어짐

 

3. Spiral Model (나선형 모델) : ORDE (Objective Risk Develop Evaluate)

[그림] 나선형 모델

  • Evolutional Model (진화적 모델)의 Special Case임.
  • 진화적모델이 단순히 개발 → 릴리즈 → 개발 → 릴리즈였다면 그것을 4단계로 넓힘
  • 목표설정 → 위험분석 →개발 및 테스트 → 릴리즈 순서로 계속 반복함
  • 위험분석 (Risk Analysis) 과정을 거치기 때문에 실패의 위험을 줄일 수 있음

 

(1) 나선형 모델의 장점

  • Risk Analysis가 존재해 대규모 시스템에 적합 (위험부담이 큰 경우)
  • 반복적인 개발 및 테스트로 인해 품질이 좋아짐
  • 한 사이클에 추가 못한 기능들은 다음 단계에 추가하면 됨

 

(2) 나선형 모델의 단점

  • 관리하기가 굉장히 어려움 (프로세스 자체가 복잡함)
  • 사람들이 익숙하지 않기 떄문에 적용하기 어려움

 

4. Reference

 

소프트웨어공학 개론

소프트웨어를 개발하고 유지보수하는 데 적용되는 체계적이며 원리적인 접근 방법을 소개한다. 소프트웨어를 개발하는 프로젝트를 계획하는 기법, 사용자의 요구를 분석하는 기법, 소프트웨어

www.kocw.net