Rational Unified Process Processo Define quem irá fazer o que, quando, e como a fim de alcançar um objetivo. Requisitos novos ou alterados Processo de Engenharia de Software Sistema novo ou melhorado 1
Detalhamento de Processos Objetivos Prover um guia para as atividades Especificar que artefatos e quando devem ser desenvolvidos Direcionar as tarefas dos grupos e indivíduos Oferecer um critério para monitorar e medir o processo Melhores Práticas Desenvolver software iterativamente Gerenciar requisitos Usar arquiteturas baseadas em componentes Modelar o software visualmente Verificar continuamente a qualidade do software Controlar as alterações no software 2
RUP Um processo de engenharia de software Um framework para outros processos Utiliza as melhores práticas de desenvolvimento de software RUP x Casos de Uso RUP é dirigido por caso de uso (use-case driven) Casos de uso dirigem numerosas atividades Criação e validação dos modelos de projeto Definição dos casos de teste no modelo de teste Planejamento de iterações Criação do manual do usuário 3
RUP x Arquitetura RUP é centrado na arquitetura A arquitetura é central em relação aos esforços Os requisitos são analisados para montar uma arquitetura A arquitetura orienta a implementação e mudanças RUP Usuário Final Funcionalidade Logical View Programadores Gerenciamento de Software Implemation View Analistas/Testadores Comportamento Process View Integradores de Sistema Performance Escalabilidade Throughput Use-Case View Deployment View Engenharia de Sistemas Topologia de Sistema Instalação/Entrega Comunicação 4
RUP estabelecidos lógica do domínio da aplicação e escopo do projeto RUP coleta de requisitos mais detalhados, análise e plano para construção do sistema 5
RUP Várias iterações para produção do sistema RUP Várias iterações para produção do sistema 6
RUP teste, ajuste de performance e treinamento de usuário RUP 7
RUP Desenvolvimento Iterativo Análise do Risco Desenvolvimento em Cascata Desenvolvimento Iterativo 8
Desenvolvimento Iterativo Modelagem de Negócio Requisitos Análise & Projeto Implementação Deployment Avaliação Teste Desenvolvimento Iterativo Vantagens Os riscos são atacados mais cedo Mudanças nos requisitos são absorvidas mais rapidamente Refinamento de arquitetura Aprendizado e aprimoramento Aumento do reuso 9
Gerência de Requisitos Dificuldades Requisitos não são óbvios Requisitos não são sempre facilmente expressos em palavras Existem vários tipos de requisitos em diferentes níveis de detalhes O número de requisitos pode explodir Requisitos estão interligados Existem várias pessoas interessadas nos requisitos Requisitos mudam. Atacando Analisando o problema Entendendo as necessidades dos stakeholders Definindo o sistema Gerenciando o escopo do projeto Refinando a definição do sistema Gerenciando mudança de requisitos Arquitetura Baseada em Componentes Suporte ao Desenvolvimento Baseado em Componentes Com o processo iterativo Baseado na arquitetura Através da UML - com pacotes, camadas e subsistemas Testes graduais 10
Gerência de Mudanças Conceitos Chave 11
Elementos do RUP Workflow Workers ou Papel Atividades Artefatos Elementos do RUP Unidade de trabalho Papel desempenhado por um indivíduo ou grupo Atividade Worker Analista Descrever um Caso de Uso Responsável por Artefato Caso de Uso Pacote de Engenharia Caso de Uso de Software Informação que é produzida, modificada, ou usada pelo processo 12
Disciplinas Workflow de atividades correlatas Alguns elementos, como risco e testes, são introduzidos em diferentes disciplinas Relação entre disciplina e modelos Disciplinas 13
Workflow Sequência de atividades que produzem um resultado de valor observável Geralmente expresso em um diagrama de atividade Organização Cada disciplina tem seu Workflow Workflow Modelagem de Negócio Modelo de Negócio Requisitos Análise & Projeto Implementação Teste realizado pelo Modelo de Caso de Uso Modelo de Projeto implementado pelo Modelo de Implementação verificado pelo Modelo de Teste 14
Detalhes de Workflow Detalhes de Workflow As atividades não são feitas em sequência Mostra os artefatos necessários e os gerados Agrupa atividades relacionadas de outras disciplinas 15
Workers - Papel Workers Aparecem em Detalhes de Workflow 16
Atividade Unidade de trabalho com um propósito claro Utilizado para planejamento e verificação de progresso Passos Planejando Executando Revisando Atividade Exemplos: Identificar casos de uso e atores Worker: Analista de Sistemas Revisar o projeto Worker: Revisor de Projeto Executar teste de desempenho Worker: Testador de desempenho 17
Atividade Atividade A atividade Find use case and actors se decompõe nos passos: Identificar os atores Identificar os casos de uso Descrever a interação entre os atores e uc Organizar em pacotes Apresentar o modelo em um diagrama Avaliar os resultados 18
Artefatos Unidade produzida por uma atividade Pode assumir as formas: Modelo (UML Model) Elemento de Modelo (Ator) Documento (Visão) Código (Componente) Artefatos 19
Artefatos Mantidos por controle de versão Artefatos não são somente documentos Guias e checkpoints Fornecem uma referência de como fazer Permitem verificar a qualidade do artefato Artefatos Templates Documento de visão (MS Word) Exemplos Modelo (Modelo de Caso de Uso, de Projeto, etc) Documento (Documento da Arquitetura do Software) Código-Fonte Executáveis 20
Documentos Documentos de Visão Documentos de Risco Documentos de Análise de Negócio (Processo) Tool Mentors Guiam a execução das atividades em uma ferramenta Ex: Documenting the Deployment Model Using Rational Rose 21
Fundamentos Visão Concordar com o problema a ser resolvido Identificar os stakeholders Definir os limites do sistema Identificar as restrições Políticas Econômicas Ambientais Praticabilidade Sistema 22
Visão Formular a expressão do problema O problema <descrição do problema> Afeta <os stakeholders afetados> O impacto deste é <qual é o impacto do problema> Uma solução adequada poderia <lista de beneficios> Planejamento Plano de desenvolvimento de software Bom entendimento do que vai ser criado Plano da Fase: granularidade alta Plano de Iteração: granularidade baixa The product is only as good as the plan for the product Charles Fishman The plan is nothing; the planning is everything. Dwight D. Eisenhowe 23
Riscos Definição: é uma variável que pode obter um valor que dificulte ou até mesmo torne o desenvolvimento inviável Tipos Risco direto Risco indireto Atributos Probabilidade de ocorrência Impacto no projeto Riscos Investigando e avaliando riscos Identificar os riscos Analisar e priorizar os riscos Definir estratégias de evasão Definir estratégias de ataque Definir estratégias de contingência Indicadores Plano B Rever os riscos durante a iteração Rever os riscos no final da iteração 24
Tipos de Riscos Riscos de Requisitos Riscos Tecnológicos Riscos de Habilidades Riscos Políticos Riscos de Requisitos Ponto inicial do processo de desenvolvimento: Casos de Uso (interação típica que o usuário tem com o sistema) Esboçar esqueleto do modelo conceitual do domínio Modelo de domínio. Fornece muita compreensão. Ponto inicial para construção de classes Encontrar detalhes importantes e se concentrar neles Construção de Protótipo 25
Riscos Tecnológicos Construir um protótipo que experimente as partes da tecnologia que você está pensando em utilizar Como os componentes do projeto se encaixam Dificuldade de serem modificados Riscos de Habilidades Treinamento é um bom modo de evitar erros Bom instrutor Treinamento em pequenas porções Se não puder ter consultores, faça revisões de tempo em tempo Leitura e grupos de estudo 26
Riscos Políticos Política Corporativa Planos de governo Riscos Quem estiver primeiro no campo de batalha e esperar a aparição do inimigo estará descansado para o combate; quem vier depois e tiver de apressar-se, chegará exausto. Sun Tzu 27
Business Case Plano econômico para realizar a Visão, isto é, saber se o projeto vale a pena. Avaliação do ROI (Return On Investment) Arquitetura Artefato: Software Architecture Document Quais são os componentes? Como os componentes se encaixam? Existe algum framework? Visões arquiteturais 28
Arquitetura Usuário final Funcionalidade Programadores Gerenciamento de Software Visão de Visão Lógica Implementação Visão de Casos de Uso Visão de Visão de Processo Deployment Integradores Performance Escalabilidade Engenharia Topologia Instalação Prototipagem Iterativamente e incrementalmente criar versões do sistema. Verificação dos requisitos Redução de riscos 29
Avaliação Regular Foco nos problemas no processo e os problemas no produto Mudanças Artefato: Change Request Provê um histórico das mudanças e das decisões tomadas Gerenciar o escopo do projeto Avaliar o impacto das decisões 30
Suporte do Usuário Criar um produto utilizável Manuais, ajuda e treinamento Processo Adotar um processo que se encaixa ao projeto A produção de artefatos varia de projeto a projeto 31
Conclusões Sem visão? O projeto pode perder escopo ou desviar do propósito Sem processo? A equipe pode perder a visão de quem esta fazendo o que e quando Sem planejamento? Você perde a capacidade de rastrear o progresso Conclusões Sem controle de riscos? Você pode focar no ponto errado e pisar em minas Sem Business Case? Você corre-se o risco de jogar tempo e investimento fora Sem arquitetura? Podem ocorrer problemas com escalabilidade, falso reuso e performance 32
Conclusões Sem prototipagem? Como você e o usuário saberão que o sistema funciona? Sem avaliação? Tenha coragem e enfrente a verdade! Sem Change Request? Como rastrear, priorizar os pedidos do cliente Sem suporte do usuário? Como o usuário vai obter informação sobre o sistema? Estrutura de processo: Duas Dimensões A primeira dimensão representa o aspecto dinâmico do processo como é ordenado, e é expresso em termos de ciclo, fases, iterações e marcos. A segunda dimensão representa o aspecto estático do processo: sua descrição em termos de componentes de processo, atividades, fluxos, artefatos e trabalhadores. 33
Fases Inception Elaboration Construction Transition tempo Fases e Iterações Inception Elaboration Construction Transition Iteração Prelim. Iteração #1 Iteração Iteração Iteração Iteração #n #n+1 #m #m+1 Versões 34
Estrutura dinâmica Desenvolvimento Iterativo R D C T R D C T R D C T Uma Iteração R D C T R: Análise de exigências C: Código, Teste de unidade D: Projeto D: Integração Milestone (Marco) Inception Elaboration Construction Transition tempo Lifecycle Objectives Lifecycle Architecture Initial Operational Capability Cada fase deve ser concluída com um Milestone (Major Milestone) 35
Inception (Iniciação ) Estabelecer o escopo e os limites, com critérios de aceitação bem definidos Discriminar os casos de usos críticos Exibir uma arquitetura candidata Adivinhar o custo e o calendário Preparar o ambiente do projeto Iniciação - Milestone Examina os objetivos e decide seguir ou cancelar o projeto - Viabilidade Critério de avaliação Entendimento e acordo com os requisitos Credibilidade do custo/tempo Acerto das prioridades 36
Iniciação - Milestone Produtos: Visão geral dos requisitos do projeto: Modelo de Caso de Uso inicial (10-20%) Estimativa dos recursos necessários Mini Mundo Elaboração Assegurar que os requisitos e planos estão estáveis Estabelecer uma arquitetura Provar que a arquitetura funciona Produzir um protótipo evolucionário Estabelecer um ambiente 37
Elaboração Deve terminar em torno de um quinto do tempo do projeto Desenvolvedores já sentem a vontade para dar estimativas de tempo Todos os riscos significativos foram identificados Elaboração - Milestone Examina os objetivos, arquitetura e riscos do projeto Critério de avaliação Requisitos, visão e arquitetura estáveis Verificar que, com os protótipos, todos os riscos foram atacados Planos de Iteração da fase de construção Despesas atuais batem com estimadas 38
Elaboração - Milestone Todos o Stakeholders concordam que a visão atual pode ser alcançada se o plano atual for executado para desenvolver o sistema completo, no contexto da arquitetura atual? Produtos: Modelo de Caso de Uso (80%) Plano de desenvolvimento Avaliação revisada dos riscos Protótipo da arquitetura Construção Atingir qualidade o mais breve possível Desenvolver incrementalmente e lançar as versões de teste (alpha, beta) Completar o desenvolvimento de todos os Casos de Uso 39
Construção Estabelecer(detalhar) as iterações e definir que funcionalidades entregar em cada uma delas Casos de Uso com maior prioridade e/ou risco de desenvolvimento primeiro Cada iteração é um mini-projeto: Análise, projeto,codificação, teste e integração As iterações são incrementais na função Integração contínua Construção - Milestone Sistema e manual Critério de avaliação O sistema já esta maduro o suficiente pra ser entregue? Os stakeholders estão prontos para usá-lo? Despesas reais versus planejadas continuam aceitaveis? 40
Construção - Milestone Produtos: Modelo de Caso de Uso e de Projeto completos Manual do usuário O software integrado e pronto para a utilização dos usuários Transição Teste de validação Conversão do ambiente para produção Treinamento de usuários e manutenção Otimização Alcançando auto-suporte do usuário 41
Transição - Milestone Os objetivos foram cumpridos Coincide com o fim da fase de concepção de outro ciclo Critério de avaliação O usuário está satisfeito Despesas reais versus planejadas continuam aceitaveis? Transição - Milestone Produtos: Versão final do produto Manual do usuário atualizado Modelos atualizados 42
RUP Detalhando os Workflows Core Workflows Workflows de Engenharia Modelagem do Negócio Análise & Projeto Implementação Teste Deployment Workflows de Suporte Requisitos Ger. de Configuração Gerência do Projeto Ambiente Tempo Inception Preliminary Iteration(s) Elaboration #1 #2 Fases #n Construction #n+1 Iterações #n+2 Transition #m #m+1 O Fluxo de Modelagem de Negócios Proposta Entender a estrutura dinâmica da organização na qual um sistema será distribuído. Entender os problemas atuais na organização alvo e identificar potenciais melhorias Derivar exigências de sistema necessárias para o suporte da organização alvo. 43
O Fluxo de Modelagem de Negócios Notação para a modelagem do negócio Usuários empresariais. Os processos empresariais são representados por casos de uso de negócio e realizações de caso de uso empresarial. O papel que as pessoas exercem numa organização é representado por trabalhadores empresariais. As coisas que uma organização administra ou produz são representadas através de entidades empresariais. O Fluxo de Modelagem de Negócios Cenários de Modelagem de Negócios Organograma Modelagem de domínio Um negócio, muitos sistemas Modelo de negócio genérico Negócio novo 44
O Fluxo de Modelagem de Negócios Trabalhadores Analista de Processo de Negócio Projetista de negócio Artefatos O documento de visão empresarial Um modelo de casos de uso empresarial Um modelo de objeto empresarial Modelagem de Negócios 45
RUP Detalhando os Workflows Core Workflows Workflows de Engenharia Modelagem do Negócio Análise & Projeto Implementação Teste Deployment Workflows de Suporte Requisitos Ger. de Configuração Gerência do Projeto Ambiente Tempo Inception Preliminary Iteration(s) Elaboration #1 #2 Fases #n Construction #n+1 Iterações #n+2 Transition #m #m+1 O Fluxo de Requisitos Proposta Estabelecer e manter acordo com os clientes e outros interessados no que o sistema deveria fazer Definir os limites do sistema Fornecer base para cálculo do custo e tempo para desenvolver o sistema 46
O Fluxo de Requisitos Requisitos Funcionais Não-funcionais Utilidade Robustez Desempenho Suporte Segurança O Fluxo de Requisitos 47
O Fluxo de Requisitos Trabalhadores em Requisitos Analista de Sistema Especificador do Caso de Uso RUP Detalhando os Workflows Core Workflows Workflows de Engenharia Modelagem do Negócio Análise & Projeto Implementação Teste Deployment Workflows de Suporte Requisitos Ger. de Configuração Gerência do Projeto Ambiente Tempo Inception Preliminary Iteration(s) Elaboration #1 #2 Fases #n Construction #n+1 Iterações #n+2 Transition #m #m+1 48
O Fluxo de Análise e Projeto Trabalhadores Arquiteto Projetista Artefatos O modelo de Projeto O Fluxo de Análise e Projeto 49
RUP Detalhando os Workflows Core Workflows Workflows de Engenharia Modelagem do Negócio Análise & Projeto Implementação Teste Deployment Workflows de Suporte Requisitos Ger. de Configuração Gerência do Projeto Ambiente Tempo Inception Preliminary Iteration(s) Elaboration #1 #2 Fases #n Construction #n+1 Iterações #n+2 Transition #m #m+1 Fluxo de Implementação Proposta: Implementar classes e objetos em temos de componentes; Testar os componentes desenvolvidos como unidades; Integrar em sistema executável os resultados produzidos por implementadores individuais ou equipes. 50
Fluxo de Implementação Implementação no RUP: Construções Integração Protótipos Fluxo de Implementação Tipos de protótipos: Comportamental Estrutural 51
Fluxo de Implementação Trabalhadores Implementador Integrador do sistema Arquiteto Revisor de Código Fluxo de Implementação Artefatos Subsistema de implementação Componente Plano de construção de integração 52
Fluxo de Implementação RUP Detalhando os Workflows Core Workflows Workflows de Engenharia Modelagem do Negócio Requisitos Análise & Projeto Implementação Teste Deployment Workflows de Suporte Ger. de Configuração Gerência do Projeto Ambiente Inception Preliminary Iteration(s) Elaboration #1 #2 Fases #n Construction #n+1 Iterações Tempo #n+2 Transition #m #m+1 53
Fluxo de Teste Proposta: Verificar as interações de componentes; Verificar a própria integração de componentes; Verificar que todas as exigências tenham sido implementadas corretamente; Identificar e assegurar que todos os defeitos descobertos estejam corrigidos antes do software ser distribuído. Fluxo de Teste Qualidade Dimensões de teste Dimensão da qualidade Confiabilidade Funcionalidade Desempenho Estágios do teste Teste de unidade Teste de integração Teste de sistema Teste de aceitação 54
Fluxo de Teste Tipos de testes Padrão Configurações Função Instalação Integridade Carregamento Desempenho Stress Fluxo de Teste Trabalhadores Projetista de teste Testador 55
Fluxo de Teste Artefatos Plano de teste Resultados de testes Fluxo de Teste 56
Fluxo de Implantação Proposta: Testar o software em seu ambiente operacional final; Empacotar o software para entrega; Distribuir o software; Instalar o software; Treinar os usuários finais; Fluxo de Implantação Modos de distribuição Software em sistemas feitos sobre encomenda Software pronto Software descarregável pela internet 57
Fluxo de Implantação Trabalhadores Gerente de distribuição Gerente de projeto Escritor técnico Desenvolvedor de curso Provador Implementador Fluxo de Implantação Artefatos fundamentais Software executável Artefatos de instalação Material de suporte Material de treinamento 58
Fluxo de Implantação RUP Detalhando os Workflows Core Workflows Workflows de Engenharia Modelagem do Negócio Requisitos Análise & Projeto Implementação Teste Deployment Workflows de Suporte Ger. de Configuração Gerência do Projeto Ambiente Inception Preliminary Iteration(s) Elaboration #1 #2 Fases #n Construction #n+1 Iterações Tempo #n+2 Transition #m #m+1 59
Fluxo de Gerenciamento de configuração Proposta: Localizar e manter a integridade dos recursos de evolução do projeto; Os membros da equipe de projeto devem poder identificar e localizar a versão apropriada do artefato; Fluxo de Gerenciamento de configuração Gerenciamento de configuração Gerenciamento de solicitação de mudança 60
Fluxo de Gerenciamento de configuração Trabalhadores Gerente de configuração Gerente de controle de mudança Implementadores Integradores Fluxo de Gerenciamento de configuração Artefatos Planos de gerenciamento de configuração Solicitações de mudança 61
RUP Detalhando os Workflows Core Workflows Workflows de Engenharia Modelagem do Negócio Análise & Projeto Implementação Teste Deployment Workflows de Suporte Requisitos Ger. de Configuração Gerência do Projeto Ambiente Tempo Inception Preliminary Iteration(s) Elaboration #1 #2 Fases #n Construction #n+1 Iterações #n+2 Transition #m #m+1 62
O Fluxo de Gerenciamento de Projeto Propostas Fornecer uma estrutura para gerenciar projetos de software intensivos. Fornecer diretrizes práticas para planejar, prover pessoal, executar e monitorar projetos. Fornecer uma estrutura para gerenciar risco. O Fluxo de Gerenciamento de Projeto Propostas fora do RUP Administrar pessoal. Administrar orçamentos. Administrar contratos com os provedores e clientes. 63
O Fluxo de Gerenciamento de Projeto Propostas RUP Planejamento de um projeto iterativo pelo ciclo de vida e planejamento de uma iteração em particular. Administração de risco. Monitoramento de progresso de um projeto iterativo e medidas. O Fluxo de Gerenciamento de Projeto Como planejar um processo iterativo? De quantas iterações eu preciso? Quanto tempo elas deveriam ter? Como determinar o conteúdo e objetivos de uma iteração? Como rastreio o progresso de uma iteração? 64
O Fluxo de Gerenciamento de Projeto Objetivos: Alocar tarefas e responsabilidades a uma equipe de pessoas. Monitorar o progresso relativo para o plano e descobrir problemas potenciais conforme o projeto é desenvolvido. O Fluxo de Gerenciamento de Projeto Dois níveis de planos Plano de fase Datas dos fatos principais Perfil da provisão de pessoal Datas dos fatos secundários Plano de iteração Datas importantes 65
O Fluxo de Gerenciamento de Projeto Riscos Uma variável que pode levar um valor que arrisca ou elimina o sucesso de um projeto. Risco direto Risco indireto O Fluxo de Gerenciamento de Projeto Como competir com riscos Fuga de risco Transferência de risco Aceitação de risco Moderar o risco Definir um plano de contingência 66
O Fluxo de Gerenciamento de Projeto Medidas Exemplos de Metas: Monitorar o progresso relativo ao plano Melhorar a satisfação do cliente Melhorar a produtividade Melhorar a previsibilidade Aumentar a reutilização O Fluxo de Gerenciamento de Projeto Medidas Melhorar a satisfação do cliente: Definir a satisfação do cliente Medir a satisfação do cliente sobre vários lançamentos Verificar que a satisfação melhora 67
O Fluxo de Gerenciamento de Projeto Trabalhadores Gerente de Projeto Revisor de Projeto Gerente de Configuração Engenheiro de Processo O Fluxo de Gerenciamento de Projeto Artefatos O plano de desenvolvimento de software O caso empresarial O plano de iteração A avaliação de estado A ordem de trabalho O banco de dados de medida do produto 68
RUP Detalhando os Workflows Core Workflows Workflows de Engenharia Modelagem do Negócio Análise & Projeto Implementação Teste Deployment Workflows de Suporte Requisitos Ger. de Configuração Gerência do Projeto Ambiente Tempo Inception Preliminary Iteration(s) Elaboration #1 #2 Fases #n Construction #n+1 Iterações #n+2 Transition #m #m+1 69
Fluxo de ambiente Proposta: Seleção e aquisição de ferramentas; Configurações de ferramentas para harmonizar a organização; Serviços técnicos para suportar o processo. Fluxo de ambiente Trabalhadores Especialista de ferramentas Administrador de sistemas 70
Fluxo de ambiente Artefato Caso de desenvolvimento Fluxo de ambiente 71