본문 바로가기
소프트웨어공학

폭포수 모델

by 핫동경 2022. 3. 14.
반응형
[폭포수 모델이란?]

가장 쉽게 말하면 소프트웨어 개발 기법이다. 

폭포수 모델의 기법과 특징 및 불확실성에 대해 알아보도록 하겠다.

폭포수 모델 

폭포수 모델의 기법을 표로 정리해보았다.

 

[요구사항] : 개발하고자 하는 소프트웨어의 대한 요구사항을 고객으로 부터 수집, 분석 및 명세하는 

                단계로서 상세한 요구사항이 있어야만 만들 프로그램을 자세히 정할 수 있고 이를 

                 기반으로 계획을 세운다

 

[설계] : 고객의 요구사항을 분석하여 여러 해결책을 제시하고 가장 최적화된 해결책을 선정하는 단계이다.

 

[구현] : 고객의 요구사항을 실제 서비스의 형태로 제공할 수 있도록 개발하는 단계이다.

 

[테스트] : 구현한 프로그램이 고객의 요구사항대로 동작하는지 시험하는 단계이다.

 

[유지보수] : 프로그램의 오류나 더 나은 기능을 위해 유지 및 보수 하는 단계

                 


[폭포수 모델의 특징]

Q. 왜 많고많은 이름중에 폭포수 일까?

한 번 떨어지면 거슬러 올라갈 수 없는 폭포수와 같이 소프트웨어 개발도 각 단계를 확실히 매듭짓고 다음 단계로 넘어간다는 의미에서 붙여진 명칭이다.

 

즉 한 단계가 실행될 때마다 이전 단계는 뒤돌아보지 않는다고 생각하면 된다.

그렇기 때문에 각 단계가 끝날 때마다 결과물이 명확하다(선형적이다). 

 

그림으로 통해 알아보자

폭포수 모델 기법

소프트웨어를 개발하는 개발자는 처음에 고객의 모든 요구사항을 받는다. 

그 후 개발자는 모든 요구사항을 받았다고 생각해 설계단계로 넘어갔다. 그러나 고객은 개발자에게 몇 개의 요구사항을 까먹고 전달을 하지 못했다. 폭포수 모델의 기법은 설계단계에 넘어간 개발자는 다시 요구사항 단계로 돌아가지 않는다.

그러므로 한단계를 진행할 때마다 확실하게 해야한다는 단점을 가지고 있다.

 

[폭포수 모델의 리스크?]

위 그림과 같이 폭포수 모델 기법은 이전 단계로 돌아가지 않는다.

만약 고객이 요구사항 단계에서 요구사항을 제대로 전달하지 않았고 

개발자가 설계 단계에 들어갔을 때 고객의 요구와는 다른 프로그램로 설계할 것이다.

폭포수 모델은 고객이 잘 개발되고 있는지 확인하지 못한다.

오로지 설계 구현 테스트가 끝나고 고객은 결과물을 확인하게 된다.

 

개발자는 고객의 심정도 모른 채 개발하고 있는 것이다.

고객의 마음도 모른 채 비용을 써가며 소프트웨어를 개발하고 있는 것이다. 소프트웨어 완성 후 고객에게

전달이 된 후에야 비로소 개발자와 고객은 소프트웨어가 잘못되었다는 것을 깨닫는다.

 

즉 시간이 지남에 따라 리스크가 커진다

폭포수 모델의 시간과 리스크 관계

 

 

 

[폭포수 모델과 목적불확실성의 관계]

목적불확실성이란? : 무엇을 만들지에 대한 불확실성

폭포수모델은 요구사항 단계에서 무엇을 만들지 확실하게 함으로 초기단계(요구사항 단계)에서

목적 불확실성을 완전하게 해소한다.

 

 

 

 

[유지보수]

[수정 유지보수] : 소프트웨어의 오류가 발견되었을 때 수정하는 작업

 

[적응 유지보수] : 운영체계나 환경 등이 변화되었을 때 변화를 수용하도록 프로그램을 수정하는 작업

 

[완전 유지보수] : 기능이나 성능을 개선하거나 새로운 기능을 추가하기 위해 프로그램을 수정하는 작업

 

[예방 유지보수] : 오류가 발생되기 전에 미리 방지될 수 있도록 수행하는 작업

 

 

 

[정리]

1. 폭포수 모델은 선형적이다(이전 단계의 결과물이 확실하다)

2. 각 개발단계마다 산출물이 명확하다

3. 전체 개발과정이 이해하기 쉽다

4. 목적불확실성을 초기에 완전히 해소한다

5. 비즈니스 상황의 변화에 유연하게 대처할 수 없다 

6. 시간이 지날수록 리스크가 커진다

반응형

댓글