[폭포수 모델이란?]
가장 쉽게 말하면 소프트웨어 개발 기법이다.
폭포수 모델의 기법과 특징 및 불확실성에 대해 알아보도록 하겠다.
폭포수 모델의 기법을 표로 정리해보았다.
[요구사항] : 개발하고자 하는 소프트웨어의 대한 요구사항을 고객으로 부터 수집, 분석 및 명세하는
단계로서 상세한 요구사항이 있어야만 만들 프로그램을 자세히 정할 수 있고 이를
기반으로 계획을 세운다
[설계] : 고객의 요구사항을 분석하여 여러 해결책을 제시하고 가장 최적화된 해결책을 선정하는 단계이다.
[구현] : 고객의 요구사항을 실제 서비스의 형태로 제공할 수 있도록 개발하는 단계이다.
[테스트] : 구현한 프로그램이 고객의 요구사항대로 동작하는지 시험하는 단계이다.
[유지보수] : 프로그램의 오류나 더 나은 기능을 위해 유지 및 보수 하는 단계
[폭포수 모델의 특징]
Q. 왜 많고많은 이름중에 폭포수 일까?
한 번 떨어지면 거슬러 올라갈 수 없는 폭포수와 같이 소프트웨어 개발도 각 단계를 확실히 매듭짓고 다음 단계로 넘어간다는 의미에서 붙여진 명칭이다.
즉 한 단계가 실행될 때마다 이전 단계는 뒤돌아보지 않는다고 생각하면 된다.
그렇기 때문에 각 단계가 끝날 때마다 결과물이 명확하다(선형적이다).
그림으로 통해 알아보자
소프트웨어를 개발하는 개발자는 처음에 고객의 모든 요구사항을 받는다.
그 후 개발자는 모든 요구사항을 받았다고 생각해 설계단계로 넘어갔다. 그러나 고객은 개발자에게 몇 개의 요구사항을 까먹고 전달을 하지 못했다. 폭포수 모델의 기법은 설계단계에 넘어간 개발자는 다시 요구사항 단계로 돌아가지 않는다.
그러므로 한단계를 진행할 때마다 확실하게 해야한다는 단점을 가지고 있다.
[폭포수 모델의 리스크?]
위 그림과 같이 폭포수 모델 기법은 이전 단계로 돌아가지 않는다.
만약 고객이 요구사항 단계에서 요구사항을 제대로 전달하지 않았고
개발자가 설계 단계에 들어갔을 때 고객의 요구와는 다른 프로그램로 설계할 것이다.
폭포수 모델은 고객이 잘 개발되고 있는지 확인하지 못한다.
오로지 설계 구현 테스트가 끝나고 고객은 결과물을 확인하게 된다.
개발자는 고객의 심정도 모른 채 개발하고 있는 것이다.
고객의 마음도 모른 채 비용을 써가며 소프트웨어를 개발하고 있는 것이다. 소프트웨어 완성 후 고객에게
전달이 된 후에야 비로소 개발자와 고객은 소프트웨어가 잘못되었다는 것을 깨닫는다.
즉 시간이 지남에 따라 리스크가 커진다
[폭포수 모델과 목적불확실성의 관계]
목적불확실성이란? : 무엇을 만들지에 대한 불확실성
폭포수모델은 요구사항 단계에서 무엇을 만들지 확실하게 함으로 초기단계(요구사항 단계)에서
목적 불확실성을 완전하게 해소한다.
[유지보수]
[수정 유지보수] : 소프트웨어의 오류가 발견되었을 때 수정하는 작업
[적응 유지보수] : 운영체계나 환경 등이 변화되었을 때 변화를 수용하도록 프로그램을 수정하는 작업
[완전 유지보수] : 기능이나 성능을 개선하거나 새로운 기능을 추가하기 위해 프로그램을 수정하는 작업
[예방 유지보수] : 오류가 발생되기 전에 미리 방지될 수 있도록 수행하는 작업
[정리]
1. 폭포수 모델은 선형적이다(이전 단계의 결과물이 확실하다)
2. 각 개발단계마다 산출물이 명확하다
3. 전체 개발과정이 이해하기 쉽다
4. 목적불확실성을 초기에 완전히 해소한다
5. 비즈니스 상황의 변화에 유연하게 대처할 수 없다
6. 시간이 지날수록 리스크가 커진다
'소프트웨어공학' 카테고리의 다른 글
제품 백로그 특성(스크럼) (0) | 2022.04.03 |
---|---|
사용자 스토리(스크럼) #3(사용자 스토리) (0) | 2022.03.30 |
스크럼(애자일 개발 프로세스) #2(스크럼 이벤트 및 산출물) (0) | 2022.03.30 |
스크럼(애자일 개발 프로세스) #1(스크럼 팀) (0) | 2022.03.30 |
애자일모델 (0) | 2022.03.18 |
댓글