Processo Unificado(RUP)

Preview:

DESCRIPTION

 

Citation preview

RUP - Rational Unified RUP - Rational Unified ProcessProcess

Genésio Gomes Neto

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

Introdução ao RUPIntrodução ao 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.

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)

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

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

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

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.

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

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.

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

Iterativo x cascataIterativo x cascata

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

• Requisitos (requirements)

• Análise & Projeto (analysis &

design)

• Implementação (implementation)

• Teste (tests)

• Implantação (deployment)

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)

Integração entre as Disciplinas

Fonte: Rational

Iterações no RUP

Fonte: Rational

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

Diagrama de Casos de Uso Diagrama de Casos de Uso

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.

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

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

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

Estrutura de Estrutura de CamadasCamadas

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.

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

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.

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.

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

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.

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

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

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

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

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

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

Análise e ProjetoAnálise e Projeto

Fonte: Rational

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

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.

ImplementaçãoImplementação

• Implementar os componentes necessários.

• Testar os componentes implementados como unidades

• Integrar os componentes implementados em um sistema executável

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

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

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!

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

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

Fases do RUPFases do 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.

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

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

MarcosMarcos

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

Entendimento do sistema

Arquiteturaestável

Produtooperacional

Produto implantado

Fases x Disciplinas do RUPFases x Disciplinas do RUP

Fonte: Rational

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

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

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.

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

Elementos BásicosElementos Básicos

Elementos Básicos do RUP

Fonte: Rational

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

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

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

Fonte: Rational

Artefatos do RUP

WorkflowsWorkflows

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

Fonte: Rational

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

RequisitosRequisitos

• Glossário

• Documento de Visão

• Especificações Suplementares

• Modelo de Casos de Uso

• Protótipo da Interface

Fonte: Rational

Análise e ProjetoAnálise e Projeto

Fonte: Rational

Análise e ProjetoAnálise e Projeto

Fonte: Rational

ImplementaçãoImplementação

• Modelo de Implementação

• Componentes implementados

• Subsistemas implementados

Fonte: Rational

TestesTestes

• Plano de Teste

• Modelo de Teste

• Casos de Teste

• Procedimentos de Teste

• Lista de defeitos

• Avaliação dos Testes

Fonte: Rational

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

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

MudançasMudanças

• Plano de gerência de configuração

Fonte: Rational

ConclusõesConclusões

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

Recommended