Escolhendo um Modelo de Ciclo de Vida Ciclos de Vida 1 Ciclo de Vida de um Produto Qualquer desenvolvimento de produto inicia com uma idéia e termina com o produto pretendido. O ciclo de vida de um produto é a definição dos passos que transformam aquela idéia no produto acabado. O modelo de ciclo de vida éocentrodo processo de gerenciamento do produto. Ciclos de Vida 2
Componentes do Desenvolvimento Fases: passos que indicam o progresso do projeto. Atividades: ações requeridas para criar e entregar o projeto. Subprodutos: produtos tangíveis criados durante o projeto. Milestones (marcos): eventos importantes no projeto (momentos de decisão). Ciclos de Vida 3 Diferentes Modelos Diferentes modelos tem diferentes componentes e não existe um modelo correto. É responsabilidade do gerente de projeto, verificar quais modelos são mais indicados para o projeto. Ao final, o gerente deve combinar estes modelos, criando um modelo que seja adequado às necessidades do projeto. Ciclos de Vida 4
A Escolha do Modelo A escolha de um modelo adequado é crítica. O modelo escolhido será a ferramenta de gerência (visão comum de como o trabalho será feito). Ciclos de Vida 5 Expectativas O ciclo de vida deve viabilizar: a definição de pontos de controle o planejamento e acompanhamento do progresso o planejamento e acompanhamento do orçamento estimativas a gerência de risco Ciclos de Vida 6
Pensando na Equipe de Desenvolvimento A equipe deve conhecer e entender o modelo a ser adotado. DICA: entender como as equipes de desenvolvimento de software realmente trabalham. Ciclos de Vida 7 Considerações A escolha é direcionada pelas características econômicas da situação. Objetivo fundamental de qualquer gerente de projeto: entregar o projeto da forma mais econômica possível, minimizando tempo e esforço. Primeiras técnicas: anos 70 quais eram as prioridades? tamanho do código e tempos de compilação. Ciclos de Vida 8
Habilidades de um Projetista Responder a mudanças nos requisitos Validar continuamente o produto. Gerenciar o conteúdo através do ciclo de desenvolvimento. Ser flexível para resolver problemas com dependências pendentes. Promover soluções através da colaboração do grupo. Estabelecer e assegurar milestones (o grupo deve participar e estar informado). Ciclos de Vida 9 Trabalho em Grupo Ênfase a qualidade no projeto e não através de testes. Projeto mais iterativo. Prevenção mais do que correção. Concorrência de projeto. Ênfase em processos e métricas. Estabelecer a funcionalidade da equipe e os inter-relacionamentos *. Delegar responsabilidades. * Cross-functional design: freqüentemente inclui a participação de clientes e/ou usuários. Ciclos de Vida 10
Modelos de Ciclo de Vida Vários modelos: em cascata em espiral desenvolvimento rápido de aplicações iterativo incremental Conceitos: Release: versão completa do produto Build: versão que atende predeterminados requisitos Fase: os componentes do ciclo de desenvolvimento Integração: versão parcialmente funcional do sistema total que é compilado e linkado como parte do processo de desenvolvimento Ciclos de Vida 11 Modelo em Cascata Ciclos de Vida 12
Modelo em Espiral (Boehm) Iterações através de quatro fases de alto nível: determinação de objetivos: definição do produto, determinação de objetos de negócio, restrições avaliação de alternativas: análise de risco, prototipação desenvolvimento do produto: projeto detalhado, codificação, testes das unidades, integração planejamento da próxima iteração: avaliação do cliente, planejamento do projeto, entrega ao cliente Premissa: 2oumaisbuilds Raio (distância a partir do centro) = esforço gasto Ciclos de Vida 13 Fases e Atividades do Modelo Espiral Revisão Planejamento (Determinação dos objetivos, alternativas e restrições) Avaliação do Cliente e Plano da próxima fase Requisitosiniciaise planejamento do projeto Planoderequisitos plano de ciclo de vida Plano de Desenvolvimento Plano de teste e integração Custos Análise de Risco 2 Análise Protótipo de 1 Risco 1 Conceito de operação Validação dos requisitos Validação e verificação do projeto Implementação Avaliação das alternativas e identificação/resolução e Análise dos riscos Análise de Risco 4 Análise de Risco 3 Protótipo 2 Protótipo 3 Requisitos de Software Projeto do produto de software Teste de Sistema Teste de Integração Protótipo operacional Simulações, modelos, benchmarks Teste de unidade Projeto detalhado Código Engenharia Desenvolvimento e verificação do próximo nível do produto Ciclos de Vida 14
Aspectos de Gerência do Modelo Espiral Melhorias do modelo em cascata. Oferece a oportunidade para o usuário/cliente se envolver. Iterativo. Difícil e alto custo para adoção (muitos estágios intermediários: problemas com documentação e treinamento). Custo/benefício duvidoso: muito tempo gasto nas fases 1, 2 e 4. Pode não convergir para uma solução. Ciclos de Vida 15 Desenvolvimento Rápido de Aplicações (RAD) Não é exatamente um modelo e se baseia em: que um modelo de ciclo de vida formal é ineficiente e muitas revisões e documentações geradas pelos modelos em cascata e em espiral são perda de tempo a formalidade dificulta a comunicação com o cliente não há um modelo de ciclo de vida bem definido: há uma seqüência de integrações evolucionárias ou protótipos que são revisados com o cliente (os requisitos são levantados a partir destas iterações) cada integração está associada a um determinado período de tempo, conhecido como Time Box Ciclos de Vida 16
Passos do RAD 1. Analisar requisitos; 2. Desenvolver projeto inicial; 3. Faça até estar pronto { Desenvolver a versão dentro do tempo; Entregar release para o cliente; Receber o feedback; Planejar versão para responder ao feedback; }; Ciclos de Vida 17 Características do RAD Separação entre fases e atividades: cada time box inclui análise, projeto e implementação. Integrações constantes. Ênfase na codificação e não na especificação. Enfoque na reutilização. Envolvimento contínuo do cliente. Ciclos de Vida 18
Atividades para Resolver um Problema Definição do escopo: entender o problema. Projeto: desenvolver uma abordagem para resolver o problema (usualmente usando algum tipo de diagrama). Implementação: executar o projeto. Verificação: confirmar se a solução resolve o problema original. Ciclos de Vida 19 Aspectos Gerenciais do RAD Para o modelo RAD poder ser aplicado com sucesso, devem ser considerados duas premissas: Há um processo eficiente de desenvolvimento acelerado para responder ao feedback Você e o cliente concordarão que o projeto está feito Problemas com riscos, prazos e custos. Ciclos de Vida 20
Modelo Iterativo Controlado Modelo emergente. Procura usar a flexibilidade e modularidade da orientação a objetos. Preocupação com como o pessoal trabalha, mas permitindo o controle da gerência. Divisão em fases e atividades. Ciclos de Vida 21 Características do Iterativo Controlado Processo de gerência disciplinado: as fases são planejadas, orçamentadas, e acompanhadas. os critérios de saída são bem definidos (milestones). controle de custo e riscos. Define 4 fases: Inception (concepção) Elaboração Construção Transição Ciclos de Vida 22
Fases do Iterativo Controlado Inception (concepção): entendimento inicial e concordância da definição do produto (o que será entregue). Elaboração: entendimento inicial e concordância do projeto detalhado (como será feito). Construção: criação do primeiro build totalmente funcional. Transição: entrega do produto de acordo com os requisitos iniciais. Ciclos de Vida 23 Distribuição das Atividades para Cada Fase Inception Elaboração Construção Transição Escopo Escopo Escopo Projeto Escopo Projeto Implem. Projeto Implem. Projeto Verifica. Implem. Implem. Verifica. Verifica Verifica Ciclos de Vida 24
Considerações sobre o Modelo Iterativo Os objetivos não estão amarrados a finalização das atividades A proposta é identificar o momento de entendimento necessário para avançar no projeto (regra 80-20) Os objetivos utilizam a palavra inicial Modificações durante o projeto Como definir os critérios de saída O modelo reflete como as equipes trabalham Flexibilização das mudanças Comunicação Ciclos de Vida 25 Distribuição das Técnicas no Modelo Iterativo Inception Elaboração Construção Transição Use-cases (usuário) DiagramasdePacote(altonível) Use-cases (desenv) Diag. Seqüência Diagramas de classe Implement. das classes Entrega e teste Ciclos de Vida 26
Builds Incrementais Desenvolvimento do ciclo de vida: seqüência de builds (versões funcionais) Pontos a considerar: Satisfação do cliente Planejamento Variação incremental do modelo iterativo Ciclos de Vida 27 Vantagens da Proposta Incremental Problemas complexos não são resolvidos de uma única vez. Maior controle sobre custos e riscos. Facilita a gerência de instabilidade da equipe. Ciclos de Vida 28
Modelo Iterativo Incremental I E C T 1 I E C T 2 I E C T 3 Ciclos de Vida 29