본문 바로가기
👩‍💻TIL/Computer Science

[소프트웨어 공학] 개발 프로세스-반복진화형 모델/점증진화형 모델

by devuna 2021. 3. 27.
728x90

[소프트웨어공학] 개발 프로세스 - 반복진화형 모델/ 점증진화형 증분 모델 /프로토타이핑

소프트웨어 개발 프로세스는 개발 활동들의 절차이며 프로세스 모델은 프로세스의 추상화된 표현이다. 

프로세스 모델 중 반복적 모델은 반복 진화형 모델과 점증 진화형 모델로 구분이 가능하다.

 

📌 반복진화형 모델

불완전한 요구사항으로 초기버전을 만든 후, 요구사항을 정제하는 작업을
반복하여  만들어가는 소프트웨어 프로세스 모델
  • 분명한 요구사항과 시스템의 범위를 정하는 노력이 선행됨
  • 한번의 진화단계에서 프로토타이핑을 통해 요구사항을 보완하며 점차적으로 명확한 요구사항 도출

 

더보기

💡 프로토타이핑 방법

출처 http://ko.infomngproeng.wikidok.net/wp-d/5f507078f297911337db5b1d/View

개발초기에 간단한 모형(prototype)을 만드는 것

프로토타입을 통해 사용자가 초기에 요구사항 및 피드백을 할 수 있도록 하며,

개발자도 알고리즘의 효율성이나 운영체제 호환성 및 상호작용 형태를 미리 파악해 볼 수 있다.

 

장점

  • 요구사항 도출이 용이
  • 시스템 이해와 품질 향상
  • 개발자와 사용자 간 의사소통 원활
  • 명확한 요구사항으로 인한 위험감소

 

단점

- 문서화가 어려움

- 진행사항의 제어가 어려움

 

Pros 장점 

- 요구사항이 완성되지 않은 상태에도 초기버전을 만들고 동작을 확인할 수 있음

 

Cons 단점 

- 개발비용의 예상이 어려움

- 반복 작업으로 인해 프로젝트가 지연될 가능성이 높음

- 잦은 수정 작업이 소프트웨어 구조에 악영향을 주어 유지보수성이 떨어질 수 있음

 

📌 점증진화형 모델(=증분형 모델)

여러개의 모듈로 분해하고 각각을 점증적으로 개발하여 인도하는 소프트웨어 프로세스 모델

  • 선형 순차모델을 여러번 적용하고 그 결과를 조합
  • 각 모듈 = 증분(Increment)
  • 핵심 모듈을 먼저 개발

Pros 장점 

- 핵심 증분이 먼저 개발하므로 사용자는 시스템을 비교적 이른시기에 사용 가능

- 릴리즈 방식이 요구사항 변화에 대응하기 용이함

- 증분들은 점차 규모와 기능이 축소되어 관리가 어렵지 않음

- 먼저 개발되는 중요 부분이 반복적으로 테스트 됨

 

Cons 단점 

- 현실적으로 기능적 분해, 적당한 크기의 증분들로 나누기가 어려울 수 있음학] 개발 프로세스 - 폭포수모델

 

💡 증분형(점증진화형) VS. 반복진화형 모델 비교

구분 증분형 진화형
방식 시스템의 일부를 서브시스템화 하여 구현/반복 한 후, 결합 하여 완성 해 나간다. 핵심 요구사항을 프로토 타입으로 개발 후 추가 요구사항이나 개선사항을 추가하여 발전시켜 나간다. 
특징

 - 병행 개발이 가능
 - 증분이 많아질 경우 프로젝트 어려움
 - 폭포수 모델의 변형

 - 고객 요구사항이 불명확 할때 사용
 - 프로토 타입의 재사용
 - 전체적인 릴리즈 계획이 잡혀 있어야 함

장점 대규모 조직에서 병행 개발로 시간 단축 가능 고객 요구사항 반영이 용이
단점 과도한 증분시 프로젝트 위험 증가 고객 요구사항이 많을 경우 일정 지연

 

💡 폭포수 모델과 반복형 모델 비교

구분 폭포수 모델 반복 모델
특징 전통적, 순차 하향적 반복적
위험도 낮은 위험도의 프로젝트에 적합 고 위험도의 프로젝트에 적용
S/W규모 소/중 규모 중/대 규모
장점 이해 용이, 다음 단계 진행전 결과 검증(Baseline), 관리용이 위험조기발견 및 최소화 전략 구현가능, 변경관리 용이
단점 - 요구도출 어려움
- 계획/코딩/테스트 지연가능
- 문제점 발견 지연
- 프로젝트 관리가 복잡함

 

728x90

댓글