Prévia do material em texto
ENGENHARIA DE SOFTWARE MODELOS DE CICLO DE VIDA DE PROCESSOS Prof. Alysson Ramirez Manutenção Modelo em Cascata Modelo em Cascata Você acredita que um dos primeiros modelos de processo para o desenvolvimento de software, ainda seja amplamente utilizado pelas empresas? Por quê? Modelo em Cascata – Vantagens e Desvantagens Modelo em Cascata com Retroalimentação Modelo em Cascata com Retroalimentação Variante “cascata tradicional” que permite a realimentação Modelo que permite a revisão de fases anteriores e a superposição entre as fases. Correções que surgirem durante outras fases do processo. Porem o custo dessa revisão pode ser alto, dependendo da fase atual e do quanto se precisa retroceder. Modelo em Cascata com Retroalimentação Vantagens: Possibilita a correção de erros nas fase(s) anterior(es), durante o processo de desenvolvimento. Prevê manutenção. Desvantagem: Dependendo da quantidade de revisões e realimentações, o processo pode se tornar difícil de gerenciar. Modelo V Modelo V É um modelo conceitual de Engenharia de Software visto como melhoria ao problema de reatividade do modelo em cascata. Permite que, durante a integração de um sistema em seus diversos níveis, os testes sejam feitos contra os próprios requisitos do componente / interface que está sendo testado(a), em contraste com modelos anteriores onde o componente era testado contra a especificação do componente / interface. Notar a diferença entre requisito e especificação. Modelo V Características Os testes têm resultados de maior efetividade, uma vez que são testados contra requisitos e não contra especificações; Este modelo possibilita que se encontre erros durante os processos de se derivar especificações de requisitos; Ajuda a desenvolver novos requisitos; Melhora a qualidade do produto resultante, uma vez que valida o processo de engenharia de sistemas durante a integração do sistema. Modelo V Desvantagens Não considera o paralelismo que geralmente ocorre em projetos de maior complexidade; Não considera as diversas dimensões do projeto; Há ciclos de revisão em etapas tardias do processo, quando se encontra erros, sua correção é onerosa. Modelo de Desenvolvimento Evolucionário Desenvolvimento exploratório: O objetivo é trabalhar com clientes e evoluir o sistema final de um esboço de especificação inicial. Deve começar com os requisitos que estão bem entendidos. Preparação de protótipos descartáveis: Objetivo é entender os requisitos do sistema. Deve começar com requisitos pobremente entendidos. Modelo de Desenvolvimento Evolucionário Modelo de Desenvolvimento Evolucionário Problemas Falta de visibilidade do processo; Sistemas são, em geral, pobremente estruturados; Habilidades especiais (ex. em linguagens para rápida preparação de protótipos ) podem ser requeridas. Aplicabilidade Para sistemas interativos pequenos ou médios; Para partes de sistemas grandes (ex. a interface de usuário, um relatório simples, etc.); Para sistemas de curto-prazo. Desenvolvimento em Fases (Iterativo) Requisitos do sistema sempre evoluem (mudam) no decorrer de um projeto; A iteração do processo, onde estágios anteriores são retrabalhados, é sempre parte de um processo para sistemas maiores; Iteração pode ser aplicada para qualquer modelo de processo; Duas abordagens (relacionadas): Desenvolvimento incremental Desenvolvimento espiral Desenvolvimento Iterativo e Incremental Ao invés de entregar o sistema de uma única vez, o desenvolvimento e a entrega é dividida em incrementos com cada incremento entregando parte da funcionalidade requerida; Os requisitos dos usuários são priorizados e os requisitos de maior prioridade são incluídos em incrementos iniciais; Uma vez que o desenvolvimento de um incremento é iniciado, os requisitos são congelados, embora requisitos para incrementos posteriores possam continuar a evoluir. Desenvolvimento Iterativo e Incremental Desenvolvimento Iterativo e Incremental O valor agregado ao Cliente está na entrega em cada incremento de modo que a funcionalidade do sistema estará disponível mais cedo; Incrementos iniciais funcionam como protótipos para ajudar a evocar requisitos para incrementos posteriores; Menores riscos de falha no projeto em geral; Os serviços do sistema de alta prioridade tendem a receber a maioria dos testes. Vantagens Modelo Iterativo de Desenvolvimento em Espiral Processo é representado como uma espiral ao invés de uma seqüência de atividades com retorno; Cada volta na espiral representa uma fase (iteração) no processo; Não existe um número de fases fixas – as voltas na espiral são escolhidas de acordo com o que é requerido; Os riscos são explicitamente cotados e resolvidos durante todo o processo. Modelo Iterativo de Desenvolvimento em Espiral Na representação o desenvolvimento é dividido em quatro setores (SOMMERVILLE, 2011): Definição de objetivos: onde são definidos os objetivos para essa fase do projeto, identificando as restrições e preparando um plano de gerenciamento detalhado que inclui todos os possíveis riscos do projeto; Modelo Iterativo de Desenvolvimento em Espiral Na representação o desenvolvimento é dividido em quatro setores (SOMMERVILLE, 2011): Avaliação e redução de riscos: para cada risco identificado é feita uma “Análise de Risco” detalhada com o objetivo de identificar estratégias para reduzi-lo ou evitá-lo. Por exemplo, caso exista uma dificuldade em especificar claramente um requisito, isso significa que existe um “risco de requisitos inadequados” e para amenizá-lo será preciso desenvolver um protótipo para apresentar ao cliente a fim de colher sugestões para refinar os requisitos. Modelo Iterativo de Desenvolvimento em Espiral Na representação o desenvolvimento é dividido em quatro setores (SOMMERVILLE, 2011): Implementação e validação: com as estratégias definidas, é escolhido um modelo de desenvolvimento, como por exemplo, o “Modelo em Cascata”, “Modelo Incremental”, etc. Pode-se utilizar modelos diferentes em cada volta de implementação, conforme a necessidade; Planejamento e Especificação: o projeto todo é analisado para verificar o que foi realizado e planejar quais serão os próximos passos para iniciar novas voltas do espiral ou concluir o sistema. Modelo de Desenvolvimento em Espiral Modelo de Desenvolvimento em Espiral Modelo de Desenvolvimento em Espiral Vantagens Como o modelo exige a consideração dos riscos técnicos em todos os estágios de evolução, se for aplicado adequadamente, reduzirá os riscos antes que se tornem problemáticos; As estimativas se tornam mais realistas e o tempo de implementação é reduzido; Mais versátil para testar e lidar com mudanças; Não faz distinção entre desenvolvimento e manutenção. Modelo de Desenvolvimento em Espiral Desvantagens Segundo PRESSMAN (2006), pode ser difícil convencer os clientes que o processo de evolução é controlável, pois ele exige competência considerável na avaliação dos riscos e depende dessa competência para ser bem sucedido; Se um risco importante não for descoberto e gerenciado corretamente, fatalmente ocorrerão problemas; A avaliação dos riscos exige um analista com experiência; Aplica-se melhor a sistemas de grande porte; Erros na avaliação de riscos podem impactar o projeto. DÚVIDAS? Vamos ver um vídeo!