[ 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

+ Recent posts