Visão Geral do RUP (Rational Unified Process)
Desenvolvimento de software com UML 2
Objetivos deste módulo Apresentar as características do RUP Discutir os conceitos que existem no
RUP: fases, fluxos de atividades (worklows), iterações, responsáveis, atividades e artefatos
Apresentar os fluxos do RUP
Desenvolvimento de software com UML 3
RUP e UML O que é o RUP?
Processo Unificado de desenvolvimento de software Diz o quê, quando e por quem, mas não explica como Necessidade a partir do sucesso da UML como padrão
de fato para especificação de software
E UML? Unified Modeling Language Linguagem padrão para modelagem OO Usada para modelar e documentar os artefatos do
desenvolvimento Foi proposta somente como uma linguagem, sem
orientação de uso (i.e., sem um processo)
Desenvolvimento de software com UML 4
Alguns diagramas de UML
Diagrama de casos de uso Diagrama de classes
Diagrama de sequência Diagrama de colaboração
Desenvolvimento de software com UML 5
Apenas a linguagem não basta
+
++
+
Desenvolvimento de software com UML 6
O que é um Processo? Conjunto de atividades a serem realizadas
para construir software ou evoluir um sistema já existente
Define Quem faz O quê, Quando e Como
Desenvolvimento de software com UML 7
Processos de Software Definição: “Todos os elementos do mundo
real envolvidos no desenvolvimento e manutenção de um produto de software”
Processos vem sendo propostos pela indústria, países e academia Análise Estruturada (Yourdon, Gane) Método de Jackson Objectory (Jacobson) V-Model (Alemanha) Catalysis Rational Unified Process - RUP XP - eXtreme Programming
Desenvolvimento de software com UML 8
Características de um Processo Eficiente
Orienta o desenvolvimento, operação e manutenção de software
Reduz risco e aumenta previsibilidade Utiliza boas práticas de desenvolvimento
de software Permite controle sobre o
desenvolvimento - dentro de custos, prazos e níveis de qualidade desejados
Qualidade x produtividade
Desenvolvimento de software com UML 9
Processo Unificado (RUP) Bases históricas:
Processo Espiral Iteratividade Gerência de riscos
Processo Objectory Proposto por Jacobson et al Processo direcionado por Casos de Uso
Desenvolvimento de software com UML 10
O que é Processo Unificado Modelo de Processo Padrão
Descrição de atividades que compõem um processo que adota UML Mais simples que a proposta da Rational
Produto comercial Desenvolvido e mantido pela Rational Integrado a uma suíte de produtos Disponível em CD-ROM / Internet
http://psds.portalcorporativo.serpro/rup_portugues/index.htm http://www.labes.ufpa.br/quites/rup/
Conhecido como Rational Unified Process E-coach: treinamento a distância
http://www.rational.com/rup Para o treinamento online, clicar em “Trials & Betas”
Desenvolvimento de software com UML 11
Características do RUP
Usa UML Baseado em componentes Framework para processos
Orientado a casos de uso Iterativo e incremental Centrado na arquitetura
Desenvolvimento de software com UML 12
Orientado a Casos de uso
O que é um caso de uso? Usados para capturar os requisitos funcionais
do sistema “Falam” a “linguagem do usuário” Estão sempre associados a um ator
Representação de uma funcionalidade do sistema, que fornece um resultado de
valor para um usuário
Desenvolvimento de software com UML 13
Orientado a Casos de uso
Por que o RUP é orientado a casos de uso? Casos de uso são usados para especificar requisitos Durante a análise, projeto e implementação os
casos de uso são “realizados” Durante os testes, verifica-se se o sistema realiza o
que está descrito no Modelo de Casos de Uso Casos de uso são usados no planejamento e
acompanhamento das iterações
Desenvolvimento de software com UML 14
Iterativo e Incremental
Tempo
RA/P
I/TI
R RA/P A/P
I/T I/TI I
R A/P I/T I
Fonte: Rational
Desenvolvimento de software com UML 15
Iterativo e Incremental
Dividir para conquistar! O desenvolvimento ocorre em várias
iterações, cada uma delas resultando em extensão de funcionalidade e/ou maior conhecimento do sistema
Os maiores riscos devem ser tratados nas primeiras iterações
Desenvolvimento de software com UML 16
Centrado na Arquitetura Estimula a definição de
uma arquitetura robusta nas fases iniciais do desenvolvimento
A arquitetura guia o projeto e implementação das diversas partes do sistema Os casos de uso dizem o que deve ser feito e a arquitetura descreve como
Desenvolvimento de software com UML 17
Visão de Distribuição
Visão Lógica
Visão de Implementação
Visão de Processo
Visão 4+1VISÃO LÓGICA
Descreve as principais classes no projeto do sistema: classes relacionadas aos principais negócios e classes que definem os principais mecanismos estruturais e comportamentais (persistência, comunicações, tolerância a falhas, interface do usuário).
VISÃO DE IMPLEMENTAÇÃODescreve a organização dos elementos estáticos do software (código, dados e outros artefatos que os acompanham) no ambiente de desenvolvimento em termos de empacotamento, divisão em camadas e gerenciamento de configuração (propriedade, estratégia de release e assim por diante).
VISÃO DE IMPLANTAÇÃODescreve uma ou várias configurações do sistema. É o mapeamento de componentes de software (tarefas, módulos) para os nós de computação nessas configurações.
VISÃO DE PROCESSODescreve o aspecto simultâneo do sistema: tarefas (processos) e suas interações
Casos de Uso
Desenvolvimento de software com UML 18
“Espírito” do RUP O gerenciamento de Riscos deve
ser feito continuamente A cada iteração (novos) riscos devem
ser identificados e tratados; Isto “garante” que o desenvolvimento
terá sucesso;
Desenvolvimento de software com UML 19
“Espírito” do RUP Foco em Funcionalidades para o
Cliente Especificação, organização e
documentação dos requisitos é facilitada através dos diagramas de casos de uso;
Casos de uso guiam todo o processo de desenvolvimento
O que desenvolver, testar e validar em cada iteração;
Casos de uso são funcionalidades para o cliente;
Desenvolvimento de software com UML 20
“Espírito” do RUP
Foco em Software Executável Artefatos são construídos para facilitar e
documentar o processo de desenvolvimento;
Mas, não é necessário construir todos os artefatos indicados pelo RUP;
Desenvolvimento de software com UML 21
“Espírito” do RUP
Aprenda a lidar com Mudanças Mudanças são inevitáveis no processo de
desenvolvimento; Adote estratégias para gerenciar
mudanças Tomada de decisão sobre uma mudança; Impacto desta mudança no sistema; Minimizar o custo desta mudança;
Desenvolvimento de software com UML 22
“Espírito” do RUP
Defina uma Arquitetura estável cedo Uma arquitetura do sistema é definida,
implementada e testada no início do processo (Elaboração) para garantir que o sistema atenderá aos requisitos funcionais e não-funcionais;
Com a arquitetura definida, o processo de construção é mais simples;
Desenvolvimento de software com UML 23
“Espírito” do RUP
Considere continuamente a Qualidade O controle de qualidade deve ser feito
desde o início do processo de desenvolvimento
Inspeção de software; Teste dos casos de uso implementados; Definição de casos de teste a partir dos casos
de uso;
Desenvolvimento de software com UML 24
“Espírito” do RUP
Desenvolvimento Iterativo “Impossível” desenvolver o sistema em
uma única iteração; A cada iteração mais detalhes são
adicionados; Diversas vantagens:
Redução da Complexidade; Facilidade para lidar com mudanças nos
requisitos, cronograma, etc.
Desenvolvimento de software com UML 25
Conceitos do RUP
Fases e Iterações Fluxos de Atividades Atividades Artefatos Responsáveis
Desenvolvimento de software com UML 26
Estrutura do RUP Processo Iterativo, baseado no modelo
Espiral Iterativo: baseado em sucessivas versões Espiral
Desenvolvimento de software com UML 27
Fases do RUP
Concepção Elaboração Construção Transição Estabelecer o
escopo e viabilidade
econômica do projeto
Eliminar principais
riscos e definir arquitetura
estável
Desenvolver o produto até
que ele esteja pronto para beta testes
Entrar no ambiente do
usuário
Desenvolvimento de software com UML 28
Fases e Iterações
Cada fase pode comportar diversas iterações
Concepção Elaboração Construção Transição
tempo
Iteração preliminar 1 2 i i+2 i+3 ... j j+1 ...
grandes marcos
Desenvolvimento de software com UML 29
Concepção Elaboração Construção Transição
Marco dos objetivos
do ciclo de vida
Marco da arquitetura do ciclo de
vida
Marco da capacidade operacional
inicial
Marco de lançamento do produto
tempo
Marcos
O projeto poderá ser anulado ou completamente repensado caso o marco
não seja atingido.
Desenvolvimento de software com UML 30
Fluxos de Atividades do RUP Agrupam atividades correlacionadas Fluxos de atividades básicos:
modelagem do negócio requisitos análise e projeto implementação testes distribuição
Fluxos de atividades de suporte: gerência de configuração e mudanças gerência do projeto configuração do ambiente
Desenvolvimento de software com UML 31
Fases, Iterações e Fluxos de Atividades
Fonte: Rational
Desenvolvimento de software com UML 32
Responsáveis, Atividades e Artefatos
Os fluxos de atividades do RUP são descritos através de responsáveis, atividades e artefatos
Fonte: Rational
Desenvolvimento de software com UML 33
Conceitos-chave
Desenvolvimento de software com UML 34
Modelagem do Negócio
Objetivos: descobrir “o problema por trás do
problema” entender a estrutura e dinâmica da
organização assegurar que os clientes, usuários e
desenvolvedores têm a mesma visão do negócio
descobrir os requisitos do sistema necessários para suportar o negócioDesenvolver um modelo do negócioDesenvolver um modelo do negócio
Desenvolvimento de software com UML 35
Modelagem do Negócio
Glossário Modelo de
Casos de Uso do Negócio
Modelo de Objetos do Negócio
Fonte: Rational
Desenvolvimento de software com UML 36
Requisitos
Objetivos: descrever o quê o sistema deve fazer, em
acordo com o cliente e usuários definição de como gerenciar escopo e
mudanças de requisitos delimitar o escopo do sistema e prover uma
base para o planejamento das iterações definir a interface com o usuário
Desenvolvimento de software com UML 37
Requisitos
Glossário Documento de
Visão Especificações
Suplementares Modelo de
Casos de Uso Protótipo da
Interface com o Usuário
Desenvolvimento de software com UML 38
Análise e Projeto
Objetivos: transformar os requisitos em um modelo para
implementação do sistema encontrar uma arquitetura robusta para o
sistema
Análise: assegura que os requisitos funcionais são
tratados
Projeto: adapta os resultados da análise aos requisitos
não funcionais e ambiente de implementação
Desenvolvimento de software com UML 39
Análise e Projeto
Fonte: Rational
Desenvolvimento de software com UML 40
Análise e Projeto
Fonte: Rational
Desenvolvimento de software com UML 41
Implementação Objetivos:
implementar os componentes necessários testar os componentes implementados
como unidades integrar os componentes implementados
em um sistema executável
Desenvolvimento de software com UML 42
Implementação
Modelo de Implementação
Componentes implementados
Subsistemas implementados
Fonte: Rational
Desenvolvimento de software com UML 43
Testes
Objetivos: verificar a interação e integração dos
componentes verificar se todos os requisitos foram
corretamente implementados identificar defeitos e assegurar as
correções de acordo com as prioridades de entrega de cada componente
Desenvolvimento de software com UML 44
Testes
Plano de Teste Modelo de Teste Casos de Teste Procedimentos de
Teste Lista de defeitos Avaliação dos
Testes
Fonte: Rational
Desenvolvimento de software com UML 45
Distribuição
Objetivo: entregar o produto aos usuários finais
Muito dependente do contexto do negócio e do projeto => precisa ser configurado
Desenvolvimento de software com UML 46
Distribuição Possíveis atividades:
produzir o (que falta do) software scripts de instalação, documentação para o usuário,
programas para conversão de dados, etc. embalar e distribuir o software instalar o software realizar migração
troca de sistema antigo pelo novo, conversão de dados
treinamento do usuário aceitação formal pelo cliente planejamento e condução de beta testes
Desenvolvimento de software com UML 47
Gerência de Projeto Objetivos:
prover um framework para gerenciar projetos e riscos
prover orientações para o planejamento de atividades, definição da equipe, execução e monitoração de projetos
Planejamento e monitoração das iterações!Planejamento e monitoração das iterações!
Desenvolvimento de software com UML 48
Gerência de Projeto
Plano de Negócios
Plano do Desenv. do Software:
• plano de métricas• lista de riscos• plano do projeto• plano da iteração
Fonte: Rational
Desenvolvimento de software com UML 49
Gerência de Configuração e Mudanças
Objetivos: identificar, definir e manipular itens de
software controlar modificações e versões destes
itens reportar e armazenar a situação dos itens e
as solicitações de mudanças garantir a completude, consistência e
corretude dos itens controlar o armazenamento, manipulação e
entrega destes itens
Desenvolvimento de software com UML 50
Gerência de Configuração e Mudanças
Plano de gerência de configuração
Fonte: Rational
Desenvolvimento de software com UML 51
Configuração do Ambiente Objetivo:
prover o processo e as ferramentas necessárias ao desenvolvimento
Possíveis Atividades: configurar o RUP desenvolver guidelines selecionar e adquirir ferramentas adaptar ou desenvolver ferramentas suportar o ambiente de desenvolvimento
(backups, administração de contas, etc.) treinamento implantação do RUP na organização
Desenvolvimento de software com UML 52
Configuração do Processo
Processo para um projeto x Processo para a organização
Processo para um projeto considerar tamanho, reuso, tipo do ciclo
(inicial x de evolução)
Processo para a organização considerar cultura, pessoas, tecnologias e
aplicações chave, ...
Desenvolvimento de software com UML 53
Análise Estruturada Proposta por uma diversidade de
autores nas décadas de 1980 e 1990 Fundamentação:
Programação Estruturada Estruturas de repetição, decisão e seqüência
Projeto Estruturado Principal mecanismo de abstração:
decomposição funcional Ciclo de Vida Cascata
Processo Seqüencial Linear
Desenvolvimento de software com UML 54
Marco dos Objetivos do Ciclo de Vida
Análise dos objetivos do ciclo de vida do projeto e tomada de decisão de prosseguir com o projeto ou cancelá-loCritérios de Avaliação
Consentimento dos envolvidos sobre a definição do escopo e as estimativas de custo/programação.
Consenso de que o conjunto correto de requisitos foi capturado e de que existe uma compreensão compartilhada desses requisitos.
Consenso de que as estimativas de custo/programação, as prioridades, os riscos e o processo de desenvolvimento são adequados.
Todos os riscos foram identificados e existe uma estratégia atenuante para cada um.
Desenvolvimento de software com UML 55
Marco da Arquitetura do Ciclo de Vida
Exame nos objetivos e o escopo do sistema, a opção de arquitetura e a resolução dos principais riscos.Critérios de Avaliação
A Visão e os requisitos do produto são estáveis. A arquitetura é estável. As abordagens principais a serem usadas no teste e na
avaliação foram comprovadas. O teste e a avaliação de protótipos executáveis
demonstraram que os principais elementos de risco foram tratados e resolvidos com credibilidade.
Os planos de iteração para a fase de construção têm detalhes e fidelidade suficientes para permitir o avanço do trabalho. Os planos de iteração para a fase de construção são garantidos por estimativas confiáveis. Todos os envolvidos concordam que a visão atual poderá ser atendida se o plano atual for executado para desenvolver o sistema completo, no contexto da arquitetura atual. A despesa real em oposição à despesa planejada com recursos é aceitável.
Desenvolvimento de software com UML 56
Marco da capacidade operacional inicial
Produto pronto para ser passado para a Equipe de Transição.
Toda a funcionalidade desenvolvida e os testes alfa (se houver algum) foram concluídos.
Manual do usuário desenvolvido e uma descrição do release atual.Critérios de Avaliação
Envolvem respostas para as questões: Este release do produto é estável e desenvolvido o suficiente
para ser implantado na comunidade de usuários? Todos os envolvidos estão prontos para a transição para a
comunidade de usuários? As despesas reais com recursos ainda são aceitáveis se
comparadas com as planejadas?
Desenvolvimento de software com UML 57
Marco do Release do Produto Decisão se os objetivos foram
atendidos e se outro ciclo de desenvolvimento deve ser iniciado.
Pode coincidir com o fim da fase de iniciação do próximo ciclo.
O Marco do Release do Produto é o resultado da conclusão com êxito dos Artefatos