완전히 이해하지 못하는 시스템의 일부 측면이있을 때 두 가지 프로토 타입 제작 방법이 모두 사용됩니다. 그러나 중요한 차이점은 사용하는 수명주기 방법입니다. 진화 적 프로토 타이핑을 사용하면 일반적으로 시스템의 일부 측면을 이해하고 다른 것에 대해서는 확실하지 않습니다. 버림받은 프로토 타이핑에서는 프로덕션 준비 시스템을 구축하기 전에 완료해야한다는 일반적인 이해 부족이 있습니다.
많은 종류의 폐기 프로토 타입이 있으며 전체 시스템에만 제한되지는 않습니다. 예를 들어, 사용자 인터페이스의 종이 또는 화이트 보드 스케치를 사용하는 것은 무시 무시한 프로토 타이핑으로 간주 될 수 있습니다. 예, 여러 번 반복하여 이전 디자인을 버릴 수도 있지만 시스템에서 최종 프로토 타입을 사용하지는 않습니다 (물리적으로는 불가능합니다).
일반적인 소프트웨어 엔지니어링 주제와 광범위한 SE에 관심이 있으시면 인용하는 Sommerville 책을 고르는 것이 좋습니다. 광범위한 주제를 다루는 데 정말 좋습니다. 프로세스 모델과 방법론에 더 관심이 있고 다양한 프로젝트에 적용 할 수있는 방법에 대해서는 McConnell 책을 추천합니다.이 책은 진화 프로토 타이핑에 관한 전체 장과 프로토 타이핑에 관한 또 다른 장입니다.
또한 소프트웨어 프로토 타이핑에 관한 Wikipedia 기사를 간략히 살펴 보았습니다 . 그것의 일부는 조금 이상하지만 (적어도 빨리 읽었을 때), 내가 완전히 동의하지 않는 것은 없습니다. 그중 일부는 하나의 특정 측면에 약간 집중되어 있지만 실제로 내가 잘못한 것은 아닙니다. 아래 정의를 선호하지만 다양한 유형의 프로토 타입에 대한 흥미로운 내용이있을 수 있습니다.
진화 적 프로토 타입
프로세스의 목표는 고객과 협력하여 요구 사항을 탐색하고 최종 시스템을 제공하는 탐색 적 개발입니다. 개발은 이해되는 시스템의 일부로 시작됩니다. 시스템은 고객이 제안한 새로운 기능을 추가하여 발전합니다. (Sommerville : 소프트웨어 엔지니어링, 제 8 판)
Evolutionary Prototyping은 최종 사용자 및 고객 피드백에 따라 시스템을 쉽게 수정할 수 있도록 시스템을 증분 방식으로 개발하는 수명주기 모델입니다. 대부분의 진화 프로토 타이핑 노력은 사용자 인터페이스를 프로토 타이핑 한 후 완성 된 시스템을 발전시키는 것으로 시작되지만 프로토 타이핑은 고위험 영역에서 시작할 수 있습니다. Evolutionary Prototyping은 Throwaway Prototyping과 동일하지 않으므로 Evolutionary 프로토 타입을 개발할 것인지 또는 Throwaway 프로토 타입을 개발할 것인지에 대한 올바른 선택은 성공의 열쇠입니다. 성공의 다른 열쇠에는 숙련 된 개발자 사용, 일정 및 예산 기대치 관리, 프로토 타입 활동 자체 관리가 포함됩니다. (McConnell : 빠른 개발 : 길들이기 야생 소프트웨어 스케줄)
버림받은 프로토 타이핑 :
획기적인 프로토 타이핑은 진화 적 개발 프로세스의 목표가 고객의 요구 사항을 이해하고 따라서 시스템에 대한 더 나은 요구 사항 정의를 개발하는 것입니다. 프로토 타입은 이해하기 어려운 고객 요구 사항을 실험하는 데 중점을 둡니다. (Sommerville : 소프트웨어 엔지니어링, 제 8 판)
Throwaway Prototyping을 사용하면 시스템의 성공에 중요한 요소를 탐색하기 위해 코드를 개발 한 다음 해당 코드를 폐기합니다. 프로토 타이핑 구현은 프로그래밍 언어 또는 개발 방식 또는 대상 언어 및 방식보다 훨씬 빠른 프로그래밍 방식을 사용합니다. 사용자 인터페이스는 시스템의 다른 부분보다 훨씬 일반적으로 프로토 타입이지만 일부 시스템의 다른 부분도 프로토 타입을 통해 이점을 얻을 수 있습니다. 요구 사항 지정 지원으로 사용되는 Throwaway 프로토 타이핑 실습은 DoD 프로젝트와 같은 기존 라이프 사이클 모델을 기반으로 프로젝트를 가속화 할 수 있습니다. 관리 또는 기술 수준에서 시작할 수 있습니다. (McConnell : 빠른 개발 : 길들이기 야생 소프트웨어 스케줄)