소프트웨어 생명 주기
- 뜻: 소프트웨어를 개발하기 위해 정의하고 운용, 유지 보수등의 과정을 단계별로 나눈 것
- 개발 단계 + 단계별 활동 + 산출물
- (= 소프트웨어 생명주기 모형, 소프트웨어 프로세스 모형, 소프트웨어 공학 패러다임
폭포수 모형(Waterfall model)
- 뜻: 각 단계를 확실히 매듭짓고 그 결과를 검토하여 승인과정을 거친 후 다음 단계를 진행
- 특징: 가장 오래되고 사용 多, 선형 순차적 모형, 매뉴얼 작성, 각 단계마다 결과물 이 명확히 산출 되어야 함
- 절차: 타당성 검토 -> 계획 -> 요구분석 -> 설계 -> 구현 -> 시험 -> 유지/보수
프로토타입 모델(Prototype model, 원형 모형)
- 뜻: 소프트웨어의 견본 을 만들어 최종 결과물을 예측하는 모형
- 특징: 시제품은 사용자와 시스템 사이 인터페이스 에 중점, 폭포수 모형 단점 보완
나선형 모델(Spiral model, 점진적 모델)
- 뜻: 나선을 돌듯이 여러번의 소프트웨어 개발 과정 을 거쳐 점진적 으로 완벽한 최종 소프트웨어를 개발
- 특징: 폭포수 + 프로토타입 + "위험 분석 기능", 위험 관리 가 목적, 점진적으로 요구사항 첨가 가능, 유지보수 필요 X
- 절차: 계획 -> 위험분석 -> 개발 및 검증 -> 고객 평가 -> 반복
애자일 모형(Agile model)
- 뜻: 특정 개발 방법론 x, 좋은 것을 빠르고 낭비 없게 만들기 위해 고객과의 소통 에 초첨을 맞춘 방법론
- 특징
- 요구 사항에 유연하게 대응할 수 있도록 일정 주기(스프린트, 이터레이션) 를 반복하면서 개발과정 진행
- 반복되는 주기마다 요구사항 적극 반영
- 요구 사항에 우선순위 를 정함
- 소규모 + 숙달된 개발자 + 급변하는 요구 사항에 적합
- 애자일 모형 기반: 스크럼, XP, 칸반, Lean, 크리스탈, ASD, 기능 중심 개발
애자일 개발 4가지의 핵심 가치
- 프로세스와 도구보다는 개인과 상호작용 에 가치를 둔다.
- 방대한 문서보다는 실행되는 SW 에 가치를 둔다.
- 계약 협상보다는 고객과 협업 에 가치를 둔다.
- 계획을 따르기 보다는 변화에 반응 하는 것에 가치를 둔다.