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