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.