[ Incremental development (반복적인 개발) ]
▪ 기능의 주요 부분 또는 일부분을 처음 개발하여 사용자에게 확인을 받아서 사용자가 만족할 때까지 계속된다.
▪ 명세화, 개발, 검증 단계가 서로 교차된다. 각 activity 마다 빠른 피드백이 이루어진다.
▪ 상세한 사용자의 명세서를 작성할 수 없을 때에 사용한다.
▪ 폭포수 보다 개발 된 이후 소프트웨어의 변경이 쉽기 때문에 대부분의 사업, 전자상거래와 개인적인 시스템에 사용된다.
▪ 주로 인공지능 시스템의 개발에 사용한다. 사람을 모방하는 소프트웨어에 대한 상세한 명세서를 설정하는 것이 불가능 하기 때문이다
▪ 사용자들과 친밀할 필요가 있는 시스템을 마들 때에는 폭포수 모델보다 진화적인 개발 방법이 더 효율적이다.
▪ 각 버전에는 기능이 점점 추가된다. 초기 버전에는 요구된 것 중 가장 중요한 기능이 포함되며 이후 버전에는 추가적인 기능들이 포함된다.
▪ 현재 버전이 요구조건을 충족 시키지 못한 채 업데이트 되었다면 다음 버전에 반영 시켜 개발된다.
[ 장점 ]
▪ 변경된 요구사항을 적용 시키는 비용이 적다. 다시 진행되어야 하는 분석과 문서화의 양이 폭포수에서 요구되는 것 보다 훨씬 적다.
▪ 개발 과정에서 고객들의 피드백을 얻기 더 쉽다. 고객들은 소프트웨어를 실행하고 어떻게 발전 시켜야 하는지 피드백을 해 줄 수 있다.
▪ 사용자는 폭포수 모델 보다 유용한 소프트웨어의 출고가 좀 더 빨라 질 수 있다.
[ 단점 ]
▪ 관리적
- 프로세스가 보이지 않는다. 관리자는 프로젝트의 진척 사항을 점검하기 위하여 정규적인 산물이 필요
▪ 유지 보수적
- 시스템이 보통 비구조화 된다. 계속적인 소프트웨어의 변경으로 소프트웨어 구조가 파괴된다. 그러므로, 소프트웨어 진화를 다루는 것은 어렵고 비용이 많이 소요된다.
- 소프트웨어를 향상시키기 위한 리팩토링을 하지 않는 다면, 규칙적인 변경사항들은 구조가 망가진다.
- 소프트웨어를 통합 하는 것이 점점 더 어려워지고 비용이 많이 들게 된다.
'학사 그리고 석사 > 소프트웨어공학' 카테고리의 다른 글
프로세스 Activities (0) | 2019.10.13 |
---|---|
Reuse-oriented software engineering (0) | 2019.10.03 |
Waterfall model (0) | 2019.10.03 |
소프트웨어 프로세스 모델 (0) | 2019.09.29 |
소프트웨어 공학 (2) (0) | 2019.09.27 |