Processo Unificado(RUP)

16,191 views
15,930 views

Published on

Published in: Technology

Processo Unificado(RUP)

  1. 1. RUP - Rational Unified Process Genésio Gomes Neto
  2. 2. Objetivos <ul><li>Introdução </li></ul><ul><ul><li>Características Principais do RUP </li></ul></ul><ul><li>Fases & Ciclo de Vida </li></ul><ul><li>Disciplinas Básicas e de Apoio </li></ul><ul><li>Framework </li></ul><ul><ul><li>Descrição de Atividades </li></ul></ul><ul><ul><li>Artefatos </li></ul></ul><ul><ul><li>Guias </li></ul></ul>
  3. 3. Introdução ao RUP
  4. 4. Tendências... <ul><li>Necessidade de sistemas cada vez maiores e mais complexos. </li></ul><ul><li>Necessidade por Sofisticação </li></ul><ul><ul><li>Sistemas cada vez mais adaptados às necessidades dos usuários </li></ul></ul><ul><ul><li>Inclusão de melhoramento substanciais a cada versão </li></ul></ul><ul><li>Exigência de rapidez no desenvolvimento </li></ul><ul><ul><li>Competitividade de mercado. </li></ul></ul>
  5. 5. Necessidades <ul><li>Um processo integrado que: </li></ul><ul><ul><li>Provenha guias </li></ul></ul><ul><ul><li>Direcione as tarefas </li></ul></ul><ul><ul><li>Especifique os artefatos </li></ul></ul><ul><ul><li>Ofereça ferramentas e métodos </li></ul></ul><ul><ul><li>Apresente critérios para monitorar e medir o produto e processo </li></ul></ul><ul><li>“ A presença de um bem definido e bem gerenciado processo é o elemento que diferencia os projetos produtivos dos projetos mal sucedidos” (Booch et al, 1999) </li></ul>
  6. 6. Processo Unificado <ul><li>Framework genérico e adaptável à uma grande classe de sistemas </li></ul><ul><li>Baseado em componentes </li></ul><ul><ul><li>interconectados por interfaces bem definidas. </li></ul></ul><ul><li>Integrado a linguagem UML </li></ul><ul><li>Aspectos Diferenciais: </li></ul><ul><ul><li>Direcionado por Casos de Uso </li></ul></ul><ul><ul><li>Centrado em Arquitetura </li></ul></ul><ul><ul><li>Iterativo e Incremental </li></ul></ul>
  7. 7. Histórico do RUP Abordagem da Ericsson Objectory Process 1.0 - 3.8 1987-1995 UML Abordagem da Rational IBM - Rational Unified Process Rational Objectory Process 4.1 1996-1997 Rational Unified Process 5.0 Outras fontes
  8. 8. Práticas e Conceitos Chaves Modelagem Visual Iterativo e Incremental Dirigido do Casos de Uso Centrado em Arquitetura
  9. 9. Modelagem Visual Porque Modelar ? <ul><li>Um modelo é uma visão simplificada do sistema. Mostra a essência do sistema sobre uma perspectiva particular e esconde detalhes não essenciais. </li></ul><ul><li>Serve para </li></ul><ul><ul><li>Aumentar o entendimento de sistemas complexos </li></ul></ul><ul><ul><li>Explorar e comparar diferentes projetos </li></ul></ul><ul><ul><li>Formar uma base para implementação </li></ul></ul><ul><ul><li>Capturar os requisitos precisamente </li></ul></ul><ul><ul><li>Comunicar as decisões de forma não-ambígua. </li></ul></ul>
  10. 10. Modelagem Visual UML <ul><li>Uso de notações gráficas e textuais semanticamente ricas para capturar elementos do projeto de software </li></ul><ul><li>Permite o nível de abstração ser aumentado, preservando uma sintaxe e semântica rigorosa </li></ul>
  11. 11. Iterativo-Incremental R1 R2 R5 R3 R4 R7 R6 R1 R2 R5 R3 R4 R7 R6 It.1 It.2 It.3 Definição inicial de requisitos Planejamento de iterações Desenvolvimento de iteração N Validação com usuário da it. N Plano iteração N <ul><li>O desenvolvimento ocorre em várias iterações, cada uma resultando em incrementos de funcionalidades do sistema. </li></ul>
  12. 12. Iterativo e Incremental Benefícios <ul><li>Análise antecipada de riscos com a integração progressiva do sistema </li></ul><ul><li>Melhor acomodação de solicitações de mudanças </li></ul><ul><li>Maior qualidade devido ao refinamento contínuo do produto </li></ul><ul><li>Melhor facilidade de aprendizagem e amadurecimento do processo </li></ul><ul><li>Aumento da reusabilidade </li></ul>
  13. 13. Iterativo x cascata
  14. 14. Disciplinas das Iterações Básicas <ul><li>Requisitos (requirements) </li></ul><ul><li>Análise & Projeto (analysis & design) </li></ul><ul><li>Implementação (implementation) </li></ul><ul><li>Teste (tests) </li></ul><ul><li>Implantação (deployment) </li></ul>
  15. 15. Disciplinas das Iterações De Apoio <ul><li>Ger. Projeto (Project management) </li></ul><ul><li>Ger. de Ambiente (Environment) </li></ul><ul><li>Ger. de Configuração e Mudança (Configuration and change management) </li></ul>
  16. 16. Integração entre as Disciplinas Fonte: Rational
  17. 17. Iterações no RUP Fonte: Rational
  18. 18. Processo Dirigido por Casos de Uso <ul><li>Casos de Uso são utilizados para conduzir todo o processo de software . </li></ul><ul><li>Serve de base para a geração e integração dos diversos modelos e artefatos produzidos em todas as etapas do processo </li></ul>
  19. 19. Diagrama de Casos de Uso
  20. 20. Casos de Uso Especificação (Pro.Net) <ul><li>Nome do requisito [RFXX001] </li></ul><ul><li>Prioridade: (Essencial, Importante, Desejável) </li></ul><ul><li>Ator(es) </li></ul><ul><li>Requisitos associados </li></ul><ul><li>Descrição: </li></ul><ul><ul><li>Explicação do propósito do caso de uso </li></ul></ul><ul><ul><li>Desenhos ou rascunhos das telas da aplicação, ou captura das telas dos protótipos </li></ul></ul><ul><li>Pré-condições: </li></ul><ul><ul><li>Estado em que a aplicação deve estar ou um fator externo necessário para que o caso de uso possa ser realizado </li></ul></ul><ul><li>Pós-condições: </li></ul><ul><ul><li>Lista de possíveis estados em que a aplicação pode ficar imediatamente após o término da execução do caso de uso, ou alteração de um fator externo à aplicação. </li></ul></ul>
  21. 21. Casos de Uso Especificação (Pro.Net) <ul><li>Fluxo principal </li></ul><ul><ul><li>Descreve passo a passo o que os atores e a aplicação fazem. </li></ul></ul><ul><ul><li>Especifica se este Caso de Uso inclui ou estende outro. </li></ul></ul><ul><ul><li>Faz referência a um fluxo alternativo ou de erro caso haja necessidade devido a alguma condição. </li></ul></ul><ul><li>Fluxos alternativos </li></ul><ul><ul><li>[FA 001] <Descreve uma seqüência que foge ao fluxo principal descrito, mas que não é um erro.> </li></ul></ul><ul><li>Fluxos de erro </li></ul><ul><ul><li>[FE 001] <Descreve os passos a serem seguidos para cada situação de erro identificada (ex: consulta a dados que deveriam estar no banco, falha na comunicação via rede etc.)> </li></ul></ul>
  22. 22. Casos de Uso são usados para ... <ul><li>Modelar o processo do negócio </li></ul><ul><li>Especificar requisitos </li></ul><ul><li>Planejar iterações </li></ul><ul><li>Realizar os modelo de projeto </li></ul><ul><li>Implementar os componentes e seus casos de teste </li></ul><ul><li>Descrição dos manuais e/ou procedimentos de uso e instalação </li></ul>
  23. 23. Arquitetura de Software <ul><li>Proporciona uma perspectiva mais clara do sistema. </li></ul><ul><ul><li>Melhor compreensão e organização do sistema </li></ul></ul><ul><ul><li>Base sólida para o desenvolvimento </li></ul></ul><ul><li>Descreve a estrutura de como os requisitos devem ser implementados </li></ul><ul><li>“ Uma arquitetura de software (em algum ponto no tempo) é uma organização ou estrutura de componentes que interagem entre si através de interfaces”. </li></ul><ul><li>IEEE </li></ul>
  24. 24. Estrutura de Camadas
  25. 25. Componentes <ul><li>Parte encapsulada do sistema. </li></ul><ul><ul><li>não trivial , com certa independência e passível de substitução que satisfaz uma clara funcionalidade </li></ul></ul><ul><li>Oferecem interfaces bem-definidas que permitem prover e esconder serviços e informações. </li></ul>
  26. 26. Diferentes Visões de uma Arquitetura <ul><li>Visão da estrutura do sistema sobre o ângulo de stakeholders específicos </li></ul><ul><ul><li>usuários, analistas, desenvolvedores, etc. </li></ul></ul><ul><li>Visões Típicas </li></ul><ul><ul><li>Visão de Casos de Uso </li></ul></ul><ul><ul><li>Visão Lógica </li></ul></ul><ul><ul><li>Visão de Implementação </li></ul></ul><ul><ul><li>Visão de Processo </li></ul></ul><ul><ul><li>Visão de Implantação </li></ul></ul>
  27. 27. Visão de Casos de Uso <ul><li>Conjunto de Casos de Uso que englobam comportamentos e riscos que devem ser levados em consideração pela arquitetura. </li></ul>
  28. 28. Visão Lógica <ul><li>Classes de projeto mais importantes e sua organização em pacotes e subsistemas, que por sua vez são estruturados em camadas. </li></ul>
  29. 29. Demais Visões Típicas <ul><li>Visão de Implementação: </li></ul><ul><ul><li>organização dos módulos em pacotes e camadas. </li></ul></ul><ul><li>Visão de Processos: </li></ul><ul><ul><li>descrição das threads (linhas de execução) e suas interações e configurações. </li></ul></ul><ul><ul><li>Necessária quando existe alto grau de concorrência. </li></ul></ul><ul><li>Visão de Implantação: </li></ul><ul><ul><li>descrição dos nós físicos (hardwares) para as configurações de plataforma </li></ul></ul>
  30. 30. RUP: Um Processo Centrado em Arquitetura de Software <ul><li>“ RUP oferece uma forma metodológica de projetar, desenvolver e validar uma arquitetura” </li></ul><ul><li>Arquitetura é construída através de refinamentos sucessivos </li></ul><ul><ul><li>Inicia-se com um protótipo de arquitetura executável e gradualmente se torna um sistema. </li></ul></ul><ul><li>Serve para demonstrar funções específicas </li></ul><ul><ul><li>Em particular aquelas que satisfazem requisitos não funcionais. </li></ul></ul><ul><li>Serve para analisar riscos </li></ul><ul><ul><li>Relacionados a desempenho, capacidade, confiabilidade, entre outros. </li></ul></ul>
  31. 31. Importância de uma Arquitetura <ul><li>Auxilia no gerenciamento da complexidade do projeto e na manutenção de sua integridade </li></ul><ul><li>Garante manutenabilidade e aderência a requisitos não funcionais </li></ul><ul><li>Base efetiva para o reuso em larga-escala </li></ul><ul><li>Guia para a gerência de projeto </li></ul>
  32. 32. Disciplinas Básicas e de Apoio
  33. 33. Modelagem do Negócio <ul><li>Entender a estrutura e dinâmica da organização (contexto) </li></ul><ul><li>Especificação de </li></ul><ul><ul><li>Casos de Uso de negócio </li></ul></ul><ul><ul><li>Modelo de análise de negócio </li></ul></ul>
  34. 34. Requisitos <ul><li>Especificação de Requisitos </li></ul><ul><ul><li>descrever o quê o sistema deve fazer, em acordo com o cliente e usuários </li></ul></ul><ul><li>Especificação do detalhamento dos Requisitos através de Casos de Uso </li></ul><ul><li>Delimitar o escopo do sistema e prover uma base para o planejamento das iterações </li></ul><ul><li>Definir protótipos de interface com o usuário </li></ul>
  35. 35. Requisitos Artefatos Gerados Software Requirement Specification Use Case Model Glossary Stakeholder Request Storyboard Suplementary Specification Casos de Uso Vision escopo Requisitos não funcionais
  36. 36. Análise e Projeto <ul><li>Transformar os requisitos em um modelo para implementação do sistema </li></ul><ul><li>Encontrar uma arquitetura robusta para o sistema </li></ul>
  37. 37. Análise e Projeto Fonte: Rational
  38. 38. Análise <ul><li>Casos de Uso são refinados e estruturados do ponto de vista dos desenvolvedores. </li></ul><ul><li>Desenvolvimento do modelo de objetos </li></ul><ul><ul><li>Diagrama de Classes, </li></ul></ul><ul><ul><li>Diagrama de colaboração, </li></ul></ul><ul><ul><li>descrição arquitetural </li></ul></ul>
  39. 39. Projeto <ul><li>Redefine e Cria Classes de implementação </li></ul><ul><li>Aprofundamento dos níveis de detalhes dos Casos de Uso e descrições de classes. </li></ul><ul><li>Diagramas de Sequência </li></ul><ul><li>Agrupamento da classes em Subsistemas. </li></ul><ul><li>Visão arquitetural completa. </li></ul>
  40. 40. Implementação <ul><li>Implementar os componentes necessários. </li></ul><ul><li>Testar os componentes implementados como unidades </li></ul><ul><li>Integrar os componentes implementados em um sistema executável </li></ul>
  41. 41. Testes <ul><li>Verificar a interação e integração dos componentes </li></ul><ul><li>Verificar se todos os requisitos foram corretamente implementados </li></ul><ul><li>Identificar defeitos e assegurar as correções de acordo com as prioridades de entrega de cada componente </li></ul>
  42. 42. Implantação <ul><li>Produzir o (que falta do) software </li></ul><ul><ul><li>scripts de instalação, documentação para o usuário, programas para conversão de dados, etc. </li></ul></ul><ul><li>Embalar e distribuir o software </li></ul><ul><li>Instalar o software </li></ul><ul><li>Realizar migração </li></ul><ul><ul><li>troca de sistema antigo pelo novo, conversão de dados </li></ul></ul><ul><li>Treinamento do usuário </li></ul><ul><li>Aceitação formal pelo cliente </li></ul>
  43. 43. Gerência de Projeto <ul><li>Prover um framework para gerenciar projetos e riscos </li></ul><ul><li>Prover orientações para o planejamento de atividades, definição da equipe, execução e monitoração de projetos </li></ul>Planejamento e monitoração das iterações!
  44. 44. Gerência de Configuração e Mudanças <ul><li>Identificar, definir e manipular itens de software </li></ul><ul><li>Controlar modificações e versões destes itens </li></ul><ul><li>Reportar e armazenar a situação dos itens e as solicitações de mudanças </li></ul><ul><li>Garantir a completude, consistência e corretude dos itens </li></ul><ul><li>Controlar o armazenamento, manipulação e entrega destes itens </li></ul>
  45. 45. Configuração do Ambiente <ul><li>Prover o processo e as ferramentas necessárias ao desenvolvimento </li></ul><ul><li>Possíveis Atividades: </li></ul><ul><ul><li>configurar o RUP </li></ul></ul><ul><ul><li>desenvolver guidelines </li></ul></ul><ul><ul><li>selecionar e adquirir ferramentas </li></ul></ul><ul><ul><li>adaptar ou desenvolver ferramentas </li></ul></ul><ul><ul><li>suportar o ambiente de desenvolvimento (backups, administração de contas, etc.) </li></ul></ul><ul><ul><li>treinamento </li></ul></ul><ul><ul><li>implantação do RUP na organização </li></ul></ul>
  46. 46. Fases do RUP
  47. 47. Fases do RUP <ul><li>O ciclo de vida de todo o projeto (não de cada iteração) é subdividido em quatro fases: </li></ul><ul><ul><li>Concepção, Elaboração, Construção e Transição. </li></ul></ul><ul><li>Cada fase pode possuir N iterações. </li></ul>
  48. 48. Fases e Iterações <ul><li>Cada fase pode comportar diversas iterações </li></ul>Concepção Elaboração Construção Transição Iteração preliminar 1 2 i i+2 i+3 ... j j+1 ... grandes marcos tempo
  49. 49. Fases do RUP Estabelecer o escopo e viabilidade econômica do projeto Eliminar principais riscos e definir arquitetura estável Desenvolver o produto até que ele esteja pronto para beta testes Entrar no ambiente do usuário Concepção Elaboração Construção Transição
  50. 50. Marcos Transição Elaboração Construção Concepção Entendimento do sistema Arquitetura estável Produto operacional Produto implantado
  51. 51. Fases x Disciplinas do RUP Fonte: Rational
  52. 52. Concepção (inspetion) <ul><li>Estabelecer o escopo e os limites do projeto </li></ul><ul><ul><li>Identificar Casos de Uso principais </li></ul></ul><ul><li>Realizar Planejamento Inicial </li></ul><ul><ul><li>Analisar riscos críticos </li></ul></ul><ul><ul><li>Definir custos e cronogramas </li></ul></ul><ul><li>Gerar Plano de Negócio (“Business Case”) </li></ul><ul><ul><li>Verificar viabilidade do projeto </li></ul></ul><ul><li>Avaliar alguma arquitetura candidata </li></ul><ul><li>Preparar ambiente do projeto </li></ul>
  53. 53. Elaboração (Elaboration) <ul><li>Garantir que a arquitetura, os requisitos e os planos são estáveis </li></ul><ul><li>Analisar riscos de forma que seja possível determinar o custo e o cronograma do projeto </li></ul><ul><li>Estabelecer uma baseline para arquitetura. </li></ul><ul><li>Produzir protótipos dos componentes para analisar riscos, tais como </li></ul><ul><ul><li>Balanceamentos entre requisitos e projeto </li></ul></ul><ul><ul><li>Reuso de componentes </li></ul></ul><ul><ul><li>Analisar a viabilidade do produto </li></ul></ul>
  54. 54. Construção (Construction) <ul><li>Minimizar custos através da otimização dos recursos e evitando re-trabalho. </li></ul><ul><li>Alcançar qualidade de forma rápida e prática </li></ul><ul><li>Concluir a análise, projeto, implementação e teste de todas as funcionalidades requeridas </li></ul><ul><li>Desenvolver de forma iterativa e incremental um produto completo pronto para ser instalado. </li></ul><ul><li>Alcançar um degrau de paralelismo no trabalho dos times de desenvolvimento </li></ul><ul><li>Decidir se o software e os usuários estão prontos para implantação. </li></ul>
  55. 55. Transição (Transition) <ul><li>Beta testes para validação do sistema. </li></ul><ul><li>Treinamento dos usuários e mantenedores. </li></ul><ul><li>Estratégias de marketing, distribuição e venda. </li></ul><ul><li>Avaliação da baseline de implantação com relação a visão do sistema e o critério de aceitação do produto. </li></ul><ul><ul><li>Alcançar a concordância do usuário </li></ul></ul>
  56. 56. Elementos Básicos
  57. 57. Elementos Básicos do RUP Fonte: Rational
  58. 58. Atividade <ul><li>Atividade é uma unidade de trabalho que um indivíduo (ou grupo) no papel de um trabalhador deve executar </li></ul><ul><li>Uma atividade geralmente tem o objetivo de criar / alterar artefatos </li></ul><ul><li>Atividades são divididas em passos </li></ul><ul><li>Atividades possuem “guidelines” </li></ul>Capturar Vocabulário Comum
  59. 59. Trabalhador <ul><li>Representa o comportamento e responsabilidades de um indivíduo ou de um grupo </li></ul><ul><li>As responsabilidades são expressas em termos de atividades </li></ul><ul><li>Representa um “papel” </li></ul>Analista de Sistemas
  60. 60. Artefato <ul><li>Um artefato é um conjunto de informações que é produzido, modificado e usado pelo processo </li></ul><ul><li>Artefatos são utilizados como entrada para os trabalhadores executarem as atividades, que por sua vez produzem artefatos de saída </li></ul>Glossário
  61. 61. Fonte: Rational Artefatos do RUP
  62. 62. Workflows <ul><li>Os fluxos de atividades do RUP são descritos através de responsáveis, atividades e artefatos </li></ul>Fonte: Rational
  63. 63. Modelagem do Negócio <ul><li>Glossário </li></ul><ul><li>Modelo de Casos de Uso do Negócio </li></ul><ul><li>Modelo de Objetos do Negócio </li></ul>Fonte: Rational
  64. 64. Requisitos <ul><li>Glossário </li></ul><ul><li>Documento de Visão </li></ul><ul><li>Especificações Suplementares </li></ul><ul><li>Modelo de Casos de Uso </li></ul><ul><li>Protótipo da Interface </li></ul>Fonte: Rational
  65. 65. Análise e Projeto Fonte: Rational
  66. 66. Análise e Projeto Fonte: Rational
  67. 67. Implementação <ul><li>Modelo de Implementação </li></ul><ul><li>Componentes implementados </li></ul><ul><li>Subsistemas implementados </li></ul>Fonte: Rational
  68. 68. Testes <ul><li>Plano de Teste </li></ul><ul><li>Modelo de Teste </li></ul><ul><li>Casos de Teste </li></ul><ul><li>Procedimentos de Teste </li></ul><ul><li>Lista de defeitos </li></ul><ul><li>Avaliação dos Testes </li></ul>Fonte: Rational
  69. 69. Gerência de Projeto <ul><li>Plano de Negócios </li></ul><ul><li>Plano do Desenv. do Software: </li></ul><ul><ul><li>plano de métricas </li></ul></ul><ul><ul><li>lista de riscos </li></ul></ul><ul><ul><li>plano do projeto </li></ul></ul><ul><ul><li>plano da iteração </li></ul></ul>Fonte: Rational
  70. 70. Gerência de Configuração e Mudanças <ul><li>Plano de gerência de configuração </li></ul>Fonte: Rational
  71. 71. Conclusões
  72. 72. RUP Os 10´s Atributos Essenciais <ul><li>Desenvolver Visão </li></ul><ul><li>Planejamento </li></ul><ul><li>Analisar Riscos </li></ul><ul><li>Examinar Plano de Negócio (Business Case) </li></ul><ul><li>Projetar Arquitetura de Componentes </li></ul><ul><li>Desenvolver de forma iterativa e incremental </li></ul><ul><li>Avaliar regularmente os resultados </li></ul><ul><li>Gerenciar e controlar mudanças </li></ul><ul><li>Implantar produtos usáveis </li></ul><ul><li>Adotar Processo que se adapte ao projeto </li></ul>

×