RUP

72
RUP - Rational Unified RUP - Rational Unified Process Process Genésio Gomes Neto

Transcript of RUP

Page 1: RUP

RUP - Rational Unified RUP - Rational Unified ProcessProcess

Genésio Gomes Neto

Page 2: RUP

ObjetivosObjetivos

• Introdução• Características Principais do RUP

• Fases & Ciclo de Vida

• Disciplinas Básicas e de Apoio

• Framework• Descrição de Atividades

• Artefatos• Guias

Page 3: RUP

Introdução ao RUPIntrodução ao RUP

Page 4: RUP

Tendências...Tendências...

• Necessidade de sistemas cada vez maiores e mais complexos.

• Necessidade por Sofisticação• Sistemas cada vez mais adaptados às

necessidades dos usuários• Inclusão de melhoramento substanciais

a cada versão

• Exigência de rapidez no desenvolvimento• Competitividade de mercado.

Page 5: RUP

Necessidades Necessidades

• Um processo integrado que:• Provenha guias• Direcione as tarefas • Especifique os artefatos • Ofereça ferramentas e métodos• Apresente critérios para monitorar

e medir o produto e processo

“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)

Page 6: RUP

Processo UnificadoProcesso Unificado

• Framework genérico e adaptável à uma grande classe de sistemas

• Baseado em componentes• interconectados por interfaces

bem definidas.• Integrado a linguagem UML• Aspectos Diferenciais:

• Direcionado por Casos de Uso• Centrado em Arquitetura• Iterativo e Incremental

Page 7: RUP

Histórico do RUPHistórico do RUP

Abordagem da Ericsson

Objectory Process 1.0 - 3.81987-1995

UML

Abordagem da Rational

IBM - Rational Unified Process

Rational Objectory Process 4.11996-1997

Rational Unified Process 5.0

Outras fontes

Page 8: RUP

Práticas e Conceitos ChavesPráticas e Conceitos Chaves

Modelagem VisualModelagem VisualIterativo e IncrementalIterativo e Incremental

Dirigido do Casos de UsoDirigido do Casos de UsoCentrado em ArquiteturaCentrado em Arquitetura

Page 9: RUP

Modelagem VisualModelagem VisualPorque Modelar ?Porque Modelar ?

• Um modelo é uma visão simplificada do sistema. Mostra a essência do sistema sobre uma perspectiva particular e esconde detalhes não essenciais.

• Serve para• Aumentar o entendimento de sistemas

complexos• Explorar e comparar diferentes projetos • Formar uma base para implementação• Capturar os requisitos precisamente• Comunicar as decisões de forma não-

ambígua.

Page 10: RUP

Modelagem VisualModelagem VisualUMLUML

• Uso de notações gráficas e textuais semanticamente ricas para capturar elementos do projeto de software

• Permite o nível de abstração ser aumentado, preservando uma sintaxe e semântica rigorosa

Page 11: RUP

11

Iterativo-IncrementalIterativo-Incremental

R1

R2

R5

R3R

4R7

R6

R1

R2

R5

R3R

4R7

R6

It.1

It.2It.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

O desenvolvimento ocorre em várias iterações, cada uma resultando em incrementos de funcionalidades do sistema.

Page 12: RUP

Iterativo e IncrementalIterativo e IncrementalBenefíciosBenefícios

• Análise antecipada de riscos com a integração progressiva do sistema

• Melhor acomodação de solicitações de mudanças

• Maior qualidade devido ao refinamento contínuo do produto

• Melhor facilidade de aprendizagem e amadurecimento do processo

• Aumento da reusabilidade

Page 13: RUP

Iterativo x cascataIterativo x cascata

Page 14: RUP

Disciplinas das IteraçõesDisciplinas das IteraçõesBásicasBásicas

• Requisitos (requirements)

• Análise & Projeto (analysis & design)

• Implementação (implementation)

• Teste (tests)

• Implantação (deployment)

Page 15: RUP

Disciplinas das IteraçõesDisciplinas das IteraçõesDe ApoioDe Apoio

• Ger. Projeto (Project management)

• Ger. de Ambiente (Environment)

• Ger. de Configuração e Mudança

(Configuration and change

management)

Page 16: RUP

Integração entre as Disciplinas

Fonte: Rational

Page 17: RUP

Iterações no RUP

Fonte: Rational

Page 18: RUP

Processo Processo Dirigido por Casos de Dirigido por Casos de

UsoUso

•Casos de Uso são utilizados para conduzir todo o processo de software.

•Serve de base para a geração e integração dos diversos modelos e artefatos produzidos em todas as etapas do processo

Page 19: RUP

Diagrama de Casos de Uso Diagrama de Casos de Uso

Page 20: RUP

Casos de Uso Casos de Uso Especificação (Pro.Net) Especificação (Pro.Net)

• Nome do requisito [RFXX001]

• Prioridade: (Essencial, Importante, Desejável)

• Ator(es)• Requisitos associados• Descrição:

• Explicação do propósito do caso de uso• Desenhos ou rascunhos das telas da aplicação, ou captura

das telas dos protótipos

• Pré-condições: • Estado em que a aplicação deve estar ou um fator externo

necessário para que o caso de uso possa ser realizado

• Pós-condições: • 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.

Page 21: RUP

Casos de UsoCasos de UsoEspecificação (Pro.Net) Especificação (Pro.Net)

• Fluxo principal• Descreve passo a passo o que os atores e a aplicação

fazem.• Especifica se este Caso de Uso inclui ou estende outro.• Faz referência a um fluxo alternativo ou de erro caso

haja necessidade devido a alguma condição.• Fluxos alternativos

• [FA 001] <Descreve uma seqüência que foge ao fluxo principal descrito, mas que não é um erro.>

• Fluxos de erro• [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.)>

Page 22: RUP

Casos de Uso Casos de Uso são usados para ...são usados para ...

• Modelar o processo do negócio• Especificar requisitos• Planejar iterações• Realizar os modelo de projeto• Implementar os componentes e seus

casos de teste• Descrição dos manuais e/ou

procedimentos de uso e instalação

Page 23: RUP

Arquitetura de Arquitetura de SoftwareSoftware

• Proporciona uma perspectiva mais clara do sistema.• Melhor compreensão e organização do

sistema• Base sólida para o desenvolvimento

• Descreve a estrutura de como os requisitos devem ser implementados

“Uma arquitetura de software (em algum ponto no tempo) é uma organização ou estrutura de componentes que interagem entre si através de interfaces”.

IEEE

Page 24: RUP

Estrutura de Estrutura de CamadasCamadas

Page 25: RUP

ComponentesComponentes

• Parte encapsulada do sistema. • não trivial, com certa independência e

passível de substitução que satisfaz uma clara funcionalidade

• Oferecem interfaces bem-definidas que permitem prover e esconder serviços e informações.

Page 26: RUP

Diferentes Visões de Diferentes Visões de uma Arquiteturauma Arquitetura

• Visão da estrutura do sistema sobre o ângulo de stakeholders específicos • usuários, analistas,

desenvolvedores, etc.

• Visões Típicas • Visão de Casos de Uso• Visão Lógica• Visão de Implementação• Visão de Processo• Visão de Implantação

Page 27: RUP

Visão de Casos de UsoVisão de Casos de Uso

Conjunto de Casos de Uso que englobam comportamentos e riscos que devem ser levados em consideração pela arquitetura.

Page 28: RUP

Visão LógicaVisão Lógica• Classes de projeto mais importantes e

sua organização em pacotes e subsistemas, que por sua vez são estruturados em camadas.

Page 29: RUP

Demais Visões Típicas Demais Visões Típicas

• Visão de Implementação: • organização dos módulos em pacotes e

camadas.• Visão de Processos:

• descrição das threads (linhas de execução) e suas interações e configurações.

• Necessária quando existe alto grau de concorrência.

• Visão de Implantação: • descrição dos nós físicos (hardwares)

para as configurações de plataforma

Page 30: RUP

RUP: Um Processo Centrado em RUP: Um Processo Centrado em Arquitetura de SoftwareArquitetura de Software

“ RUP oferece uma forma metodológica de projetar, desenvolver e validar uma arquitetura”

• Arquitetura é construída através de refinamentos sucessivos• Inicia-se com um protótipo de

arquitetura executável e gradualmente se torna um sistema.

• Serve para demonstrar funções específicas • Em particular aquelas que satisfazem

requisitos não funcionais.• Serve para analisar riscos

• Relacionados a desempenho, capacidade, confiabilidade, entre outros.

Page 31: RUP

Importância de uma Importância de uma Arquitetura Arquitetura

• Auxilia no gerenciamento da complexidade do projeto e na manutenção de sua integridade

• Garante manutenabilidade e aderência a requisitos não funcionais

• Base efetiva para o reuso em larga-escala

• Guia para a gerência de projeto

Page 32: RUP

Disciplinas Básicas Disciplinas Básicas e de Apoioe de Apoio

Page 33: RUP

Modelagem do NegócioModelagem do Negócio

• Entender a estrutura e dinâmica da organização (contexto)

• Especificação de• Casos de Uso de negócio• Modelo de análise de negócio

Page 34: RUP

RequisitosRequisitos

• Especificação de Requisitos• descrever o quê o sistema deve fazer, em

acordo com o cliente e usuários

• Especificação do detalhamento dos Requisitos através de Casos de Uso

• Delimitar o escopo do sistema e prover uma base para o planejamento das iterações

• Definir protótipos de interface com o usuário

Page 35: RUP

Requisitos Requisitos Artefatos GeradosArtefatos Gerados

Software Requirement Specification

Use Case Model

Glossary

Stakeholder Request

Storyboard

Suplementary Specification

Casos de Uso

Vision

escopo

Requisitos não funcionais

Page 36: RUP

Análise e ProjetoAnálise e Projeto

• Transformar os requisitos em um modelo para implementação do sistema

• Encontrar uma arquitetura robusta para o sistema

Page 37: RUP

Análise e ProjetoAnálise e Projeto

Fonte: Rational

Page 38: RUP

AnáliseAnálise

• Casos de Uso são refinados e estruturados do ponto de vista dos desenvolvedores.

• Desenvolvimento do modelo de objetos

• Diagrama de Classes,

• Diagrama de colaboração,

• descrição arquitetural

Page 39: RUP

ProjetoProjeto

• Redefine e Cria Classes de implementação

• Aprofundamento dos níveis de detalhes dos Casos de Uso e descrições de classes.

• Diagramas de Sequência

• Agrupamento da classes em Subsistemas.

• Visão arquitetural completa.

Page 40: RUP

ImplementaçãoImplementação

• Implementar os componentes necessários.

• Testar os componentes implementados como unidades

• Integrar os componentes implementados em um sistema executável

Page 41: RUP

TestesTestes

• Verificar a interação e integração dos componentes

• Verificar se todos os requisitos foram corretamente implementados

• Identificar defeitos e assegurar as correções de acordo com as prioridades de entrega de cada componente

Page 42: RUP

ImplantaçãoImplantação

• Produzir o (que falta do) software• scripts de instalação, documentação para o

usuário, programas para conversão de dados, etc.

• Embalar e distribuir o software• Instalar o software• Realizar migração

• troca de sistema antigo pelo novo, conversão de dados

• Treinamento do usuário• Aceitação formal pelo cliente

Page 43: RUP

Gerência de ProjetoGerência de Projeto

• Prover um framework para gerenciar projetos e riscos

• Prover orientações para o planejamento de atividades, definição da equipe, execução e monitoração de projetos

Planejamento e monitoração das iterações!Planejamento e monitoração das iterações!

Page 44: RUP

Gerência de Configuração Gerência de Configuração e Mudançase Mudanças

• Identificar, definir e manipular itens de software

• Controlar modificações e versões destes itens

• Reportar e armazenar a situação dos itens e as solicitações de mudanças

• Garantir a completude, consistência e corretude dos itens

• Controlar o armazenamento, manipulação e entrega destes itens

Page 45: RUP

Configuração do AmbienteConfiguração do Ambiente

• Prover o processo e as ferramentas necessárias ao desenvolvimento

• Possíveis Atividades:• configurar o RUP• desenvolver guidelines• selecionar e adquirir ferramentas• adaptar ou desenvolver ferramentas • suportar o ambiente de desenvolvimento

(backups, administração de contas, etc.)• treinamento• implantação do RUP na organização

Page 46: RUP

Fases do RUPFases do RUP

Page 47: RUP

Fases do RUPFases do RUP

• O ciclo de vida de todo o projeto (não

de cada iteração) é subdividido em

quatro fases:

• Concepção, Elaboração, Construção e

Transição.

• Cada fase pode possuir N iterações.

Page 48: RUP

Fases e IteraçõesFases e Iterações

• Cada fase pode comportar diversas iterações

Concepção Elaboração Construção Transição

tempo

Iteração preliminar 1 2 i i+2 i+3 ... j j+1 ...

grandes marcos

Page 49: RUP

Fases do RUPFases do RUP

Concepção Elaboração Construção Transição 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

Page 50: RUP

MarcosMarcos

TransiçãoElaboração ConstruçãoConcepção

Entendimento do sistema

Arquiteturaestável

Produtooperacional

Produto implantado

Page 51: RUP

Fases x Disciplinas do RUPFases x Disciplinas do RUP

Fonte: Rational

Page 52: RUP

Concepção (inspetion)Concepção (inspetion)• Estabelecer o escopo e os limites do

projeto• Identificar Casos de Uso principais

• Realizar Planejamento Inicial• Analisar riscos críticos• Definir custos e cronogramas

• Gerar Plano de Negócio (“Business Case”) • Verificar viabilidade do projeto

• Avaliar alguma arquitetura candidata• Preparar ambiente do projeto

Page 53: RUP

Elaboração (Elaboration)Elaboração (Elaboration)

• Garantir que a arquitetura, os requisitos e os planos são estáveis

• Analisar riscos de forma que seja possível determinar o custo e o cronograma do projeto

• Estabelecer uma baseline para arquitetura. • Produzir protótipos dos componentes para

analisar riscos, tais como• Balanceamentos entre requisitos e

projeto• Reuso de componentes• Analisar a viabilidade do produto

Page 54: RUP

Construção (Construction)Construção (Construction)

• Minimizar custos através da otimização dos recursos e evitando re-trabalho.

• Alcançar qualidade de forma rápida e prática• Concluir a análise, projeto, implementação e

teste de todas as funcionalidades requeridas• Desenvolver de forma iterativa e incremental

um produto completo pronto para ser instalado.

• Alcançar um degrau de paralelismo no trabalho dos times de desenvolvimento

• Decidir se o software e os usuários estão prontos para implantação.

Page 55: RUP

Transição (Transition)Transição (Transition)

• Beta testes para validação do sistema. • Treinamento dos usuários e mantenedores. • Estratégias de marketing, distribuição e

venda.• Avaliação da baseline de implantação com

relação a visão do sistema e o critério de aceitação do produto.• Alcançar a concordância do usuário

Page 56: RUP

Elementos BásicosElementos Básicos

Page 57: RUP

Elementos Básicos do RUP

Fonte: Rational

Page 58: RUP

AtividadeAtividade

• Atividade é uma unidade de trabalho que um indivíduo (ou grupo) no papel de um trabalhador deve executar

• Uma atividade geralmente tem o objetivo de criar / alterar artefatos

• Atividades são divididas em passos• Atividades possuem “guidelines”

Capturar Vocabulário

Comum

Page 59: RUP

TrabalhadorTrabalhador

• Representa o comportamento e responsabilidades de um indivíduo ou de um grupo

• As responsabilidades são expressas em termos de atividades

• Representa um “papel”

Analista de Sistemas

Page 60: RUP

ArtefatoArtefato

• Um artefato é um conjunto de informações que é produzido, modificado e usado pelo processo

• Artefatos são utilizados como entrada para os trabalhadores executarem as atividades, que por sua vez produzem artefatos de saída

Glossário

Page 61: RUP

Fonte: Rational

Artefatos do RUP

Page 62: RUP

WorkflowsWorkflows

• Os fluxos de atividades do RUP são descritos através de responsáveis, atividades e artefatos

Fonte: Rational

Page 63: RUP

Modelagem do NegócioModelagem do Negócio

• Glossário

• Modelo de Casos de Uso do Negócio

• Modelo de Objetos do Negócio

Fonte: Rational

Page 64: RUP

RequisitosRequisitos

• Glossário

• Documento de Visão

• Especificações Suplementares

• Modelo de Casos de Uso

• Protótipo da Interface

Fonte: Rational

Page 65: RUP

Análise e ProjetoAnálise e Projeto

Fonte: Rational

Page 66: RUP

Análise e ProjetoAnálise e Projeto

Fonte: Rational

Page 67: RUP

ImplementaçãoImplementação

• Modelo de Implementação

• Componentes implementados

• Subsistemas implementados

Fonte: Rational

Page 68: RUP

TestesTestes

• Plano de Teste

• Modelo de Teste

• Casos de Teste

• Procedimentos de Teste

• Lista de defeitos

• Avaliação dos Testes

Fonte: Rational

Page 69: RUP

Gerência de ProjetoGerência de Projeto

• Plano de Negócios

• Plano do Desenv. do Software:

• plano de métricas• lista de riscos• plano do projeto• plano da iteração

Fonte: Rational

Page 70: RUP

Gerência de Gerência de Configuração e Configuração e

MudançasMudanças

• Plano de gerência de configuração

Fonte: Rational

Page 71: RUP

ConclusõesConclusões

Page 72: RUP

RUPRUPOs 10´s Atributos EssenciaisOs 10´s Atributos Essenciais

1. Desenvolver Visão2. Planejamento 3. Analisar Riscos 4. Examinar Plano de Negócio (Business Case)5. Projetar Arquitetura de Componentes6. Desenvolver de forma iterativa e incremental7. Avaliar regularmente os resultados8. Gerenciar e controlar mudanças9. Implantar produtos usáveis 10.Adotar Processo que se adapte ao projeto