Prototipagem
O cliente, freqüentemente, define um conjunto de objetivos gerais para o software, mas não identifica detalhadamente requisitos de entrada, processamento ou saída. Em outros casos, o desenvolvedor pode estar inseguro da eficiência de um algoritmo, da adaptabilidade de um sistema operacional ou da forma que a interação homem/maquina deve assumir. Nessas, e em muitas outras situações, um paradigma de prototipagem pode oferecer a melhor abordagem. Apesar de a prototipagem poder ser usada como um modelo de processo independente, ela é mais comumente usada como uma técnica que pode ser implementada dentro do contexto de qualquer um dos modelos de processos mencionados neste capitulo. Independentemente da maneira como é aplicado, o paradigma de prototipagem auxilia o engenheiro de software e o cliente a entenderem melhor o que deve ser construído quando os requisitos estão confusos. O paradigma de prototipagem começa com a comunicação. O engenheiro de software e o cliente encontram-se e definem os objetivos gerais do software, identificam as necessidades conhecidas e delineiam áreas que necessitam de mais definições. Uma iteração de prototipagem é planejada rapidamente e a modelagem (na forma de um “projeto rápido”) ocorre. O projeto rápido concentra-se na representação daqueles aspectos do software que estarão visíveis para o cliente/usuário (por exemplo, leiaute da interface humana ou formatos de saída de tela). O projeto rápido leva a construção de um protótipo, que é implantado e depois avaliado pelo cliente/usuário. O feedback é usado para refinar os requisitos do software. A iteração ocorre à medida que o protótipo é ajustado para satisfazer às necessidades do cliente,e,ao mesmo tempo, permite ao desenvolvedor entender melhor o que precisa ser feito. Idealmente, o protótipo serve como um mecanismo para identificação dos requisitos do software. Se um protótipo executável é elaborado, o desenvolvedor tenta usar partes de programas