Baixe o app para aproveitar ainda mais
Prévia do material em texto
Engenharia de Software Processos de Software Engenharia de Software Engenharia de Software: Processo e Produto “Não se pode deduzir ou entender toda a ferramenta, seu contexto, uso, significado e valor se a virmos somente como um processo ou somente como um produto...” “Não se pode deduzir ou entender toda a ferramenta, seu contexto, uso, significado e valor se a virmos somente como um processo ou somente como um produto...” (PRESSMAN, 2006) Engenharia de Software Modelos Genéricos � Cascata � Incremental � Evolucionário Engenharia de Software Modelo em Cascata (PRESSMAN, 2006) COMUNICAÇÂO PLANEJAMENTO MODELAGEM CONSTRUÇÃO IMPLANTAÇÃO Iniciação do projeto Levantamento de requisitos Estimativas Cronogramas Monitoração Codificação Testes Entrega Manutenção Análise Projeto Engenharia de Software Modelos em Cascata � Ciclo de vida clássico � Uma fase só começa quando termina a outra � Fluxo seqüencial (modelo linear) é o mais adequado? � Etapas se sobrepõem e trocam informações � Documentos são gerados em cada etapa � Requisitos podem ser definidos explicitamente? � “Retrabalho” � Quanto tempo é necessário até a primeira versão? � ... E a dependência entre as atividades? � ... Projetos podem ser mal-estruturados(PRESSMAN, 2006)(SOMMERVILLE, 2007) Engenharia de Software Modelos em Cascata � Inflexibilidade na divisão do projeto em seus estágios � Difícil adaptação a mudanças de requisitos � Apropriado, somente, quando todos os requisitos estão bem definidos Engenharia de Software Modelo Incremental (PRESSMAN, 2006) COMUNICAÇÂO PLANEJAMENTO MODELAGEM CONSTRUÇÃO IMPLANTAÇÃO COMUNICAÇÂO PLANEJAMENTO MODELAGEM CONSTRUÇÃO IMPLANTAÇÃO COMUNICAÇÂO PLANEJAMENTO MODELAGEM CONSTRUÇÃO IMPLANTAÇÃO Tempo F u n c i o n a l i d a d e e C a r a c t e r í s t i c a s d o S o f t w a r e Incremento 1 Incremento 2 Incremento n Engenharia de Software Modelo Incremental � O desenvolvimento é dividido em incrementos � Cada incremento corresponde a um conjunto de funcionalidades requeridas. � Requisitos são priorizados e, antecipando os de maior prioridade. � Uma vez iniciado o desenvolvimento de um incremento, seus requisitos não devem sofrer mudanças, ficando para uma nova versão Engenharia de Software Modelo Incremental Engenharia de Software Modelo Incremental � Clientes podem usufruir do sistema sem esperar que esteja totalmente desenvolvido. � Incrementos iniciais servem de protótipo e ajudam a definir novos requisitos. � Menor risco de insucesso global. � Funções prioritárias são entregues primeiro, passando por mais testes Incrementos devem ser pequenos e devem produzir alguma funcionalidade� maior necessidade de controle – mapeamento e rastreabilidade. Engenharia de Software Modelo Evolucionário � Desenvolvimento de uma versão inicial � Expor resultados ao usuário � Refinar por meio de várias versões � Sistema Final Engenharia de Software Modelo Evolucionário Validation Final version Development Intermediate versions Specification Initial version Outline description Concurrent activities Engenharia de Software Modelo Evolucionário � Desenvolvimento Exploratório � Trabalhar com o cliente, explorando os requisitos e entregar o sistema final. � Sistema evolui com o acréscimo de novas características, à medida em que são propostas pelo cliente. � Protótipos Descartáveis � Compreender os requisitos do cliente e, então, desenvolver uma melhor definição de requisitos � Realizar experimentos com partes dos requisitos que estejam mal compreendidas. Engenharia de Software Modelo Evolucionário � Prototipagem � Cliente define os objetivos gerais, mas não identifica detalhadamente requisitos de entrada, processamento e saída � Desenvolvedor pode estar inseguro da eficiência do algoritmo, da adaptabilidade e da interação. � Pode ser implementada dentro de outros processos � Protótipo identifica requisitos � Dois tipos de desenvolvimento evolucionário: desenvolvimento exploratório e protótipos descartáveis. (PRESSMAN, 2006)(SOMMERVILLE, 2007) Engenharia de Software Modelo Evolucionário � Desenvolvimento exploratório � Cliente participa definindo os requisitos. Sistema evolui à medida que novas funcionalidades são acrescentadas. � Protótipos descartáveis � Protótipos são utilizados para experimentos com o intuito de revelar os requisitos � Produtos são construídos gradativamente (mão-de-obra especializada?) � Problemas: � Visibilidade do processo (medidas?) � Modificações freqüentes podem gerar sistemas mal-estruturados Recomendado para sistemas de pequeno ou médio porte ou para partes de sistemas de maior porte. (SOMMERVILLE, 2007) Engenharia de Software Modelo Evolucionário � O Modelo Espiral � Combina prototipagem (iteração) com o modelo em cascata (controle e sistematização) � Software é desenvolvido através de uma série de versões evolucionárias � Desenvolvedor e cliente entendem melhor e reagem aos riscos de cada nível evolucionário � Prototipagem como um mecanismo de redução de risco � Exige a consideração dos riscos em todos os estágios do projeto � Problemas: (i) abordagem é controlável?; (ii) controle de riscos é fundamental. (PRESSMAN, 2006) Engenharia de Software Modelo Evolucionário � O Modelo Espiral Determinar objetivos, alternativas e restrições Avaliar alternativas, identificar, resolver riscos Desenvolver, verificar produto Planejar a próxima fase
Compartilhar