[소프트웨어 공학] 2.소프트웨어 생명 주기(Life Cycle)

이번에는 정보처리필기 소프트웨어 공학에서 소프트웨어 생명 주기를 살펴보기로 해요.

소프트웨어 생명 주기
개발 방법론에 따라 소프트웨어 개발 공정을 단계별로 나눈 것
비용 산정과 개발 계획을 수립할 수 있는 기본 골격
용어의 표준화를 가능하게 한다.
문서화가 충실한 프로젝트 관리를 가능하게 한다.

소프트웨어 생명 주기 모델
소프트웨어 생명 주기를 표현하는 방법
프로토 타입 모델, 폭포수 모델, 나선형 모델 등이 있다.

프로토타입(Prototype) 모델
사용자의 요구사항을 파악하기 위해 견본(Prototype)을 만들어 예측하는 모델
요구 수집=>빠른 설계=>프로토타입 구축=>고객평가=>프로토타입조정=>구현
소프트웨어 생명주기에서 유지보수가 없어지고 개발 단계 안에서 유지보수가 이루어진다.

폭포수(Waterfall) 모델
각 단계별로 철저한 검토와 승인 과정을 거쳐 확실히 매듭짓고 다음 단계로 진행하는 모델
계획=>분석=>설계=>구현=>시험=>운용=>유지보수
Boehem이 제시한 고전적 생명 주기 모델로 선형 순차적 모델이라고도 한다.
적용 사례가 많고 단계별 정의가 분명하고 단계별 산출물이 명확하다.
제품의 일부가 될 메뉴얼을 작성해야 한다.

나선형(Spiral) 모델
여러 번의 개발 과정을 거쳐 점진적으로 프로젝트를 완성시켜가는 모델
계획(Planning)=>위험 분석(Risk Analysis)=>개발(Engineering)=>고객 평가(Customer Evaluation)
대규모 시스템 소프트웨어 개발에 적합하다.
위험 분석과정이 있어 점진적으로 위험 요소를 발견하고 제거해 나갈 수 있다.
위험 분석 과정에 의존도가 높아 이 과정에서 문제를 발견하지 못하면 문제가 발생할 수 있다.