introdução ao rup
DESCRIPTION
Slides utilizados em sala de aulaTRANSCRIPT
http://www.takenami.com.br
Introdução ao RUPIgor Takenami
Versão 1.0
[email protected]://twitter.com/itakenami
http://www.takenami.com.br
Problemas no Desenv. de Software
http://www.takenami.com.br
O problema...
http://www.takenami.com.br
...depende do ponto de vista!!!
http://www.takenami.com.br
Motivação
• Precisamos saber com clareza:
- Complexidade
- Tamanho
• Para definir um solução
- Eficaz
- Eficiente
http://www.takenami.com.br
Metodologia p/ Desenvolvimento de Software
FerramentaLinguagem
Processo
http://www.takenami.com.br
Melhores Práticas para Desenv. de Software
• Desenvolvimento interativo
• Gerenciamento de Requisitos
• Arquitetura baseada em Componentes
• Modelo de Software Visual
• Verificação contínua da qualidade do Software
• Gerenciamento e controle de mudanças
http://www.takenami.com.br
Desenvolvimento Iterativo
Desenvolvimento em Cascata
Desenvolvimento Iterativo
http://www.takenami.com.br
Desenvolvimento Iterativo
Teste
Modelagem de Negócio
RequisitosAnálise & Projeto
Desenvolvimento
Avaliação
Implementação
http://www.takenami.com.br
Vantagens do Desenvolvimento Iterativo
• Os riscos são atacados mais cedo
• Mudanças nos requisitos
• Refinamento de arquitetura
• Aprendizado e aprimoramento
• Aumento do reuso
http://www.takenami.com.br
Gerenciamento de Requisitos• Requisitos não são óbvios
• Requisitos não são facilmente expresso em palavras
• Existem vários tipos de requisitos em diferentes níveis de detalhes
• O número de requisitos pode explodir
• Requisitos estão interligados
• Existem várias pessoas interessadas nos requisitos
• Requisitos mudam
http://www.takenami.com.br
Arquitetura Baseada em Componentes
• Define uma arquitetura modular
• Facilita o reúso
• Arquiteturas e componentes prontos
• Permite escalabilidade
• Facilita manutenção
http://www.takenami.com.br
Arquitetura Baseada em Componentes
http://www.takenami.com.br
Modelagem Visual• Ajuda a entender sistemas complexos
• Facilita a linguagem e comunicação entre o mundo real e o que vai ser desenvolvido
• Explora e compara alternativas
• Forma uma base para a implementação
• Facilita a captura dos requisitos
• Comunica as decisões sem ambigüidades
http://www.takenami.com.br
Modelagem Visual
http://www.takenami.com.br
Modelagem Visual
http://www.takenami.com.br
Modelagem Visual - Software
http://www.takenami.com.br
Verificação Contínua da Qualidade
• O que é qualidade?
• Onde está a qualidade?
- Qualidade do Processo
- Qualidade do Produto
• Gerência da qualidade consiste em:
- Identificar métricas
- Coletar dados
- Identificar os pontos que afetam a qualidade o quanto antes
- Alinhar a equipe ao processo adotado
http://www.takenami.com.br
Gerência de Mudanças• Controla:
- Os artefatos criados
- Acesso aos artefatos
- Mudanças nos artefatos
- Baselines
- Geração dos Releases
• Controlando Mudanças de Software
http://www.takenami.com.br
Gerência de Mudanças
http://www.takenami.com.br
Solução sugerida pela Rational
FerramentaRose, etc..
LinguagemUML
ProcessoRUP Quem é a Rational?
http://www.takenami.com.br
O que é RUP?• O RUP (Rational Unified Process) é um
framework para desenvolvimento de software criado pela empresas Rational
• Tem como objetivo oferecer um processo de desenvolvimento “bem definido” e “bem gerido”
• Utiliza as 6 melhores práticas de desenvolvimento de software
http://www.takenami.com.br
Características do RUP• Utiliza desenvolvimento Iterativo e Incremental
• Sustentado em UML
• Dirigida por caso de uso (use-case driven)
- A identificação de casos de uso e cenários típicos conduz todo o processo de desenvolvimento, desde a análise de requisitos até o teste do sistema final
• Centrado na arquitetura
- Promove a definição inicial de uma arquitetura de software robusta, que facilita o desenvolvimento, reutilização e manutenção
• Define: Quem?, Como?, O que? e Quando?
http://www.takenami.com.br
Principais Conceitos• Fases
- Define as etapas para desenvolvimento do software
- Diferente do modelo cascata um fase envolve várias atividades que vai desde a modelagem a implantação
- Cada fase é dividida em iterações
• Disciplinas
- Agrupam workflow com os mesmo objetivos
- Definem áreas de conhecimento utilizada no framework
- Também conhecido como Core Workflow
http://www.takenami.com.br
Gráfico das Baleias
http://www.takenami.com.br
Outros Conceitos• Fluxo de Trabalho
- Agrupam atividades relacionadas
• Atividades
- São tarefas que podem ser entregues a trabalhadores individuais
• Artefato
- São inputs e outputs de actividades
• Modelos
- Agrupam artefactos desenvolvidos num workflow
• Papeis (workers)
- São perfis a que correspondem competências para a realização de atividades
http://www.takenami.com.br
Papeis (Workers) - Quem?Atividades (Activities) - Como?Artefatos (Artifacts) - O Que?
Fluxo de Trabalho (Workflows) - Quando?
Definições dos Conceitos
http://www.takenami.com.br
Referência do RUP
http://www.takenami.com.br
• Fases
• Disciplinas
• Workflow
• Atividades
• Artefatos
• Modelos
• Papeis (workers)
Entendendo os Conceitos
http://www.takenami.com.br
• Concepção (Inception)
- Definição do escopo do projeto, identificação dos atores, casos de uso e descrição dos mais significativos
• Elaboração (Elaboration)
- Análise do sistema, definição da arquitetura de software
• Construção (Construction)
- Desenvolvimento iterativo e incremental do produto
• Transição (Transition)
- Atividades de “entrega” do software
Fases
http://www.takenami.com.br
Concepção• Estabelecer o escopo e os limites, com critérios
de aceitação bem definidos
• Discriminar os casos de usos críticos
• Exibir uma arquitetura candidata
• Estabelecer estimativa de: Custo, Esforço e Cronograma
• Preparar o ambiente do projeto
http://www.takenami.com.br
Concepção - Milestone• Viabilidade
- Examina os objetivos e decide seguir ou cancelar o projeto
• Critério de avaliação
- Entendimento e acordo com os requisitos
- Credibilidade no equilíbrio de: esforço x custo x cronograma
- Acerto das prioridades
http://www.takenami.com.br
Elaboração• Levantamento e elicitação da maioria dos
requisitos
• Identificação dos riscos mais significativos
• Tamanho real do projeto
• Estabelecer uma arquitetura
• Provar que a arquitetura funciona
• Produzir um protótipo evolucionário
• Estabelecer um ambiente
http://www.takenami.com.br
Elaboração - Milestone• Examina os objetivos, arquitetura e riscos do
projeto
• Critério de avaliação
- Requisitos, visão e arquitetura estáveis
- Verificar que, com os protótipos, todos os riscos foram atacados
- Planos de Iteração da fase de construção
- Despesas atuais batem com estimadas
http://www.takenami.com.br
Construção• Desenvolver incrementalmente e lançar as
versões de teste (alpha, beta)
• Completar o desenvolvimento de todos os Casos de Uso
• Casos de Uso com maior prioridade e/ou risco de desenvolvimento primeiro
• Cada iteração é um mini-projeto: Análise, projeto,codificação, teste e integração
http://www.takenami.com.br
Construção - Milestone• Sistema e manual
• Critério de avaliação
- O Sistema passou em todos os testes de integração?
- O sistema já esta maduro o suficiente pra ser entregue?
- Os stakeholders estão prontos para usá-lo?
• Despesas reais versus planejadas continuam aceitaveis?
http://www.takenami.com.br
Transição• Conversão do ambiente para produção
• Treinamento de usuários e manutenção
• Suporte ao usuário
http://www.takenami.com.br
Transição - Milestone• Os objetivos foram cumpridos?
• Critério de avaliação
- O usuário está satisfeito
- Despesas reais versus planejadas continuam aceitáveis?
• Gerar base de conhecimento para próximo projeto
http://www.takenami.com.br
Ciclo de vida do RUP• Cada fase pode ser dividida em iterações
• Cada iteração é incremental pois envolvem todas as disciplinas
http://www.takenami.com.br
Iterações• Cada iteração resulta num incremento ao
produto
- Tipicamente é analisado e implementado um grupo de casos de utilização ou de variantes de casos de utilização
• Cada iteração passa pelos workflows técnicos
- Importância relativa dos workflows varia com as fases
http://www.takenami.com.br
Disciplinas• Agrupa os workflows de atividades correlatas
• Dividem-se em 2 grupos:
- Engenharia
- Suporte
http://www.takenami.com.br
Organização das Disciplinas
http://www.takenami.com.br
Workflow• Sequência de atividades que produzem um
resultado de valor observável
• Geralmente expresso em um diagrama de atividade
• Organizado em disciplinas
http://www.takenami.com.br
Workflow
http://www.takenami.com.br
Workflow
http://www.takenami.com.br
Atividades• Unidade de trabalho com um propósito claro
• Pode ser decomposto em vários passos
• Os passos podem ser visto como tarefas
• Possui sempre um responsável
http://www.takenami.com.br
Atividades• Exemplos:
- Identificar casos de uso e atores
a) Worker: Analista de Sistemas
- Revisar o projeto
a) Worker: Revisor de Projeto
- Executar teste de desempenho
a) Worker: Testador de desempenho
http://www.takenami.com.br
Atividades
http://www.takenami.com.br
Atividades• A atividade Find Use Case and Actors se
decompõe nos passos:
- Identificar os atores
- Identificar os casos de uso
- Descrever a interação entre os atores e uc
- Organizar em pacotes
- Apresentar o modelo em um diagrama
- Avaliar os resultados
http://www.takenami.com.br
Artefatos• Tudo que é produzido durante o
desenvolvimento
• Artefato x Produto
• Sujeito a Gerencia de Configuração
• Mantidos por controle de versão
http://www.takenami.com.br
Artefatos
http://www.takenami.com.br
• Conjunto de artefatos gerados num workflow
• Modelo de Negócio
• Modelo da Arquitetura
• Esboço do artefato a ser desenvolvido
Modelos
http://www.takenami.com.br
Papeis (Workers)• Define o comportamento e as responsabilidades
de um indivíduo em uma equipe
• Um pessoas pode assumir mais de um papel dentro do projeto
http://www.takenami.com.br
Papeis (Workers)
http://www.takenami.com.br
Papeis (Workers)
http://www.takenami.com.br
Principais Valores do RUP• Visão
• Planejamento
• Riscos
• Arquitetura
• Prototipagem
• Mudanças
http://www.takenami.com.br
Dúvidas ?