[ Incremental delivery ]

 한 번에 시스템이 배포되기 보다, 개발과 배포는 단계로 나누어 이루어진다. 각 단계는 요구된 기능을 배포 한다. 한 번에 고객들에게 전달 되는 waterfall 방식은 수정 할 때 큰 비용이 들게 한다.

 개발된 버전은 고객들에게 전달되고 기능적인 환경에서 사용되기 위해 고쳐진다.

 단계

  - 고객들은 요구사항을 확실히 하고 우선순위를 정해 주어야 한다.

    · 수 많은 Delivery 단계들을 정의한다.

    · 각각의 단계들은 부분적인 시스템 기능을 제공한다.

    · 가장 높은 우선순위의 요구사항은 단계 초반에 한다.

  - 각 단계를 개발 하는 동안에, 요구사항은 변경하지 않는다.

    · 다음 단계를 위해 요구사항은 계속 변화한다.

  - increment가 완성되면 전달을 하고, 고객들은 시스템을 통해 서비스와 실험을 할 수 있다.

    · 빠른 배포 또한 시스테 기능 중 하나이다.

  - 새로운 개발이 완성되면, 그들은 존재하고 있는 increment들을 통합한다.

    · 시스템의 기능은 반복적인 전달로 향상된다.

 장점과 문제점

장점

- 고객들은 프로토타입 처럼 결과물을 미리 사용해 볼 수 있고 테스트를 통해 다음 단계를 위한 요구사항을 알릴 수 있다. 프로토타입과 달리 실제시스템의 한 부분이다.

- 고객들은 전체 시스템을 위해 기다리지 않아도 된다. 첫 번째 단계를 만족 시키면 그들의 가장 중요한 요구조건을 만족시키게 되는 것이다.

- 상대적으로 시스템 변경을 통합하는 것이 쉽다. 반복 공정의 장점이라 할 수 있다.

- 가장 중요한 서비스 부분은 앞부분에 배치되어 test 또한 여러 번 받는다. 가장 높은 우선순위를 가진 서비스는 가장 먼저 전달된다.

문제점

- 모든 단계에서 사용될 공통 부분을 정의하기 어렵다. 요구사항은 한 단계가 시행될 때 까지 상세하게 정의 되지 않는다.

- 상호적인 개발은 대체할 시스템이 개발 될 때 어려울 수 있다. 사용자는 완성되지 않은 새로운 시스템을 실험하는 것이 힘들 수 있다.

- 마지막 단계가 구체화 될 때 까지 완성된 시스템은 없다. 결과물이 막연하고 예측 하기 어렵다. 많은 조직에서 전달하는 모델과 충돌 하게 된다.

 

댓글이나 공감 남겨주는 사람 착한사람

'학사 그리고 석사 > 소프트웨어공학' 카테고리의 다른 글

The Rational Unified Process (RUP)  (0) 2019.10.18
Boehm’s Spiral Model  (0) 2019.10.18
Prototyping  (0) 2019.10.14
Coping with change  (0) 2019.10.14
소프트웨어 진화  (0) 2019.10.14

+ Recent posts