quinta-feira, 6 de dezembro de 2012

Modelos de Processos de Software

  Modelo cascata ou clássico

O modelo cascata foi projetado para aplicação em desenvolvimento de software. As etapas do modelo cascata seguem uma sequencia, onde uma etapa só começa quando a outra termina. Das fases do processo em cascata temos: Análise e definição dos requisitos, projeto do sistema, implementação, teste do sistema e manutenção.
A análise e definição dos requisitos consiste na definição dos serviços que devem ser fornecidos, limitações e objetivos de forma que esses requisitos sejam úteis nas próximas fases. Logo após temos projeto de sistema, que por sua vez se subdivide em: estrutura de dados, arquitetura de software, detalhes procedais e caracterização das interfaces. A fase de implementação é onde ocorro a criação dos programas, e estes serão testados individualmente para depois passar pelo teste global. Terminada a codificação dá-se inicio a fase de testes onde é observado se todos os erros foram solucionados e se os resultados obtidos  são satisfatórios, e finalmente chega-se a fase de manutenção que consiste na correção de erros que não foram previamente detectados. Todas as fases ao serem concluídas são documentadas, como se pode observar no esquema abaixo:


Vantagens:
·         Torna o processo de desenvolvimento estruturado. 
·         Tem uma ordem sequencial de fases;
·         Todas as atividades identificadas nas fases  do modelo são fundamentais e estão na ordem certa.

Desvantagens:
·         Não fornece feedback entre as fases e não permite a atualização ou redefinição das fases anteriores;
·         Não suporta modificações nos requisitos;
·         Não prevê a manutenção;
·         Não permite a reutilização;
·         É excessivamente sincronizado;
·         Se ocorrer um atraso todo o processo é afetado;
·         Atraso na entrega do software.



  Modelo de Prototipação 

O processo de desenvolvimento prototipado procura entender e organizar as limitações do Modelo de Cascata, para melhor definição dos requisitos do sistema tendo como ideia eliminar a política de “congelamento” de requisitos antes do projeto do sistema, com base no conhecimento dos requisitos do sistema, através de um protótipo.

O desenvolvimento desse protótipo é compreendido em analise de requisitos, projeto, codificação e testes.


Vantagens:
Conhecimento prévio do sistema;
Possibilidade de correção mais cedo;
Rápida entrega do sistema;
Especificação, desempenho e implementação integrada.

Desvantagens:
Alguns de seus requisitos não aparecem na espeficicação;
Requisitos onde não ser testados de forma adequada.

  Modelo Espiral

Baseado em 1988, um modelo formado por ciclos, uma organização de atividades em espiral. Sua dimensão vertical representa o custo acumulado na realização das etapas e a dimensão angular representa o avanço do desenvolvimento ao longo das etapas.
A cada ciclo inicia com a identificação dos objetivos e as diferentes alternativas para atingir seus objetivos, assim como as restrições impostas. O próximo passo no ciclo é a avaliação das diferentes alternativas com base nos objetivos fixados, definindo também incertezas e riscos. A seguir o desenvolvimento de estratégias permite resolver ou eliminar incertezas levantadas anteriormente (podendo envolver atividades de prototipação, simulação, avaliação de desempenho entre outros). Por fim, o software é desenvolvido e o começa o planejamento dos próximos passos e assim resolvidos.
Uma das principais características deste modelo é que cada ciclo é encerrado por uma atividade de revisão, onde tos os produtos do ciclo são avaliados ,incluindo o plano para o próximo ciclo.

  Modelo Incremental

O Modelo Incremental é uma estratégia de planejamento em que várias partes do sistema são desenvolvidas em paralelo e integradas quando completas. Não implica, requer ou pressupõe desenvolvimento iterativo ou em cascata. A alternativa ao desenvolvimento incremental é desenvolver todo o sistema com uma integração única.
Vantagens:
·            As versões são fornecidas após cada iteração do modelo incremental;
·            O Modelo Incremental inclui o uso do software pelo usuário para que as mudanças sejam feitas de acordo com o mesmo;
·            É flexível e fácil de gerenciar processos mais administráveis e fazer um software melhor com uma melhor estrutura;
·            Os testes são simples, entre outros.

Desvantagens:
·            Cada fase de uma iteração é rígida e não se sobrepõem uns aos outros;
·            Podem surgir problemas relativos à arquitetura do sistema, porque nem todos os requisitos estão reunidos na frente de todo o ciclo de vida do software;
·            O modelo Incremental precisa ser relativamente pequeno.


  Modelo iterativo

Uma iteração representa um ciclo completo de desenvolvimento, em cada fase podem ocorrer várias iterações. Cada fase e iteração objetiva redução de riscos e funcionam como um marco do progresso. Esse marco define um ponto para avaliar o alcance das metas e se o projeto deve ser reestruturado por algum motivo para o prosseguimento.
Vantagens:
·            Baseia-se fortemente na participação e uma boa comunicação entre desenvolvedores e usuários.
·            Há um grande envolvimento do utilizador e do cliente.
·            Os resultados mostrados permitirá que os usuários tenham confiança em um bom resultado;
·            Os riscos podem ser melhor administrados por pequenos pedaços do sistema a serem desenvolvidos em pequenos espaços de tempo;
·            Alterações nos requisitos podem ser rapidamente incorporadas no processo de desenvolvimento, entre outros.
Desvantagens:
·            Durante o processo de desenvolvimento necessita-se adaptar e refinar o sistema, com isso pode ser que no final saia totalmente diferente da ideia original;
Pode acontecer a continuação do sistema e aparição de muitos requisitos novos, dessa forma o sistema nunca irá terminar. Isso é chamado de aumento de escopo, entre outras.



  Modelo Formal

O modelo formal requer Clientes tecnicamente bem preparados, engenheiros de software com conhecimento profundo do negócio em questão. E as especificações devem ser bem consistentes, claras sem qualquer ambigüidade. Utiliza fortemente os modelos matemáticos nas especificações. Portanto recomendado para aplicação extremamente crítica. Os métodos formais têm um potencial tremendo para melhorar a clareza e a precisão da especificação dos requisitos e de encontrar erros importantes e sutis. O método formal tem uma sólida base matemática, dada tipicamente por uma linguagem formal de especificação. Essa base fornece um meio para definir precisamente noções como consistência e completeza, e mais relevantemente, especificação, implementação e correção.

  Modelo de Desenvolvimento Orientado a Reuso

A reutilização sempre foi utilizada por outras engenharias. Apenas nos últimos anos é que a engenharia de software começou adotar o reuso como uma abordagem prática no desenvolvimento de software.  A reutilização é o processo de incorporar em um novo produto: Código, Plano de Teste, Conhecimento Geral e Especificações de requisitos e projetos.

Nenhum comentário:

Postar um comentário