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.
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
PRINCIPAIS CARACTERÍSTICAS
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
FASES DO CICLO DE VIDA
Concepção Elaboração Construção Transição
tempo
ARQUITETURA DO RUP
MODELOS E DISCIPLINAS
Modelo de Use Case
Modelo de Análise
Modelo Projeto
Modelo Implantação
Modelo de Implementação
Modelo de Teste
Requisitos
Análise
Design
Implementação
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
ATIVIDADES
ARTEFATOS
FLUXO DE TRABALHO
define o comportamento e as responsabilidades assumidas por uma pessoa ou um conjunto de pessoas trabalhando em equipe.
tarefa que um indivíduo executa quando está exercendo um determinado papel e produz um resultado importante para o contexto do projeto.
seqüências de atividades que são executadas para a produção de um resultado valioso para o projeto.
pedaço de informação que é produzido, modificado ou utilizado em um processo.
EXEMPLOS
• Artefatos
• Papéis
• Atividades
Analista de sistemaProjetista
Projetista de testes
Planejar uma iteraçãoEncontrar casos de uso e atoresRever o projetoExecutar um teste de performance
Modelo de caso de usoCódigo fonte
DocumentosExecutáveis
Diagrama de SeqüênciaDiagrama de colaboração
• Fluxo de trabalho
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 esubsistemas, 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 (define o escopo do projeto) Elaboração (detalha os requisitos e a arquitetura) Construção (desenvolve o sistema) Transição (implanta o sistema)
tempo
concepção elaboração construção transição
O RUP é iterativo e incremental
Cada fase é dividida em iterações:
Minor Milestones: Releases
Inception Elaboration Construction Transition
Transitioniteration
Preliminaryiteration
Architect.iteration
Architect.iteration
Devel..iteration
Devel..iteration
Devel..iteration
Transitioniteration
O RUP é iterativo e incrementalCada 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 usoOs 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 sistemaArquitetura
» 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 RUPFluxos 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
Gerente de projeto
Arquiteto
Contratante
Iniciar Projeto
Aprovar Projeto
Estudar Viabilidade
Atestar Conclusão do Projeto
Identificar Riscos
Desenvolver Plano de Projeto
Desenvolver Plano de Iteração
Executar Plano de Iteração
Avaliar Iteração
Finalizar Projeto
Reavaliar Riscos
Priorizar Casos de
Uso
ResumoO RUP é:• iterativo e incremental• guiado por casos de uso• baseado na arquitetura do sistema• organizado em fases, iterações, fluxos, atividades e passos
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, operação e manutenção de software;
• Controle sobre desenvolvimento dentro de custos, prazos e níveis de qualidade desejados;
• Estimativa de prazos e custos com maior precisão.
ReferênciasIvar 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
Top Related