Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Processos de Desenvolvimento de Software • Modelos de Processo de Desenvolvimento • Modelo Cascata • Prototipação • Espiral • Iterativo e Incremental • Baseado em Componentes Sumário 3 • Nas últimas aulas, estudamos as principais atividades necessárias na construção de um software... Modelos de Desenvolvimento Levantamento de Requisitos Análise Projeto Implementação Testes Manutenção • Processo de Desenvolvimento de Software – As atividades podem ser organizadas seguindo distintos modelos de desenvolvimento ou paradigmas de desenvolvimento; “Diferentes tipos de sistemas necessitam de diferentes processos de desenvolvimento” (Ian Sommerville) Modelos de Desenvolvimento • Modelo de Desenvolvimento – É uma representação abstrata das atividades de um processo de software e suas interdependências; – É uma representação simplificada de um processo de software; – Modelos de desenvolvimento são divididos em fases ou etapas; – Fase: • Unidade de decomposição de um processo. Modelos de Desenvolvimento • Modelo de Desenvolvimento – Modelo Cascata ou Ciclo de Vida Clássico; – Prototipação; – Espiral; – Iterativo e Incremental; – Engenharia de software baseada em componentes. Modelos de Desenvolvimento • Modelo Cascata Levantamento de Requisitos Análise Projeto Implementação Testes Manutenção Modelos de Desenvolvimento • Modelo Cascata – Também chamado de Ciclo de Vida Clássico; – Abordagem sistemática e seqüencial; – O resultado de uma fase compõe a entrada da próxima fase; – Foi modelado de acordo com o ciclo da engenharia convencional/tradicional; – Requer uma especificação completa e bem entendida; Modelos de Desenvolvimento • Modelo Cascata – Desvantagens: • Projetos reais raramente seguem o fluxo seqüencial que o modelo propõe; • Em geral, o cliente não sabe tudo o que quer no início do projeto; • Uma versão funcional para o cliente só estará disponível num ponto tardio do cronograma; • Erros graves poderão ser detectados no final do projeto. • Dificuldade em acomodar mudanças. Modelos de Desenvolvimento • Prototipação Coleta e refinamento de requisitos Projeto rápido Construção do Protótipo Avaliação do protótipo pelo cliente Refinamento do protótipo Engenharia do produto Início Fim Modelos de Desenvolvimento • Prototipação – Desenvolvimento de um modelo vivo do sistema, no qual enfatiza-se a interface com o usuário; – Um protótipo é construído para experimentação, para se obter requisitos dos usuários e para se obter uma confirmação sobre os mesmos; Modelos de Desenvolvimento • Prototipação – 02 tipos: • Prototipação Transitória – Utilizada como uma maneia de se obter informações e apresentar tais informações aos usuários/clientes; – Após a aceitação do sistema, o protótipo é deixado de lado. • Prototipação Evolutiva – Utilizada como uma maneia de se obter informações e apresentar tais informações aos usuários/clientes; – O protótipo é melhorado até atingir o objetivo final. Modelos de Desenvolvimento • Prototipação – Desvantagens • Pode encorajar a análise superficial; • O usuário vê aquilo que pensa ser o software, mas não é; • O desenvolvedor pode fazer concessões de implementação a fim de colocar um protótipo em funcionamento rapidamente. Modelos de Desenvolvimento • Espiral Análise dos Riscos Planejamento Avaliação do cliente Engenharia Coleta inicial dos requisitos e planejamento do projeto Planejamento baseado nos comentários do cliente Análise dos riscos baseada nos requisitos iniciais Análise dos riscos baseada na reação do cliente Protótipo inicial Protótipo no nível seguinte Sistema construído pela engenharia Avaliação do cliente Modelos de Desenvolvimento • Espiral – As atividades são organizadas como uma espiral que tem vários ciclos; – Cada ciclo representa uma fase; – Foi desenvolvido para incorporar as melhores características do modelo clássico e do modelo de prototipação; – Acrescenta um novo elemento, a análise de riscos; Modelos de Desenvolvimento • Espiral – Vantagens: • Riscos são resolvidos ao longo do processo; • Eliminação precoce de erros; • Foco em reuso; • Qualidade desde o início do projeto; • Integra desenvolvimento e manutenção. Modelos de Desenvolvimento • Iterativo e Incremental Descrição inicial Validação Desenvolvimento Especificação Atividades Iterativas Versão inicial Versão final Versões intermediárias Incrementos Modelos de Desenvolvimento • Iterativo e Incremental – Adaptação do modelo espiral; – O desenvolvimento e a entrega são divididos em pequenos pedaços (incrementos); – Cada incremento corresponde a parte da funcionalidade requisitada pelo cliente; – A especificação evolui junto com o desenvolvimento do sistema; – Dá suporte a requisitos parcialmente definidos; Modelos de Desenvolvimento • Iterativo e Incremental Modelos de Desenvolvimento • Iterativo e Incremental – Vantagens: • O sistema é posto em funcionamento mais rapidamente. Sempre tem algo para entregar para o cliente (a última iteração); • Diminui o risco de falha do projeto como um todo; • Como os requisitos mudam, um processo iterativo mantém freqüentes contatos com o cliente o que ajuda a manter os requisitos sincronizados; • Motivador para a equipe de desenvolvimento e para o cliente ver o software funcionando cedo; Modelos de Desenvolvimento • Cascata X Iterativo Análise Implementação + Testes Projeto Transição Modelo Cascata Modelo Iterativo Modelos de Desenvolvimento • Desenvolvimento baseado em Componentes – CBSE (Component-Based Software Engineering); – O sistema é montado a partir de componentes existentes; – Baseado em reuso sistemático onde sistemas são integrados a partir de componentes existentes; – Esta abordagem está se tornando cada vez mais usada à medida que padrões de componentes têm surgido. Modelos de Desenvolvimento • Desenvolvimento baseado em Componentes – Estágios do processo: • Análise de componentes; • Modificação de requisitos; • Projeto de sistema com reuso; • Desenvolvimento e integração. Modelos de Desenvolvimento • Desenvolvimento baseado em Componentes Modelos de Desenvolvimento • Como os custos são divididos? – Não existe uma resposta única. – Em geral: • 60% para desenvolvimento; • 40% para testes. – Para software produzido sob encomenda: • Os custos de evolução/manutenção serão bem maiores do que os custos de desenvolvimento. Modelos de Desenvolvimento Especificação Modelo Cascata Especificação Desenvolvimento Integração e Teste Projeto Especificação Desenvolvimento Iterativo Teste de Sistema Desenvolvimento Iterativo Engenharia de Software Baseada em Componentes Especificação Desenvolvimento Integração e Teste Modelos de Desenvolvimento Dúvidas ? 44 • SOMMERVILLE, I. Engenharia de Software. 8ª Edição. Editora Pearson, 2007. • PRESSMAN, R. S. Engenharia de Software. 6ª Edição. Editora McGraw Hill, 2006. Referências 45
Compartilhar