Rational Unified Process ( Parte 1 ) Um Ponto de Mudança em Eng. de SW Componentes de Software Arquitetura Processo Ferramentas 2 Resumo • • • • • O que é o Rational Unified Process? Arquitetura do Processo Características chave do processo Workflow do núcleo do processo Implementando o processo 3 Problemas Relacionados • Processo não repetível - resultados imprevisíveis, e altamente dependentes de programadores heróicos; • Software que preenche pobremente as necessidades dos usuários; • Inabilidade para contar com mudanças nos requisitos; • Procedimentos de teste caros e tediosos; 4 Problemas Relacionados • Descoberta tardia de defeitos sérios no projeto; • Software que é difícil de manter e estender. 5 Processo de Desenvolv. de SW • Processo - Um conjunto de passos parcialmente ordenados para alcançar um objetivo. Em Eng. SW, o objetivo é construir um produto de software ou melhorar um já existente. Requisitos novos ou mudados Processo de Engenharia de Software Sistema novo ou mudado 6 Rational Unified Process • Fornece guias para o desenvolvimento eficiente de software de qualidade; • Reduz riscos e aumenta a previsibilidade; • Captura e apresenta as melhores práticas • Promove uma cultura e visão comum; • Roadmap para usar ferramentas CASE com sucesso 7 Processo como um Produto • Não apenas um livro texto, não apenas um outro método OOAD; • Disponibilizado como um web site; • Melhorado continuamente através de atualizações regulares. 8 Histórico do Processo Teste de Desempenho Engenharia de Negócios Gerenciamento de Configuração e de Mudança Engenharia de Requisitos OMT Booch Rational Approach Rational Unified Process 5.0 Objectory UI design 1998 Engenharia de Dados Rational Objectory Process 4.1 Rational Objectory Process 4.0 UML 0.8 UML 1.1 10/1997 12/1996 Processo de SQA Objectory 1995 Process 3.8 9 RUP + Processo Online Treinamento Consultoria e Mentoring 10 Arquitetura do Processo • Duas estruturas ortogonais: – Estrutura estática • Trabalhadores, artefatos, atividades, workflows • Configuração e autoria do processo – Estrutura dinâmica • Estrutura do ciclo de vida: fases, iterações • Realização do processo: planejamento, execução 11 Duas Dimensões Estrutura Estática Estrutura Dinâmica 12 Fases no Ciclo de Vida tempo Concepção Elaboração Construção Transição Concepção - Definir o escopo do projeto; Elaboração - Planejar o projeto, especificar as características e a baseline (linha base) da arquitetura; Construção - Construir o produto; Transição - Disponibilizar o produto para a comunidade de usuários. 13 Fase de Concepção • Critério de entrada – visão original, sistemas legados, necessidades • Critério de saída – – – – – caso de negócio inicial formulação da visão do produto critério de sucesso avaliação do risco inicial estimativa de recursos para fase de elaboração 14 Fase de Concepção • Critério de saída (cont.) – Modelo de requisitos inicial, 10-20% completo • 20% dos use cases dirigidos à concepção da arquitetura – Protótipo da arquitetura inicial (opcional) • Milestone: Objetivos do Ciclo de Vida 15 Fase de Elaboração • Critério de saída – Visão da baseline – Modelos de requisitos, 80% completo • suficiente para chamar a arquitetura de “completa’ – Baseline executável da arquitetura – Maiores riscos técnicos foram “eliminados” 16 Fase de Elaboração • Critério de saída (cont.) – Plano de desenvolvimento de software detalhado • Riscos, plano de gerenciamento, alocação da equipe • Planejamento das fases, mostrando suas iterações e conteúdos. – Critério objetivo de avaliação mensurável das próximas iterações • Milestone: Arquitetura do Ciclo de Vida 17 Fase de Construção • Para cada iteração: – Critério de entrada • • • • • Plano de iteração; Use case, cenários; Riscos a tratar; Defeitos a consertar; Critérios objetivos e mensuráveis para avaliar os resultados. 18 Fase de Construção – Critério de saída • • • • Produtos e artefatos, atualizados; Descrição do release; Casos de teste baseados em cenários, e resultados de testes; Plano de iteração para a próxima iteração. 19 Fase de Construção – Para iterações seguintes nesta fase • • • • • • • • • Plano de entrega empacotamento preço saídas planejadas suporte treinamento produção estratégia de transição documentação do usuário – Milestone: Versão “beta” do software 20 Fase de Transição • Critério de saída – Artefatos e produtos anteriores, atualizados quando necessário – Análise post-mortem do desempenho da organização; produtos adicionais; evolução potencial. • Milestone: “Release” do produto. 21 Iterações no Ciclo de Vida do Software Concepção Elaboração Iteração da Arquit. Construção Iteração Iteração da Arquit. de Desenv. Iteração Iteração de Desenv. de Desenv. Transição Iteração Transição Iteração Transição Milestones Uma iteração é uma seqüência distinta de atividades com um plano de linha base (baseline) e critério de avaliação resultando em um release (interno ou externo). 22 Uma Iteração como uma “Mini-Cascata” Planejamento da Iteração Requisitos Análise e Projeto Implementação Teste Preparação do Release Iteração 3 Iteração 4 Iteração 5 23 Uma Iteração Em uma iteração você caminha através de todos workflows 24 Fases e Iteração Pontos Planejados de Decisão (Negócios) Estabelecer recursos para Estabelecer recursos para Produtos maduros o suficiente Aceitação ou a fase de elaboração a construção para os consumidores usarem final da vida (Entender a solução) (Ter a solução) (Entender o problema) Concepção Iteração Preliminar Elaboração Iteração da Arquit. Construção Iteração Iteração da Arquit. de Desenv. Iteração Iteração de Desenv. de Desenv. Transição Iteração Transição Iteração Transição Pontos Planejados de Visibilidade (Técnico) 25 Iteração: Número e Duração • Duração dirigida por + tamanho da organização +tamanho do projeto - familiaridade com o projeto, maturidade - simplicidade técnica • 6 mais ou menos 3 – – – – Concepção: 0..1 Elaboração: 1..3 Construção: 1..3 Transição: 1..2 26 Estrutura Estática 27 Trabalhadores, Atividades, Artefatos Trabalhador Atividades Projetista de Use-Case Artefato Encontrar Distribuir comportamento classes de projeto responsável por Use Case Em termos de UML: •Trabalhador:objeto ativo •Atividade: operação sobre um trabalhador •Artefato: parâmetro de uma atividade 28 Conceito Chave: Trabalhador • Um trabalhador (Worker) define o comportamento e responsabilidades de um indivíduo, ou um conjunto de indivíduos, trabalhando juntos como uma equipe. • Comportamento: um conjunto de atividades coesivas. • Responsabilidade: usualmente definida relativa para certos artefatos. • Um trabalhador é um ‘chapéu’ usado por um indivíduo. • Em termos de OO: é um objeto ativo. 29 Exemplos de Trabalhadores • • • • • Analista de sistema; Gerente de projeto; Projetista de Use-Case; Projetista de teste; Instrutor de curso. 30 Trabalhadores e Pessoas Recurso Trabalhador Paulo Maria João Atividades Projetista Especificador de Use-case Projetista de Use-case Revisor de Projeto Sílvia Arquiteto Daniel Cada indivíduo no projeto é associado a um ou vários trabalhadores Definir Operações Descrever um Use Case Distribuir comportamento Revisar o modelo de use-cases Definir uma visão de use-case Definir uma visão lógica 31 Conceito Chave: Atividade • Um trabalho que um trabalhador é convidado a executar; • Granularidade: de poucas horas a poucos dias • Unidade de planejamento; • Repetido, quando necessário, em cada iteração; • Em termos de OO: uma operação sobre um trabalhador. 32 Exemplos de Atividades • • • • Planejar uma iteração; Encontrar use cases e atores; Revisar o projeto; Executar o teste de desempenho. 33 Passos • Atividades são decompostas em passos • Tipos de passos – Passos de pensamento; – Passos de realização; – Passos de revisão. 34 Exemplo de Atividade • Atividade: Encontrar use-case e atores – – – – – Passo 1: Encontrar atores; Passo 2: Encontrar use cases; Passo 3: Descrever como atores e use cases interagem; Passo 4: Empacotar use cases e atores; Passo 5: Apresentar o Modelo de Use Case em Diagramas de Use Case; – Passo 6: Desenvolver um detalhamento do modelo de use cases; 35 – Passo 7: Avaliar seus resultados. Conceito Chave: Workflow • Seqüências de atividades que produzem um resultado observável; • Diferentes workflows – Workflows núcleo – Workflows de iteração • Em termos de OO: diagramas de interação ou diagramas de atividades 36 Exemplo de Workflow 37 Nove Workflows Núcleo 38 Exemplo: Workflow de Modelagem de Negócios Captura um Encontra atores e Analista do Processo vocabulário comum UC do negócio do Negócio Descreve um UC de Negócios Projetista de Negócio Estrutura o modelo Revisor do de UC do negócio modelo de negócios Revisa o modelo de UC do negócio Descreve um trabalhador do negócio Encontra trabalhadores e entidades do negócio Descreve uma entidade do negócio Revisa o modelo de objetos do negócio 39 Conceito Chave: Artefato • Alguma informação que é produzida, modificada, ou apenas utilizada por um processo. • Define uma área de responsabilidade. • Provavelmente é passível de controle de configuração. • Tipos de artefatos: – Modelos; – Documentos; – Planos. • Artefatos podem conter outros artefatos. 40 Exemplo de Artefatos • • • • • • • • Modelo de projeto; Classe; Use Case; Caso de teste; Plano de desenvolvimento de software; Release; Documento de avaliação de status; Lista de risco. 41 Conjuntos: Agrupamento de Artefatos • Conjunto de gerenciamento – Casos de negócio, plano de desenvolvimento de software, documento de avaliação de status. • Conjunto de requisitos – documento de visão, modelo de use cases, especificações suplementares. • Conjunto de projeto – modelo de projeto, modelo de teste, descrição da arquitetura. 42 Conjuntos: Agrupamento de Artefatos • Conjunto de implementação – Código fonte, executáveis,... • Conjunto de entrega – Baseline do produto, manual do usuário, manual de instalação,... 43 Evolução dos Conjuntos nas Fases Conjuntos “crescem” ao longo do ciclo de vida. Fase Concepção M R D I Elaboração D M R D I D Construção M R D I D Transição M R D I M : Conjunto de Gerenciamento R : Conjunto de Requisitos D : Conjunto de Projeto I : Conjunto de Implementação D : Conjunto de Entrega 44 D Artefatos, Documentos, Relatórios • Não é um “processo dirigido a documentos”; • Produz somente artefatos que serão usados; • Mantém o artefato na ferramenta mais apropriada, em formato eletrônico (Rose, Excel, ReqPro, etc.); • Somente poucos artefatos são documentos; • Quando necessário extrai relatórios a partir das ferramentas (ex: para revisão) 45 Conceitos Adicionais • Conceitos – Introduzem definições principais, idéias chave. • Guidelines – Técnicas, regras, heurísticas, listas de checagem... • Mentores de ferramentas – Ligação do processo com ferramentas específicas • Templates – Para os principais artefatos. 46 Guidelines • Guidelines são regras, recomendações, heurísticas que suportam atividades e passos. – Atividades e passos devem ser bastante concisos e enxutos – Guidelines descrevem artefatos bem-formados, focando na qualidade. – Guidelines descrevem técnicas específicas • transformações de um artefato em outro • uso de UML 47 Guidelines • Usados também para avaliar a qualidade dos artefatos • Feitos sob medida para a organização 48 Guidelines: exemplos • Guidelines de modelagem – Artefatos bem-formados: classes, use cases, pacotes, modelos • Guidelines de programação – Programas bem-formados • Guidelines de projeto de interface com o usuário – Interfaces fáceis de usar • Checklists – Para revisão. 49 Mentores de Ferramentas • Similares a guidelines • Explicam como usar uma ferramenta específica para executar uma atividade ou passos em uma atividade • Exemplos: – – – – – RequisitePro: gerenciamento de requisitos Rational Rose: modelagem visual, usando UML SoDA: geração de documentação ClearQuest: gerenciamento de mudança, trilhagem de defeitos ... e mais. 50 Templates • Artefatos pré-definidos, protótipos – Templates para documentos do MS Word – Templates de planos do MS Project – Templates para páginas html do processo • Conectados à atividade que cria o artefato correspondente • Feitos sob medida para a organização 51 Guidelines, Mentores, Templates Rational Rose 98 Guideline de Projeto Trabalhador Mentor da ferramenta Rose Atividades Projetista Encontrar classes de projeto Distribuir comportamento responsável por Artefato Realização de Use Case Template de Use Case 52 Resumo • Estrutura estática – Trabalhador, Atividade+Passo, Artefato – Workflow – Guideline, Template, mentor de ferramenta, conceito • Estrutura dinâmica – Fase • Milestone principal – Iteração • Milestone secundário, release 53