Modelo Cascata e Espiral
Processo de software, segundo Sommerville (2007), é um conjunto de atividades que leva à produção de um produto de software, ou seja, as etapas necessárias para a criação de um software. Embora existem várias tipos de processos de software diferentes algumas atividades são comuns a todos eles como a especificação de software, projeto e implementação de software, validação de software e evolução de software.
O Modelos de processo (ou ciclos de vida) de software é uma representação abstrata de um processo de software, onde cada modelo representa um processo sobre uma determinada perspectiva e características próprias de cada modelo. Não existe um modelo ideal ou um que funcione em todas os tipos de processos de software, porém cada um deles tem características próprias que, dependendo do tipo e condições do processo de software, pode facilitar ou dificultar o processo de software.
Exemplo de modelos de processo de software:
• Engenharia de software baseada em componentes: esta abordagem tem como característica a reutilização de componentes reusáveis, já implementados, para a criação de um novo software, em vez de criá-lo do zero.
• Iterativo: a essência desse modelo é a especificação desenvolvida conjuntamente com o software, não existindo uma especificação completa de software inicialmente, onde cada fase ou atividade do processo é repetida regularmente a medida que o sistema é retrabalhado, em resposta às solicitações de mudança (feedback). As atividades são executadas em paralelo e não uma seguida da outra. Ele intercala as atividades de especificação, desenvolvimento e validação em ciclos repetitivos, desenvolvendo rapidamente um sistema inicial que é refinado com as entradas do cliente.
• Prototipação: esse modelo consiste na criação de um protótipo de sistema que permite que os usuários experimentem o sistema e sugiram novas ideias, encontrando pontos forte e fracos. Essa prototipação também é chamada de