UNIVERSIDADE FEDERAL DO MATO GROSSO
ENGENHARIA DE
SOFTWARE II
Rational Unified Process (RUP)
AULA 2
Profª MSc. MICHELLE DE OLIVEIRA
PARREIRA
[email protected]
RATIONAL UNIFIED
PROCESS - RUP
RUP
2
O que é o RUP

Abordagem de desenvolvimento de software
◦ iterativa, centrada em arquitetura, e dirigida por casos de uso.

Processo de engenharia de software definido e estruturado:
◦ define quem faz o que, como e quando. Possui ainda uma
estrutura definida para o ciclo de vida de um projeto, articulando
marcos e pontos de decisão.

Produto (IBM/Rational):
◦ framework de processo personalizável para
engenharia de software.
RUP
3
Princípios essenciais

“Filho” do Processo Unificado (UP).

Define uma arquitetura executável no início.

Acomoda mudanças desde o início.

Ataca os maiores riscos primeiro.

Garante entregas significativas ao cliente.

Mantém o foco em software executável.

Visa Construir sistemas a partir de componentes.

Trabalho em equipe é requerido.

Faz da qualidade um “modo de vida”, não um alvo.
RUP
4
Paradigma do RUP

Centrado na arquitetura

Iterativo e incremental

Dirigido por casos de uso
RUP
5
Centrado na arquitetura

A arquitetura é a organização fundamental do
sistema como um todo, incluindo elementos
estáticos e dinâmicos e sua interação.

Consequências:
◦
◦
◦
◦
◦
Possibilita o entendimento da visão geral;
Organiza o esforço de desenvolvimento;
Facilita as possibilidades de reuso;
Facilita a evolução do sistema;
Dirige a seleção de casos de uso relevantes.
RUP
6
Arquitetura como Ponte
REQUISITOS
ARQUITETURA
CÓDIGO
Fonte: Garlan (2000)
RUP
7
Dirigido por casos de uso

Os casos de uso dirigem (guiam) todo o trabalho de
desenvolvimento, desde a captação inicial e negociação de
requisitos até a aceitação do código.

Justificativas:
◦ São expressos sob a perspectiva do usuário;
◦ São expressos em linguagem natural;
◦ Oferecem uma habilidade maior para a compreensão dos requisitos
reais do sistema;
◦ Oferecem a habilidade para atingir um alto grau de rastreabilidade de
requisitos;
◦ Oferecem um meio simples de decompor os requisitos em partes
(módulos, pacotes), que permitem a alocação de trabalho a
subequipes, facilitando a gerência do projeto.
RUP
8
Abordagem iterativa
Acomoda mudanças de requisitos.
 Integração não é mais feita como “big bang”,
no final do projeto.
 Riscos descobertos e tratados durante as
integrações iniciais.
 Gerenciamento tem um significado de fazer
mudanças táticas no produto.
 Reuso é facilitado.

RUP
9
Abordagem iterativa
Defeitos podem ser encontrados e corrigidos
ao longo das iterações.
 Otimiza a execução de funções da equipe de
projeto.
 Membros da equipe aprendem ao longo do
projeto.
 O processo de desenvolvimento é evoluido e
refinado ao longo do projeto.

RUP
10
Organização estrutural do RUP
RUP
11
Estruturas
Estrutura dinâmica: dimensão horizontal que
representa o tempo do processo. Mostra
como o processo, expresso em termos de
ciclos, fases, iterações e marcos, desenvolve-se
ao longo do ciclo de vida de um projeto.
 Estrutura estática: dimensão vertical que
descreve como os elementos do processo
(atividades, disciplinas, artefatos e papéis) são
logicamente agrupados em temas (disciplinas
ou fluxos).

RUP
12
Estrutura dinâmica
RUP
13
Ciclo
Um ciclo de desenvolvimento é um período
de tempo que envolve do começo do projeto
até a entrega do produto (ou cancelamento).
 Há diferentes ciclos dependendo do produto
como ciclo inicial de desenvolvimento e ciclo
de evolução ou manutenção.

RUP
14
Fase

Cada ciclo no processo é dividida em uma
sequência de quatro fases: Concepção,
Elaboração, Construção, Transição.

As fases sempre existem e são fundamentais,
não por causa do que é executado ou pelo
seu tamanho, mas pelo que é atingido pelos
marcos principais que concluem cada fase.
RUP
15
Ciclos típicos
RUP
16
Marcos principais
O propósito das fases não é particionar as
atividades por tipo (análise, codificação, etc) e
sim executar o suficiente de cada disciplina
para atingir os objetivos da fase no momento
que os marcos são atingidos.
 Os marcos principais do RUP não são
expressos em termos de completar certos
artefatos ou documentos, mas principalmente
em termos de mitigação de riscos e
completude do produto.

RUP
17
Fluxos variáveis
Os marcos principais são constantes em todos
projetos que utilizam o RUP.
 Entretanto, isso não significa que há uma
prescrição fixa ou pré-determinada de um
conjunto de atividades a seguir em todas as
fases.
 Alguns fatores influenciam o trabalho a ser
feito, tais como: tamanho e natureza do
projeto, riscos, número de envolvidos.

RUP
18
Artefatos congelados



Os objetivos de uma fase não estão descritos em termos
de terminar um artefato, mas trazer o nível adequado de
maturidade para tornar-se capaz de tomar as decisões
corretas.
À medida que o projeto evolui mais entendimento é
obtido a respeito dos objetivos, à medida que novas
dificuldades são descobertas, mudanças são introduzidas,
artefatos são revisados, atualizados e corrigidos.
Portanto, atividades já realizadas são executadas
novamente, com maior grau de refinamento.
RUP
19
Fase concepção

Objetivos:
◦
◦
◦
◦
◦

Entender o que será construído;
Identificar funcionalidades-chave do sistema;
Determinar pelo menos uma solução possível;
Entender o cronograma, custos e riscos do projeto;
Decidir qual processo e ferramentas seguir.
Marco:
◦ Objetivo do ciclo de vida.

Identifique um produto:
___________________
RUP
20
Fase elaboração

Objetivos:
◦ Ter um entendimento detalhado dos requisitos;
◦ Desenhar, implementar e validar a arquitetura;
◦ Mitigar riscos essenciais e produzir um plano mais
refinado;
◦ Preparar o ambiente de desenvolvimento.

Marco:
◦ Arquitetura do ciclo de vida.

Identifique um produto:
___________________
RUP
21
Fase construção

Objetivos:
◦ Minimizar custos de desenvolvimento e atingir certo
grau de paralelismo para melhorar o desempenho no
projeto;
◦ Desenvolver iterativamente um produto pronto para
a comunidade de usuários.

Marco:
◦ Capacidade operacional inicial.

Identifique um produto: __________________
RUP
22
Fase Transição

Objetivos:
◦ Realizar testes beta para validar expectativas dos usuários;
◦ Treinar usuários e demais envolvidos visando sua
independência.
◦ Preparar ambiente e converter banco de dados;
◦ Preparar empacotamento e distribuição;
◦ Obter lições aprendidas;

Marco:
◦ Liberação do produto para produção.

Identifique um produto: _____________________________
RUP
23
Iteração



Dentro de cada fase podem existir uma ou mais
iterações.
Software é desenvolvido em cada iteração, que é
concluída em uma revisão secundária (minor milestone),
incluindo uma liberação (release) interna ou externa
que torna-se um ponto de avaliação do progresso do
projeto.
O produto cresce de forma incremental, à medida que
são feitas as iterações e suas atividades.
RUP
24
Iterações por fase
RUP
25
Build
Dentro de cada iteração, os vários
desenvolvedores ou times podem produzir
builds de software; em alguns casos em
frequências elevadas, até diariamente.
 Isso permite integração contínua, testes
(inclusive de regressão) e indicadores gerais
de progresso.
 Frequentemente, o último build de uma
iteração é parte da liberação daquela iteração.

RUP
26
Fluxo
Sequência organizada e coerente, que produz
algum resultado significativo.
 Mostra a interação entre papéis, atividades e
artefatos.
 Os principais tipos de fluxo são:

◦ Disciplinas
◦ Detalhes das disciplinas.
RUP
27
Disciplina

As disciplinas representam uma partição de todos os papéis
e atividades em agrupamentos lógicos, organizados por
áreas de conhecimento ou especialidade.

Dividem-se em:
◦ Disciplinas técnicas.
◦ Disciplinas de apoio.
RUP
28
Disciplinas

Disciplinas técnicas
◦ Modelagem de negócio;
◦ Requisitos;
◦ Análise e desenho;
◦ Implementação;
◦ Implantação;
◦ Teste;

Disciplinas de apoio:
◦ Gerenciamento de projetos;
◦ Gerencia de configuração;
◦ Ambiente.
RUP
29
Atividade
Uma unidade de trabalho que deve ser
desenvolvida. Tem um propósito claro,
usualmente expresso em termos de criação
ou atualização de algum artefato, modelo,
componente ou plano.
 Atividade é uma subdivisão de Iteração.
 A cada atividade é atribuído um papel
específico. Exemplos:

◦ Elaborar caso de uso => Analista de requisitos;
◦ Preparar plano de projeto => Gerente de projeto.
RUP
30
Papel
É um “chapéu” que um indivíduo ou grupo
coloca em um dado momento, no projeto.
 Um indivíduo pode desempenhar vários
papéis, que não podem ser confundidos com
cargos na organização.
 Exemplos de papéis:

◦ Desenhista (designer);
◦ Analista de requisitos;
◦ Testador.
RUP
31
Artefato
Conjunto de informações produzido,
modificado ou utilizado num processo.
 Traduz-se num produto (plano, desenho,
código, etc).
 São elementos tangíveis de um projeto: coisas
que um projeto produz ou usa enquanto o
trabalho é executado.
 Tipos de artefato: modelos, elementos de
modelo, documento, código fonte, executável.

RUP
32
Elementos adicionais
Guias
 Gabaritos (templates)
 Mentor de ferramenta
 Conceitos
 Roteiros

RUP
33
Planejamento de projetos

Conceitos-chave:
◦
◦
◦
◦
Ciclo.
Fase.
Iteração.
Build.
RUP
34
Estratégia de planejamento
Devido ao fato do processo iterativo ser
altamente dinâmico, adaptável e desenhado
para acomodar mudanças, não é interessante
gastar tempo e esforço produzindo planos
detalhados que ultrapassem o horizonte do
projeto.
 Planos “burocráticos” são difíceis de manter,
tornando-se rapidamente obsoletos; são
tipicamente ignorados pela organização, após
algumas semanas.

RUP
35
Plano de projeto e iterações

A abordagem iterativa e incremental
estabelece dois tipos de planejamento:
◦ Alto-nível (coarse-grain): contido no plano de
projeto, que aborda as fases, iterações, seus
objetivos e informações gerais. Há um plano
por projeto.
◦ Baixo-nível (fine-grain): contido em planos
de iteração, que traz as atividades e
recursos individuais. Há um plano por
iteração.
RUP
36
Plano de projeto



Gerentes de níveis superiores e stakeholders raramente
se interessam por detalhes sobre quem está fazendo o
que e quando. O foco gerencial está no produto final,
datas de liberação, marcos significativos…
Decisões importantes devem ser tomadas pelo gerente,
no sentido de avaliar o progresso geral do projeto e
solucionar problemas.
O plano de projeto é um plano de alto nível, que atua
como um “envelope” para os planos detalhados de cada
iteração.
RUP
37
Plano de iteração
Plano detalhado e com tempo bem definido,
com um intervalo de tempo suficientemente
pequeno para prover a equipe de um tipo de
detalhamento com o qual ela está acostumada.
 Deve definir tarefas e alocação de cada
membro da equipe.
 Em alguns projetos, o plano de iteração
corresponde a uma simples lista de “tarefas
por fazer”.

RUP
38
Problemas gerenciais - gerais




Organização funcionalmente especializada, ao invés de
equipes multifuncionais (burocracia).
Falta de definição clara sobre as expectativas dos
stakeholders, que podem esperar os mesmos resultados de
um processo cascata.
Alocação de muitos desenvolvedores no começo do
projeto, antes de entender bem o que fazer.
Resolver as questões fáceis primeiro ao invés de tratar as
questões de maior risco.
RUP
39
Problemas gerenciais - tempo
Iteração inicial muito longa, tentando fazer
muitas coisas no começo.
 Iterações sobrepostas, iniciando a próxima
iteração sem o feedback da anterior. Confusão
típica de quem não domina o RUP.
 Mudanças excessivas nos momentos finais do
projeto, levando a atrasos.

RUP
40
Problemas técnicos - equipe




Número excessivo de casos de uso, tratando-os como uma
decomposição funcional e tornando os requisitos
incompreensíveis.
“Paralisia da análise”, devido ao excesso de detalhes.
Inclusão de decisões de desenho nos requisitos, forçando
decisões prematuras.
Falta de comprometimento dos clientes, levando a um
sistema potencialmente rejeitável.
RUP
41
Problemas técnicos - gerente
Mentalidade “o que não foi inventado aqui não
presta”, reduzindo reuso.
 Fim da elaboração antes da maturidade da
arquitetura, causando retrabalho.
 Foco em inspeções e revisões ao invés de
software executando, causando um processo de
garantia de qualidade ineficiente, abordando
apenas documentos ao invés do executável.

RUP
42
Alguns dados históricos sobre o RUP

Durações típicas de projetos:
◦ De 6 semanas a 54 meses.

Durações típicas de uma iteração:
◦ De 2 semanas a 6 meses.

Quantidade típica de iterações por projeto:
◦ De 3 a 9 iterações.

Quantidade de artefatos definidos:
◦ Aproximadamente 100.

Quantidade de papéis definidos:
◦ Aproximadamente 30.
RUP
43
Fases de Planejamento
As fases não são idênticas em termos de programação e esforço. Embora isso varie muito
de acordo com o projeto, um ciclo de desenvolvimento inicial típico para um projeto de
tamanho médio deve prever a seguinte distribuição de esforço e programação:
Esforço
Programação
Iniciação
~5 %
10 %
Elaboração
20 %
30 %
Construção
65 %
50 %
Transição
10%
10%
Fonte: http://www.wthreex.com/rup/portugues/index.html
RUP
44
Iterações por fase
Tamanho do
projeto (pessoas)
3
10
80
Duração do
projeto (m)
4
8
20
Iterações por fase
Duração por Concepção Elaboração Construção Transição
iteração (s)
2-3
1
1
3
1
4
1
2
3
2
7-8
2
3
4
2
RUP
45
Detalhamento das disciplinas

Disciplinas técnicas
◦ Modelagem de negócio;
◦ Requisitos;
◦ Análise e desenho;
◦ Implementação;
◦ Implantação;
◦ Teste;

Disciplinas de apoio:
◦ Gerenciamento de projetos;
◦ Gerencia de configuração;
◦ Ambiente.
RUP
46
Modelagem de negócio

Objetivos
◦ Entender a estrutura e a dinâmica da organização na
qual o sistema deve ser implantado.
◦ Entender os problemas atuais e identificar melhorias
potenciais.
◦ Garantir um entendimento comum entre clientes,
usuários e desenvolvedores.
◦ Derivar os requisitos de sistemas necessários.
RUP
47
Modelagem de negócio

Principais papéis:
◦
◦
◦
◦

Analista de negócio
Desenhista de processo de negócio
Stakeholders
Revisores
Principais artefatos:
◦
◦
◦
◦
◦
Documento de visão de negócios
Modelo de casos de uso de negócio
Modelo de objetos de negócio
Especificação suplementar de negócio
Glossário de negócio
RUP
48
Requisitos

Objetivos
◦ Estabelecer e manter acordo entre stakeholders sobre
o que o sistema deve fazer
◦ Prover aos desenvolvedores um melhor
entendimento dos requisitos do sistema
◦ Definir as fronteiras do sistema
◦ Prover a base para planejamento do conteúdo técnico
das iterações
◦ Prover a base para estimativas de duração e custo
RUP
49
Requisitos

Principais papéis :
◦ Analista de sistemas
◦ Especificador de casos de uso
◦ Desenhista de interfaces com usuário

Principais artefatos:
◦ Glossário
◦ Descrição dos casos de uso
◦ Protótipos de interface com usuário
RUP
50
Análise e desenho

Objetivos
◦ Traduzir os requisitos em uma especificação que
descreva como implementar o sistema
◦ Selecionar a melhor estratégia de implementação
◦ Estabelecer uma arquitetura robusta para a aplicação
RUP
51
Análise e desenho

Principais papéis :
◦
◦
◦
◦

Arquiteto
Desenhista
Desenhista de banco de dados
Revisor
Principais artefatos:
◦ Modelo de análise
◦ Modelo de desenho
◦ Documento de arquitetura de software
RUP
52
Implementação

Objetivos
◦ Definir a organização do código em termos de
subsistemas e camadas
◦ Implementar classes, objetos e componentes
◦ Testar unidades criadas
◦ Integrar em um ambiente executável os resultados
produzidos individualmente
RUP
53
Implementação

Principais papéis :
◦
◦
◦
◦

Implementador
Integrador de sistemas
Arquiteto
Revisor de código
Principais artefatos:
◦ Implementação de subsistema
◦ Componente
◦ Plano de integração
RUP
54
Testes

Objetivos
◦ Verificar a interação dos atores com cada
componente.
◦ Verificar a integração entre os componentes.
◦ Verificar a implementação correta de todos os
requisitos.
◦ Identificar e garantir que todos os defeitos
descobertos sejam tratados.
RUP
55
Testes

Principais papéis :
◦ Desenhista de testes
◦ Testador

Principais artefatos:
◦
◦
◦
◦
◦
Plano de testes
Modelo de testes
Resultados dos testes
Modelo de carga
Defeitos gerados
RUP
56
Gerenciamento de configuração e mudanças

Objetivos
◦ Rastrear e manter a integridade do projeto.
◦ Habilitar membros da equipe a identificar e localizar
artefatos, selecionar a versão adequada e avaliar o
histórico do artefato.
◦ Acompanhar a evolução do projeto.
RUP
57
Gerenciamento de configuração e mudanças

Principais papéis :
◦
◦
◦
◦
◦

Gerente de configuração
Gerente de controle de mudanças
Implementador
Integrador
Arquiteto
Principais artefatos:
◦
◦
◦
◦
Plano de gerenciamento de configurações
Requisições de mudança
Modelo de implementação
Métricas e relatórios de status
RUP
58
Gerenciamento de projetos

Objetivos
◦ Prover uma estrutura para gerenciar projetos de
desenvolvimento.
◦ Prover diretrizes práticas para planejar, executar,
apoiar e monitorar projetos.
◦ Prover uma estrutura para gerenciar riscos.
RUP
59
Gerenciamento de projetos

Principais papéis:
◦ Gerente de projetos

Principais artefatos:
◦
◦
◦
◦
Plano de desenvolvimento de projeto
Plano de iterações
Modelo de negócio
Medidas do projeto
RUP
60
Ambiente

Objetivos
◦
◦
◦
◦
◦
Seleção e aquisição de ferramentas
Configuração e personalização de ferramentas
Configuração de processos
Melhoria dos processos
Prover serviços de apoio: infra-estrutura,
administração de contas, backup, etc.
RUP
61
Ambiente

Principais papéis:
◦
◦
◦
◦
◦
◦
◦

Analista de processos de negócio
Analista de sistemas
Desenhista de interfaces com usuário
Arquiteto
Redator
Administrador do sistema
Especialista em ferramentas
Principais artefatos:
◦ Diretrizes gerais
RUP
62
Implantação

Objetivos
◦
◦
◦
◦
◦
◦
Testar o software no ambiente final (produção).
Empacotar o software para implantação.
Distribuir o software.
Instalar o software.
Treinar os usuários finais.
Migrar o software existente (se for o caso) e
converter sua base de dados
RUP
63
Implantação

Principais papéis:
◦
◦
◦
◦

Gerente de implantação
Gerente de projetos
Redator
Implementador
Principais artefatos:
◦
◦
◦
◦
Software executável.
Artefatos de instalação: scripts, ferramentas, arquivos, guias, etc.
Notas de release.
Material de apoio e treinamento.
RUP
64
ATIVIDADE
65
Exercícios
1) O ciclo de vida de um processo unificado consiste de
quatro fases e nove disciplinas. Cite quais são essas fases
e disciplinas.
2) Explique as quatro fases da representação gráfica do
RUP.
3) Especifique o processo do RUP.
4) Existem problemas no desenvolvimento do software.
Quais os sintomas comuns em projetos que falham?
5) A maioria dos projetos que falham tem algumas causas
em comum. Quais são essas causas?
66
Exercícios
1) O ciclo de vida de um processo unificado consiste de
quatro fases e nove disciplinas. Cite quais são essas
fases e disciplinas.
Fases: concepção, elaboração, construção, transição.
Disciplinas: modelagem de negócios, requisitos, análise e
design, implementação, teste, implantação, gerenciamento
de configuração e mudança, gerenciamento de projeto,
ambiente.
2) Explique as quatro fases da representação gráfica do
RUP.
Concepção: fase que define o escopo do projeto.
Elaboração: fase que define os requisitos e a arquitetura.
Construção: fase de desenvolvimento do sistema.
Transição: fase de implantação do sistema.
67
Exercícios
3)
Especifique o processo do RUP.
Os processos são organizados em disciplinas, para posteriormente
definirem os fluxos de trabalho e outros elementos do processo.
As disciplinas são descritas por meio de fluxos de trabalho que
mostram uma sequência de grupos de atividades que produz um
determinado resultado. Cada grupo de atividades é descrito por
um diagrama de atividade que detalha o fluxo de trabalho. Esses
diagramas mostram todas as atividades do grupo, os papéis
envolvidos e os artefatos de entrada e saída.
4)
Existem problemas no desenvolvimento do software. Quais os
sintomas comuns em projetos que falham?
Entendimento impreciso das necessidades do usuário final; Falta de
habilidade para lidar com mudanças nos requisitos; Módulos que
não se comunicam; Softwares difíceis de manter ou entender;
Descobertas tardias de falhas graves no projeto; Qualidade de
software pobre; Desempenho inaceitável; E processo de
construção-entrega não confiável.
68
Exercícios
5)
A maioria dos projetos que falham tem algumas causas em
comum. Quais são essas causas?
Gerenciamento de requisitos Ad Hoc; Comunicação ambígua e
imprecisa; Arquiteturas falhas; Complexidade alta; Inconsistências não
detectadas nos requisitos, projeto e implementação; Testes
insuficientes; Medição subjetiva do status do projeto;
69
BIBLIOGRAFIA BÁSICA

Engenharia de Software - Ian
Sommerville.
 8ª edição. Pearson
Education

Engenharia de Software
Roger Pressman
 6ª edição. McGraw-Hill

Engenharia de Software
Wilson de Pádua Paula Filho
 2ª edição. LTC
70
AGUARDEM
PRÓXIMO
CONTEÚDO !!!
Contato: [email protected]
Professora MSc. Michelle Parreira
“Aprender é a única coisa de que a mente nunca
se cansa, nunca tem medo e nunca se arrepende”
Leonardo da Vinci
72
Download

Eng Software II - Aula 2 - RUP