Buscar

EP - UML - slide

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 71 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 71 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 71 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

03/03/2012
1
Parte 1
Introdução a orientação a Objetos
1
A estratégia de O-O para modelagem de sistemas baseia-se 
na identificação dos objetos (que desempenham ou sofrem 
ações no domínio do problema) e dos padrões de 
cooperação e interação entre estes objetos.
2
Orientação a 
Objeto
03/03/2012
2
Objeto
• Definição:
– Um conceito, uma abstração com significado específico em um 
contexto
• Propósito:
– representar uma entidade do mundo real
• Objetos possuem:
– Identidade
– Conjunto de características que determinam seu estado
– Comportamento específico definido por um conjunto de ações
3
Orientação a 
Objeto
4
Identidade: ‘Beija-flor Biju’
Características:
penas azuis
bico fino
vôo rápido
Comportamento:
voar
piar
Identidade: ‘Pessoa Mário’
Características:
olhos pretos
nasceu em 16/02/70
pesa 70kg
mede 1,70m
Comportamento:
andar
falar
comer
rir
Exemplo de Objetos
Orientação a 
Objeto
03/03/2012
3
5
Identidade: ‘Telefone da minha casa’
Características:
azul
número 576-0989
tone
Comportamento:
tocar
discar
Características:
cor amarela
placa LXY 7684
30 assentos
a diesel
Comportamento:
frear
andar
correr
buzinar
acelerar
Orientação a 
Objeto
6
Mário
Características
(estado)
Nome = Mário Sá
Nasc = 16/02/70
Salário = 3.000
InformarSalário
CalcularIdade
Identidade
Representação
Funcionário_Mário
Objeto
Orientação a 
Objeto
03/03/2012
4
Classe Pessoa
Objeto 
João
Objeto Ana
7
Diferença entre Classe e Objeto
Orientação a 
Objeto
8
Classe
Funcionário
Nome
Nasc
Salário
InformarSalário
CalcularIdade
Instâncias
(objetos)
Funcionário_Helena
Nome=Helena Reis
Nasc=28/01/1965
Salário = 4.000
InformarSalário
CalcularIdade
Funcionário_Mário
Nome=Mário Sá
Nasc=16/02/1970
Salário = 3.000
InformarSalário
CalcularIdade
Classe
Orientação a 
Objeto
03/03/2012
5
Classe
• Definição:
– Abstrações utilizadas para representar um conjunto de objetos com 
características e comportamento idênticos
• Uma classe pode ser vista como uma “fábrica de objetos”
• Objetos de uma classe são denominados “instâncias”
– Todos os objetos são instâncias de alguma classe
– Todos os objetos de uma classe são idênticos no que diz respeito a sua 
interface e implementação
9
Orientação a 
Objeto
• Descrevem as características das 
instâncias de uma classe
• Seus valores definem o estado do 
objeto
• O estado de um objeto pode mudar 
ao longo de sua existência
• A identidade de um objeto, 
contudo, nunca muda
Funcionário
Nome
Nasc
Salário
InformarSalário
CalcularIdade
Funcionário_Helena
Nome=Helena Reis
Nasc=28/01/1965
Salário = 4.000
InformarSalário
CalcularIdade
Funcionário_Mário
Nome=Mário Sá
Nasc=16/02/1970
Salário = 3.000
InformarSalário
CalcularIdade
10
Atributos
Orientação a 
Objeto
03/03/2012
6
Mensagens
• Objetos são entidades independentes que necessitam se comunicar
– Para obter informações ou ativar o comportamento de objetos, é 
preciso enviar-lhes mensagens
– Ao receber uma mensagem, o objeto busca em seu protocolo um 
método que irá responder a tal mensagem
• Objetos só reagem a mensagens que fazem parte das ações do 
protocolo de sua classe
� Troca de mensagens: Paradigma de comunicação entre objetos
11
Orientação a 
Objeto
12
Funcionário
Nome
Nasc
Salário
InformarSalário
CalcularIdade
Funcionário_Helena
Nome=Helena Reis
Nasc=28/01/1965
Salário = 4.000
InformarSalário
CalcularIdade
Funcionário_Helena
Nome=Helena Reis
Nasc=28/01/1965
Salário = 4.000
InformarSalário
CalcularIdade
?
ERRO!
4000 Informar 
Salário?
Calcular 
Desconto
?
Mensagens
Orientação a 
Objeto
03/03/2012
7
Serviços/Métodos
• Representam o comportamento das instâncias de uma classe
• Correspondem às ações das instâncias de uma classe
Funcionário
Nome
Nasc
Salário
InformarSalário
CalcularIdade
Funcionário_Helena
Nome=Helena Reis
Nasc=28/01/1965
Salário = 4.000
InformarSalário
CalcularIdade
Funcionário_Mário
Nome=Mário Sá
Nasc=16/02/1970
Salário = 3.000
InformarSalário
CalcularIdade
4000
3000
Informar 
Salário?
13
Orientação a 
Objeto
Serviços/Métodos
• Um método é a implementação de uma operação
– possuem argumentos, variáveis locais , valor de retorno, etc
14
Orientação a 
Objeto
03/03/2012
8
• Conceito que expressa similaridades entre classes
• Estabelecem relacionamentos de generalização-especialização (“é-um”) 
entre classes
• Permitem estabelecer hierarquias de classificação
15
Herança
Orientação a 
Objeto
16
Funcionário_Helena
Nome=Helena Reis
Nasc=28/01/1965
Salário = 4.000
InformarSalário
CalcularIdade
Funcionário
Nome
Nasc
Salário
InformarSalário
CalcularIdade
Gerente
Nome
Nasc
Salário
Projeto
InformarProjeto
InformarSalário
CalcularIdade
Gerente_Mário
Nome=Mário Sá
Nasc=16/02/1970
Salário = 3.000
InformarSalário
CalcularIdade
Projeto = SAP
InformaProjeto
Orientação a 
Objeto
03/03/2012
9
17
Subclasse
(características 
específicas)
Superclasse
(características comuns)
Funcionário_Helena
Nome=Helena Reis
Nasc=28/01/1965
Salário = 4.000
InformarSalário
CalcularIdade
Funcionário
Nome
Nasc
Salário
InformarSalário
CalcularIdade
Gerente
Projeto
InformarProjeto
Gerente_Mário
Nome=Mário Sá
Nasc=16/02/1970
Salário = 3.000
Projeto = SAP
InformarSalário
CalcularIdade
InformarProjeto
Todo objeto Gerente “é um” objeto Funcionário
17
Orientação a 
Objeto
Parte 2
UML - Conceitos
18
03/03/2012
10
• UML é uma linguagem para:
– Especificar
– Visualizar
– Construir 
.... artefatos de sistemas de software
• Oferece uma notação para a modelagem de sistemas seguindo 
os conceitos da orientação a objetos.
A UML é uma linguagem para modelagem; ela não guia o desenvolvedor 
em como fazer a análise e projeto orientado a objetos, ou qual processo 
de desenvolvimento deve ser seguido
19
UML
Histórico
• Inicialmente, um esforço de integração dos principais autores de 
métodos OO:
– Ivar Jacobson, Grady Booch e Jim Rumbaugh
• A partir de 1997, foi submetida como candidata a padrão à OMG 
(Object Management Group)
• A UML atualmente está na versão 2
• www.uml.org 
20
UML
03/03/2012
11
Propósitos
• Prover uma linguagem de modelagem visual potente e 
significativa, que represente os conceitos básicos de modelagem 
aceitos por vários métodos e ferramentas
• Prover mecanismos de extensão e especialização que permitam a 
ampliação dos conceitos básicos
• Ser independente de linguagem de programação e de processo de 
desenvolvimento
21
UML
22
• Diferentes aspectos do 
sistema a ser modelado
• Modelo completo só através 
de várias visões
• Metodologias diferentes 
usam os diagramas para 
compor diferentes visões
• Gráficos que descrevem o 
conteúdo de uma visão
• Uma visão pode ser 
composta por vários 
diagramas
Visões Diagramas
UML
03/03/2012
12
23
• Visão Externa
– Diagrama de Casos de Uso 
• Visão Estrutural (Estática)
– Diagrama de Classes
– Diagrama de Objetos
• Visão Comportamental
(Dinâmica)
– Diagrama de Estado
– Diagrama de Atividade
• Visão de Interação
– Diagrama de Sequência
– Diagrama de Colaboração
• Visão da Arquitetura
(Implementação)
– Diagrama de 
Componentes
– Diagrama de Implantação
– Diagrama de Pacotes
Visões e Diagramas da UML
UML
UML – Caso de Uso
24
03/03/2012
13
Simboliza um negócio, onde são definidas as responsabilidades do 
sistema e as do ambiente.
Sistema de NegócioAmbiente Fronteira
25
Casos de Uso - Sistema de Negócio
UML
26
Um caso de uso é uma seqüência de ações que um ator
executa em um sistema com um propósito específico.
Caso de Uso - Definição
UML
03/03/2012
14
27
• Externo ao sistema
• Papel de alguém 
• Abstração de alguma pessoa ou 
coisa que utiliza o sistema, 
inclusive outro sistema
• Tudo aquilo que interage com o 
sistema e que interessa ser 
modelado
Caso de Uso - Ator
UML
28O nome do caso de uso: verbo no infinitivo + substantivo.
Vendedor
Registrar Contrato
Cadastrar Cliente
Adquirir
Suprimentos
Gerente
Caso de Uso - Diagrama
UML
03/03/2012
15
29
Casode Uso - Descrição
A UML não especifica um formato rígido para a modelagem da
descrição de casos de uso, somente para sua diagramação. Ela
pode ser alterada para atender a necessidades específicas,
aumentar a clareza da documentação ou melhorar a
comunicação. Normalmente as descrições são construídas
como um texto explicativo ou passos de um procedimento, em
português.
UML
30
Caso de Uso – Descrição não expandida
Caso de Uso: Fechamento de Conta
Atores: Caixa
Descrição: A partir da solicitação feita por um cliente, garçom se 
identifica e informa ao sistema o número da mesa 
que deseja ter a conta fechada. Ao final, o sistema 
apresentará a relação de produtos consumidos e seus 
valores, garçom que realizou o atendimento e o 
tempo de permanência do cliente no restaurante.
UML
03/03/2012
16
31
Caso de Uso – Descrição expandida
Caso de Uso: Comprar Itens
Atores: Caixa
Descrição: Um cliente chega ao checkout com itens para 
comprar. O caixa registra os itens e recebe o 
pagamento. Ao final, o cliente sai com os itens 
comprados.
Curso Normal
1- caixa passa na leitora de código de barras cada ítem e informa sua
quantidade
2- o sistema verifica que o ítem é válido e apresenta seu valor
3- caixa informa fim dos ítens e solicita fechamento da conta
4- o sistema calcula e apresenta o total
5- caixa recebe o pagamento
6- o sistema emite a nota fiscal
UML
Caso de Uso – Relacionamentos
• Generalização
• Inclusão
• Extensão
32
UML
03/03/2012
17
Caso de Uso – Relacionamento de Extensão
33
V e n d e d o r
C ad a s tra r C l i e n te
R e g is tra r C o n tra to
< < e xte n d > >
UML
Caso de Uso – Relacionamento de Inclusão
34
Efetivar Saque
Caixa Realizar Saque com Cheque
<<inc lude >>
Cliente Realizar Saque com Cartão
<<include>>
UML
03/03/2012
18
Caso de Uso – Relacionamento de Generalização
35
M a tr i c u l a r A l u n o E s tr a n g e i r o
A te n d e n te
M a tr i c u l a r A l u n o
UML
Caso de Uso –Generalização de atores
36
Vender
Equipamento
Autorizar
Crédito
Gerente
Vendedor
O Gerente também pode efetuar vendas
UML
03/03/2012
19
UML – Diagrama de Classe
37
Diagrama de Classe
• Descreve relações estáticas, basicamente:
– Classes e sub-classes
– Relacionamentos
38
UML
03/03/2012
20
Diagrama de Classe – notação
• Classe - atributos + operações ou serviços
• Relacionamento
– Associação
– Generalização
– Agregação – simples ou composição
– Auto-relacionamento
• Classe associativa
• Papel no relacionamento
• Multiplicidade
39
UML
Diagrama de Classe – notação de classe
40
UML
03/03/2012
21
41
Diagrama de Classe – relacionamento de generalização 
- Restrição da cobertura (parcial, sobreposta) 
UML
42
Diagrama de Classe – relacionamento de generalização 
- Restrição da cobertura (parcial, exclusiva) 
UML
03/03/2012
22
43
Diagrama de Classe – relacionamento de generalização 
- Restrição da cobertura (total, exclusiva) 
UML
44
Diagrama de Classe – relacionamento de generalização 
- Restrição da cobertura (total,sobreposta) 
UML
03/03/2012
23
45
Diagrama de Classe – relacionamento de agregação e de composição
UML
46
Diagrama de Classe – classe associativa
UML
03/03/2012
24
47
Diagrama de Classe – auto-relacionamento e papel no relacionamento
UML
48
UML
Diagrama de Classe – exemplo
03/03/2012
25
49
UML
Diagrama de Classe – exemplo
50
UML
Diagrama de Classe – exemplo
03/03/2012
26
UML – Diagrama de Estado
51
Diagrama de Estado - Introdução
• Usado para modelar o comportamento de um objeto do sistema que 
possua comportamento dinâmico
• Importante para entendermos e validarmos o comportamento dos objetos 
durante a suas vidas 
• Normalmente utilizado para representar o comportamento de objetos de 
classes
• Não é necessário construir DE para todas as classes
52
UML
03/03/2012
27
Diagrama de Estado - Notação
53
UML
DE - Elementos
• Estado
• Evento
• Transição
• Ação
• Condição
• Atividade
54
UML
03/03/2012
28
55
Comprador informa novo pedido/ cadastrar Pedido
UML
56
Funcionário informa novo carro/ Cadastrar Carro
UML
03/03/2012
29
57
UML
DE - Avançado
• Um estado pode conter outros estados, concorrentes ou independentes –
Estado Composto
• Transição de e para Estados Compostos
• Transições de e para Estados Concorrentes
58
UML
03/03/2012
30
UML – Diagrama de Atividades
59
Diagrama de Atividades
• Descreve uma sequência de atividades, com suporte para comportamento 
condicional e paralelo
• As transições são disparadas pelo término da atividade
• Serve para modelar um caso de uso com muitos fluxos alternativos 
significativos
• Serve para modelar as atividades de um processo de negócio (modelo de 
workflow)
60
UML
03/03/2012
31
Diagrama de Atividades – condições e intercalações
61
UML
Diagrama de Atividades – separações e junções des
62
UML
03/03/2012
32
Diagrama de Atividades – separações, junções e thread 
condicional
63
UML
Diagrama de Atividades – partição, eventos de entrada e de saída
64
UML
03/03/2012
33
Diagrama de Atividades – eventos em separações
65
UML
UML – Diagrama de Sequência
66
03/03/2012
34
Diagrama de sequencia - introdução
• Diagramas de Sequência apresentam a interação entre um grupo de 
objetos (ou classes) de um sistema, através de mensagens, em um 
determinado Cenário. 
• Diagramas de Sequência são primariamente utilizados para a atribuição de 
responsabilidades a cada um dos objetos do sistema – operações
• Completa o tripé da análise:
– Casos de Uso - comportamento externo (funcional)
– Diagramas de Classes - visão estática
– Diagramas de Sequência - visão dinâmica
• deve ser desenvolvido um Diagrama de Sequência para cada cada cenário 
de um Caso de Uso
67
UML
Diagrama de Colaboração
Janela d e 
Entrada de 
Pedido
um Pedido
uma linha
de
Pedido
um item
em Es toqu e
um I tem de
Entrega
um Item de
Refabrica ção
criar()
* criar()
verif ica ()
[ve rfif ica = true]
retirar_item ()
r efabricar_item ()
[refab ricar_item = tr ue]
new 
[verf ifica = t rue]
new
Diagrama de Atividade
Janela d e 
Entrada de 
Pedido
um Pedido
uma linha
de
Pedido
um item
em Es toqu e
um Item de
Entrega
um Item de
Refabrica ção
criar()
* criar()
verif ica ()
[ve rfif ica = true]
retirar_item ()
r efabricar_item ()
[refab ricar_item = tr ue]
new 
[verf ifica = true]
new
Diagrama de Classes
MeioTranspo rte
Carro N avio
.. .
Caso de Uso
Nome: Reservando Passagem
Atores: Agente
Curso de Eventos
1- Ujfsaj jfklsdj jfdkkj fl als ;a f a;
2- jfaskdjf lj kl;k kdfjasdkl lkssss
3- jsdkfklk lkkkk lopjfa[ pokfsao opw
4- skdjfI)kkk;’PIO lkkfapp kjadfp 
5- lkLKO oeppae fokkzp;xp pokf ;lp[
Alternativas
 1- Ijfksa kJFKJ a;lkj ;kjfklasojk;a 
Diagrama de Sequência
J anela d e 
Entrada de 
Pedido
um Pedido
uma linha
de
Pedido
um item
em Es toqu e
um I tem de
Entrega
um Item de
Refabrica ção
criar()
* criar()
verif ic a ()
[ve rfif ica = true]
retirar_item ()
r efabric ar_item ()
[ refab ricar_item = tr ue]
new 
[verf ific a = t rue]
new
Objetos Cenário
Interação
68
Diagrama de sequencia – relacionamento com outros 
diagramas
UML
03/03/2012
35
Diagrama de sequencia - notação
• Linha da Vida
• Mensagens
• Informações de Controle
• Auto-delegação
• Condição
• Iteração
69
UML
70
Diagrama de Sequencia
UML
03/03/2012
36
UML – Diagrama de Colaboração
71
Diagrama de Colaboração – introdução
• Diagramas de Colaboração ilustra as interações entre objetos no formato 
de grafo.
• Da mesma forma que os Diagramas de Sequência são utilizados para a 
atribuição de responsabilidades a cada um dos objetos do sistema -
operações
• Possui uma maior economia de espaço em relação ao diagrama de 
sequencia
72
UML
03/03/2012
37
• Diagrama de colaboração
73
UML
Diagrama de componentes
• Mostra a estrutura de componentes
• Representa dependências estáticas
•Compilação entre programas
cliente.execliente.html
index.html
74
UML
03/03/2012
38
75
Diagrama de Implantação
UML
Elementos Genéricos
• Nota: é um comentário inserido no diagrama
• Constraint (restrições): é uma relação semântica entre elementos do 
modelo. Especifica condições ou proposições que devem ser mantidas 
verdadeiras. Uma restrição é mostrada como uma cadeia entre chaves {}. 
(OCL – Object Constraint Language)
76
UML
03/03/2012
39
Elementos Genéricos - Pacotes
•Packages agrupam elementos de modelagem.
•Packages podem conter classes, relacionamentos, classes abstratas, 
Packages, tipos, etc...
77
UML
Elementos Genéricos - Estereótipo
• Mecanismo de extensão introduzido pela UML, que permite 
estender o meta-modelo para suprir necessidades que não 
encontram-se entre os meta-elementos disponíveis, desde 
que a definição semântica da própria linguagem não seja 
ferida.
• Um estereótipo pode ser aplicado a classes, relacionamentos 
de dependência, atributos, operações, etc.
78
UML
03/03/2012
40
Parte 3
Processo de Desenvolvimento de Software 
conceitos básicos – RUP e XP
79
80
• Desenvolver o produto que
atenda as necessidades do
cliente e seja entregue no
prazo, com o custo e o
nível de qualidade
desejado.
O que desejamos em nossos projetos?
Proc.Desev.
Software
03/03/2012
41
Apresentação de Jim Johnson no XP2002 – disponível em www.xp2003.org/xp2002/index.html
A crise do software:
•Apenas 10% dos projetos são concluídos no prazo e orçamento estimados
•O orçamento é ultrapassado em 60% dos projetos 
•25% a 30% dos projetos maiores são cancelados antes da implantação
•Os projetos médio tem um atraso acima de 1 ano e um custo 100% acima do 
orçamento
•Os custos de manutenção representam 80% dos recursos disponíveis
81
O que obtemos em nossos projetos?
Proc.Desev.
Software
Desenvolver Software
Desenvolver software não é somente modelar e escrever código. É criar 
aplicações que resolvam os problemas dos usuários. É fazer isto dentro do 
prazo, de forma precisa e com alta qualidade.
Ambler, 1998
•Melhorar a qualidade do software implica na melhoria do processo pelo qual 
o mesmo é produzido.
•Processos, métodos e ferramentas usados para produzir constituem o escopo 
de estudo da Engenharia de Software.
82
Proc.Desev.
Software
03/03/2012
42
Foco na Qualidade
Processo
Método (Enfoque)
Ferramentas
Engenharia de Software
Estudo e aplicação de procedimentos sistemáticos,
disciplinados e quantificáveis ao desenvolvimento,
operação e manutenção de software.
IEEE/93
83
Proc.Desev.
Software
Principais atividades executadas em um projeto software
• Levantamento de Requisitos – define as características e capacidades que 
o sistema deverá possuir para atingir o seu propósito
• Análise – define o que precisa ser feito
• Projeto – define como deve ser feito de modo a atender critérios de 
qualidade
• Implementação – codificação do software
• Teste 
• Implantação – disponibilização do software nas instalações do usuário, 
treinamento, carga de dados iniciais
84
Proc.Desev.
Software
03/03/2012
43
Critérios de Qualidade para um projeto de software
- Manutenibilidade
- Performance
- Interatividade
- Confiabilidade
- Segurança
- Economia
85
Proc.Desev.
Software
Processo 
Define:
• Quem faz o que e quando
• A aplicação de métodos e ferramentas
• Os produtos que devem ser entregues
• Os controles que ajudam a assegurar a qualidade e a gerenciar as 
mudanças
• Os marcos de referência que permite avaliar o progresso
• Processo = Métodos e Padrões + Pessoas + Ferramentas
86
Proc.Desev.
Software
03/03/2012
44
Agilidade do Processo
• Um processo de software pode ser:
– Preditivo
• Rígido independente do projeto
• Burocrático
– Adaptativo
• Adaptado as necessidades de cada projeto
• Adaptado as características da equipe
• Ágil
• Incorpora o conceito de Framework
87
Proc.Desev.
Software
Levantamento 
de Requisitos
Análise e Design
Implementação
Implantaçã
o
Teste
88
Evolução dos Modelos de Processos - Modelo Cascata
Proc.Desev.
Software
03/03/2012
45
Evolução dos Modelos de Processos - Modelo Cascata
• Características
– Ainda hoje o modelo de processo mais utilizado.
– As atividades são executadas seqüencialmente.
– Uma fase só é iniciada após o final da anterior.
– Pressupõe requisitos estáveis.
– Baseado em modelos de processos de engenharia.
• Modelo Cascata – Prós e Contras
– Vantagens
• É simples de gerenciar.
– Desvantagens
• Difícil lidar com as mudanças.
• Atrasa a redução dos Riscos.
89
Proc.Desev.
Software
Evolução dos Modelos de Processos - Modelo Prototipação
• Construção de protótipos baseado nas informações do cliente
• Adequado para quando o “negócio” não é bem conhecido, o 
cliente não sabe exatamente o que precisa ou como deve ser a 
interface do sistema
• Fases:
Levantamento
Implementação
Avaliação
Projeto Rápido
90
Proc.Desev.
Software
03/03/2012
46
Evolução dos Modelos de Processos - Modelo Prototipação
• Problemas
– O usuário não entende que o software desenvolvido sacrifica qualidade para 
obter velocidade no desenvolvimento e não pode ser considerado como um 
produto que possa entrar em produção. 
– O desenvolvedor muitas vezes toma decisões de projeto, ineficientes, para 
facilitar o desenvolvimento e acaba se acostumando com tais decisões, 
esquecendo o motivo que o levou a tomá-las.
91
Proc.Desev.
Software
Evolução dos Modelos de Processos - Modelo Incremental
• Combinação do modelo cascata com o prototipação
• Adequado para quando a equipe disponível não é suficiente para cumprir o prazo
• Incrementos podem ser planejados para contemplar riscos técnicos
• Para cada incremento entregue é cumprida um seqüência como o cascata
• O primeiro incremento implementa requisitos básicos
• Cada novo incremento acrescenta novas funcionalidades
• Cada incremento tem que ser um produto operacional
92
Proc.Desev.
Software
03/03/2012
47
Evolução dos Modelos de Processos - Modelo Incremental
Levantamento Análise Projeto Implementação
Teste 
e 
Planejamento
Análise Projeto Implementação
Teste 
e 
Planejamento
Análise Projeto Implementação
Teste 
e 
Planejamento
1o
Incremento
2o
Incremento
93
Proc.Desev.
Software
Modelo Iterativo e Incremental
• O que é uma iteração?
– Uma divisão do tempo do projeto, fixa em duração, durante a qual as 
atividades inerentes ao desenvolvimento são executadas. 
• Por que precisamos usar iterações?
– Para ganhar maior controle sobre o projeto e para minimizar os riscos.
94
Proc.Desev.
Software
03/03/2012
48
Características Recomendadas para um processo
• Orientado a objetos
• Guiado por funcionalidades (caso de uso)
• Baseado na arquitetura
• Iterativo e incremental
95
Proc.Desev.
Software
IBM-Rational Unified Process - RUP
96
03/03/2012
49
Método Booch
OMT
Rumbaugh Objectory
(OOSE)
Jacobson
USDP
(UP)
RUP
97
USDP (UP) e RUP
RUP
98
Visão Geral
RUP
03/03/2012
50
Dimensões
• Dimensão horizontal: Representam as fases do desenvolvimento e 
mostra os aspectos do ciclo de vida a medida que o tempo passa. 
Aspectos dinâmicos.
• Dimensão vertical: Representa as disciplinas centrais do processo as 
quais agrupam as atividades de engenharia de software por sua natureza. 
Aspectos estáticos.
99
RUP
Marcos e Pontos de Controle
• Correspondem aos pontos de verificação ao final de cada fase
• Só deve passar para uma próxima fase se os objetivos da fase anterior 
forem alcançados
– LCO (Life Cicle Objective) – no final da Concepção quando o escopo é 
conhecido e bem fundamentado.
– LCA (Life Cicle Architecture) – no final da Elaboração quando a 
arquitetura está completa e o conjunto de requisitos foi definido.
– IOC (Initial Operational Capability) – no final da Construção e marca a 
primeira versão beta.
– PR (Product Release) – no final da Transição e do ciclo de 
desenvolvimento
• Pontos de controle menores são definidos no final de cada iteração.
100
RUP
03/03/201251
101
Fases e Marcos
• As fases indicam a maturidade do sistema. Representa o tempo e 
mostra os aspectos do ciclo de vida a medida que este tempo 
passa.
RUP
1- Concepção: Entender o problema e garantir que existe uma 
solução possível e viável.
• Descriminar os casos de uso críticos do sistema
• Apresentar uma arquitetura candidata
• Fazer uma estimativa geral do custo global do projeto
102
RUP
03/03/2012
52
Fases
1- Concepção – possíveis artefatos iniciados na fase
• Documento de visão 
• Modelo de Caso de Uso
• Especificações suplementares
• Glossário
• Plano de Desenvolvimento de Software
• Pasta de Desenvolvimento
103
RUP
2 - Elaboração: Definir a arquitetura e riscos de requisitos
• Compreensão sólida dos casos de uso mais críticos
• Elaborar o processo, a infra-estrutura e o ambiente de 
desenvolvimento
• Elaborar a arquitetura e selecionar os componentes 
104
RUP
03/03/2012
53
2 – Elaboração – possíveis artefatos refinados resultantes da 
fase
– Modelo de caso de uso (pelo menos 80% completo)
– Visão
– Especificações suplementares
– Glossário
– Plano de Desenvolvimento de Software
– Pasta de Desenvolvimento
105
RUP
2 – Elaboração – possíveis artefatos iniciados resultantes da 
fase
• Modelo de domínio
• Modelo de projeto
• Documento da arquitetura do software
• Modelo de dados
• Modelo de implementação
• Modelo de testes
106
RUP
03/03/2012
54
3 - Construção: Identificar os requisitos restantes e concluir a 
implementação.
• Minimizar custos de desenvolvimento
• Produzir um produto pronto na plataforma adequada
107
RUP
3 – Construção – possíveis artefatos refinados resultantes da 
fase
• Modelo de Projeto
• Modelo de Dados
• Modelo de Implementação
• Plano de Desenvolvimento de Software
• Modelo de Teste
108
RUP
03/03/2012
55
4 -Transição: assegurar que o software está disponível para os 
usuários.
• Operação paralela com o sistema legado
• Conversão de banco de dados
• Treinamento dos usuários
109
RUP
4 – Transição – possíveis artefatos refinados resultantes da 
fase
• Modelo de Implementação
• Plano de Desenvolvimento de Software
110
RUP
03/03/2012
56
Disciplinas
• Principais
– Modelagem de Negócio
– Requisitos
– Análise e Projeto
– Implementação
– Teste
– Implantação (Entrega)
111
RUP
Disciplinas
• Suporte
– Gerência de Configuração e de Mudanças
– Gerência de Projeto
– Ambiente
– Planejamento de Projeto
112
RUP
03/03/2012
57
Disciplinas
• Requisitos
– Construir artefatos que descrevem os requisitos do software
– Estabelecer formalmente quais os requisitos funcionais e não 
funcionais que serão atendidos
– Para a definição dos requisitos funcionais utiliza-se Caso de 
Uso
– Artefatos: modelo de caso de uso, especificação 
suplementares, documento de visão
113
RUP
Disciplinas
• Análise e Projeto
– Transformar os requisitos em projeto de sistemas
– Representação visual de todos os elementos necessários para 
implementação de caso de uso
– Artefatos: modelo de projeto, documento de arquitetura de 
software, modelo de dados
– Maior ênfase na fase de Elaboração
114
RUP
03/03/2012
58
Disciplinas
• Implementação
– Implementar em componentes os elementos de projeto
– Testar os componentes como unidades
– Integrar os componentes
– Artefatos: Modelo de Implementação
115
RUP
Disciplinas
• Testes
– Avaliar se todos os requisitos foram implementados 
corretamente
– Avaliar a interação entre os componentes implementados
– Avaliar a integração do software
– Assegurar a correção de defeitos
– Artefato: Modelo de teste
116
RUP
03/03/2012
59
Disciplinas
• Implantação
– Determina a disponibilidade do sistema nas instalações do 
usuário
– Assegurar que o produto está pronto para utilização
• Usuários treinados
• Banco de dados populado
• Documentação técnica finalizada
117
RUP
Disciplinas
• Gerenciamento de Configuração e Mudança
– Controlar as versões de alterações
– Controlar acesso e alterações aos artefatos
• Gerenciamento de Projeto
– Planejamento de Projeto
– Acompanhamento do Projeto
– Artefato: Plano de Desenvolvimento do Software
• Ambiente
– Suportar o ambiente para o projeto – Processo, metodologia, 
ferramentas, estrutura organizacional, infra-estrutura de hardware e 
software
– Artefato: Pasta de Desenvolvimento
118
RUP
03/03/2012
60
Recomendações
• Não se deve planejar todas as iterações de forma detalhada no 
início do projeto
• Não se deve assumir compromissos a longo prazo na fase de 
concepção
• Não se deve selecionar funcionalidades de baixo risco nas 
primeiras iterações
• RUP é um framework não um processo específico. Precisa ser 
ajustado para cada situação. 
119
RUP
Processos Ágeis de Desenvolvimento e Extreme 
Programming (XP)
120
03/03/2012
61
Processos Ágeis – manifesto
www.agilealliance.org:
Estamos descobrindo maneiras melhores de se desenvolver software,
aplicando-as e ajudando os outros a aplicá-las. Deste trabalho nós
valorizamos:
• Indivíduos e interações mais que processos e ferramentas
• Trabalhar no software mais que documentação abrangente
• Colaboração do Cliente mais que negociação contratual
• Responder às mudanças mais que seguir um plano
É isto, embora exista valor nos itens da direita, nós valorizamos mais os itens da 
esquerda.
121
XP
Características dos processos Ágeis
• Adaptabilidade X Previsibilidade 
– A Engenharia de Software e as demais Engenharias;
– A diferença entre as fases de Projeto e Construção;
– Negócios Atuais: Mudança constante de requisitos;
– Adaptabilidade exige um ciclo iterativo;
– Adaptabilidade exige participação extrema do cliente;
122
XP
03/03/2012
62
Processos Ágeis - Valores
• Simplicidade
• Comunicação
• Feedback
• Coragem
123
XP
Origem
• Chrysler Comprehensive Compensation system (C3)
• Novo sistema de folha de pagamento, unificando os sistemas 
existentes
• Projeto Orientado a Objetos usando Smalltalk
• De 1995 a 1996 – Empresa contratada inicia o projeto. Os 
resultados obtidos são ruins e o projeto entra em crise.
• Kent Beck avalia o projeto e constata seu estado crítico.
• De 1997 a 1999 – Liderado por Beck, o projeto se tornou o 
laboratório das práticas que hoje formam o XP
XP
03/03/2012
63
A Premissa Extrema
XP
• Jogo do Planejamento
• Pequenas Versões
• Projeto Simples
• Refatoração
• Teste Primeiro
• Programação em Pares
• Metáfora
• Padrões de Codificação
• Propriedade Coletiva do 
Código
• Integração Contínua
• Semana de 40 horas
• Testes de Aceitação
• Cliente “on-site”
126
XP - Práticas
XP
03/03/2012
64
Exploration Planning Iterations to Release Productionizing
127
XP - O Ciclo de Vida de um Projeto
XP
128
XP - A Força do Conjunto
XP
03/03/2012
65
• Modelo Tradicional:
– Tempo
– Custo
– Escopo
– Manipula-se a 
Qualidade
� Modelo XP:
� Tempo
� Custo
� Qualidade
� Manipula-se o Escopo
Contratos de Preço 
Pré-Fixado
Contratos de 
Escopo Varável
129
XP - Variáveis de Projeto
XP
Prioridade: 1
Renovação de Matrícula
As disciplinas disponíveis para matrícula devem ser 
apresentadas. O aluno escolhe as disciplinas
desejadas e confirma. Um e-mail com a confirmação
da matrícula é enviado para o aluno.
3 Dias
Equipe estima a estória em Tempo Ideal
Cliente prioriza.
Conte-me uma Estória
XP
03/03/2012
66
Release Planning
• Cliente escreve as estórias.
• Equipe de desenvolvimento
estima as estórias.
• Estórias muito pequenas são
unificadas, estórias muito grande
são quebradas.
• Cliente prioriza as estórias.
• Equipe ajuda o cliente a entender
riscos técnicos.
• Cliente define os releases.
XP
Iteration Planning
• Cliente define estórias que devem ser implementadas na iteração
considerando a velocidade definida pela equipe.
• Cliente e equipe conversam sobre as estórias selecionadas.
• Desenvolvedores se oferecem para implementar determinadas tarefas.
• Equipe identifica as tarefas de programação necessárias para implementar
as estórias da iteração.• Equipe estima e prioriza as tarefas.
XP
03/03/2012
67
• Cada dia de trabalho
“começa” com uma reunião, 
onde todos conversam sobre
os problemas encontrados no 
dia anterior e definem as 
prioridades do dia que se 
inicia.
• A reunião é curta, mais ou
menos uns 15 minutos. O fato
de ser em pé ajuda a alcançar
este objetivo.
Web Designer ?
Stand Up Meeting
XP
• A primeira coisa que deve ser 
feita para se começar um 
projeto XP é reorganizar o 
ambiente.
• White Boards.
• Mobília preparada para o 
trabalho em duplas.
• Mural para colocar os cartões.
Ambiente de Trabalho
XP
03/03/2012
68
• Desenvolver um sistema para Acompanha-mento da Vida Acadêmica de 
alunos da XP University.
• Condições do Cliente:
– Criar um sistema para uso na Web com acesso pelo site da 
universidade.
– Precisa entrar no ar no início de Junho/2009
Exemplo
XP
• Levantamento das Estórias
Estória Dificuldade
(em dias ideais)
Atualizar Dados Pessoais do Aluno 3
Consultar Quadro de Horários 4
Listar Turmas Inscritas 3
Verificar Recursos Disponíveis da Turma 3
Donwload de Recurso 2
Renovação de Disciplina 12
Inclusão/Exclusão de Disciplina 6
Total de Dificuldade = 33
XP
03/03/2012
69
• Refinamento das Estórias:
– Maiores do que uma iteração
– Divisão do Conceito
Estória Dificuldade
(em dias ideais)
Prioridade
Atualizar Dados Pessoais do Aluno 3 1
Consultar Quadro de Horários 4 1
Listar Turmas Inscritas 3 1
Verificar Recursos D isponíveis da Turma 3 1
Donwload de Recurso 2 1
Apresentar D isciplinas Oferecidas 7 2
Simular Quadro de Horários 5 2
Inclusão de Disciplina 3 3
Exclusão de Disciplina 3 3
Total de Dificuldade = 33 (Poderia Mudar)
XP
Release Planning
• Tamanho da Iteração = 2 semanas reais (10 Dias)
• Total de Dificuldades = 33 dias ideais
• Velocidade Inicial:
• 1 desenvolvedor - 5 DI em uma iteração
• 2 desenvolvedores - 10 DI em uma iteração
• Total de Iterações necessárias = 3.3 ou seja 4.
• Considerar dois Releases de 1 mês cada (2 iterações)
– Entregar uma versão no início de fevereiro.
– Cliente define o escopo.
XP
03/03/2012
70
• Release Planning - Release 1
 i1 – 01/04 – 12/04 
 
Atualizar Dados Pessoais do Aluno 3 
Consultar Quadro de Horários 4 
Listar Turmas Inscritas 3 
 
 i2 – 15/04 – 26/04 
 
Verificar Recursos Disponíveis da Turma 3 
Apresentar Disciplinas Oferecidas 7 
 
XP
Release Planning - Release 2
– Planejar somente 1 ou 2 releases. Não prever o futuro.
– Só definir o limite de datas:
• i3 – 29/04 – 10/05
• i4 – 13/05 – 24/05 OU
Exemplo - Cont.
 i3 – 29/04 – 10/05 
 
Donwload de Recurso 2 
Simular Quadro de Horários 5 
Inclusão de Disciplina 3 
 
 i4 – 13/05 – 24/05 
 
Exclusão de Disciplina 3 
 
XP
03/03/2012
71
• Dividindo a Estória em Tarefas:
Estória: Atualizar Dados Pessoais do Aluno 3
Tarefas
Criar Página ASP 1.5
Desenvolver Componente COM 2
Criar Tabelas no Banco de Dados 0.5
Estimativa Total: 4
XP
• Ao final de cada iteração: medir o Andamento do Projeto. 
• Decisões:
– Novas Estórias;
– Retirar Estórias;
– Mudança de Prioridade;
– Ajuste nas Estimativas;
– Too Much To Do;
– Too Little To Do;
XP

Outros materiais