RUP
Rational Unified Process (Processo
Unificado de Desenvolvimento da Rational)
Processo
• Conjunto de passos que tem como objetivo
atingir uma meta
• Processo de software – na ES, processo que
visa a produzir o software - de modo eficiente
e previsível um produto de qualidade.
RUP
• Processo unificado de desenvolvimento de software:
UP (Unified Process).
• Definido como um framework para gerar processos
(metamodelo)
• Processo + Métodos + Linguagem (UML)
Evolução
Rational Unified Process 5.0
1998
Rational
Objectory Process 4.1
1996-1997
UML
Abordagem Rational
Objectory Process 1.0-3.8
1987-1995
Abordagem Ericsson
Teste Funcional
Teste de Desempenho
Gerência de Requisitos
Gerência de Configuração
Engenharia de Negócios
Engenharia de Dados
Principais Características do RUP
• baseado em componentes
• utiliza UML para especificar, modelar e documentar
artefatos.
• guiado por casos de uso
• centrado na arquitetura
• iterativo
• incremental
Principais Características do RUP
• permite a customização e autoria de processos, ou seja
uma vasta variedade de processos, ou configuração de
processos, podem ser obtidas a partir dele.
• configurável: pode ser adaptado (configurado)
dependendo do tipo de software sendo desenvolvido,
de características do ambiente de desenvolvimento
(tamanho da equipe, técnicas usadas, etc)
• Não existe uma maneira exata de aplicar o RUP, pois ele
pode ser aplicado de várias formas e será diferente em cada
projeto e organização.
Principais Características do RUP
• É bem definido e estruturado
• define claramente quem é responsável pelo que, como as
coisas devem ser feitas e quando fazê-las.
• provê uma estrutura bem definida para o ciclo de vida de um
projeto, articulando claramente os marcos essenciais e
pontos de decisão.
Princípios
•
•
•
•
•
•
•
•
Atacar os riscos cedo e continuamente;
Certificar-se de entregar algo de valor ao cliente;
Focar no software executável;
Acomodar mudanças cedo;
Liberar um executável da arquitetura cedo;
Construir o sistema com componentes;
Trabalhar junto como um time;
Fazer da qualidade um estilo de vida, não algo para
depois.
Ciclos/Fases
• Ciclo de Desenvolvimento - 4 fases:
- Concepção (define o escopo do projeto)
- Elaboração (define os requisitos e a arquitetura)
- Construção (desenvolve o sistema)
- Transição (implanta o sistema)
• Vários ciclos se repetem até a aposentadoria do
sistema.
Cada ciclo gera um produto liberado para uso.
Fases
• Cada fase é subdividida em iterações.
Concepção
Iteração
Preliminar
...
Elaboração
Iteração
Arquitetura
Release
- Um
...
Construção
Iteração
Desenv
Iteração
Desenv
Release Release Release Release
Transição
...
Iteração
Transição
Release
Release
...
Produto
conjunto de artefatos (release) é gerado a cada iteração.
- Um milestone (marco) é gerado a cada fase.
Fases
fases/tempo
dimensão/componente
Concepção
Elaboração
Construção
Transição
Análise de
Requisitos
Nível de
arquitetura
Design
Nível de
classe
Implementação
Teste
iterações
#1
#2
#3
#n
#m+1
Fases
fases/tempo
Fluxo de trabalho do
Processo
Concepção
Elaboração
Construção
Transição
Análise de
Requisitos
Nível de
arquitetura
Design
Nível de
classe
Implementação
Teste
É a primeira fase do processo, em que a
idéia inicial para o desenvolvimento é
levada até o ponto de ser - pelo menos
internamente - suficientemente bem
fundamentada para assegurar a passagem à
fase de elaboração
Fases
fases/tempo
Fluxo de trabalho do
Processo
Análise de
Requisitos
Nível de
arquitetura
Design
Nível de
classe
Implementação
Teste
Concepção
Elaboração
Construção
Transição
É a segunda fase do processo,
quando a visão do produto e
sua arquitetura são definidas.
Os requisitos do sistema
podem abranger desde
declarações de caráter geral
até critérios precisos de
avaliação, em que cada
requisito especifica
determinado comportamento
funcional ou não funcional e
proporciona a base para a
realização de testes
Fases
fases/tempo
Fluxo de trabalho do
Processo
Análise de
Requisitos
Nível de
arquitetura
Design
Nível de
classe
Implementação
Teste
Concepção
Elaboração
3ª fase do processo, em
que o software chega a
uma arquitetura baseline
executável e destinada à
transferência para a
comunidade de usuários.
Os requisitos do sistema
e seus critérios de
avaliação são sempre
reexaminados com base
nas necessidades
comerciais do projeto e
alocação de recursos.
Construção
Transição
Fases
fases/tempo
dimensão/componente
Análise de
Requisitos
Nível de
arquitetura
Design
Nível de
classe
Implementação
Teste
Concepção
Elaboração
Construção
4ª fase do processo, em que o software
chega às mãos dos usuários. Raramente
o processo termina aqui, pois é quando
o sistema é aprimorado continuamente,
bugs são eliminados e acrescentadas
novas características.
Transição
Fases e Marcos
Ciclo de Vida
• Workflows ou fluxos de trabalho: passos dentro de uma
iteração em cada fase
• Passos genéricos:
Análise de
Requisitos
Análise
Projeto
SW
Implement
Teste
Fluxos de Trabalho de Processo do RUP
Modelos do RUP
Ciclo de Vida
Workflows: passos dentro de uma iteração em cada fase e modelos
Requisitos
Análise
Projeto
Implementação
Testes
Modelo
Use Case
Modelo
Análise
Modelo
Projeto
Modelo
Implantação
Modelo
Implementação
Modelo
Teste
Conceitos Relacionados
• Pessoas:
Worker: papel representado por uma pessoa ou
grupo no processo de software.
Cada worker é responsável por um conjunto de
atividades.
• Projeto:
Possui uma seqüência de mudanças / várias
iterações / um padrão organizacional.
Conceitos Relacionados
• Produto:
Não é apenas código.
Artefato: qualquer tipo de informação criada.
Artefatos são criados pelos workers em cada
uma de suas atividades.
• Processo:
Direciona o projeto.
Template para criação de instâncias (projetos).
Conceitos-Chave
Processo Dirigido por Casos de Uso
• Benefícios: casos de uso associam todos os
workflows de forma conjunta.
• Dirigem várias atividades de desenvolvimento:
–
–
–
–
–
Criação e validação da arquitetura do sistema
Criação de casos de teste
Planejamento das iterações
Criação de documentação do usuário
Implantação do sistema
• Sincronizam conteúdo dos modelos criados em
cada workflow.
Conceitos-Chave
Processo Centrado na Arquitetura
• Benefícios:
– Fornecer uma base sólida para a construção do software.
– Melhor compreensão do sistema e organização do
desenvolvimento.
• Descrição: arquitetura envolve elementos de modelo mais
importantes - coleção de visões dos modelos do sistema.
• UP prescreve um refinamento sucessivo à arquitetura. A
arquitetura representa a forma, enquanto que os casos de
uso representam funcionalidades.
• Arquitetura e casos de uso devem ser balanceados.
Conceitos-Chave
Processo Iterativo e Incremental
• Benefícios:
– Identificação de riscos é adiantada.
– Preparação do Sistema para requisitos que mudam.
– Integração contínua (facilita testes e aprendizado).
• Iteração: mini-projeto - transversal pelos workflows
• Modelos evoluem nas iterações.
• Resultado de uma iteração: incremento.
O RUP
• Define um guia que controle as atividades do
time de desenvolvimento.
• Direciona as tarefas para desenvolvedores
específicos.
• Especifica que artefatos precisam ser
desenvolvidos nas etapas do desenvolvimento.
• Oferece critérios para monitorar as atividades e
os produtos de um projeto.
Referências
• Boock, G. and Rumbaugh, J. The Unified
Modeling Language User Guide AddisonWesley, 1999. Apêndice
• Jacobson, I. and Booch, G. and Rumbaugh, J. The
Unified Software Development Process. Capítulos
1 a 5.
• Kruchten, P. The Rational Unified Process – an
Introduction.
Download

RUP