Study/Software Engineering

소프트웨어 개발 프로세스(Software Development Process) 비교

빨간당무 2016. 3. 30. 21:06

소프트웨어 개발 프로세스 중 잘 알려진 대표적인 개발 프로세스의 특징, 장단점을 비교해 본다. 


1. 폭포수 모델(Waterfall Model)

2. 프로토타이핑 모델(Prototyping Model)

3. 점진적 모델(Incremental Model)

4. 나선형 모델(Spiral Model)

5. V 모델(Verification Model)


그 외 특이항 프로세스로 

6. Unified 프로세스

7. 애자일 프로세스

를 소개-그림만-해 본다. 


그 외의 프로세스들

WinWin 나선형 모델(WinWin Spiral Model)

동시적 개발 모델(Concurrent Development Model)

컴포넌트-기반 개발(CBD; Component-based Development)

형식 방법론 모델(Formal Method Model)

등이 있다.




소프트웨어 개발 프로세스 비교표 


 

 특  징  /  적  용

 장  점

 단  점

 1. 폭포수 모델

 - 각 단계가 끝나야 다음 단계가 시작 가능함 (순서적)

 - 단순하거나 응용 분야를 잘 알고 있을 경우 적합

 - 결과물 정의가 중요

 - 이미 잘 알고 있는 문제나 연구 중심 문제에 적합

 - 변화가 적은 프로젝트에 적합

 - 프로세스가 단순하여 초보자가 쉽게 적용 가능

 - 중간 산출물이 명확, 관리하기 좋음

 - 코드 생성 전 충분한 연구와 분석 단계

 - 초반 단계들을 지나치게 강조하면 코딩, 테스트가 지연

 - 각 단계의 전환에 많은 노력

 - 프로토타입과 재상용의 기회가 줄어둚

 - 소용 없는 다종의 문서를 생산할 가능성 있음

 2. 프로토타이핑 모델

 - 프로토타입(시범 시스템)의 적용

 - 트로토타이핑 도구 이용

 - 공동의 참조 모델

 - 단순한 요구 추출 및 제작 가능성 타진

 - 개발 착수 시점에 요구가 불투명할 때 

 - 실험적으로 실현 가능성을 타진해 보고 싶을 때

 - 혁신적 기술을 사용해 보고 싶을 때

 - 사용자의 의견 반영이 잘 됨

 - 사용자가 더 관심을 가지고 참여할 수 있고 개발자는 요구를 더 정확하게 도출할 수 있음

 - 오해, 기대심리 유발

 - 관리가 어려움 (중간 산출물 정의가 난해)

 3. 점진적 모델

 - 선형 순차적 모델의 요소들에 프로토 타입의 반복성의 개념 포함

 - 개발 사이클이 짧은 환경

 - 빠른 시간 내에 시장에 출시해야 할 때 

 - 개발 시간을 줄이기 위해 시스템을 나누어 릴리즈

 - 점증적 & 반복적으로 릴리스

 - 기능이 부족하더라도 초기 사용가능

 - 빠른 출시로 초기 시장 선점 가능

 - 자주 릴리스하여 문제를 신속히 해결

 - 대규모 시스템 개발에 적합

 - 반복적인 개발 및 테스트

 - 처음 릴리즈에 핵심 기능이 구현되고, 이후 릴리즈는 부가 사항이 구현

 - 한 릴리즈에 추가하지 못한 기능은 다음 릴리즈에 추가 가능

 - 각 릴리즈에 중복되는 작업이 발생 할 수 있음

 4. 나선형 모델

 - 프로토 타입 모델의 반복성과 선형 순차적 모델의 시스템적인 요소를 결합

 - S/W 기능을 나누어 점증적으로 개발

 - 여러 번의 점증적인 릴리즈

 - 계획 수립, 위험 분석, 개발, 평가 단계로 구성

 - 재정적 또는 기술적으로 위험 부담이 큰 경우

 - 요구 사항이나 아키텍처 이해에 어려운 경우 

 - 대규모 시스템 개발에 적합

 - 반복적인 개발 및 테스트

 - 한 사이클에 추가하지 못한 기능은 다음 단계에 추가 가능

 - 위험 분석이 중요

 - 관리가 중요

 - 새로운 모형

 5. V 모델

 - 폭포수 모델의 변형이나 작업 결과의 검증에 초점

 - 신뢰성이 높이 요구되는 분야

 - 오류를 줄일 수 있음

 - 반복이 없어 변경 사항을 다루기가 쉽지 않음





1. 폭포수 모델(Waterfall) 모델


2. 프로토타이핑 모델(Prototyping Model)


3. 점진적 모델(Incremental Model)


4. 나선형 모델(Spiral Model)


5. V 모델(Verification Model)


6. Unified 프로세스


7. 애자일 프로세스




Ref. : 새로 쓴 소프트웨어 공학, 최은만 저, 정익사

Ref. : 소프트웨어 공학 실무적 접근 5th Edition, 우치수외 3명 공역, Pressman

.