O RUP é iterativo e incremental

Download Report

Transcript O RUP é iterativo e incremental

RUP
Prof.ª Elaine B. Figueiredo
Visão Geral do RUP
Objetivo
» Depois desta aula você terá uma visão geral do RUP
(uma metodologia para desenvolvimento de
software), incluindo suas características e seus
componentes principais.
DEFINIÇÃO
• O RUP(Rational Unified Process) é um processo de
desenvolvimento de software que possui um conjunto
completo de atividades que define quem faz o que,
quando e como.
• Ele usa uma abordagem de orientação a objetos em sua
concepção e é projetado e documentado utilizando a
notação UML para ilustrar os processos em ação.
• Suas características principais: Iterativo e Incremental
• Inicialmente desenvolvido e comercializado pela Rational,
e desde 2003 pertence a IBM.
OBJETIVOS
O objetivo do RUP é assegurar uma
produção de alta qualidade de software,
que realiza a necessidade do usuário
seguindo prazos e orçamento.
PRINCIPAIS CARACTERÍSTICAS
Iterativo e Incremental
O RUP utiliza pequenos ciclos de projeto (mini-projetos) que
correspondem à uma iteração e que resultam em um
incremento no software. Iterações referem-se a passos e
incrementos à evolução do produto.
O UP repete vários ciclos de vida até o término do sistema.
Cada ciclo de vida possui 4(quatro) fases.
» Concepção;
» Elaboração;
» Construção e
» Transição
FASES DO CICLO DE VIDA
Concepção
Elaboração
Construção
Transição
tempo
Concepção: Define o objetivo do projeto e sua
viabilidade
Elaboração: Plano do Projeto, especificação de
características e definição da linha de base da
arquitetura
Construção: Construção do produto
Transição: Substituição do antigo sistema e
implantação
ARQUITETURA DO RUP
MODELOS E DISCIPLINAS
Requisitos
Análise
Design
Implementação
Teste
Modelo de
Use Case
Modelo de
Análise
Modelo
Projeto
Modelo
Implantação
Modelo de
Implementação
Modelo de
Teste
ESTRUTURA ESTÁTICA
• A parte estática do RUP, é descrita através dos conceitos de
papéis, atividades, artefatos e fluxos de trabalho.
PAPÉIS
define o comportamento e as responsabilidades assumidas por uma
pessoa ou um conjunto de pessoas trabalhando em equipe.
ATIVIDADES
ARTEFATOS
tarefa que um indivíduo executa quando está exercendo um
determinado papel e produz um resultado importante para o
contexto do projeto.
pedaço de informação que é produzido, modificado ou
utilizado em um processo.
FLUXO DE TRABALHO
seqüências de atividades que são executadas para a
produção de um resultado valioso para o projeto.
EXEMPLOS
• Papéis
• Artefatos
Analista de sistema
Modelo de caso de uso
Projetista
Código fonte
Projetista de testes
Documentos
• Atividades
Planejar uma iteração
Encontrar casos de uso e atores
Rever o projeto
Executar um teste de performance
Executáveis
• Fluxo de trabalho
Diagrama de Seqüência
Diagrama de colaboração
PAPÉIS E ATIVIDADES
CONCEPÇÃO E WORKFLOWS
• Requisitos: capturar os requisitos mais críticos (na forma de
casos de uso) e definir o escopo do sistema.
• Análise: analisar os requisitos e montar uma proposta para o
modelo de classes e objetos, com foco nas classes de negócio,
mais o glossário.
• Design: preparar o Modelo de Design ou storyboard,
apresentando um rascunho preliminar da arquitetura do
sistema: identificar os primeiros componentes, interfaces e
subsistemas, assim como o Modelo de Implantação.
• Implementação: pode ser necessário criar um protótipo
descartável para demonstrar o caminho escolhido.
• Testes: criar primeiros esboços de teste com base nas
informações já adquiridas.
ELABORAÇÃO E WORKFLOWS
• Requisitos: encontrar, priorizar, detalhar e estruturar os Casos de
Uso, obtendo aproximadamente 80% dos requisitos.
• Análise: detalhar as classes de negócio, fazer o particionamento
em pacotes, atualizar o glossário e refinar os Casos de Uso.
• Design: fazer o design dos Casos de Uso, classes e subsistemas
para estabelecer uma estrutura básica do sistema. Pacotes de
análise e subsistemas de design, são importantes. São
considerados: sistema operacional, linguagem, banco de dados,
distribuição de objetos, etc..
• Implementação: implementar e testar os componentes
arquiteturalmente significantes. Eventualmente criar protótipos
para testar alguma nova tecnologia.
• Testes: planejar e especificar os testes, definindo casos de teste e
rotinas de teste.
CONSTRUÇÃO E WORKFLOWS
Requisitos: capturar os requisitos remanescentes, refinando
Casos de Uso e cenários.
Análise: capturar algum detalhe que passou despercebido nas
classes pertinentes ao negócio.
Design: refinar os casos de uso e cenários remanescentes
com base na tecnologia utilizada.
Implementação: codificar e integrar componentes, priorizando
os casos de uso mais importantes.
Testes: testar funcionalidades e performance do sistema. Se
necessário testar novos casos e rotinas de teste.
TRANSIÇÃO E WORKSFLOWS
Requisitos: eventual correção da documentação devido
a bugs encontrados no sistema.
Análise: eventual correção do modelo de análise devido
a bugs encontrados no sistema.
Design: eventual correção do modelo de design devido a
bugs encontrados no sistema.
Implementação: eventual correção do código devido a
bugs encontrados no sistema.
Testes: eventual correção do modelo de teste devido a
bugs encontrados no sistema.
O que é o RUP?
O nome é uma abreviação de Rational Unified Process
» mas na verdade é
 Processo + Métodos + Linguagem (UML)
» e os autores argumentam que é
 Framework para gerar processos
O que é o RUP?
Conjunto de atividades
»
»
»
»
»
»
»
»
bem definidas
com responsáveis
com artefatos de entrada e saída
com dependências entre as mesmas e ordem de
execução
com modelo de ciclo de vida
descrição sistemática de como devem ser realizadas
guias (de ferramentas ou não), templates
utilizando diagramas de UML
Características Principais do RUP
O desenvolvimento de sistemas seguindo o RUP é
» Iterativo e incremental
» Guiado por casos de uso (use cases)
» Baseado na arquitetura do sistema
O RUP é iterativo e incremental
O ciclo de vida de um sistema consiste de quatro fases:
concepção
elaboração
construção
tempo




Concepção (define o escopo do projeto)
Elaboração (detalha os requisitos e a arquitetura)
Construção (desenvolve o sistema)
Transição (implanta o sistema)
transição
O RUP é iterativo e incremental
Cada fase é dividida em iterações:
Inception
Preliminary
iteration
Elaboration
Construction
Architect. Architect. Devel..
iteration iteration iteration
Devel..
iteration
Devel..
iteration
Minor Milestones: Releases
Transition
Transition
iteration
Transition
iteration
O RUP é iterativo e incremental
Cada iteração
» é planejada
» realiza uma sequencia de atividades (de elicitação de
requisitos, análise e projeto, implementação, etc.)
distintas
» geralmente resulta em uma versão executável do
sistema
» é avaliada segundo critérios de sucesso previamente
definidos
O RUP é iterativo e incremental
O RUP é guiado por casos de uso
Os casos de uso não servem apenas para definir os
requisitos do sistema
Várias atividades do RUP são guiadas pelos casos de uso:
» planejamento das iterações
» criação e validação do modelo de projeto
» planejamento da integração do sistema
» definição dos casos de teste
O RUP é baseado na arquitetura do sistema
Arquitetura
» visão geral do sistema em termos dos seus subsistemas e como
estes se relacionam
• A arquitetura é prototipada e definida logo nas primeiras iterações
• O desenvolvimento consiste em complementar a arquitetura
• A arquitetura serve para definir a organização da equipe de
desenvolvimento e identificar oportunidades de reuso
Organização do RUP
Fluxos de atividades
Atividades
» passos
» entradas e saídas
» guias (de ferramentas ou não), templates
Responsáveis (papel e perfil, não pessoa)
Artefatos
Exemplo de Fluxo: Planejamento e Gerenciamento
Iniciar
Projeto
Aprovar
Projeto
Atestar
Conclusão
do Projeto
Contratante
Identificar
Riscos
Estudar
Viabilidade
Desenvolver
Plano de
Projeto
Gerente de
projeto
Arquiteto
Executar
Plano de
Iteração
Desenvolver
Plano de
Iteração
Avaliar
Iteração
Reavaliar
Riscos
Priorizar
Casos de
Uso
Finalizar
Projeto
Resumo
O RUP é:
• iterativo e incremental
• guiado por casos de uso
• baseado na arquitetura do sistema
• organizado em fases, iterações,
atividades e passos
fluxos,
CONCLUSÃO
Com a utilização de uma metodologia de desenvolvimento
de software como o RUP, é possível obter:
• Qualidade de software;
• Produtividade
no
desenvolvimento,
manutenção de software;
operação
e
• Controle sobre desenvolvimento dentro de custos, prazos
e níveis de qualidade desejados;
• Estimativa de prazos e custos com maior precisão.
Referências
Ivar Jacobson, Grady Booch e James Rumbaugh. The
Unified Software Development Process. Capítulos 1 a 5.
Philippe Kruchten. The Rational Unified Process – an
Introduction.
REFERÊNCIAS
Sites na internet
» http://javafree.uol.com.br/artigo/871455/Obtendo-Qualidade-de-Software-com-o-RUP.html
» http://www.wthreex.com/rup/portugues/index.htm
Publicações sobre o assunto
» Apostila de RUP, disponível em: http://www.analisetotal.com.br/Material/RUP/AulaRUP.pdf
» Processo Unificado RUP.pdf, disponível em:
http://www.laps.ufpa.br/yomara/paginav2/aps/processo%20unificado%20rup.pdf
Encerramento
Obrigado!
Prof.ª Elaine B. Figueiredo
[email protected]
[email protected]
32