소프트웨어 개발 방법론 - 폭포수 방식(waterfall)
2022. 3. 10. 09:35ㆍSW개발론
소프트웨어 개발 방법론 종류
- 구조적 방법론: 절차 중심의 SW개발 방법론, 폭포수 모델이 대표적
- 정보공학 방법론: 데이터나 모델링을 기반으로 한 프로토타입의 개발 방법론, 특징은 약함, 중요성 낮음
- 객체 지향 방법론: 객체는 컴포넌트화 쉽다. 사람이 참여하여 수많은 반복을 거듭하고 개발을 진행하는 반복적 개발 방법론이 주로 사용됨
- 컴포넌트 기반 방법론: 사용자와 개발자 간의 반복적인 커뮤니케이션을 중요하게 여기는 개발 방법론. 컴포넌트를 재사용 함으로써 개발 시간을 많이 단축. 애자일 방법론이 대표적
폭포수 모델의 구성 단계
- 분석: 고객의 요구 조건, 시스템 환경 등 타당성을 검토하고 요구사항에 대한 명세를 작성
- 설계: 요구사항 명세를 바탕으로 SW의 전체 구조와 구조간의 관계, 상세 알고리즘 등을 세부적으로 설계
- 개발/구현: 요구사항 명세를 준수하는 설계에 따라 직접 코딩하여 SW를 개발하는 단계
- 테스트: 완성된 프로그램을 테스트하는 단계(통합 테스트, 인수 테스트, 시스템 테스트)
폭포수 모델의 특징
- 절차적 - 소프트웨어 개발을 단계별로 순차적으로 진행하는 '절차적 프로그래밍 기법'
- 단계 검증 - 각 단계별로 검증이 완료된 후 다음 단계로 이동
- 하향식 접근 - 전 단계의 작업이 모두 완료되어야 다음 진행이 가능한 방식
- 피드백 - 결함 발견 시 전 단계로 돌아가는 피드백 단계 존재
- 계획과 specification development가 전체의 40퍼센트를 차지함
폭포수 모델의 장/단점
장점
- 오랜 기간 사용된 SW개발 모델로써, 다양한 사례 & 검증된 방식에 따라 업무 진행 가능
- 전체 과정이 SW 생명주기와 일치하여 이해가 쉬움
- 각 진행 단계 별 산출물(문서)이 확실, 진행 중 및 진행 이후 관리가 용이
단점
- 각 단계가 종결되어야 다음 단계 진행 가능
- 사용자 피드백에 대한 빠른 대응이 어려움
- 테스트 단계에서 발견된 중요 결함은 치명적인 문제가 될 수 있음
폭포수 모델 적용하기 좋은 조건
- 고객의 요구사항이 단순하고 변경 가능성이 높지 않은 경우
- 프로젝트의 규모와 난이도가 높지 않은 경우
- 각 단계 종료 후 나올 산출물의 결과가 명확한 경우
출처
'SW개발론' 카테고리의 다른 글
SCRUM(스크럼) (0) | 2022.03.10 |
---|---|
소프트웨어 개발 방법론 - 애자일(Agile) (0) | 2022.03.10 |