Modelos de Processo de Softwares - EDU0007/engenharia_software GitHub Wiki
Cada modelo representa cada abordagem usada para a criação do software. Os modelos de processo são: modelo em cascata; desenvolvimento evolucionário, espiral, incremental, RAD, desenvolvimento formal de sistemas; desenvolvimento orientado a reuso; modelo em v, modelo do processo unificado, modelo Praxis.
Modelo em Cascata
O modelo em cascata foi o primeiro modelo publicado para o processo de desenvolvimento de software. O modelo em cascata representa o desenvolvimento gradual com uma sequência ordenada de passos que devem ser seguidos rigorosamente.
As fases do modelo em cascata são executadas em sequência, ou seja, uma fase só executada quando a anterior termina sua execução. Nesse modelo os resultados não podem ser alterados após a fase terminar sua execução. Essa característica faz com que esse modelo não seja muito utilizado pela falta de flexibilidade.
O modelo em cascata possui três problemas que devem levados em consideração e que são mostrados abaixo de acordo com Oliveira (2013):
• Projetos reais raramente seguem a estrutura de fluxos em sequência ordenados como no modelo em cascata. E por não possuir muita flexibilidade as modificações podem causar confusão à medida que a equipe do projeto prossegue;
• O cliente sente um pouco de dificuldade de estabelecer todos os requisitos no início do projeto como o modelo em casca exige;
• O cliente precisa ter paciência, pois uma versão executável fica disponível quase no final do desenvolvimento do projeto. Os erros podem ser desastrosos se não forem detectados até a entrega desse executável.
Modelo de Desenvolvimento Evolucionário
O modelo de desenvolvimento evolucionário representa o desenvolvimento do software desde o protótipo inicial. Neste modelo o cliente participa de todas as fases do desenvolvimento do software.
Esse modelo possui algumas vantagens de acordo com Oliveira (2013):
• O executável final pode ser mostrado antes do término do projeto para o cliente;
• Neste modelo há uma melhor comunicação entre os desenvolvedores e usuários para melhor tratamento de erros;
Modelo Espiral
O modelo em espiral é um modelo que trabalha o tempo todo com riscos e dividi o projeto em outros menores. O movimento em espiral possui uma estrutura que dá base para se tentar chegar ao fim do projeto com todos, ou quase todos, os riscos eliminados.
O modelo em espiral procura sempre dar as bases para que todos os requisitos do projeto estejam bem definidos e entendidos por todos da equipe inclusive pelo cliente. Com essa estrutura o produto vai sendo desenvolvido e com o tempo surgem versões do software para averiguação e reconhecimento de problemas.
De acordo com Oliveira (2013), o modelo em espiral foi desenvolvido para resolver os seguintes problemas:
• Atender a realidade dos projetos. Atender uma sequência mais real que o projeto segue, pois nem todo projeto segue o fluxo sequencial que o modelo em cascata propõe;
• Atender à necessidade que o cliente não tem noção no início do projeto de todos os requisitos para o desenvolvimento do mesmo. Esse modelo em espiral atende a flexibilidade de receber novos requisitos do cliente com o passar do tempo;
• Atender à necessidade do cliente de ver um protótipo de uma versão executável do software, mesmo que essa não esteja funcionando completamente.
Modelo Incremental
O modelo incremental possui uma estrutura que permite que os documentos de uma fase possam ser mexidos para melhorias, mesmo se esses documentos estiverem em uma fase que foi completada, o que não acontece no modelo em cascata. No modelo incremental, diferentemente do modelo em cascata, a mudança de fase pode ocorrer mesmo se a anterior não tenha sido completada.
O modelo incremental é formado por ciclos que por sua vez são formados por fases de análise, projeto, implementação e teste. Nesse modelo os requisitos são divididos em grupos e esses são usados em cada clico. Nesse modelo pode notar que o objetivo é minimizar os riscos do projeto e maximizar a importância nos requisitos.
Modelo RAD
RAD (Rapid Application Development) representa modelo de desenvolvimento rápido. O modelo de desenvolvimento rápido é usado em projetos que necessita de uma velocidade maior de desenvolvimento que o normal. Esse modelo é usado em projeto com prazos muito curtos para entrega.
Modelo Desenvolvimento Formal de Sistemas
O modelo de desenvolvimento formal de sistemas necessita que os clientes estejam mais preparados e que saibam quais os requisitos que desejam no projeto. Nesse modelo os engenheiros de software devem possuir pleno conhecimento dos requisitos de negócio para não errar nas etapas de desenvolvimento.
Pelo fato de tanto os clientes quanto os engenheiros terem um bom conhecimento do projeto esse modelo é muito usado por ter clareza e precisão de especificação dos requisitos.
Modelo de Desenvolvimento Orientado a Reuso
O modelo de desenvolvimento orientado a reuso é usado no desenvolvimento de projeto para incorporar elementos novos no produto. Tais elementos podem ser citados abaixo de acordo com Oliveira (2013):
• Código;
• Plano de teste;
• Conhecimento geral;
• Especificações de requisitos e projetos.
Modelo em V
O modelo em v é comparado com o modelo em cascata, mas os testes desses modelos são diferentes. É durante a fase de análise, no modelo em V, que os testes são planejados e durante a execução da fase de implementação que esses teste são preparados, para que na fase de teste sejam executados.
Modelo do Processo Unificado
No modelo do processo unificado o software é desenvolvido de forma iterativa e utiliza em sua estrutura de desenvolvimento casos de uso. Os casos de uso servem para a aquisição dos requisitos que o usuário necessita para utilizar no software. Esse modelo é formado por cinco elementos principais: papéis, atividades, artefatos, fluxos de trabalho e disciplinas.
Modelo Praxis
No modelo praxis o desenvolvimento do software é feito por forma orientada a objetos com processos unificados e fases formadas por iterações. Os fluxos são divididos nessas interações e de acordo com Oliveira (2013) as fases desse modelo são:
• Concepção; • Elaboração; • Construção; • Transição.
De acordo com Oliveira (2013) os fluxos técnicos desse modelo são:
• Requisitos; • Análise; • Desenho; • Implementação; • Testes; • Engenharia de sistemas.
De acordo com Oliveira (2013) os fluxos gerenciais desse modelo são:
• Gestão de projetos; • Gestão de qualidade; • Engenharia de processos.