1. 폭포수 모델
- 개념 정립에서 구현까지 하향식 접근방법 (높은 추상화 단계 -> 낮은 추상화 단계)
- 응용분야가 단순하고 잘 알고있는경우에 적합
- 비전문가가 사용할 시스템 개발에 적합
- 단계별 결과물이 명확해야 한다.
- 설계와 코딩 및 테스트를 지연시킬 우려가 있다.
- 시스템의 요구가 설계단계로 넘어가기전에 동결됨을 가정
- 문서와 결과물 도출에 중점.
- 단점 : 프로토타입과 재사용의 기회가 줄어든다
일정에 융통성이 없으며 이전단계로의 회귀,반복이 계속 된다면 소요자원이 계속
증가할수 있다
최종단계가 가야지 결과물을 알수있다.
초기에 요구사항 정의가 어려움.
중요한 문제점의 발견이 늦어짐.
- 용도 : 이미 잘알고 있는 문제나 연구중심의 소프트웨어 개발에 적합
위험이 적은 프로젝트에 적합
유사한 프로젝트 경험이 있는 경우
요구사항이 명확히 정의되어 있는 경우
프로토타이핑 모델
- 요구사항을 초기에 명세하기가 어려운 경우 적합 (요구사항이 모호함)
- 프로토타입에는 사용자의 경험으로 가치있는 의견을 회수할 만한 기능만을 포함시킨다.
- 예외처리, 회복, 표준이나 형식의 준수와 같은 것은 포함시키지 않는다.
- 품질보다는 빠르게 만들어야 한다.
- 장점 : 요구사항 도출이 용이.
시스템의 이해와 품질 향상
개발자와 사용자간 의사소통 원활
개발의 타당성 검증.
- 단점 : 발주자가 프로토타입이 최종결과라 믿고 곧 소프트웨어가 개발될꺼라고 오해
폐기에 따른 비경제성
프로토타입이 전체시스템의 일부분임에도 불구하고 발주자가 개발일정 단축을
요구할수 있어 품질을 저하시킬 수 있다.
: 프로토타입이 과대선전되어 인수해야할 제품보다 더 많은 기능을 기대하게 된다.
: 프로토타이핑 과정을 관리,통제 하기 어렵다
: 중간과정을 점검할 수 있는 일정표와 산출물이 어렵다.
: 발주자의 참여을 계획하는 것이 쉽지않다.
- 종류 : 실험적 프로타이핑 - 시제품 폐기
진화적 프로타이핑 - 나선형 모델
나선형 모델
- 위험분석을 기반으로 한 반복개발
- 선형모델의 체계적인 측면과 프로토타이핑의 반복적 특성을 결합시킨 형태의 모델
- 계획수립 - 위험분석 - 개발 - 평가
- 대규모시스템을 개발하는데 적합
- 각 확장단계에서 발생될 위험에 대한 이해와 대책이 가능하다.
- 비선형적이며 반복적으로 개발이 진행되므로 소프트웨어 품질 중 강인성을 높일수
있는 방법이다.
- 재정적, 기술적으로 위험부담이 큰 경우 위험분석을 해나가면서 시스템 발전
- 요구사항이나 아키텍쳐를 이해하기 어렵거나, 근본적으로 성능에 문제가 되는 경우
- 장점 : 정확한 사용자 요구사항 파악
: 위험부담 감소
: 품질확보
- 단점 : 프로젝트 개발에 많은 시간 소요
프로젝트 관리에 어려움
충분한 검증 미흡 (참조 사이트가 적음)
점증적 모델
- 사용자 요구사항의 일부분 또는 제품의 일부분을 반복적으로 개발하여 최종제품을
완성하는 모델
(폭포수모델 + 프로토타이핑 모델 + 나선형 모델)
- 폭포수모델의 변형으로 증분을 따로 개발 후 통합하는 방법으로 포로토타입의
반복개념을 선형순차모델의 요소들에 결합시킨 것.
- 프로토타이핑과 같이 반복적이나 각 점증이 갖는 제품 인도에 초점
- Big Bang 릴리스를 보완하려는 방법이다.
- 릴리스를 여러 번 나누어서 하면서 기능을 확장 개발해 나가는 방법
① 점증(증분)적(Incremental) 방법 : 기능별로 하나씩 개발하면서 릴리스
② 반복(진화)적(Iterative) 방법 : 처음부터 전체기능을 개발하되 릴리스할때마다
그 기능을을 더 완벽히 개발
- 장점 : 릴리스할때마다 사용자로부터 피드백을을 받아 사용자의 요구사항을
빠르게 반영할 수 있다.
: 증분을 정확히 계획하고, 릴리스한다는 점에서 진화적 모형과는 다르며
, 고객에게 모든 증분을
릴리스하고 고객의 우선순위를 고려한다는 점에서 agile 방법론과 비슷하다.
V 모델
- 폭포수모델에 시스템검증과 테스트 작업을 강조한 것이다.
- 폭포수모형은 문서와 결과물에 중점을 두는 반면, V모델은 작업과 결과의
검증에 초점을 둔다,.
- 장점 : 모든 단계에 확인과 검증 과정이 있어 오류를 줄일 수 있다
- 단점 : 생명주기의 반복을 허용하지 않아 변경을 다루기가 쉽지않다.
작업이 종료되고 리뷰 후에는 관련된 결과물이 동결된다.
- 적합 : 높은 신뢰성이 필요한 응용분야 (의료제어시스템, 원전제어시스템...)
요구의 명세가 확실하여 개발하는 동안 변경이 없는경우에만 적합
'소프트웨어공학' 카테고리의 다른 글
소프트웨어 개발 방법론 (3/3) (0) | 2019.10.24 |
---|---|
소프트웨어 개발 방법론 (2/3) (0) | 2019.10.23 |
소프트웨어 안전성 분석 기법 - FTA , FMEA, HAZOP (0) | 2019.10.20 |
소프트웨어공학 - Refactoring (리펙토링) (0) | 2019.10.19 |
클라우드 서비스 PaaS(Platform as a Service) 기반의 소프트웨어 개발 방법론 (0) | 2019.10.14 |