소프트웨어 프로토타입은 위험 요소를 분석하고 노출시키며 이를 매우 저렴한 비용으로 바로잡을 기회를 얻는 것이다. 그리고 프로토타입은 반드시 코드로 작성할 필요는 없으며, 포스트잇이나 화이트 보드, 각종 툴을 이용할 수도 있다. 프로토타입은 제한된 몇가지 기능이나 시스템을 구현하기 위한 것이기 때문에 실제 제품보다 훨씬 적은 비용으로 빠르게 개발할 수 있다. 따라서 세부사항을 포기할 수 있으며 다음과 같은 것들 고려해야할 것이다.
프로토타입의 대상 [Bottom] [Top]
- 아키텍처
- 기존 시스템에 추가할 새로운 기능
- 외부 데이터의 구조 혹은 내용
- 써드파티 도구나 컴포넌트
- 성능 문제
- 사용자 인터페이스 설계
프로토타입의 대상은 위험을 수반하는 모든 프로젝트가 될 수 있다. 프로토타입의 목적은 학습 경험이다. 따라서 프로토타입 과정에서 생성된 코드 보다 이를 통해 배우게 되는 교훈에 가치가 있다.
프로토타입에서 고려하지 않아도 될 문제 [Bottom] [Top]
- 정확성 - 더미 데이터를 사용
- 완전성 - 제한된 입력과 기능만 제공해도 문제 없음
- 안전성 - 에러 처리를 무시해도 상관 없음
- 스타일 - 주석이나 문서에 지나치게 신경쓸 필요 없음
프로토타입은 세부사항 보다 시스템의 특정한 측면에 초점을 맞추기 때문에 위의 사항을 무시할 수 있다. 또한 프로토타입의 구현과 검증을 신속하게 하기 위해서는 고수준 언어 (주로 스크립트 언어, 4GL, RAD 등) 를 이용할 수도 있다.
아키텍처 프로토타입 [Bottom] [Top]
아키텍처를 모델링하기 위한 프로토타입에서는 코드에 대한 부담감을 갖지않아도 된다. 다만, 프로토타입에서 기대하는 것은 전체적인 시스템이 어떻게 동작하는지, 어떤 흐름을 갖는지 파악하는 것이다. 따라서 세부사항은 무시해도 좋지만 다음 사항들은 규명하고 넘어가야할 것이다.
- 주요 컴포넌트의 책임이 잘 정의되었고 적절한가?
- 주요 컴포넌트 간의 협력관계가 잘 정의되었는가?
- 결합도는 최소화되었는가?
- 잠재적 중복을 찾아낼 수 있는가?
- 인터페이스 정의와 제약 사항은 수용할만한가?
- 각 모듈이 실행 중에 필요로 하는 데이터에 접근할 수 있는 경로를 갖고 있는가? 모듈은 데이터를 필요로 할 때 데이터에 접근할 수 있는가?
프로토타입 개발에 앞서... [Bottom] [Top]
프로토타입의 코드는 앞으로 폐기처분될 코드라는 것을 알고 프로토타입을 개발해야할 것이다. 이 과정에서 작성될 코드들은 불완전하고, 신뢰할 수 없는 코드가 될 가능이 높기 때문이다. 프로토타입의 목적은 많은 시간과 돈, 고통과 고생을 줄이기 위한 것으로 이는 실수를 저렴하면서 동시에 손쉽게 고칠 수 있는 개발주기 초기에, 잠재적 문제 지점을 발견하고 또 고치기 위한 것이다.
