728x90
S/W의 Life-Cycle
S/W Life-Cycle이란? S/W의 분석 > 설계 > 구현 > Test > 운용/유지보수 > 폐기까지의 전 구간을 말한다. 여기서 유지보수 단계에는 다시 작고 많은 Life-Cycle들이 포함된다. |
다음에는 대표적인 세개의 모델들을 소개
1. Waterfall(폭포수) Model
- 1970년 Royce가 개발 - 가장 오래 된 모델로 S/W 개발 단계를 연속적인 과정으로 표현함 - 하위 단계로 갈 수록 구체화 됨 - 각 단계에서 문제 발견 시, 상위 레벨로 Feedback 가능 장점 1. S/W 개발 과정의 자연스러운 표현 2. 단계별 작업의 생략이 없음 3. 실지로 일반 S/W 개발엔 잘 적용됨 단점 1. 개발 초기에 완벽한 요구사항, 분석 요청으로 인한 더딘 진행 2. 동작하는 S/W는 개발과정 후반부에 확인 가능하고, 이때 문제가 생기면 많은 비용 필요 3. 제대로 파악 안된 대형 S/W 시스템에는 적용 곤란 4. 오래된 Model로 자동화 부적당 |
2. Rapid-Prototyping Model
- Prototype은 실제 시스템의 Simulation Model임 - Waterfall Model의 약점 보완(1980년대) - 돌출 상황 대비 가능 - 점진적 개발 개념 도입 Increment의 특징 1. 각 Increment는 크기가 작고 관리가 용이함 2. 각 Increment 별로 Test가 가능함 3. 각 Increment는 자체로 수행 가능 장점 1. 실제적 개발과정 표현 2. 반복적 작업 허용 3. 사용자의 개발 초기 참여 허용 4. 전체 구현 단계 이전에 오류 발견 가능 단점 1. 자동화 곤란 2. 관리와 개발 측면 구별이 모호하여 관리의 총 비용 급증 (특히, 일부 개발만 완료하고 추가 개발 중에 Error 수정하며 사용 시) 3. 첫 Increment 오류 잔존 시, 최종 시스템에서 연관된 모든 Increment들의 오류 수정 비용이 큼 |
※ 점진적 개발을 적용한 Waterfall Model의 경우(Increment 크기가 큼)
3. 나선형(Spiral) Model
- 위험분석을 추가한 모델 > 프로젝트 수행 시 발생하는 위험을 관리하고 최소화하려는 목적 - 다수 개의 작업 영역으로 구분이 가능하나, 위의 예는 4개의 작업 영역인 경우 - S/W의 재 개발 혹은 재 사용 판단은 바깥쪽 타원에서 결정 - 고비용이거나 큰 S/W 시스템 개발에 효과적 - 프로젝트 관리가 복잡함 > 미숙한 위험 분석은 큰 문제를 초래 4개 작업 영역 1. 계획 수립 단계: 시스템의 성능, 기능, 제약 조건 등을 파악 2. 위험 분석 단계: 각 대안의 기술적 위험, 정보 부족 등을 예측 3. 개발 단계: 적용 모델 등 결정과 최종 구현 및 검증 수행 4. 고객 평가 단계: 현재까지 개발된 S/W에 대한 사용자의 피드백 수렴 및 다음 반복을 위한 준비 |
728x90
'소프트웨어공학' 카테고리의 다른 글
[S/W] Structured Program의 성격 (0) | 2022.10.26 |
---|---|
[S/W] Structured Programming(구조화 프로그래밍) & H/W의 발달 (0) | 2022.10.19 |
[S/W] S/W Cost Estimation(S/W 비용 추정) (0) | 2022.10.12 |
[S/W] S/W 개발 과정 전반에 공학의 원리 도입과 S/W의 변화 (0) | 2022.09.21 |
[S/W] S/W Engineering(소프트웨어 공학)의 정의 (2) | 2022.09.19 |