RUP - Cap. 5 – Processo Iterativo e Incremental Disciplina: ESOF2 Prof. Adriana M. Martins RUP – Cap. 5 – Processo Iterativo e Incremental Visão Geral Aula 05 2 RUP – Cap. 5 – Processo Iterativo e Incremental Introdução Para ser efetivo, um processo precisa definir claramente metas que possibilitem identificar o momento no qual pode-se iniciar uma nova fase. O UP define 4 fases principais: concepção, elaboração, construção e transição. Cada uma destas fases tem propósito e metas bem definidas. Aula 05 3 RUP – Cap. 5 – Processo Iterativo e Incremental Fases e Propósitos Fase de Concepção: Identificar e amenizar riscos críticos em relação à viabilidade do projeto; Evoluir dos requisitos à uma arquitetura candidata, passando pela definição de casos de uso; Estimar custo, esforço, cronograma inicial e qualidade dentro de limites razoáveis; Iniciar um caso de negócio, avaliando a viabilidade econômica do projeto. Aula 05 4 RUP – Cap. 5 – Processo Iterativo e Incremental Fases e Propósitos Fase de Elaboração: Identificar e amenizar riscos críticos em relação à construção do sistema; Especificar a maior parte dos casos de uso que descrevem as funcionalidades que devem ser desenvolvidas; Estender e validar a arquitetura candidata à base arquitetural; Preparar o plano de projeto em detalhes suficientes para guiar a fase de construção; Finalizar o caso de negócio, provando a viabilidade econômica. Aula 05 5 RUP – Cap. 5 – Processo Iterativo e Incremental Fases e Propósitos Fase de Construção: Construir o sistema de forma gradual, entregando versões executáveis até a conclusão do desenvolvimento. O sistema deverá ser capaz de operar no ambiente do usuário. Fase de Transição: Verificar o alcance final da capacidade de operação do sistema (objetivos propostos); Corrigir falhas não diagnosticada nas fases anteriores. Garantir que o produto estará pronto para ser entregue ao usuário. Aula 05 6 RUP – Cap. 5 – Processo Iterativo e Incremental Um Processo Iterativo e Incremental Um ciclo iterativo apresenta resultados tangíveis que provam a redução de riscos e permitem avaliação dos envolvidos. Iterações ajudam no planejamento, organização, monitoramento e controle do projeto. Construção incremental durante o processo. Resulta numa versão do sistema, que poderá ser validada pelo usuário. Fase Iteração || Iteração Fase Aula 05 7 RUP – Cap. 5 – Processo Iterativo e Incremental Um Processo Iterativo e Incremental Cada passo no seu tempo: ENQUANTO (projeto não acaba) { Planeje um pouco; Especifique, projete e implemente um pouco; Integre, teste e execute um pouco; } O projeto é dividido em mini-projetos completos, com planejamento, etapas, metas e produto executável. Aula 05 8 RUP – Cap. 5 – Processo Iterativo e Incremental Um Processo Iterativo e Incremental Ser ITERATIVO NÃO é: Dividir aleatoriamente; Aprendizado para desenvolvedores; Algo que afete apenas desenvolvedores; Trabalhar várias vezes a mesma coisa até que se tenha algo que agrade; Imprevisível; Desculpa para falhas de planejamento e gerência. Aula 05 9 RUP – Cap. 5 – Processo Iterativo e Incremental Iterações e Incrementos - Benefícios: Antecipar riscos significativos (bem no início do projeto); Prever a criação de uma arquitetura robusta para guiar o desenvolvimento: Propor uma arquitetura que satisfaça os requisitos (concepção); Estabelece-se a linha-base da arquitetura que guia o desenvolvimento (elaboração); Pequeno investimento inicial; Validação da arquitetura. Aula 05 10 RUP – Cap. 5 – Processo Iterativo e Incremental Iterações e Incrementos – Benefícios: Permitir mudanças de requisitos (mudanças táticas); Melhor entendimento do fluxo, com diminuição de riscos graves; Dividir o trabalho em esforços mais baratos que o acumulado no processo em Cascata; Prover um processo que facilite o trabalho da equipe. Aula 05 11 RUP – Cap. 5 – Processo Iterativo e Incremental Foco nos Riscos Risco: “Qualquer variável que possa comprometer parcial ou definitivamente o sucesso de um projeto.” A identificação, priorização e execução das iterações são feitas com base em riscos e ordem de importância. Riscos Técnicos: performance, confiabilidade, disponibilidade, integridade das interfaces, adaptabilidade e portabilidade, são revelados nos casos de uso e cenários. Aula 05 12 RUP – Cap. 5 – Processo Iterativo e Incremental Foco nos Riscos Classificação Simplificada Riscos Técnicos: Riscos relacionados com novas tecnologias; Riscos relacionados com a arquitetura; Riscos relacionados à construção do sistema correto; Riscos relacionados à performance. Aula 05 13 RUP – Cap. 5 – Processo Iterativo e Incremental Foco nos Riscos Nem todo risco é técnico: Faltam pessoas com habilidades específicas; O cronograma sugerido pelo cliente é curto demais; Há envolvimento de terceiros com os quais a organização nunca trabalhou; O cliente não tem condições de tomar decisões dentro dos limites de tempo estabelecidos. Aula 05 14 RUP – Cap. 5 – Processo Iterativo e Incremental Foco nos Riscos Riscos podem ser: REPLANEJAMENTO / MUDANÇA DE REQUISITOS * Evitados/Eliminados: novo planejamento e/ou adequações nos requisitos; * Confinados/Restringir Efeito: limitando-se o escopo do seu impacto; * Explorados/Amenizados: executando o que espera-se que seja o estopim para a materialização da suspeita; * Monitorados: em último caso, mede-se seus efeitos até o limite tolerável: Plano de CONTINGÊNCIA! IMPLEMENTAÇÃO Aula 05 15 RUP – Cap. 5 – Processo Iterativo e Incremental Foco nos Riscos Cascata Período de Integração e Testes Concepção Elaboração Seriedade dos Riscos Construção Iterativo, Incremental Transição Iter. 1 Iter. 2 --- --- --- --- Iter. N-1 Iter. N Tempo Deve-se antecipar ações em relação aos riscos. Aula 05 16 RUP – Cap. 5 – Processo Iterativo e Incremental A Iteração A iteração genérica varia durante o projeto, de acordo com os desafios a serem superados. O fluxo da iteração é didaticamente dividido em 5 fluxos centrais: requisitos, análise, projeto, desenvolvimento e testes. O fluxo da iteração é composto por um subconjunto dos fluxos centrais somado com planejamento, avaliação e atividades pontuais (por ex.: teste regressivo). Aula 05 17 RUP – Cap. 5 – Processo Iterativo e Incremental A Iteração Requisitos Inclui: •Planejamento •Avaliação •Atividades pontuais Análise Projeto Implementação Testes Iteração Elementos Genéricos de Uma Iteração Aula 05 18 RUP – Cap. 5 – Processo Iterativo e Incremental Iteração x Planejamento O planejamento no UP representa uma das principais diferenças em relação ao Modelo Cascata onde todo o planejamento é feito no início do projeto. A experiência adquirida nas fases iniciais é utilizada para o planejamento dos próximos passos. O planejamento é elaborado inicialmente de forma geral e aos poucos ganha detalhes suficientes e confiáveis para as próximas fases. Aula 05 19 RUP – Cap. 5 – Processo Iterativo e Incremental Iteração x Planejamento Iterações podem se sobrepor ligeiramente. Idealmente, espera-se que o trabalho flua em iterações seqüenciais, mas eventualmente isso pode não acontecer. 100 Síndrome dos 90% 90 80 70 Início das Integrações Progresso 60 (% Codificada) 50 Sistema Completo Cascata Impactos Atividades Proteladas 40 30 Iterativo 20 10 5 10 15 20 25 30 35 Tempo (Meses) 40 45 50 Aula 05 20 RUP – Cap. 5 – Processo Iterativo e Incremental Iteração x Planejamento Aula 05 21 RUP – Cap. 5 – Processo Iterativo e Incremental O Incremento Uma linha base, é o estado consistente de todos os artefatos após algum trabalho. Incremento: - é a diferença entre duas linhas base subsequentes (milestones – MARCO) ou - Incremento: diferença entre versões de iterações consecutivas É extremamente aconselhável o uso de ferramentas de gerência de configuração na administração das linhas bases durante o ciclo do projeto. Aula 05 22 RUP – Cap. 5 – Processo Iterativo e Incremental O Incremento Aula 05 23 RUP – Cap. 5 – Processo Iterativo e Incremental Iterações e o Ciclo de Vida Aula 05 24 RUP – Cap. 5 – Processo Iterativo e Incremental Evolução dos Modelos UP: Implementação U - Modelo de Caso de Uso A - Modelo de Análise D - Modelo de Projeto D - Modelo de Implantação I - Modelo de Implementação T - Modelo de Testes Aula 05 25 RUP – Cap. 5 – Processo Iterativo e Incremental A Mudança Mais Importante A mudança mais importante é da mentalidade corporativa. Por ex.: Deve-se medir riscos endereçados, casos de uso preparados, e componentes que realizam casos de uso, em vez de volume de código. Deve-se deixar o “iterativo e incremental” no automático; O suporte de ferramentas é fundamental para que o projeto seja bem feito. Aula 05 26