정의
소프트웨어 생명 주기는 소프트웨어 개발 방법론의 바탕이 되는 것으로, 소프트웨어를 개발하기 위해 정의하고 운용, 유지보수 등의 과정을 나눈 것이다.
종류
- 폭포수 모형 (Waterfall model)
- 프로토타입 모형 (Prototype model)
- 나선형 모형 (Spiral model)
- 애자일 모형 (Agile model)
폭포수 모형
폭포수가 위에서 아래로 진행 되는 것같이 한 쪽 방향으로 linear하게 진행 되는 모델
- 소프트웨어 공학에서 가장 오래되고 폭 넓게 사용 되는 모델
- 한 단계가 끝나야 다음 단계로 넘어 갈 수 있는 linear 모델
타당성 검토 > 계획 > 요구분석 > 설계 > 구현 > 테스트 > 유지보수
프로토타입 모형
이해관계자의 요구사항을 정확하게 파악 하기 위해 prototype을 만들어 최종 결과물을 예측하는 모델
- 프로토타입은 인터페이스를 중점으로 제작
- 제작한 프로토타입은 후에 제품의 뼈대가 될 수 있다.
- 소프트웨어 개발이 완료된 시점에서 문제를 발견하는 폭포수 모델의 단점을 보완
요구수집 > 빠른 설계 > 프로토타입 구축 > 고객 평가 > 프로토타입 조정 > 구현
나선형 모형
폭포수 모형과 프로토타입 모형의 장점에 위험 분석을 추가한 모형
- 나선을 따라 돌듯 여러 번의 소프트웨어 개발 과정을 거쳐 점진적으로 완벽한 최종 소프트웨어를 개발
- 소프트 웨어 개발 간 발생하는 위험을 관리하고 최소화하는 목적을 가짐
- 점진적으로 개발 과정이 반복 돼 유동적으로 관리 할 수 있다.
계획 수립 > 위험 분석 > 개발 및 검증 > 고객 평가 > 계획 수립 > ... > 고객 평가
애자일 모형
고객의 요구사항 변화에 유연하게 대응할 수 있도록 일정한 주기를 반복하면서 개발과정을 진행한다
- 어느 특정 개발 방법론이 아니라 고객과의 소통에 초점을 맞춘 방법론을 통칭
- 현대 기업에서 가장 많이 사용하는 모형
- Sprint 또는 Iteration이라 불리는 짧은 개발 주기를 반복하여 주기 마다 만들어지는 결과물에 대한 고객의 의견을 수용함
ex ) Scrum, XP, Kanban, ...
애자일의 핵심 가치
- 프로세스와 도구보다는 개인과 상호작용
- 방대한 문서보다는 실행되는 SW
- 계약 협상보다는 고객과 협업
- 계획에 따르기 보다는 변화에 반응
폭포수와 애자일 비교
| 폭포수 모형 | 애자일 모형 |
---|
새로운 요구사항 반영 | 어려움 | 지속적으로 반영 |
고객과의 의사소통 | 적음 | 지속적임 |
테스트 | 마지막에 몰아서 | 반복되는 일정 주기가 끝날 때마다 |
개발 중심 | 계획, 문서 | 고객 |