Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Orientados a Objeto
com UML e Padrões
Modelo de Análise
1
Iniciando um Ciclo de Desenvolvimento
Ciclo de Ciclo de
...
Desenv. 1 Desenv. 2
Refin. Sinc.
Plano Artefatos Análise Projeto Impl. Teste
2
Descrevendo caso de uso detalhado
3
Casos de Uso
● Descrições narrativas de processos do domínio da
aplicação
4
Descrição Resumida
(simplificada)
Processar Venda:
Este caso de uso acontece quando um cliente chega em um
ponto de venda com itens de produtos que deseja adquirir. O
Operador do PDV informa para cada item comprado o código
de identificação e a quantidade de unidades. O sistema mostra
a descrição do produto, o valor unitário, o valor do item e o
valor acumulado (parcial) da venda. O Operador do PDV
informa a finalização dos itens. O sistema mostra o valor total
da venda. O Operador do PDV informa ao sistema a forma de
pagamento (dinheiro ou cartão). O sistema trata a forma de
pagamento validando os dados de acordo com a forma de
pagamento escolhida. O sistema registra a venda com os itens
comprados e dados de pagamento. O sistema atualiza o
estoque e emite um recibo que é entregue pelo Operador do
PDV ao cliente. O cliente sai com os itens comprados.
5
Descrição essencial expandida
Caso de uso: Processar venda em dinheiro
Atores: Operador do PDV e Cliente
Propósito: Processar uma venda e seu pagamento em
dinheiro
Tipo: Primário e essencial
Pré-condições:
– Produtos previamente cadastrados
– Ponto de venda iniciado com registro do código identificador do
PDV e do identificador do Operador que o inicializou
Pós-condições:
– Venda registrada com data, horário, identificador do ponto de
venda, identificação e quantidade de cada item, valor total e
dados do pagamento (valor pago e troco recebido)
– Recibo de venda emitido para o cliente com dados da venda
registrada
6
Descrição essencial expandida
Cenário Principal de Sucesso
1. O Operador do PDV informa ao sistema o identificador do item a ser
vendido e sua quantidade.
2. O Sistema exibe a descrição do produto, o valor unitário do produto e o
valor do item.
3. O sistema calcula e exibe o valor acumulado da venda.
Os passos 2 e 3 se repetem até que não haja mais itens
4. O Operador do PDV informa ao sistema o término dos itens
5. O Sistema exibe o valor total da venda
6. O Operador do PDV informa ao sistema o valor em dinheiro pago pelo
Cliente
7. O Sistema calcula e exibe o troco que deve ser dado ao cliente.
8. O Sistema registra a venda, atualiza o estoque dos produtos vendidos e
emite o recibo de pagamento.
7
Descrição essencial expandida
Cenários Aternativos
1.a. O código identificador do item não é reconhecido
1. O Sistema exibe uma mensagem de erro e solicita a reentrada do
identificado do item
2. O Sistema retorna ao passo 1 do Cenário Principal de Sucesso
8
Descrição essencial expandida
Cenários Aternativos
9
Atores
● Entidades externas ao sistema que de algum modo
participam da estória do caso de uso
– Estimulam o sistema com eventos de entrada, ou
recebem alguma coisa dele
– Designados pelo papel que exercem no caso de uso
Ex.: Cliente, Operador, etc.
● Representação em UML:
Cliente
10
Atores e Casos de Uso
● Um caso de uso possui um ator iniciador, que gera
o estímulo inicial, e possivelmente vários atores
participantes
– O ator iniciador deve ser indicado explicitamente na
descrição do caso de uso
11
Identificando Casos de Uso
● Normalmente não são eventos ou passos
individuais, mas um processo completo
– Erro mais comum!
12
Identificando Casos de Uso
● Método baseado em eventos
1. Identificar os eventos externos aos quais o sistema
deve responder
2. Relacionar os eventos a atores e casos de uso
13
Casos de Uso e Funções
● Todas as funções do sistema identificadas na
especificação dos requisitos devem ser alocadas a
casos de usos
– Alocação documentada através da seção Referência
14
Diagramas de Caso de Uso
● Ilustram um conjunto de casos de uso e atores
para um sistema e os relacionamentos entre eles
PDV
Vender Produtos
Devolver Produtos
15
Casos de Uso e o Limite do Sistema
● Identificar os atores e casos de uso de um sistema
requer a definição de seu limite de atuação
16
Casos de Uso e o Limite do Sistema
● Exemplo de um diagrama de caso de uso para o
sistema PDV, quando o limite de atuação é a loja
inteira
Loja
Vender Produtos
Cliente
Devolver Produtos
17
Tipos de Caso de Uso
● Primário
Representam os processos principais ou mais
comuns (ex.: Vender Produtos)
● Secundário
Representam processos menos importantes ou mais
raros (ex.: Cadastrar Operadores)
● Opcional
Representam processos que podem ser ignorados
ou incluídos em futuras versões do sistema (ex.:
Solicitar Estoque para um Novo Produto)
18
Formatos de Caso de Uso
● Resumido (Alto-nível)
– Breve descrição de um processo, normalmente em
duas ou três frases, e deliberadamente vago em
decisões de projeto
– Criados na fase inicial de requisitos
● Expandido
– Descrição passo a passo dos eventos de um
processo
– Durante a fase de requisitos, apenas os casos de
uso mais importantes devem ser escritos nesse
formato
19
Formatos de Caso de Uso
● Essencial
– Descrição de um processo em termos de sua
motivação e atividades essenciais
– Expressos relativamente livres de detalhes de
implementação, decisões de projeto, e uso de
tecnologias
● Concreto
– Descrição de um processo em termos de seu
projeto real, comprometido com tecnologias de
desenvolvimento, interfaces de entrada e saída, etc.
20
Descrição concreta expandida
Cenário Principal de Sucesso
1. O Caixa digita o código identificador do produto no campo UPC da
Janela 1 e a quantidade no campo campo QTD da janela “Venda”. Ele
então pressiona o botão “Entrar Item” com o mouse ou pressiona a tecla
<Enter>.
2. O Sistema exibe a descrição do produto no campo Descrição da janela
“Venda”, o valor unitário no campo “Valor Unitário” da janela “Venda” e o
valor do item no campo “Valor do Item” da janela “Venda’.
3. O sistema calcula e exibe o valor acumulado da venda no campo “Valor
Acumulado” da janela “Venda”.
Os passos 2 e 3 se repetem até que não haja mais itens
21
Casos de Uso no Processo de
Desenvolvimento
● Passos da fase de Construção
1. Análise: Escreva casos de uso expandidos essenciais para
aqueles sendo atacados no ciclo de desenvolvimento corrente,
se ainda não feito.
22
Passos do Processo para o Sistema PDV
● Desenhar diagrama de caso de uso
PDV
Vender Produtos
Devolver Produtos
Inicializar
Gerente
Gerenciar
Usuários
Administrador do
Sistema
etc.
23
Priorizando Casos de Uso
● Atacar primeiro aqueles com maior influência na
estrutura básica do sistema
24
O Caso de Uso “Inicializar”
● Presente em virtualmente todos os sistemas
● Escalonamento implícito
25
Escalonando os Casos de Uso do Sistema
PDV
● Casos de uso do primeiro ciclo:
– Vender Produtos
– Abrir PDV (versão simplificada)
26
Escalonando os Casos de Uso do Sistema
PDV
● Alocando casos de uso a ciclos de
desenvol-vimento
Devolver Produtos
-----
-----
-----
27
Versões de Caso de Uso para Vender Produtos
● Simplificações, objetivos e pressuposições
– Versão 1
Apenas pagamentos com dinheiro
Sem atualização de estoque
Única loja
Entrada manual de UPC (sem leitora de código de barras)
Sem cálculo de impostos
Sem descontos
Operador não precisa fazer login (sem controle de acesso)
Sem registro de clientes e seus hábitos de compra
– Versão 2
Os mesmos da Versão 1, exceto que pagamentos podem ser
feitos com dinheiro, cheque, ou cartão de crédito
28
Construindo um Modelo Conceitual
29
Modelo Conceitual
● Artefato mais importante da AOO
30
Modelo Conceitual para o Sistema PDV
● Diagrama parcial
31
Conceitos
● Idéias, coisas, ou objetos do mundo real
id Sal
avo e software class; not
dat of conceptual
part
tim
e model
e
print(
)
32
Identificando Conceitos
● Regras úteis:
– É melhor especificar demais do que especificar de
menos
– Não exclua conceitos simplesmente porque os
requisitos não indicam a necessidade de guardar
informações sobre eles (comum em projeto de BD)
– Comece fazendo uma lista de conceitos candidatos
a partir de uma lista de conceitos comuns
– Considere os substantivos e frases nominais nas
descrições textuais do domínio do problema como
possíveis candidatos a conceitos ou atributos
33
Conceitos Típicos
Categoria Exemplos
Objeto físico ou tangível Terminal de ponto-de-venda
Avião
Especificação, projeto, ou Especificação de produto
descrição de coisas
Descrição de vôo
Lugares Loja
Aeroporto
Transações Venda, Pagamento
Reserva
Itens de transação Itens de venda
Parcelas de pagamento
Papéis de pessoas Operador
Piloto
Container de coisas Loja
Avião
34
Conceitos Típicos
Categoria Exemplos
Coisas em um container Item
Passageiro
Sistemas externos Serviço de crédito
Controle de tráfego aéreo
Nomes abstratos Fome
Aracnofobia
Organizações Departamento de vendas
Companhia aérea
Eventos Venda, Assalto, Reunião
Vôo, Decolagem
Regras e políticas Política de devolução
Política de cancelamento
35
Conceitos Típicos
Categoria Exemplos
Catálogos Catálogo de produtos
Catálogo de peças
Registros de finança, trabalho, Recibo, Contrato de trabalho
contrato, questões legais
Registro de manutenção
Instrumentos e serviços financeiros Linha de crédito
Ações
Manuais, livros Manual do empregado
Manual de reparos
36
Identificando Conceitos e Atributos em
Descrições Textuais
Ação do Ator Resposta do Sistema
1. Este caso de uso começa
quando um Cliente chega no
caixa com itens para comprar.
2. O Operador registra o 3. Determina o preço do item e
identi-ficador de cada item. adiciona informação sobre o item
Se há mais de um do mesmo à transação de venda em
item, o Operador também pode anda-mento.
informar a quantidade. Mostra a descrição e o preço do
item corrente.
37
Conceitos Candidatos para o Sistema PDV
38
Conceitos de Relatório
● Não incluir no modelo conceitual quando:
– Toda informação contida no relatório é derivada de
outras fontes
40
Criando um Modelo Conceitual
● Estratégia do “fazedor de mapas”:
– Usar nomes existentes no vocabulário do domínio
– Incluir apenas conceitos pertinentes para os
requisitos (casos de uso) em questão
– Excluir tudo que não há no domínio do problema
pior melhor
42
Conceitos de Especificação ou Descrição
● Outro exemplo:
Vôo
Aeroporto
data Voa-para
pior
número 1 nome
hora *
Vòo
Descrição-Vôo
Descrito-por melhor
data
1 número
hora *
*
Descreve-vôo-para
1
Aeroporto
nome
43
Conceitos e a Terminologia da UML
● UML usa o termo genérico “classe” para denotar
tanto entidades do domínio da aplicação quanto
classes na POO
– Uma classe na POO é chamada mais
especificamente de “classe de implementação”
45
Associações
● Notação na UML
– Uma linha entre dois conceitos mais um nome
– Inerentemente bidirecional
– Pode conter um seta de direção de leitura
– Pontas podem conter expressões de cardinalidade
46
Associações Típicas
Categoria Exemplos
A é uma parte física de B (*) Gaveta - PDV
Asa - Avião
A é uma parte lógica de B (*) Item de Venda - Venda
Escala - Vôo
A está fisicamente contido em B (*) PDV - Loja
Passageiro - Avião
A está logicamente contido em B (*) Descrição-Item - Catálogo
Vôo - Roteiro de Viagem
A é uma descrição de B Descrição-Item - Item
Descrição-Vôo - Vôo
A é um item de uma transação ou Item de Venda - Venda
relatório B
Opção de Reserva - Reserva
Aé Venda - PDV
conhecido/registrado/repor-tado/cap
turado em B (*) Reserva - Terminal de Reserva
(*) Alta prioridade 47
Associações Típicas
Categoria Exemplos
A é um membro de B Operador - Loja
Piloto - Companhia Aérea
A é uma sub-unidade Departamento - Loja
organizacional de B
Manutenção - Companhia Aérea
A usa ou gerencia B Operador - PDV
Piloto - Avião
A se comunica com B Cliente - Operador
Agente de Reserva - Passageiro
A está relacionado com uma Cliente - Pagamento
transação B
Passageiro - Bilhete
A é uma transação relacionada Pagamento - Venda
com outra transação B
Reserva - Cancelamento
A é possuído por B PDV - Loja
Avião - Companhia Aérea
48
Identificando Associações
● Regras úteis:
– Focar nas associações cujo conhecimento deve ser
preservado
– Usar nomes baseados em expressões verbais que
façam sentido quando lidas no contexto do modelo
– Evitar mostrar associações deriváveis ou
redundantes
– É mais importante identificar conceitos do que
associações
– Associações demais tendem a confundir um modelo
conceitual ao invés de iluminá-lo
49
Papeis de Uma Associação
● Cada ponta de um associação é chamada de um
“papel”
● Um papel pode ter:
– Nome
– Expressão de multiplicidade
– Navegabilidade
50
Expressões de Multiplicidade
51
Adicionando Associações ao Modelo
Conceitual do Sistema PDV
● Relacionamentos fundamentais
– Venda Capturada-em PDV
Para conhecer a venda corrente, calcular total e imprimir
recibo
– Venda Paga-por Cliente
Para saber se a venda foi paga, calcular troco, e imprimir
recibo
– Catálogo-Produto Contém Especificação-Item
Para obter a especificação de um item, dado um UPC
52
Aplicando a Lista de Associações Típicas
Categoria Exemplos
A é uma parte física de B N.A.
54
Conceitos e Associações Candidatos para o
Sistema PDV
55
Eliminando Associações Redundantes ou
Desnecessárias
● Associações cujo conhecimento não precisa ser
preservado podem ser removidas do modelo:
Associação Consideração
Venda Iniciada-por Operador Conhecimento não exigido nos
requisitos; derivável da associação
Operador Registra-vendas-em PDV.
Operador Registra-vendas-em PDV Conhecimento não exigido nos
requisitos.
PDV Inicializado-por Gerente Conhecimento não exigido nos
requisitos.
Venda Iniciada-por Cliente Conhecimento não exigido nos
requisitos.
Loja Armazena Item Conhecimento não exigido nos
requisitos.
Item de Venda Registra-venda-de Item Conhecimento não exigido nos
requisitos.
56
Preservando Associações de Compreensão
● Preservar apenas associações de conhecimento
pode resultar num modelo que não transmite um
completo entendimento do domínio
– Ex.: Venda Iniciada-por Cliente
Remoção deixa de fora um aspecto importante do domínio—
o fato de que um cliente gera uma venda
● Regra geral:
– Enfatizar associações de conhecimento, mas
preservar associações que enriquecem o
entendimento do domínio
57
Atributos
● Um atributo é um dado lógico de um objeto do
domínio
● Notação na UML
58
Identificando Atributos
● Atributos devem preferencialmente representar
tipos primitivos de dados ou de valores simples
– Ex.: Data, Número, Texto, Hora, Endereço, etc.
● Atributos não devem ser usados para:
– Representar um conceito complexo
– Relacionar conceitos (atributo “chave-estrangeira”)
59
Atributos de Tipo Não-Primitivo
● Podem ser representados diretamente no modelo
conceitual Product Store
Specification
address : Address
upc : UPC
61
Atributo Derivado
● Um atributo “derivado” é um atributo cujo valor
pode ser deduzido a partir de outras informações
– Ex.: quantidade em Item de Venda—pode ser
deduzido a partir da multiplicidade da associação
entre Item de Venda e Item
62
Modelo Conceitual Inicial do Sistema PDV
Records-sale-of
Described-by
1
Product
Product Specification
Catalog Contains
1 description
1.. *
price
1 UPC
0..1 Used-by
* Describes
Sales * *
LineItem Store
Item
Stocks
/quantity 1 address 1 1..
name * *
1.. *
Logs- 1
Contained-in Houses
completed
1 6 1.. *
Sale * PDV
Manager
date Started-by
1 1
Captured-on
time 1 1
1
1 Initiated-by 1
Paid-by 3 Records-sales-on
1 1 1
amount
63
Registrando Termos no Glossário
● Um glossário ou dicionário de modelo é um
documento que define os termos (ou vocabulário)
do domínio
– Similar a um dicionário de dados usado na
modelagem de BD
65
Definindo Diagramas de Seqüência
66
Diagramas de Seqüência
● Um diagrama de seqüência ilustra a ordem das
interações dos atores externos com o sistema
(representado como uma “caixa-preta”) e os
eventos que eles geram
67
Eventos e Operações
● Um evento de sistema é um evento externo de
entrada gerado por um ator do sistema
– Inicia uma operação de resposta de mesmo nome
● Uma operação de sistema é uma operação do
sistema que executa em resposta a um evento de
sistema
68
Representando Operações
● O conjunto necessário de operações de sistema é
determinado através da identificação dos eventos
de sistema
– Exemplos de operações para o sistema PDV:
entrarItem(UPC, quantidade)
encerrarVenda()
fazerPagamento(quantia)
69
Definindo Diagramas de Seqüência
● Regras úteis:
1. Desenhar uma linha vertical representando o
sistema como uma caixa-preta.
2. Identificar os atores que operam diretamente com o
sistema. Desenhar uma linha vertical representando
cada um desses atores.
3. A partir da descrição das seqüências típicas de
eventos dos casos de uso, identificar os eventos de
sistema que cada ator gera. Ilustrar os eventos no
diagrama.
4. Opcionalmente, incluir o texto do caso de uso à
esquerda do diagrama.
70
Definindo Diagramas de Seqüência
● Diagrama de seqüência para o sistema PDV com
(parte do) texto do caso de uso Compra Itens
-Versão 1:
71
Nomeando Eventos e Operações
● Regras úteis:
– Começar com um verbo
– Enfatizar “intenção” em vez do meio físico de
entrada ou componente gráfico da interface com o
usuário
Ex.: encerrarVenda em vez de pressionarTeclaEnter
– Expressar intenção no nível mais alto de abstração
Ex.: fazerPagamento em vez de entrarQuantia
72
Definindo Contratos de Operação
73
Contratos
● Um contrato é um documento que descreve os
compromissos de uma operação
– Estilo declarativo
– Pré e pós-condições de mudanças de estado
– Para métodos, classes, ou operações gerais de
sistema
● Exemplo para operação entrarItem:
Contrato: entrarItem (upc :número, quantidade :inteiro)
Responsabilidades: Registra venda de um item e o adiciona à venda
corrente. Mostra descrição e preço do item.
Tipo: Sistema
Referencia: Funções: R1.1, R1.3, R1.9
Casos de uso: Processar Venda
74
Contratos
● Exemplo para operação entrarItem (cont.):
Notas: Usar acesso rápido ao BD
Exceções: Se UPC inválido, indicar erro.
Saída:
Pré-condições: UPC é conhecido do sistema
Pós-condições:
● Se nova venda, uma Venda foi criada (criação de instância).
● Se nova venda, a nova Venda foi associada com um PDV (formação de
associação.
● Um Item-de-Venda foi criado (criação de instância).
atributo).
● O Item-de-Venda foi associado com uma Especificação-Produto, baseado
76
Como Fazer um Contrato
● Regras úteis:
1. Identificar operações de sistema a partir dos
diagramas de seqüência.
2. Para cada operação, construir um contrato.
3. Começar escrevendo a seção Responsabilidades,
descrevendo informalmente o propósito da operação.
4. Completar a seção Pós-condições, descrevendo
declarativamente as mudanças de estado que
ocorrem aos objetos do modelo conceitual:
- Criação e remoção de instância
- Modificação de atributo
- Formação e quebra de associações (erro mais comum!)
77
Como Fazer um Contrato
● Regras úteis (cont.):
5. Completar a seção Pré-condições, descrevendo as
pré-suposições sobre o estado do sistema no início
da operação:
- Coisas que devem ser testadas pelo sistema em algum ponto
durante a execução da operação
- Coisas que não são testadas, mas sobre as quais depende
fortemente o sucesso da operação
78
Contratos e Outros Artefatos
Caixa Sistema
Caso de Uso: Operação: entrarItem
iniciarVenda()
Processar
Vendas Pos-condições:
entrarItem
• Foi criada uma
(idItem,qtd) instância de
Fluxo Principal
Sistema ItemVenda
79
Pós-condições: Palco e Cortina
● Pós-condições devem ser expressas no passado,
enfatizando mudanças de estado já ocorridas
80
Contratos para o Sistema PDV
● Operação finalizarVenda:
Operação: finalizarVenda ()
Responsabilidades: Registra o fim da entrada de itens de venda, e mostra o
total da venda.
81
Contratos para o Sistema PDV
● Operação fazerPagamento:
Operação: fazerPagamento (quantia: Número ou Quantidade)
Responsabilidades: Registra o pagamento, calcula troco, e imprime recibo.
Pré-condições:
Pós-condições:
● Um Pagamento foi criado (criação de instância).
● Pagamento.quantia foi definido para quantia (modificação de atributo)
82
Contratos para o Sistema PDV
● Operação Inicializar:
Operação: Inicializar ()
Responsabilidades: Inicializa o sistema.
Pré-condições:
Pós-condições:
● Loja, PDV, Catálogo-Produto, e Especificação-Produto foram criados
(criação de instância).
● PDV foi associado com Loja, e Catálogo-Produto com
83