Valéria Maria Lauande Março/2010 SUMÁRIO • DEFINIÇÃO • OBJETIVOS • PRINCIPAIS CARACTERÍSTICAS • FASES DO CICLO DE VIDA • ARQUITETURA DO RUP • CONCLUSÃO • REFERÊNCIAS 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. 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 • Sites na internet – http://javafree.uol.com.br/artigo/871455/Obtendo-Qualidade-deSoftware-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