정의
- 분석, 설계, 개발, 구현, 시험 및 유지보수 과정을 단계별로 구분하여 순차적으로 접근하는 방법
키워드
- 순차적, 산출물중심, 단계적 테스팅, 정식변경절차 수행(Frozen Delivery), 고전적 모델
메커니즘
기술요소
장점
관리 용이
- 간결하고 이해하기 쉬움
체계적 문서화
- 단계별 정형화된 접근법으로 체계적 문서화 가능
변화가 적은 프로젝트
- 요구사항 변화가 적은 프로젝트에 적합
- 비교적 소규모 프로젝트 개발에 유리
단점
단계적 진행
- 앞 단계가 끝날 때까지 대기, 개발완료전에 사용자가 원하는 것을 정확 히 알 수 없음
오류/변경에 취약
- 단계 결과물이 완벽하지 않으면 다음 단계에 오류가 전파, 요구사항 변경시 전체일정에 부담
폭포수 모델과 애자일 모델의 비교
핵심요소
- Phase 단계별 수행, 계획 중심<>Less Document-Oriented, 학습 중심
요구사항
- 미리 정의된 요구 사항을 수집, 분석, 디자인<>프로젝트 과정에 걸쳐 진화하는 요구사항 반영
Release
- 빅뱅(Big Band) Release,
- 요구사항을 제대로 따르면 기능적으로 잘 작동할 것으로 예상하여 통합을 자주하거나 빠르게 하지 않음
<>
- 빠른 Release
- 작은 크기로 Release된 기능들을 목표로 하고 있으며 고객 Needs를 파악하여 가능한 빨리 고객에게 제공하고 고객 요구 사항을 충족
의사소통
- 고객과 드문 의사 소통
- 문서 중심의 접근법으로 이해관계자들 사이 계약서로 문서 제공하여 의사 소통 최소화
<>
- 고객과의 지속적인 의사 소통
- 작업본을 주기적으로 발전시키고 고객과 지속적으로 공유. 고객과 개발팀은 공통으로 업무를 진행하며 협업
개발구조
- 수평적 단계별 개발
- 기초에서 시작하여 단계를 거쳐 튼튼한 기반에서비스 개발
<>
- 기능별 수직 개발
- 서비스에 언제든지 요구사항을 추가 가능하므로 가능한 빠르게 개발하고 Feedback을 받아 그것을 반영하는 과정 반복
통합
- 마지막에 통합
- 계획에 맞춰 모든 것이 완벽이 작동하는 마지막 단계에서 통합
<>
- 잦은 통합
- 통합 이슈와 같은 문제들을 빠르게 인지할 수 있도록 자주 통합 수행
테스트
- 마지막 단계 테스트 실시
- 마지막 전까지 통합하지 않으므로 마지막까지 테스트 수행 불가
<>
- 초기와 이후 잦은 테스트
- 초기 통합하는 이유는 잠재하는 결함과 예상 못한 사용 패턴을 찾을 수 있어 수정에 대한 비용 절감
'Professional Engineer > SE' 카테고리의 다른 글
Spiral 모델 (0) | 2024.09.24 |
---|---|
프로토타입 모델 (0) | 2024.09.24 |
좋은 소프트웨어의 조건 (0) | 2024.09.24 |
소프트웨어 공학 정의 및 발전 원리 (0) | 2024.09.24 |
정보 은닉(Information Hiding) (0) | 2024.08.02 |
댓글