I. 위험 최소화를 위한 진화적 프로토타이핑, 나선형 모델의 개요
가. 나선형 모델(Spiral Model) 정의
- 시스템 개발 위험을 최소화하기 위해 나선으로 돌면서 계획, 위험분석, 개발, 평가의 단계를 반복하면서 점진적으로 소프트웨어를 완성하는 모델
- 개발된 Prototype을 지속적으로 발전시켜 최종 SW에 이르게 하는 모델
- Waterfall Model 및 Prototyping Model의 장점에 위험 분석을 추가한 모델
나. 나선형 모델의 특징
특 징 |
설 명 |
위험 최소화 |
위험식별 및 대응계획 수립을 통한 위험 최소화 |
점진적 구체화 |
반복, 진화적, 프로토타입 개선으로 시스템을 구체화 |
고수준 품질 |
고객평가(Feedback)에 따른 진화적 라이프 사이클 |
- 대규모 시스템 및 위험 부담이 큰 시스템 개발에 적합(위험분석 추가)
- 관리가 중요하나 매우 어렵고 개발시간이 장기화될 요지 있음
II. 나선형 모델의 구성도 및 구성요소
가. 나선형 모델 구성도
- 개발된 프로토타입을 지속적으로 발전시켜 최종 SW에 이르게 하는 모델
나. 나선형 모델 구성요소
구성요소 |
설 명 |
산출물 |
계획 및 정의 |
프로젝트 계획수립, 요구사항 분석 단계별 목표수립 |
프로젝트 관리 계획서 요구사항 분석서 |
위험분석 |
위험식별, 정량/정성적 분석 및 평가 위험평가 결과에 따른 근거, 개발여부 결정 |
위험 관리 계획서 위험 분석서 |
개발 |
구현 대상 기능에 대한 실제구현 단위 테스트 수행 |
소스코드 진화적 프로토타입 |
고객의 평가 |
고객에 의한 시스템 평가 및 향후 목표계획 |
고객의 피드백 |
- 나선형 모델의 구현결과는 시뮬레이션 모델, 시제품 실제 시스템 등
III. 나선형 모델의 비교
가. 나선형 모델 장단점
관점 |
장점 |
단점 |
비즈니스 |
위험 부담 감소 대규모 시스템에 적합 |
위험관리의 능력에 따라 성공여부에 영향 다수 고객 상대의 상용제품 개발에는 부적합 |
프로젝트 |
정확한 사용자 요구사항 파악 품질 확보 |
프로젝트 개발에 많은 시간 소요 프로젝트 관리에 어려움 (복잡함) |
나. 나선형 모델과 폭포수 모델 비교
구분 |
나선형 모델 |
폭포수 모델 |
정의 |
- 폭포수 모델 및 프로토타입 모델의 장점에 위험분석(Risk Analysis)을 추가한 모델 - 점진적이고 안정적인 개발 모델 |
- 분석, 설계, 개발, 구현, 시험 및 유지보수과정을 순차적으로 접근하는 방법 |
특징 |
- 프로젝트의 완전성 및 위험감소와 유지보수가 용이 - 관리가 어렵고 개발기간 장기화될 가능성 존재 |
- 소프트웨어 개발을 단계적, 순차적, 체계적, 하향식 접근 방식으로 수행 - 각 단계별 완료 후 다음 단계 진행 |
절차 |
- 계획, 위험분석, 개발, 평가 사이클 반복 - 점진적 프로토타입 개선 및 위험관리 |
- 분석, 설계, 개발, 구현, 시험, 운영 단계 - 순차적으로 수행 |
적용범위 |
- 대규모 시스템 및 위험 부담이 큰 시스템 |
- 기술적 위험이 낮고 유사프로젝트 경험이 있는 경우 |
장점 |
- 정확한 사용자 요구사항 파악 - 위험 부담 감소, 품질 확보 |
- 전체 과정이 이해하기 용이 - 관리 용이 (진행과정을 세분화) |
단점 |
- 프로젝트 개발에 많은 시간 소요 - 프로젝트 관리 복잡도 높음 - 위험관리 능력이 성공여부에 영향 |
- 초기 요구사항 정의 어려움 - 중요 문제점이 후반부에 구체화 - 사용자 피드백에 의한 반복 단계 불가능 |
다. 나선형 모델과 애자일(Agile) 비교
구분 |
나선형 모델 |
애자일 |
계획 수립 |
단계별 세부 계획 수립 |
다음 반복주기에 대해서만 계획 수립 |
베이스라인 |
초기 요구사항 베이스라인 설정 |
요구사항 베이스라인 유연하게 설정 |
아키텍처 정의 |
초기에 모델과 사양을 상세화 |
Working Product 통해 실현 가능성 증명 |
테스트 방법 |
단위, 통합, 시스템 테스트로 확장 |
개발과 테스트를 반복, 회귀테스트(CI/CD) |
표준 프로세스 |
계획 수립 시 표준화된 프로세스 제정 |
개발 프로세스의 유연성 강조 |
'정보관리기술사&컴퓨터응용시스템기술사 > SW공학과 프로젝트관리' 카테고리의 다른 글
[객체지향 설계 5원칙] 유지보수와 확장에 용이한 시스템을 위한 원칙 (0) | 2021.01.06 |
---|---|
[Agile 방법론] 작동하는 SW 중심 (0) | 2021.01.06 |
프로토타이핑 모델(Prototyping Model), 고객의 원활한 의사소통을 위한 시제품을 통한 점진적 개발 방법 (0) | 2020.12.22 |
[CBD(Component Based Development)], 제품생산성과 품질향상을 위한 방법론 (0) | 2020.12.22 |
[RAD(Rapid Application Development)], 사용자 참여와 도구를 활용한 개발속도 향상 방법 (0) | 2020.12.21 |
댓글