Você está na página 1de 129

Ana Cristina Melo

51 exerccios
resolvidos
inclui questes de concursos pblicos
_j apresenta comentrios
modelos compatveis com as verses 1.4 e 2.0 da UML

JMU

Apresentao

Minha experincia lecionando disciplinas de modelagem de desenvolvimento de sistemas, com foco em UML, aliada necessidade de ter um
material de apoio tcnico mais completo, me levaram a escrever Desenvolvendo Aplicaes com UML1 - do conceituai implementao.
Entretanto, passei a perceber outras necessidades em sala de aula, nessa
e em outras disciplinas: um material de apoio prtico, que pudesse ser usado para fixao da matria.
Notei que essa no era uma necessidade s da docncia, mas tambm do
aluno que entende a teoria, mas no consegue sair do ponto zero, no
consegue comear. E por que isso? Porque, sem prtica no possvel
aprender. Sem exerccios no h como termos certeza do aprendizado.
E olhando para minha experincia, h dezoito anos como Analista e Programadora, percebi que tambm temos a necessidade do exemplo. Principalmente quando aprendemos sozinhos. Nesse caso, aprendemos por
meio de tentativas e erros, exemplos e exerccios.
Assim, espero que esse material atenda a todos: professores, alunos e
profissionais da rea.
O livro est dividido em captulos, que tratam dos seguintes temas:
Captulo 1 - Encontrando classes, atributos e relacionamentos.
Capitulo 2 - Desenhando diagrama de classes a partir de minicenrios.
' e Desenvolvendo Aplicaes com UML 2.0 (2a edio).

X Exercitando Modelagem em UML

Captulo 3 - Exercitando a identificao de casos de uso.


Captulo 4 - Exercitando a Identificao de classes a partir de casos de
uso.
Capitulo 5 - Alguns exercidos sobre diagrama de mquina de estados.
Apndice A - Questes de concursos pblicos sobre orientao a objetos
e UML.
Alguns exerccios possuem complementos na forma de outros exerccios,
oferecendo variaes ou Incrementos ao problema Inicial.
Vocs vo reparar que a maioria dos cenrios descrita como sendo pessoas comuns que precisam de uma ferramenta para resolver seus problemas. Meu objetivo com esse tipo de abordagem foi o de aproximar o problema do conhecimento pblico do meu leitor. Assim, tenho certeza que
vocs ro se familiarizar com os problemas de cada um de nossos personagens.
Quaisquer duvidas, comentrios, sugestes e/ou criticas podem ser enviadas para meu e-mail livro@anacristinamelo.eti.br.
Obrigada e boa leitura!

"A diferena no est no tamanho do seu sonho,


mas no tamanho da sua vontade em querer realiz-lo!
E sempre que voc conseguir realizar um sonho, comece
tudo de novo. NSo podemos viver sem ter objetivos!"
Ana Cristina S, L Melo

Sumrio

1. Encontrando Classes, Atributos e Relacionamentos


1. Exerccio: Conta de Luz
2. Exerccio: Classe TextoSaida
3. Exerccio: Classe BonecoEm Movimento
4. Exerccio: Horrio de Remdios
5. Exerccio: Gastos Dirios
6. Exerccio: Comanda Eletrnica
7. Exerccio: Lista de Compras
8. Exerccio: Lista de Compras (Variao A)
9. Exerccio: Lista de Compras (Variao B)
10. Exerccio: Lista de Compras (Variao C)
11. Exerccio: Lista de Compras (Variao D)
12. Exerccio: Coleo de CD's
13. Exerccio: Coleo de CD's (Variao A)
14. Exerccio: Sala de Reunio
15. Exerccio: Sala de Reunio (Variao A)
16. Exerccio: Herana

2. Desenhando Diagrama de Classes a partir de Minicenrios


17. Minicenrio: Controle de Tarefas
18. Minicenrio: Ligaes telefnicas via modem
19. Minicenrio: Testes de Fixao
20. Minicenrio: Testes de Fixao (Variao A)
21. Minicenrio: Festas Infantis
22. Minicenrio: Festas Infantis (Variao A)
23. Minicenrio: Cursos de Aperfeioamento
24. Minicenrio: Cursos de Aperfeioamento (Variao A)
25. Minicenrio: Classificados na Web
26. Minicenrio: Jogo da Forca

1
3

4
5
6
8
9
10
12
13
15
15
16
17
18
21
22

24
25
28
30
33
33
35
36
37
39
42

XII Exercitando Modelagem em UML

27. Minicenrio: Ferramenta de UML


28. Minicenrio: Clube da Leitura
29. Minicenrio: Condomnio
30. Minicenrio: Pediatra
31. Minicenrio: Pediatra (Variao A)
32. Minicenrio: Pediatra (Variao B)
33. Minicenrio: Aposta Lotrica

3. Exercitando a Identificao de Casos de Uso


34. Cenrio: Encomenda de placas
35. Cenrio: Rdio Txi Mar & Sol
36. Cenrio: Treinador de vlei
37. Cenrio: Controle de Obra
38. Cenrio: Controle de Obra (Variao A)
39. Cenrio: Senha de Atendimento
40. Cenrio: Controle de Bolo
41. Cenrio: Estacionamento
42. Cenrio: Jogo da Velha
43. Cenrio: Jogo da Memria

44
46
48
51
54
56
58
60
61
67
74
79
86
86
92
97
.....100
103

4. Exercitando a Identificao de Classes a partir de Casos de Uso.. 107


44. Cenrio: Encomenda de placas
107
45. Cenrio: Rdio Txi Mar & Sol
108
46. Cenrio: Treinador de Vlei
110
47. Cenrio: Controle de Bolo
111
48. Cenrio: Jogo da Velha
113
5. Alguns Exerccios sobre Diagrama de Mquina de Estados
49. Cenrio: Controle de Tarefas
50. Cenrio: Encomenda de Placas
51. Cenrio: Rdio Txi Mar & Sol

114
114
115
115

Apndice. Questes de Concursos Pblicos sobre Orientao a


Objetos e UML

117

Captulo

Encontrando Classes, Atributos


e Relacionamentos

Um dos principais diagramas da UML o Diagrama de Classes. Observando meus alunos, no vejo dificuldade no aprendizado do que um relacionamento de associao, herana ou agregao. Vejo dificuldade em
se abstrair o conceito desses relacionamentos do mundo real, ou melhor,
de um problema real.

Produto cermico, geralmente em


forma de paraleleppedo, para

construes.

Provavelmente seja fcil entender


que nome atributo de pessoa, e
que funcionrio uma herana de
pessoa. Mas ser que o nvel de
facilidade permanece o mesmo
quando estamos diante de um problema real e este precisa ser abstrado para atributos, classes, relacionamentos e outros elementos?
Posso apostar que no! E como
possvel que essa abstrao se
torne uma tarefa natural? Respondo: exercitando e/ou aprendendo
por meio de anlise de exerccios
prontos.

2 * Exercitando Modelagem em UML


Vamos comear a exercitar essa abstraco mais primria, que est diretamente ligada ao conceito de orientao a objetos, mas que sem ela no
existe modelo em UML. Vamos perceber, na evoluo dos exerccios, o
quanto uma modelagem pode mudar, de acordo com o contexto em que
estamos trabalhando. Nosso objetivo nesse captulo trabalhar a abstraco, por isso s desenharemos a classe na notao da UML quando for
necessrio explicar os relacionamentos.
Os primeiros exerccios procuram extrair de um descritivo (que eu chamo
de cenrio) a classe existente, seus atributos e/ou mtodos.
Os exerccios seguintes comeam a explorar a existncia de mais de uma
classe. Nesses exerccios, teremos variaes dos mesmos problemas, a
fim de exercitar a evoluo da modelagem.
Para entendimento geral desse capitulo, leia com ateno as convenes
que adotei para resoluo dos exerccios.
CONVENES DO CAPTULO:
- Na maioria dos exerccios no so desenhadas classes no padro da
UML. As classes so apenas relacionadas numa tabela;
- Os atributos e mtodos seguem a nomenclatura da UML, ou seja, iniciam
com letra minscula, tendo a primeira letra de cada palavra (a partir da
segunda) em maiscula;
- Todos os atributos possuem seus tipos identificados. Quando o atributo
for um objeto, o tipo citado como Classe XYZ, onde XYZ o nome da
classe. Quando o atributo for uma coleo (uma lista), o tipo citado como
Coteo de XYZ, onde XYZ o nome da classe correspondente a cada
item da lista;
- Todos os mtodos possuem, se existir, sua lista de parmetros (acompanhados do tipo) e o tipo de retorno;
- Os mtodos descritos foram deduzidos a partir do cenrio. Entretanto, a
lista completa dos mtodos s possvel obter a partir de um diagrama de
sequncias, que tem por objetivo identificar a troca de mensagens existente entre objetos, em cada caso de uso. Por este motivo, relaciono apenas
os mtodos mais relevantes;

Encontrando Classes, Atributos e Relacionamentos 3


- Os relacionamentos so descritos na seo de "Comentrios sobre a
Resoluo", em vez de serem representados numa classe;
- Na fase de anlise, cabe desenharmos uma classe representando seus
relacionamentos. Na fase de projeto, cabe transformarmos esses relacionamentos em atributos, de forma a representar como eles sero implementados. Para melhor entendimento dos exercidos, especificamos esses atributos que correspondem aos relacionamentos implementados. Esses atributos so identificados como atributos derivados, pois seus valores no
so informados e sim gerados a partir de um relacionamento. Exemplo:
Um funcionrio possui os atributos nome e cargo. Porm cargo uma
classe que possui os atributos descrio e salrio. O atributo cargo dentro
de funcionrio fruto do relacionamento das duas classes;
- Todo atributo cujo tipo seja uma classe enumeration, no definido como um atributo derivado, visto a classe enumeration atuar como um tipo de
dado e no como um relacionamento;
- Atributos e mtodos de classe so representados sublinhados, conforme
notao da UML;
- Em alguns exerccios, para elucidar o cenrio, so exibidas cpias de
planilhas ou relatrios existentes no Mundo Real de nossos clientes. Ateno! Alguns requisitos, s vezes, esto implcitos nesses exemplos.

1. EXERCCIO: CONTA DE Luz


CENRIO: As informaes a seguir se referem planilha Excel de Gabriel,
que controla os gastos mensais com sua conta de luz.
Para cada conta de luz cadastra-se: data em que a leitura do relgio de luz
foi realizada, nmero da leitura, quantidade de Kw gasto no ms, valor a
pagar pela conta, data do pagamento e mdia de consumo.
Mensalmente, so realizadas as seguintes pesquisas:
- verificao do ms de menor consumo;
- verificao do ms de maior consumo.

4 Exercitando Modelagem em UML

IMAGEM DA PLANILHA:
LISTA DE ACOMPANHAMENTO DE GASTO DE LUZ

data leitura n" leitura


04/07/2005
02/08/2005
Menor Consumo
Maior Consumo

4166
4201

kw gasto

350

206,43
157,07

350
460

ago/05
Jul/05

460

data pagto Jjgj^


15/07/2005
15/08/2005

15,33
12,06

EXERCCIO:
Identifique as classes, atributos e mtodos desse cenrio.

RESOLUO:
Classe

ContaLuz

Atributos
dataLeitura : date
nmeroLeitura: integer
qtdKwGasto : integer
valorPagar: real
daiaPagamento : date
mediaConsumo: real

Mtodos
cadastrarConta
verificaMesMenorConsumo : string
verificaMesMaiorConsumo: string

COMENTRIOS SOBRE A RESOLUO:


a) O retorno do mtodo string pois traz o ms e o ano (ex: 082005).

2. EXERCCIO: CLASSE TEXTOSAIDA


CENRIO: Para fixao do conceito de classes em sala de aula, Prof3 Cristina criou com seus alunos a classe TextoSaida.
O objetivo do exerccio criar uma classe que permita configurar um texto
por meio de atributos (tamanho da letra, cor da fonte e cor do fundo), escolhendo em que tipo de componente ele deve ser exibido (entre as opes:
labet, edit e memo).

Encontrando Classes, Atributos e Relacionamentos 5

Para no haver vnculo com linguagens de programao, essa classe no


foi criada como herana de uma classe visual.
As cores podem ser escolhidas entre os tons: preto, branco, azul, amarelo
ou cinza.
EXERCCIO:
Identifique as classes, atributos e mtodos desse cenrio.

RESOLUO:
Classe

TextoSaida

enumeration
EnumTpoComponente

enumeration
EnumCor

Atributos

texto : string
tipoComponente :
EnumTipoComponente
tamanhoLetra : integer
corFonte: EnumCor
corFundo : EnumCor
label
edit
memo
preto
branco
azul
amarelo
cinza

Mtodos

cadastrar
exibirTexto

COMENTRIOS SOBRE A RESOLUO:


a) A classe enumeration EnumTipoComponente foi criada para suportar o
domnio do atributo tipoComponente, que consiste de valores fixos, definidos como sendo os componentes onde o texto pode ser exibido. O mesmo
aconteceu com a ciasse EnumCor.

3. EXERCCIO: CLASSE BONECOEMMOVIMENTO


CENRIO: Professora Cristina decidiu criar uma classe que permita mover
um boneco na tela,
Esse boneco deve ter nome, posio da coordenada X, posio da coordenada Y e direo atual (cima, baixo, direita, esquerda).

6 Exercitando Modelagem em UML

EXERCCIO:
Identifique as classes, atributos e mtodos desse cenrio.

RESOLUO:
Classe
Boneco

enumerai ion
EnumDirecao

Atributos
nome : string
coordenadaX : integer
coordenadaY : integer
direcaoAtual : EnumDirecao
cima
baixo
direita
esquerda

Mtodos
cadastrar
mover (novaCoordenadaX:
integer, novaCoordenadaY: integer)

COMENTRIOS SOBRE A RESOLUO:


a) Para que o boneco se mova, cabe ao ator informar a nova coordenada.
Isso feito por meio de parmetros do mtodo Mover. Aps mover o boneco, os atributos coordenadaX e coordenadaY so atualizados com os
valores dos parmetros novaCoordenadaX e novaCoordenadaY, respectivamente.
Para alterar a direo, basta antes de chamar o mtodo mover, mudar o
valor do atributo direcaoAtual.

4.

EXERCCIO: HORRIO DE REMDIOS

CENRIO: As informaes a seguir se referem a uma aplicao de controle


pessoal de horrio de remdios, existente no Palm de Maurcio.
Para cada remdio cadastra-se: o nome de quem vai tomar o remdio, a
data de incio, a quantidade de dias que foi prescrita pelo mdico, a quantidade de vezes ao dia, a dosagem e o nome do remdio.
Ao cadastrar o remdio, a aplicao sugere todos os horrios possveis
para tomar o remdio. O usurio escolhe o melhor horrio e a aplicao
avisa at quando o remdio deve ser tomado e prepara uma planilha de
horrios.
O usurio, no infcio do dia, seleciona a opo de planilha de horrios de
remdios do dia.

Encontrando Classes, Atributos e Relacionamentos * 7


No caso de Maurcio atrasar o horrio de tomar o remdio num determinado dia, a planilha reorganiza os horrios daquele dia.
EXERCCIO:
Identifique as classes, atributos e mtodos desse cenrio.
Represente os relacionamentos como atributos derivados.
RESOLUO:
Classe

PrescricaoRemedio

HorarloRemedio

Atributos
usurio : strng
datalnicio : date
qtdDias : integer
qtdVezesDia : integer
dosagem : real
remdio : string
/planrlnaHorario : Coleo
de HorarioRemedio
data : date
horrio : time

Mtodos

sugerirHorarios
exibirPlanilhaHorarios
(dataReferencia : date )

cadastrarHorario

COMENTRIOS SOBRE A RESOLUO:


a) Numa primeira modelagem. os atributos remdio e usurio (do Remdio) foram definidos como string. Esses atributos so fortes candidatos a
se tomarem classes de negcio. O que determina essa mudana o contexto da aplicao. Nesse caso, estamos tratando de uma aplicao bem
pequena, cujo objetivo principal o controle de horrios. Sendo assim,
podemos nessa verso no transformar esses atributos em classes.
b) Toda prescrio tem associada a ela uma planilha de horrios. Isso cria
um relacionamento da classe PrescricaoRemedio com a classe HorarioRemedio, representada pelo atributo planilhaHorario. que corresponde a
uma coeo de objetos da Classe HorarioRemedio.
c) O mtodo sugerirHoraro responsvel por montar um conjunto possvel
de horrios, a partir do atributo qtdVezesDia. Por exemplo, se um remdio
tiver que ser tomado de 8 em 8 horas, a aplicao pode sugerir os seguintes horrios: [6h, 14h. 22h], [7h, 15h, 23h], [8h, 16h, 24h].
Uma vez escolhido o conjunto de horrios, o mtodo HoraroRemedio.cadastrarHorario chamado quantas vezes forem necessrias para cadastrar todos os horrios em todos os dias.

8 Exercitando Modelagem em UML

d) A classe HorarioRemedio foi criada incluindo o atributo data, para permitir o cadastramento de horrios diferentes para cada dia. Se no fosse por
essa abordagem, poderamos ter criado um atributo horrio: time na classe
PrescricaoRemedio, com multiplicidade de [1..*], prevendo de uma a vrias
doses (horrios) por dia.

5. EXERCCIO: GASTOS DIRIOS


CENRIO: As informaes a seguir se referem Planilha Excel de Vera,
que faz o controle de seus gastos dirios.
Para cada gasto, Vera cadastra: o tipo do gasto (remdio, roupa, refeio
etc.), a data do gasto, o valor gaslo e a forma de pagamento (dinheiro,
cheque, carto ou cheque pr).
No final do ms, Vera lista o total dos gastos mensais, agrupados por tipo de
gasto e exibindo o quanto foi gasto em cada tipo de forma de pagamento.
EXERCCIO:
Identifique as classes, atributos e mtodos desse cenrio.
Represente os relacionamentos comoatrlbulos derivados^

RESOLUO:
Classe
TipoGasto

Gasto

enumerationi
EnumFormaPagamento

Atributos
descricaoTipo : string
/tipo : Classe TipoGasto
data : date
valor : real
formaPagamento : EnumFormaPagamento
dinheiro
cheque
carto
chequePre

Mtodos
cadastrar
cadastrar
gerarRelatoroMensal{mesAno: string)

COMENTRIOS SOBRE A RESOLUO:


a) A classe enumeration foi criada para suportar o domnio do atributo
FormaPagamento, que consistia de valores fixos e com caractersticas de

Encontrando Classes, Atributos e Relacionamentos 9

rara mutao. Numa aplicao de contexto maior, essa classe poderia deixar de ser enumeration para se transformar numa classe de negcios.
b) Todo gasto refere-se a somente um tipo. Isso cria um relacionamento da
classe Gasto com a classe TipoGasto, representada pelo atributo tipo.
c) Toda a complexidade do relatrio mensal est encapsulada no mtodo
gerarRelatorioMensal.

6.

EXERCCIO: COMANDA ELETRNICA

CENRIO: As informaes a seguir se referem a uma aplicao de controle


de comanda eletrnica da padaria Doce Sabor do Seu Joaquim.
O cliente usa uma comanda eletrnica durante suas compras na Padaria.
A cada produto consumido, o atendente registra em sua comanda (que
possui uma numerao) o produto e a quantidade.
Ao passar no caixa na sada da Padaria, a Caixa l os gastos da comanda,
finalizando a compra. Na leitura da comanda, verifica-se o valor unitrio de
cada produto a fim de calcular o valor total da compra.
EXERCCIO:
Identifique as classes, atributos e mtodos desse cenrio.
Represente os relacionamentos como atributos derivados.

RESOLUO:
Classe
Produto

Comanda

ItemComanda

Atributos
cdigo : string
descrio : string
precoUnitario : real
numero : integer
/valorTotal : real
/itens : Coleo de ItemComanda
/produto : Produto
quantidade : integer

Mtodos
cadastrar
registrarltem( item : ItemComanda )
fecharComanda
cadastrar

10 Exercitando Modelagem em UML

COMENTRIOS SOBRE A RESOLUO:


a) O atributo va/orTbfa/da classe Comanda derivado, porque o resultado do clculo do mtodo fecharComanda. Esse mtodo obtm todos os
itens da Comanda e para cada um verifica o preo Unitrio do produto,
calculando o sub-total, de acordo com a seguinte frmula:
ItemComanda.quantidade * ItemComanda.produto.precoOnitario

O total da Comanda (atributo valorTotal) o somatrio dos subtotais.


b) Toda comanda possui uma lista de itens. Isso cria um relacionamento
da classe Comanda com a classe ItemComanda, representada pelo atributo /tens. Por sua vez, um item de comanda se refere a somente um produto. Esta representao feita no atributo produto.

7. EXERCCIO: LISTA DE COMPRAS


CENRIO: Carolina controla em Excel uma planilha com a sua lista de compras mensal. Ela cadastra o nome do produto, a unidade de compra, a
quantidade prevista para um ms, a quantidade que efetivamente ser
comprada e o preo estimado (atualizado todo ms).
IMAGEM DA PLANILHA:
Produto

Unidade de
compra
Qtd Ms

Arroz
Feijo
Acar
Carne

Kg
Kg
Kg
Kg

Total Estimado

Qtd
Compra
8

7,5

Preo
Estimado
1,80
2,10
1,05
8,00

150,00

ESCLARECIMENTOS SOBRE o PROBLEMA:


a) A quantidade de compra pode variar em virtude de sobra de um ms
para o outro, ou da necessidade de um gasto maior no ms. Por exemplo:
almoo em famlia.
b) As compras so feitas pela prpria Carolina. Por esse motivo, ela no v
necessidade de relacionar as marcas dos produtos.

Encontrando Classes, Atributas e Relacionamentos > 11


c) Mensalmente, Carolina analisa o quanto pagou por cada produto, e se
achar necessrio, atualiza o preo estimado de cada produto.
EXERCCIO:
Identifique as classes, atributos e mtodos desse cenrio.
Represente os relacionamentos como atributos derivados.
RESOLUO:
Classe
ListaCompra
ItemCompra

Produto

Atributos
ms : integer
/itens : Coleo de ItemCompra
/total Estimado : real
/produto : Classe Produto
qtdEfetivaCompra : real
nome : string
unidadeCompra : string
qtdPrevistoMes : real
precoEstimado : real

Mtodos
cadastrar
obterTotalEstimado{ms :
integer)
cadastrar
cadastrar

COMENTRIOS SOBRE A RESOLUO:


a) O mtodo obterTotalEstimado um mtodo que atua sobra a coleo
de objetos ItemCompra, ou seja, s podemos saber qual o total estimado
de toda a Lista de Compras (conjunto dos itens de compra), se quantificarmos o subtotal de cada item. Sendo assim, podemos concluir que o
atributo totalEstimado que pertence Lista de Compras derivado, pois
o resultado desse mtodo. O algoritmo do mtodo obterTotalEstimado(ms: integer) :
define obj ItemConpra : ItemConpra
obter a colecSo de objItemCoinpra,
onde ListaCompra.ms = parmetro ms
total - O
para cada objItemCompra
subtotal <objIternCorrpra.qtdEfetivaCatrira *
objItemCompra.produto.precoEstimado
total <- total + subtotal
fim-para
obterTotalEstimado <- total

12 Exercitando Modelagem em UML

b) Toda lista de compras possui um conjunto de itens. Isso cria um relacionamento da classe ListaCompra com a classe ItemCompra, representada
pelo atributo itens. Por sua vez, um item de compra se refere a somente
um produto. Essa representao se d por meio do atributo produto.

8. EXERCCIO: LISTA DE COMPRAS (VARIAO A)


CENRIO: Carolina no tem mais tempo de fazer as compras pessoalmente. Precisou detalhar o produto, de forma a lhe permitir delegar essa tarefa
a outra pessoa. Alm disso, no quer que paguem um valor absurdo por
algum produto. Sendo assim, incluiu em sua planilha as colunas "preo
mximo j comprado" e "preo mximo a pagar" no ms corrente, onde
esta ltima coluna calculada a partir da coluna anterior acrescida de 5%.
O "preo mximo j comprado" inserido na planilha, a partir das compras
efetivamente realizadas.

EXERCCIO:
Quais so os atributos e/ou mtodos que precisam ser includos nas classes do
exercfcjo gnjerjgrjara reflejir esse novo cenrio.

RESOLUO:
Classe
ListaCompra

ItemCompra

Produto

Atributos
ms : integer
/itens : Coleo de lemCompra
/total Estimado : real
/produto : Classe Produto
qtdEfetivaCompra : real
/preo Mximo M es : real
nome : string
descricaoProduto : string
unidadeCompra : string
qtdPrevistoMes : real
precoMaximoAnterior : real
procoEstmado :-feol

Mtodos
cadastrar
obterTotalEstimado(ms :
integer)
cadastrar

cadastrar

COMENTRIOS SOBRE A RESOLUO:


a) Os atributos e ou mtodos criados esto em negrito. O que foi retirado
consta riscado.

Encontrando Classes, Atributos e Relacionamentos 13


b) Com a criao dos atributos precoMaximoAnterior e precoMaximoMes,
eliminou-se o atributo precoEstimado. Essa informao ser obtida a partir
do atributo precoMaximoAnterior.
c) O atributo precoMaximoAnterior Q cadastrado pelo usurio.
d) O algoritmo do mtodo obterTotatEstimado foi alterado:
define objItemCompra : ItemCompra
obter a coleSo de objItemCompra,
onde ListaConpra.mes = parmetro ms
total <- O
para cada objItsmCompra
subtotal <objItemConFra.qtdEfetivaCompra
obj I temCoflipra. produto.prcoMaximoAnterior
total <- total + subtotal
fim-para
obterTotalEstimado - toCal

e) O atributo precoMaximoMes derivado, pois ele no recebe um valor


diretamente do usurio. Seu valor derivado de um clculo feito sobre o
atributo precoMaximoAnterior, considerando a frmula a seguir. Esse atributo tambm poderia ter sido definido como um mtodo do tipo funo,
cujo retomo seria o preo mximo do ms.
ItemCornpra.precoMaxiinoMes = ItemConpra.produto-precoHaximoAaterior * l , O S

9.

EXERCCIO: LISTA DE COMPRAS (VARIAO B)

CENRIO: Carolina est assustada com a variao de preo de um Supermercado para outro. Tem feito compras (ou pedido para fazer) em at trs Supermercados diferentes. Sendo assim, resolveu melhorar sua planilha. Criou
uma segunda planilha que contm o preo mais baixo que ela pagou num
determinado ms, indicando a que supermercado pertence. Veja a seguir
IMAGEM DA PLANILHA:
Ms de
Produto

Compra

Arroz

julho

Arroz

agosto

Arroz

setembro

Feilo

julho

Feijo

agosto

Valor
Compra

1.80
1.75
2,05
2.10
2,25

Supermercado

XXX
YYY
XXX
XXX
XXX

14 Exercitando Modelagem em UML

EXERCCIO:
Quais so os atributos e/ou mtodos que precisam ser includos nas dm
exerccio anterior, para refletir esse novo cenrio.
Verifique se h necessidade de criar novas classes.

RESOLUO:
Classe
LlstaCompra

ItemCompra

Produto

HistoricoCompra

Supermercado

Atributos
ms : integer
/itens : Coleo de ItemCompra
/total Estimado : real
/produto : Classe Produto
qtdEfetivaCompra : real
/precoMaximoMes : real
nome : string
descricaoProduto : string
unidadeCompra : string
qtdPrevistoMes : real
/precoMaximoAnteror : real
ms : integer
/produto : Classe Produto
valorPago : real
/supermercado : Classe
Supermercado
nome : sring

Mtodos
cadastrar
obterTotal Estimado)
: integer)

'

cadastrar

cadastrar

.
cadastrar

cadastrar

*m

COMENTRIOS SOBRE A RESOLUO:


a) O atributo ms da classe HistoricoCompra est definido como im<
para armazenar o nmero correspondente ao ms do ano.
b) O atributo precoMaximoAnteror no mais lanado manualmente |M
usurio. Agora, ele obtido automaticamente por uma frmula, que ver
o maior valor pago dentre os ltimos meses, para o produto em queslo,
Exemplo: na planilha de exemplo, para o produto arroz, o resultado
2,05 e para o produto feijo seria 2,25.
c) Cada histrico de compra est associado a um supermercado e ;i m
produto. Isso cria os relacionamentos da Classe HistoricoCompra com i
Classe Produto e a Classe Supermercado. Na classe HistoricoCompri

Encontrando Classes, Atributos e Relacionamentos 15

que se armazena o valor pago a cada ms, indicando em que supermercado foi feita a compra.

10. EXERCCIO: LISTA DE COMPRAS (VARIAO C)


CENRIO: Carolina deseja saber qual o Supermercado que apresentou
mais produtos baratos, num determinado ms.
EXERCCIO:
A resoluo dessa situao se d com a incluso de um mtodo.
Sugira um nome para'esse mtodo, indicando sua assinatura.
A que classe pertence esse mtodo e como seria seu algoritmo?

RESOLUO:
MTODO DA CLASSE HISTORICOCOMPRA:
obterSupermercadoMaisVantajoso(mesReferencia: integer): Supermercado
ALGORITMO:
define EupermercadoRef : Supermercado
Selecionar eodos 05 objetos de HistoricoCompra,
onde HistoricoCompra.ms = mesHeferencia, agrupando por Supermercado
Para cada grupo de objUistoricoCompra.supermercado
totalizar o atributo valorpago desse grupo
se o Cotai de valor pago for o maior obtido at o momento, guardar o
supermercado correspondente em supermercadoRef
im-para
obterSupermercadoMaisVantajoso 4- supermercadoRef

COMENTRIOS SOBRE A RESOLUO:


a) Se a classe HistorcoCompra armazena o menor valor pago por um produto, num determinado ms, significa que o supermercado mais vantajoso
aquele onde se gastou mais, pois ofereceu mais produtos em oferta.

11. EXERCCIO: LISTA DE COMPRAS (VARIAO D)


CENRIO: Carolina deseja desconsiderar o preo de um determinado ms
para clculos de maior ou menor valor, ou ainda do supermercado mais
vantajoso.

16 Exercitando Modelagem em UML

Exemplo (1): saber qual o Supermercado que apresentou mais produtos


baratos, num determinado ms. Supondo que ela comprou um produto
numa promoo relmpago que ofereceu 50% de desconto, esse valor no
pode ser parmetro para suas compras futuras.
Exemplo (2): para calcular o precoMaximoAnterior, a aplicao pega o
maior valor. Vamos supor que um determinado produto teve queda de preo. Isso significa que os meses de preo alto no podem ser considerados
para as prximas compras.
EXERCCIO:
Em que classe deve ser includo um atributo para resoEver essa questo
e como deve ser esse atributo?

RESOLUO:
CLASSE:
ATRIBUTO:

HistoricoCompra
validoParaAnalise: boolean

12. EXERCCIO: COLECO DE CD's


CENRIO: Adriano tem uma coleo grande de CD's e gostaria de cadastrar no seu Palm a lista desses CD's, pois s vezes nem sabe o que tem.
Ele pensou em cadastrar o nome do cantor{a) ou conjunto, o ttulo do CD e
o ano de lanamento.

EXERCCIO:
Identifique as classes, atributos e mtodos desse cenrio.
Represente os relacionamentos como atributos derivados.

RESOLUO:
Classe
Musico

Atributos
nome : string
ehSolo : boolean

Mtodos
cadastrar

Encontrando Classes, Atributos e Relacionamentos 17

Classe
CD

Atributos
/musico : Classe Musico
titulo : sfring
ano : intetjer

Mtodos
cadastrar

COMENTRIOS SOBRE A RESOLUO:


a) Todo CD est relacionado a um msico que pode ser um cantor solo ou
um conjunto. Isso cria um relacionamento entre a classe CD e a classe
Mus/co.
b) O atributo ehSolo indica se o objeto se refere a um cantor solo ou a um
conjunto.

13. EXERCCIO: COLEO DE CD's (VARIAO A)


CENRIO; Adriano notou que alguns CD's so de coletneas. Sendo assim,
no tm apenas um cantor (ou conjunto) e sim vrios. Ele quer cadastrar
essa lista de msicos, sem relacion-los s msicas. Deseja controlar
tambm se o CD de coletnea e se duplo.
Adriano gostaria de ter cadastrada a lista das msicas de cada CD, com o
tempo de durao de cada faixa.
So relatrios desejados: os CD's de um determinado msico e em quais
CD's est uma determinada msica.
EXERCCIO:
Aualize a lista de classes, atributos e mtodos para refletir esse cenrio.
Represente os relacionamentos como atributos derivados.
Desenhe um diagrama de classes, somente com o nome das classes,
especificando os relacionamentos e as multiplicdades.

RESOLUO:
Classe
Musico

CD

Atributos
nome : string
ehSolo : boolean
/musico : Classe Musico
titulo : string
ano : tnteqer

Mtodos
cadastrar
cadastrar
listarCdsPorMusico(musico:
Classe Musico)

18 Exercitando Mocielagem em UML


Classe

Mtodos
listarCdsPorMusica(musica:
Classe Musica)

Atributos
ehDuplo : boolean
ehColetnea : boolean
/ItstaMusIcas : Coleo de
Musica
nome : string
tempoFaixa : real

Musica

CD

0..*

cadastrar

1.-"

Musico

1..'
Musica

COMENTRIOS SOBRE A RESOLUO:


a) No h relacionamento da classe Musica com a classe Musico, pois
este foi o requisito do usurio: no realizar o controle de que msico est
interpretando que cano.
b) O atributo HstaMusicas da classe CD representa o relacionamento de
multiplicidade 1..* da classe CD com a classe Musica.

14. EXERCCIO: SALA DE REUNIO


CENRIO: Patrcia secretria e dentre suas tarefas habituais existe a de
controlar o uso das trs salas de reunio, que so utilizadas por todos os
setores da empresa.
Ela possui pastas de trabalho em Excel para cada ms do ano e, dentro de
cada pasta, existem de vinte e oito a trinta e uma planilhas, uma para cada
dia do ms.

Encontrando Classes, Atributos e Relacionamentos 19

Na planilha, ela criou a coluna de horrios e trs colunas, uma para cada
sala de reunio. Num controle parte, ela relaciona o nome do funcionrio,
seu cargo e ramal. Alm da alocao, surge frequentemente a necessidade de realocao de uma reunio, mudando sala e/ou data e/ou horrio.
Outra consulta constante que feita Patrcia, pelos Diretores, sobre as
salas que estaro livres numa determinada data, numa faixa de horrio.
Para cada sala, precisa-se saber o nmero de lugares. Veja o exemplo a
seguir.

IMAGEM DA PLANILHA:
QUagosto
Horrio
08h30m
09h
09h30
10h
10h30
11h

Sala 101
Dr. Glauco Assunto: processo
empresa Mar e
Lua

Sala 105

Dra. Maria- Assunto: palestra


sobre, a nova lei
de falncias

11h30

Sala 201
Mariana - assunto: anlise
de material

Dra. Maria assunto: reunio de projeto

EXERCCIO:
Identifique as classes, atributos e mtodos desse cenrio.
Represente os relacionamentos como atributos derivados.
Desenhe um diagrama de classes, somente com o nome das classes,
especificando os relacionamentos e as multiplicidades.

RESOLUO:
Classe

AlocacaoSala

Atributos
/sala : Classe
Sala Reunio
dataAIocacao : date
horalnicioAlocacao : time
horaFimAlocacao : time
/responsavelAlocacao:
Classe Funcionrio
assunto : string

Mtodos
aiocar
realocar(novaData : date,
novaHoralnicio: time,
novaHoraFim: time, novaSala:
Classe Sala)
cancelar

20 Exercitando Modelagem em UML


Classe

Atributos
nome : string
cargo : string
ramal : integer

Funcionrio

numero : integer
qtdLugares : integer

SalaReuniao

Mtodos
cadastrar
cadastrar
obterSalaLivrefdata: date.
horalnicio: time. horaFim: timel :
coleco de SalaReuniao

SalaReuniao

O
o..AlocacaoSala

0..*

Funcionrio

COMENTRIOS SOBRE A RESOLUO:


a) Toda alocao de sala registra qual sala foi alocada e qual foi o funcionrio responsvel pelo pedido de alocao. Isso cria os relacionamentos
entre as classes AlocacaoSala, SalaReuniao e Funcionrio.
b) Repare que o cenrio no citou a necessidade de se cadastrar o assunto da Reunio, mas essa informao relevante, pois aparece em todas
as alocaes registradas na Planilha.
Isso mostra que, ao levantarmos os requisitos de uma aplicao, no basta
levarmos em conta somente o que dito. Precisamos analisar tambm o
que mostrado, na forma de fichas, documentos, formulrios, planilhas,
relatrios etc.
c) O mtodo obterSalaLivre de classe, pois sua execuo no sobre
um objeto e sim sobre toda a coleco de objetos SalaReuniao. O resultado
desse mtodo um conjunto (uma coleco) de objetos SalaReuniao, que
pode ser um conjunto vazio (nenhuma sala disponvel), um conjunto unitrio ou retomar todas as salas de reunio.

Encontrando Classes, Atributos e Relacionamentos 21

15. EXERCCIO: SALA DE REUNIO (VARIAO A)


CENRIO: Os materiais de apoio so divididos entre as salas de reunio.
Sendo assim, preciso controlar os materiais que esto alocados e para
quais reunies. Por exemplo: retroprojetor - sala 101 na reunio de 9 s
10h30;flip-sala 102 na reunio de 10 s 12.
EXERCCIO:
Quais so os atributos e/ou mtodos que precisam ser includos nas classes do
exerccio anterior, para refletir esse novo cenrio.
Verifique se h necessidade de criar novas classes.
Atualfze os relacionamentos e multiplicidades do diagrama de classes, se for
preciso.
RESOLUO:

Classe

AlocacaoSala

Funcionrio

Atributos
/sala : Classe
SalaReuniao
dataAIocacao : date
horalnicioAlocacao : time
horaFimAlocacao : time
/responsavelAlocacao:
Classe Funcionrio
assunto : string
/listaMateriaisAlocados :
Coleo de Material
nome : string
cargo : string
ramal : integer

SalaReuniao

numero : integer
qtdLugares : integer

Material

nome : string

Mtodos
alocar
realocar(novaData : date,
novaHoralnicio: time,
novaHoraFim: time, novaSala:
Classe Sala)
cancelar

cadastrar
cadastrar
obterSalalivrefdata: date,
horalnicio: tirne. horaRm:
time) : coleco de
SalaReuniao
cadastrar

22 Exercitando Modelagem em UML

SalaReuniao

O
0..'

AlocacaoSala

0..*

Funcionrio

0..*

0..*

Material

COMENTRIOS SOBRE A RESOLUO:


a) Foi includo o atributo UstaMateriaisAlocados, que est em negrito. Alm
disso, foi criada a classe Material.
b) Uma alocao de sala poder ter, tambm, uma lista de materiais alocados. Isso cria o relacionamento entre a classe AlocacaoSala e Material,
representada pelo atributo UstaMateriaisAlocados.

16. EXERCCIO: HERANA


Observe as duas classes adiante:
Classe

Funcionrio

Atributos
matricula: integer
nome: string
dataNascimento: date
/endereo: Classe Endereo
/telsContato: Coleo de
Telefone
/cargo: Classe Cargo
salrio: real
dataAdmissao : date

Mtodos

cadastrar
obterldade
reajustarSalario (percentual:
real)
promover(novoCargo : Cargo)

Encontrando Classes, Atributos e Relacionamentos 23

Classe

Atributos
cdigo : string
norne : string
dataNascimento : date
/endereo : Classe Endereo
/telsContato : Coleo de
Telefone
/profisso : Classe Profisso

Cliente

;,

Mtodos

cadastrar
obterldade

EXERCCIO (A):
Crie uma superclasse que contenha os atributos comuns,
reformulando todas as classes.

RESOLUO:
Classe

Pessoa

Funcionrio

Cliente

Atributos
nome : string
dataNascimento : date
/endereo : Classe Endereo
/telsContato : Coleo de
Telefone
matricula : integer
/cargo : Classe Cargo
salrio : real
dataAdmissao : date
cdigo : string
/profisso : Classe Profisso

Mtodos
cadastrar
obterldade
reajustarSalario
(percentual : real)
promover(novoCargo :
Cargo)

EXERCCIO (B):
Que classes esto se relacionando com a classe Funcionrio?
RESOLUO:
Por herana da classe Pessoa: Endereo e Telefone. Relacionando-se
diretamente com Funcionrio: Cargo.
EXERCCIO (C):
Que classes esto se relacionando com a classe Cliente?
RESOLUO:
Por herana da classe Pessoa: Endereo e Telefone. Relacionando-se
diretamente com Cliente: Profisso.

Captulo J^B

Desenhando Diagrama de Classes


a partir de Minicenrios

Com a prxima lista de exerccios, voc continuar a treinar seu poder de


abstrao dos conceitos de classe e atributos. Usaremos minicenrios
mais complexos que os apresentados no Captulo 1. Desenharemos um
diagrama de classes para cada um dos exerccios deste capitulo.
Repetiremos a frmula de criar variaes dos exerccios, que permitam a
manuteno do modelo.
Nos exerccios deste captulo incluiremos uma pequena lista de casos de
uso, representados num diagrama de casos de uso. Entretanto, em virtude
do nmero reduzido e da baixa complexidade dos mesmos, no escreveremos o descritivo de seus cenrios. Tentaremos abstrair as classes e
seus atributos diretamente da especificao do problema (minicenrio).

CONVENES m CAPITULO:
- Todas as classes contm atributos (com seus tipos), mtodos (com seus
parmetros e tipo de retomo) e relacionamentos (com suas multiplicidades);
- Atributos derivados ou de classe tambm so representados. Atributos e
mtodos de classe so representados sublinhados;
- O diagrama de classes da fase de anlise. Sendo assim, no aparecero atributos derivados que representem relacionamentos;
- Os mtodos descritos foram deduzidos a partir do cenrio. Entretanto, a
lista completa dos mtodos s possvel obter a partir de um diagrama de

24

Desenhando Diagrama de Classes a partir de Minicenrios 25

sequncias, que tem por objetivo identificar a troca de mensagens existente entre objetos, em cada caso de uso;
- Os casos de uso Manter XXX indicam que o caso de uso tratar da consulta, incluso, alterao e excluso de XXX. Exemplo: Caso de Uso Manler Cliente responsvel pela consulta, incluso, alterao e excluso dos
dados cadastrais de cliente;
- Os atributos e mtodos seguem a nomenclatura da UML. ou seja, iniciam
com letra minscula, tendo a primeira letra de cada palavra (a partir da
segunda) em maiscula;
- Todo atributo cujo tipo seja uma classe enumeration no definido como
um atributo derivado, visto a classe enumeration atuar com um tipo de dado e no como um relacionamento.
Vamos exercitar nosso poder de abstrao!

17. MINICENRIO: CONTROLE DE TAREFAS,


Arnaldo deseja escrever uma aplicao de controle de tarefas para colocar
em seu Palm. As especificaes da aplicao so as seguintes:
O cadastro de cada tarefa contm o nmero da prioridade, representado
por um valor real. Isso permite entrar com intervalos intermedirios. Alm
da prioridade, o cadastro deve conter: o nome da tarefa, a data limite de
execuo (se houver), o percentual j concludo e o detalhamento da tarefa.
Para cada tarefa h uma lista de itens que descrevem sua execuo. Para
cada item de execuo, cadastram-se:
- o percentual correspondente
- a descrio da execuo
- a data da execuo (quando for concluda)
Quando uma tarefa receber 100% de execuo, esta deve ser movida automaticamente para a lista de tarefas concludas, podendo ser apagada, se
for o caso.
Veja o exemplo desse controle em papel.

26 Exercitando Modelagem em UML


TAREFA 1.1. -ANIVERSRIO DO FBIO
= 06/08/2005
Data limite
Percentual j concludo = 65%
= planejamento dos preparativos para a festa de
Detalhamento
aniversrio do Fbio, no sbado, dia 6 de acosto.
Lista de Itens para serem executados:
[ 20% l Aluguel do salo e da animao
-01/03/2005
- 15/07/2005
f 20% 1 Encomenda do bolo, salgados e doces
[ 05% l Compra das bebidas
[ 25% l Compra dos itens para a decorao
- 01/07/2005
f 30% l Arrumao do salo

EXERCCIO:
1. Desenhe o diagrama de casos de uso.
2. Desenhe o diagrama de classes completo.

RESOLUO (DIAGRAMA DE CASOS DE Uso):

extends.

extends
Pessoa

Verificar
Concluso da Tarefa

Desenhando Diagrama de Classes a partir de Minicenrios 27

RESOLUO (DIAGRAMA DE CLASSES):


Tareia
liem Execuo
nu mero Prioridade: real
nome: slring
dataLJmitBExecucao : date
detalhamanto: string
/ percentual Concluso: real
slalus: EnumStaiusTarefa

oenumarateda
EnumStatusTarefa

0..*
percentual: real
descrio: string
data Execuo: date

Somatrio de HEmExecucao.Percentual,
quando ItEmExecucao.dataExeciicao <> null

ai i v
concluda

COMENTRIOS SOBRE A RESOLUO:


a) A lista de itens de execuo faz parte da tarefaxiue representa o todo.
Desta forma, o relacionamento foi representado como uma agregao.
b) O atributo percentualConclusao no um atributo que ser cadastrado.
Seu valor sempre calculado a partir do somatrio dos percentuais dos
itens de execuo que j foram concludos (ou seja, que tenham uma data
de execuo). Por este motivo, ele foi definido como atributo derivado. A
regra de sua derivao foi explicada num item de nota, pertencente ao
atributo. Existem diversas formas de expressar esse tipo de regra.
c) O atributo saus poderia ter sido expresso como um atributo identificado
como "ativo: boolean". Entretanto, isso restringiria o atributo a dois valores.
Ao se definir o tipo enumerado, j prevemos uma manuteno evolutiva do
modelo, facilitando a incluso de outros status.
d) O caso de uso Verificar Concluso da Tarefa tem por objetivo verificar
se todos os itens associados a uma tarefa j foram concludos, alterando
automaticamente o status da tarefa para concluda.
e) Como o nico usurio dessa aplicao o Arnaldo, o ator foi identificado como Pessoa.
f) No caso de uso Manter Itens da Tarefa, o ator cadastra, inicialmente,
somente o percentual da tarefa e sua descrio. Depois, a cada tarefa

28 Exercitando Modelagem em UML

concluda, o ator volta nesse caso de uso para lanar a data de execuo.
O item de tarefa considerado como concludo se tiver uma data de execuo cadastrada.

18. MINICENRIO: LIGAES TELEFNICAS VIA MODEM


Bruna resolveu desenvolver uma aplicao para controlar as ligaes telefnicas de sua casa, a fim de checar se o valor que paga mensalmente
est correio. Assim, sempre que desejar, poder listar as ligaes efetuadas num determinado perodo, contabilizando o valor a pagar.
Para que isso seja possvel, toda ligao ser feita pelo computador. A
cada solicitao de ligao, a aplicao dever registrar: a data da ligao,
a hora da ligao, quantidade de minutos gastos (que deve ser registrado
no momento que a ligao for encerrada), o nmero de pulsos (que deve
ser calculado pela aplicao) e o telefone para onde se discou.
A aplicao permitir o controle de uma agenda de telefones, com nmero
do telefone e nome da pessoa de contato. O usurio poder escolher, no
momento da ligao, se deseja um dos registros da agenda ou se digitar
diretamente o nmero do telefone,
A forma de clculoxJos pulsos considera os seguintes critrios:
- A ligao ao ser completada j conta um pulso. A partir dai, a cada quatro minutos de conversao concluda, cobra-se mais um pulso.
- Cada pulso custa R$ 0,08 para ligaes locais.

Exemplo:
Ligao de 2m
Ligao de 4m30s

- 1 pulso
- 2 pulsos

Ligao de 8m

- 3 pulsos

- Os finais de semana possuem uma promoo. Cada ligao contabiliza


somente um pulso, independente do nmero de minutos de conversao.
EXERCCIO:
1. Desenhe o diagrama de casos de uso.
2. Desenhe o diagrama de ciasses completo.

Desenhando Diagrama de Classes a partir de Minicenrios 29

RESOLUO (DIAGRAMA DE CASOS DE Uso):


Listar ligaes de
umpeciodo

iqclude

N
\
"i

Pessoa
include
Calcular pulsos

Cadastrar valores
variveis para regra
de clculo

RESOLUO (DIAGRAMA DE CLASSES):


Ligao

Agenda
O..*

nomeContalo: string
OddTeleooe: string
telefone: string

O..'

data: date
hora Inicio: lima
horaTerrnino: time
flernpoGasto: real
MumeroPulsos: Integer
telefoneDiscado: string

RegraCalculo
valorPulso: real
inlervaloPulso: Integer
calcuiarPulsos(cJ9la: dale.
lempoLigacao: neal): Integer
calcularTempo(horalnicio: time,
horaTernino: Hme): raal

discar
encerrariJgacao

30 Exercitando Modelagem em UML

COMENTRIOS SOBRE A RESOLUO:


a) O relacionamento da classe Ligao com a classe Agenda serve apenas
para manter o controle do lugar para onde foi feita a ligao. Entretanto, a
multiplicidade de 0..*, pois no momento da ligao o usurio pode escolher de onde quer obter o telefone, podendo digitar um nmero sem querer
registr-lo na agenda. O telefone replicado na classe Ligao, para se
manter o histrico de ligaes, j que o contato pode ter seu nmero de
telefone alterado.
b) O atributo tempoGasto da classe Ligao derivado, pois seu valor o
resultado do mtodo catcularTempo da classe RegraCalculo.
c) O atributo numeroPulsos da classe Ligao derivado, pois seu valor
o resultado do mtodo calcularPutsos da classe RegraCalculo.
d) O caso de uso cadastrarPutsos responsvel por solicitar o clculo do
tempo e baseado nessa informao, calcular o nmero de pulsos. Como
as informaes tempo gasto e nmero de pulsos no so persistidos, ento o caso de uso Listar ligaes de um perodo precisa fazer utilizao do
caso de uso cadastrarPutsos para apresentar o relatrio.
e) Como o nico usurio dessa aplicao a Bruna, o ator foi identificado
como Pessoa.
*

19. MINICENRIO: TESTES DE FIXAO


Mariana prepara diversos exerccios para suas filhas que esto na primeira
e na segunda sries. Ela gostaria de informatizar esses exerccios, para
gerar testes aleatrios.
Cada teste gerado deve ser guardado (acompanhado de suas questes),
com a indicao de sua data de gerao. Na gerao de um teste, preciso informar o nmero de questes desejadas e a qual disciplina pertence o
teste.
Para cada disciplina, cadastra-se: uma lista de questes objetivas, identificando de que bimestre cada questo e a que matria pertence. O gabarito tambm cadastrado a fim de facilitar a correo do teste. Cada matria
faz parte de uma nica disciplina. A srie est ligada matria.

Desenhando Diagrama de Classes a partir de Minicenrios 31


Por exemplo: para a disciplina de matemtica, Mariana prepara um teste
com 20 questes. Cada questo corresponde a um bimestre (1, 2. 3 ou
4) e a uma matria (ex: adio, diviso, nmeros pares e impares, nmeros primos, sinnimos etc). Cada matria corresponde a uma disciplina
(adio - matemtica; sinnimos - portugus etc).
EXERCCIO:
1. Desenhe o diagrama de casos de uso.
2. Desenhe o diagrama declasses completo.

RESOLUO (DIAGRAMA DE CASOS DE Uso):


exlendsu

Professor

exlends

exiends

COMENTRIOS SOBRE A RESOLUO:


a) Na leitura de um cenrio verificamos que uma questo est associada a
uma disciplina e a uma matria. Entretanto, tambm dito que uma matria faz parte de uma disciplina. Assim, em primeiro lugar, modelamos a
agregao de disciplina com matria. Em segundo lugar, verificamos que,
na realidade, a questo est associada matria, que por sua vez est
associada disciplina.
Desta forma, se desejssemos uma pesquisa, num banco de objetos, obtendo as questes da disciplina "MATEMTICA" e da primeira srie, teriamos o seguinte comando;

32 Exercitando Modelagem em UML


SELECT
FROM
WHERE
AND

Questo.numero. Questo.enunciado
Questo
Questo.matria.disciplina.nome = "MATEMTICA"
Questo.matria.serie = l

b) Como o nico usurio dessa aplicao a Mariana, e ela assume o papel de professora particular ao preparar os testes para as filhas, o ator foi
identificado como Professor.

RESOLUO (DIAGRAMA DE CLASSES):


Teste
d a ta Gera co: date
gerarTeste (disciplina: Disciplina,
n um Questes: Inleger)

Questo
numero: inleger
enunciado : string
gabarito : string
bimestre: nteger
geraQuestaoA!ealoria(disciplina:
Disciplina)
0..'

Disciplina

M ale ria
nome; string
descrio : string
serie: integer

O
nome: strirtg

Desenhando Diagrama de Classes a partir de Minicenrios 33

20. MINICENRIO: TESTES DE FIXAO (VARIAO A)


Conforme Mariana foi aplicando os testes s suas filhas, ela percebeu que
algumas questes so mais problemticas que outras. Assim, desenvolveu
uma frmula para a gerao dos testes aleatrios, que possa levar em
conta que algumas questes devem ser fixas, e outras devem aparecer um
nmero de vezes dentro de um determinado intervalo de testes. Por exemplo: as questes sobre diviso (matria), na primeira srie, tm fator 1/1,
que indicam que para cada um teste (denominador), deve aparecer uma
vez (numerador), ou seja, 100% das vezes. J as questes de sinnimos,
na primeira srie, tm um fator 3/5, ou seja, para cada cinco testes, a
questo deve aparecer trs vezes.
EXERCCIO:
Quais so as modificaes necessrias no modelo para refletir o cenrio
anterior? Responda textualmente.

RESOLUO:
Na classe Questo so includos dois atributos:
-fatorAparecimentoNumerador: integer
- fatorAparecimentoDenominador: integer

COMENTRIOS SOBRE A RESOLUO:


a) Repare que o cenrio desse exerccio complexo, mas o reflexo dessa
complexidade no no modelo de classes e sim no cenrio do caso de
uso "Gerar Questes Aleatrias", que corresponde implementao do
mtodo geraQuestaoAleatoria. No modelo de classes, bastou acrescentar
dois atributos.

21. MINICENRIO: FESTAS INFANTIS


Rafaela possui vrios temas de festas infantis para aluguel.
Ela precisa controlar os aluguis e para isso quer uma aplicao que permita cadastrar: o nome e o telefone do cliente, o endereo completo da
festa, o tema escolhido, a data da festa, a hora de incio e trmino da festa.
Alm disso, para alguns clientes antigos, Rafaela oferece descontos. Sendo
assim, preciso saber o valor realmente cobrado num determinado aluguel.

34 * Exercitando Modelagem em UML

Para cada tema, preciso controlar: a lista de itens que compem o tema
(ex: castelo, boneca da Cinderela, bruxa etc.), o valor do aluguel e a cor da
toalha da mesa que deve ser usada com o tema.
EXERCCIO:
1. Desenhe o diagrama de casos de uso.
2. Desenhe o diagrama de classes completa_

RESOLUO (DIAGRAMA DE CLASSES):


Tema

ItemTema

1..*

nome: string
valorAluguel: real
corToalfia: string

nome: string
descrio: string

O..'

Aluguel
dataFesta: date
horrio Inicio: time
horarioTermino: lime
v Io rCo brado: real

1..'

Cliente

nome : string
telefone: string

Endereo

endereo da lesla

logradouro: string
numero: string
complemento: string
bairro: string
cidade: string
cep: string
uf: string

Desenhando Diagrama de Classes a partir de Minicenrlos 35


RESOLUO (DIAGRAMA DE CASOS DE Uso):
extends

Diretor

Controlar aluguel
de tema

COMENTRIOS SOBRE A RESOLUO:


a) Como o nico usurio dessa aplicao a Rafaela, e ela assume o papel de dona de uma microempresa informal, o ator foi identificado como
Diretor.

22. MINICENRIO: FESTAS INFANTIS (VARIAO A)


Rafaela percebeu que tambm precisa controlar o pagamento de sinal e a
data da quitao do servio.
EXERCCIO:

Quais so as modificaes necessrias no modelo para refletir esse cenrio?


Responda textualmente.
RESOLUO:
Na classe Aluguel so includos dois atributos:
- valorPagoSinal: real
- dataQuitacao: date

36 * Exercitando Modelagem em UML

23. MINICENRIO: CURSOS DE APERFEIOAMENTO


A empresa AProf oferece cursos diversos de aperfeioamento profissional.
O dono precisa controlar, inicialmente: os cursos oferecidos, a data de inicio e trmino, o horrio de inicio e trmino, o nome e o telefone celular do
professor e o valor da sua hora/aula.
Para cada curso, deve-se controlar: a carga horria, o contedo programtico e o valor do curso.
EXERCCIO:
1. Desenhe o diagrama de casos de uso.
2. Desenhe o diagrama de classes completo.

RESOLUO (DIAGRAMA DE CASOS DE Uso):

Departamento
Administrativo

Desenhando Diagrama de Classes a partir de Minicenrios * 37

RESOLUO (DIAGRAMA DE CLASSES):


Curso

Turma
0..'

nome: string
carjaHoraria: real
contedo Programtico: slring
valor: real

dalalnicio. date
dalaTermino: da l
horalniclo: lima
horaTemiino: lime

Q..'

Pmfessor

nome: strng
telefone: siring
valorHoraAula: real

24. MINICENRIO: CURSOS DE APERFEIOAMENTO


(VARIAO A)
Numa segunda verso da aplicao, passa-se a ter o controle da matricula
e do cadastro de alunos. Para matrcula cadastram-se: data da matrcula,
valor pago, aluno e a turma. O cadastro de aluno compreende: nome, nmero da carteira de identidade, CPF, data de nascimento, endereo completo e telefones de contato.
EXERCCIO:
Atualize o diagrama de casos de uso e o modelo de classes.

38 Exercitando Modelagem em UML

RESOLUO (DIAGRAMA DE CASOS DE Uso):

Departamento
Administrativo

Desenhando Diagrama de Classes a partir de Minicenrios 39

RESOLUO (DIAGRAMA DE CLASSES):


Telefone

Curso
nome: slring
carga Horria : real
conleudoProgramaUco:
valor: real

ddti: slring
numero : slring
t p : slrng

Turma

Aluno

dalalnido: date
-:, " ---.P - : -; :iharalnlciQ : lime
horgTermino : rjma

Professor
nome: Elring
telefone: stnng
valorHoraAula : real

nome: S
identidade: Slring
cpf: slring
dataNascimenlo : dale

Endereo

Matricula

(Jala : date
ualorPago : real

logradouro : srtng
numenj : sLring
complemento ; atrng
bairro : slring

uf : string

25. MlNICENRIO: CLASSIFICADOS NA WEB


Dalila est oferecendo aos amigos da escola, do bairro e do clube, o servio de classificados pela Web.
Quem anuncia paga R$ 2,00 pelo anncio simples de 20 palavras ou R$
5,00 pelo anncio destaque de pgina, que pode conter at 50 palavras e
uma imagem. O anncio fica disponvel por quinze dias. No entram na
contagem: o valor do produto, o texto ttulo, o nome do contao, at dois
telefones de contato e uma observao sobre os telefones de at cinco
palavras (por exemplo: de 18h s 20h).
Quem se toma assinante do classificado virtual recebe diariamente em seu
e-mail o resumo de ofertas do site.

40 * Exercitando Modelagem em UML


Exemplo da divulgao feita por e-mail:
Anncios inseridos em 01/08/2005

5
1
1

computador
olaca vdeo
cen drive
DVD
imvel venda
imvel aluguel

2
1
2

Clique no linfc para acessar os anncios.


Resumo de todos os anncios

35

comoutador
Dlaca vdeo

oen drive
imvel venda
imvel aluauel

3
2
5

O cliente pode cadastrar sees de interesse, a fim de receber os novos


anncios pelo e-mail, sem precisar visitar o site.

/
O anncio segue o formato desse exemplo:
Seco Computador
Pentium 4 3.0 Ghz

RS 1.300,00

Computador Pentium 4.0 3.0 Ghz, 256 Mb Memria, HD 40


Gb, gravador de CD. monitor Samsung 17".
Tratar Marta

2222-1111/2111-2222
noite

inserido em:

EXERCCIO:
1. Desenhe o diagrama de casos de uso.
2. Desenhe_o_diagrarna dg c[asses_CQrnpleto.

01/08/2005

Desenhando Diagrama de Classes a partir de Mintcenrlos 41

RESOLUO (DIAGRAMA DE CASOS DE Uso):

exlends
Manter E a ces da
interesse do cliente

RESOLUO (DIAGRAMA DE CLASSES):


TipoAnuncio

SUBO
nome '. string

nome : siri na
qldPelavras : inlEger
com Imagem : boolean

(otahiaAnunciOs

o..-

-'

Seo da Interesse

Anuncio
lextTltulo : slrtng
preo : real
teirtoAnuncio : string
nomeConlalo : strlng
telefonei - strlng
telefane2: strlng
obsTelefone : slring
Imagem : Pictura
dalalnsercao : date

0..'
Cliente
0..'

1
nome : strlng
telefone islrlng
eMail : alring
aGinan!e . boolean

42 - Exercitando Modelagem em UML


COMENTRIOS SOBRE A RESOLUO:
a) Como o nico usurio dessa aplicao a Dalila, e ela assume o papel
de dona de uma mcroempresa informal, o ator foi identificado como Diretor.

26. MlNICENRIO: JOGO DA FORCA


Cristina quer fazer um jogo da forca em computador para os seus filhos e
sobrinhos. Os requisitos para o jogo esto a seguir:
- O jogo consiste em se tentar acertar as letras de uma palavra escondida.
Se o jogador errar a letra, surge mais um pedao de um boneco que ao
final ir para a forca;
- As palavras ou frases para cada rodada so obtidas de um banco de
palavras e frases, que o prprio jogador pode incrementar;
- Cada palavra ou frase pertence a um tema;
- A cada rodada, a aplicao sorteia se mostrar uma, duas ou trs palavras, ou uma frase e escolhe aleatoriamente o tema e as palavras (ou frase);

-A palavra (ou frase) exibida escondida e cada letra acertada desvenda


sua posio correspondente;
- Letras erradas so colocadas num quadro e um dos pedaos do boneco
aparece;
- O nome do jogador guardado com seus pontos para fazer parte do
quadro de maiores escores (pontuaes). Quando ele acerta a palavra,
ganha 100 pontos e para cada letra que ficou encoberta somam-se mais
15 pontos.
EXERCCIO:
1. Desenhe o diagrama de casos de uso.
2. Desenhe o diagrama de classes completo.

Desenhando Diagrama de Classes a partir de Minicenrios 43

RESOLUO (DIAGRAMA DE CASOS DE Uso):

Jogador

Administrador

RESOLUO (DIAGRAMA DE CLASSES):


Tema
numero: Inlager
ImagamPedacoBoneco: Plture
maxinoErros: inleger

mxne: slring

0.,'

Rodada

BancoPalavra

paiavraOuFrase: slring
/ehPrasa:boolean

o..-

ponlosPalavra Certa = IDO


oontosLelrg = 15
nomeJogador: string
lotalPontos: inleger

o
ConlroteRoflada
telrasErradas: slring
siluacaofalavra: slring
exibeBoneco
vedficaLetra (tetraJogads: sr-mg i

44 Exercitando Modelagem cm UML

COMENTRIOS SOBRE A RESOLUO:


a) Ao analisar o problema, verificamos a necessidade de ter uma classe
que controle o banco de palavras. Pode-se registrar uma palavra ou frase.
O que determina se o registro pertence a uma frase o atributo ehFrase.
Entretanto, este atributo derivado, ou seja, seu valor resultado de urn
algoritmo que analisa o atributo patavraOuFrase e verifica se uma palavra solta ou uma frase,
b) Cada rodada tem no mximo trs palavras ou uma frase. Assim, a multiplicidade da classe Rodada com o banco de palavras est definida como
1..3.
c) A funo da classe Rodada controlar o jogador que est participando e
os pontos que ele est marcando. Existem dois atributos de classe, que
so responsveis por definir a pontuao para acerto de palavra e acerto
de letra. Alm disso, a classe Rodada se relaciona com a classe ControteRodada, que responsvel por controlar todos os movimentos do jogador
numa rodada. Registra as letras erradas, a situao da palavra e verifica
se houve acerto de letra.
d) A classe ControleErro tem por objetvo guardar as informaes do boneco da Forca, para ser exibido a cada erro do jogador.
f

27. MINICENRIO: FERRAMENTA DE UML


A empresa em que Mariana trabalha pequena, mas todos os sistemas
que so desenvolvidos usam UML.
Ela precisava de uma ferramenta grfica que controlasse: a lista de casos
de uso de um projeto e o status de cada um (no iniciado, em desenvolvimento, finalizado ou aprovado pelo usurio). Desta forma, Mariana decidiu
construir sua prpria ferramenta que exibe os casos de uso em rvores,
agrupados por pacotes. Outros requisitos da ferramenta esto descritos a
seguir:
- O nome de cada pacote o nome da pasta de projeto (nome do diretrio). O nome de cada caso de uso retirado do nome do arquivo;
- A ferramenta permite que os casos de uso sejam cadastrados por meio
dela. Nesse caso, a ferramenta gera um arquivo baseado no template.

Desenhando Diagrama de Classes a partir de Minicenrios 45


possvel realizar pesquisa de textos dentro de todos os casos de uso, renome-los e mud-los de pacote;
- Clicando no caso de uso, possvel abrir seu texto;
- Os casos de uso so identificados com o prefixo UC, seguido de uma
numerao sequencial controlada pela ferramenta. Os casos de uso de
extenso recebem a identificao UCE.
EXERCCIO:
1. Desenhe o diagrama de casos de uso.
2. Desenhe o diagrama de classes completo.

RESOLUO (DIAGRAMA DE CASOS DE Uso):

Desenhar rvore
Hierrquica

Analista

46 Exercitando Modeiagem em UML

RESOLUO (DIAGRAMA DE CLASSES):


Pacote
nome: string

enumera te d
EnumStatus

mostra rArvore

1..*

naolniciado
a m Desenvolvimento
finalizado
a provadoPel oLIsu ario

C aso Uso
/identificao : strirtQ
nome : string
s tatus : EnumStatus
nomeTemnlatB girino
eti Caso UsoExten so : Doolean
renomaar (novoNome : string)
mudarPacote (novoPacote : Pacote)

COMENTRIOS SOBRE A RESOLUO:


f

a) O atributo identificao um atributo derivado, cujo valor obtido a partir da regra de negcio que determina o prefixo de um caso de uso (UC ou
UCE).
b) O atributo nomeTemplate um atributo de classe, que contm o nome
do arquivo de template utilizado para criar novos casos de uso.
c) As tarefas de renomear um caso de uso e mudar um caso de uso de
pacote esto implcitas dentro do caso de uso Manter caso de uso.

28. MINICENRIO: CLUBE DA LEITURA


Gustavo tem uma coleo grande de revistas em quadrinhos. Por isso,
resolveu emprestar para os amigos. Assim foi criado o Clube da Leitura.
ivlas para no perder nenhuma revista, seu pai lhe fez uma aplicao que
cadastra as revistas e controla o emprstimo.

Desenhando Diagrama de Classes a partir de Minkenrios 47


Para cada revista cadastram-se: o tipo da coleo (por exemplo: Cebolinha, Pato Donald, Batman etc.), o nmero da edio, o ano da revista e a
caixa onde est guardada. Cada caixa tem uma cor, uma etiqueta e um
nmero.
Para cada emprstimo cadastram-se: o amiguinho que pegou a revista,
qual foi a revista, a data de emprstimo e a data de devoluo. Cada criana s pode pegar uma revista por emprstimo.
O cadastro do amiguinho consiste de: o nome do amiguinho, o nome da
me, o telefone e de onde o amigo (do prdio ou da escola).
EXERCCIO:
1. Desenhe o diagrama de casos de uso.
2. Desenhe o diagrama devasses compjeto.

RESOLUO {DIAGRAMA DE CASOS DE uso):

entenda
Manter emprstimo}^

Bibliotecrio

f Regislrar devoluo '

48 Exercitando Modelagem em UML

RESOLUO (DIAGRAMA DE CLASSES):


Colscaa

nome ; slring

Revrala

Amigo
nojne;E[rinfl

numeroEdicao: m tcgw
ano: intfler

telefona: suna
gnjpc: EfiumGnJpoAmlgo

numero: rnlegar
IdenljficacaoEliquebi'. ilring
cor: slriOQ

prdio
escola

COMENTRIOS SOBRE A RESOLUO:


a) Ao se relacionar a classe Revista com Amigo, est se estabelecendo o
relacionamento de emprstimo. Como encontramos atributos pertinentes a
esse relacionamento (dataEmpreslimo e dataDevolucao), estamos diante
de uma classe de associao.

29. MINICENRIO: CONDOMNIO


Marina sndica do prdio onde mora. A fim de melhor gerenciar o condomnio, ela encomendou uma aplicao a um amigo.
A aplicao deve atender aos seguintes requisitos:
- Para um apartamento, devem-se cadastrar: seu nmero de porta, a
quantidade de quartos, o tipo de ocupao (proprietrio, inquilino ou vazio),
o nome do proprietrio e o telefone do proprietrio. Um proprietrio pode
ter mais de um apartamento no prdio;

Desenhando Diagrama de Classes a partir de Minicenarios - 49

- Mensalmente, devem ser lanadas as despesas para o condomnio do


ms, alm das despesas especficas de um apartamento ou urn grupo de
apartamentos, como por exemplo: a taxa de salo de festas;
- O condomnio calculado por tipo de apartamento (de acordo com o
nmero de quartos). Para chegar ao valor pago pelas despesas, tm-se os
seguintes passos:
a) verificar o somatrio de quartos de todo o prdio
Ex: apto 101 (2 quartos); 102 (3 quartos); 201 (2 quartos);
202 (3 quartos) = total de quartos = 10
b) dividir o valor da despesa (que pode ser fixo, como fundo
de reserva; ou varivel, como gua) pelo somatrio de quartos e multiplicar
o resultado pelo nmero de quartos do apartamento.
Ex: gua - 200,00
apto
101
102
201
202

200,00/10x2=
200,00/10x3=
200,00/10x2=
200,00/10x3=

40,00
60,00
40,00
60,00

- Para cada item do condomnio, cadastra-se a referncia (ex: mar/05 referente ao ms da conta; 1/3 - fator de parcelamento);
- O condomnio pago diretamente com a Sndica. Se for pago com atraso, cobra-se multa de 2%. O condmino pode optar em pagar a multa no
ms seguinte. Nesse caso, o percentual passa para 5% e lanada como
despesa do prximo condomnio.
Completa-se, ento, para o cadastro de cada condomnio de apartamento,
a data do pagamento e o valor pago.
EXERCCIO:
1. Desenhe o diagrama de casos de uso.
2. Desenhe o djagrama de classes completo.

50 Exercitando M ode l agem em UML

RESOLUO (DIAGRAMA DE CASOS DE Uso):

RESOLUO (DIAGRAMA DE CLASSES):


Apartamento

Proprietria

numero: Inleger
qLdQuartos: integer
ocupao: EnumTrpoOcupaao

nome:stnng
telefone - :-:nr.q

jnesAno . slrlng
cifl: slritig
valor: real

: real
.--':;-:: : in

"npoDespeaa
O,.

nome : ainng
: boolean

- J 11 ire r ]Lt " a

EnumlipoOcupacao

(nqulllno
Vazo

mesAno: atring
valor: rc&1

Desenhando Diagrama de Classes a partir de Minicenrios * 51

COMENTRIOS SOBRE A RESOLUO:


a) O caso de uso Preparar Condomnio do Ms centraliza todas as tarefas
necessrias para gerar os boletos dos condminos. Primeiramente, o usurio
lana as despesas fixas do condomnio de um determinado ms (por exemplo: gua, luz etc). Depois, o usurio lana as despesas especficas dos apartamentos (por exemplo: multa do ms anterior, taxa do salo de festas etc). O
caso de uso Calcular Condomnio chamado para ratear todas as despesas,
lanando para cada apartamento as contas a serem pagas.
Por exemplo: Suponha que:
- existam os seguintes apartamentos - 101 (2 quartos), 102 (3 quartos),
201 (2 quartos), 202 (3 quartos);
-totalizando todos os quartos do prdio, h 10 quartos;
-foram lanadas as despesas de gua (100,00) e luz (200,00);
- o apartamento 101 tem uma taxa de salo de festas de R$ 25,00.
O condomnio do apartamento 101 ser:
gua (100,00 /10 x 2 quartos)
Luz (200,00 /10 x 2 quartos)
Taxa do Salo de Festas
Total a pagar

R$ 20,00
R$ 40,00
R$ 25,00
R$ 85,00

O condomnio do apartamento 102 ser:


gua (100,00/10 x 3 quartos)
Luz (200,00 /10 x 3 quartos)
Total a pagar

R$ 30,00
R$ 60,00
R$ 90,00

b) A classe Despesa armazena as despesas do condomnio. O atributo


valorRateado indica se esse tipo de despesa de lanamento fixo (o
mesmo valor para todos os condminos, como acontece com o salo de
festas; ou de valor varivel, como acontece com a gua).

30. MINICENRIO: PEDIATRA


Dra. Janete Pediatra e tem trs consultrios em bairros distintos, onde
atende em horrios diferentes. Ana, sua secretria, trabalha nos trs consultrios. Para que a marcao de consultas seja centralizada, Ana tem
que carregar as trs agendas de um lado para outro.

52 Exercitando Modelagem em UML

Dra. Janete contratou um analista free-lancer para lhe desenvolver um sistema que controle a marcao de consultas e a ficha dos pacientes.
Para os pacientes, preciso controlar: nome, endereo, telefones de contato, data de nascimento, data da primeira consulta, e-mail, se particular
ou conveniado a plano de sade. No caso de ser conveniado, registrar
qual o plano de sade. Para cada plano de sade credenciado preciso
controlar o limite de consultas no ms, por paciente.
Dra. Janete atende no consultrio da Ilha s segundas e sextas, de 9h s
18h. Na Tijuca, ela atende tera e quarta de 10h as 18h. Na quinta, ela
atende em Bonsucesso, de 10h s 18h. O intervalo das consultas de
trinta minutos. O horrio de almoo sempre de 12h30 s 13h30. S so
permitidos trs encaixes por dia. Para clientes novos, Ana anota o nome
do cliente e o seu telefone. preciso identificar se uma consulta de reviso, como por exemplo para entrega de exames. Nesse caso, ela no
cobrada.
A marcao de consultas deve considerar uma data futura limite.
EXERCCIO:
1. Desenhe o diagrama de casos de uso.
2. Desenhe o diagrama de classes completo.

RESOLUO (DIAGRAMA DE CASOS DE Uso):

"--

includa

exlends

Secretria

Desenhando Diagrama de Classes a partir de Minicenrios 53

RESOLUO (DIAGRAMA DE CLASSES):

Tefafona
nome: slnng
and-Braca: slnng
dalaNas&meiCo: aSn
dalaPrfmeiraCwiauCtB: date
aMall : Etring
pJan-oParticular: bootoan

numera: alring
upo: stmg
obs:stnng

EiomTipoConsuHofio
RanoSaude

Ilha

Bon
Tljuca

nome;Blrng
limteConsuIlaaMe:

Agenta

Consulta
data : dala
hora : lime
rialBLimitBMjtrcacaaFutura : dars
consultRayL&at] : brjlean
eiEncama : boolsan
NiriileEncaikfia = 3
marcarConsulIa

o..-

daSeniana Inleger
con^uIloriD : EnurnUpoConsultorta
horarinPrimairaCDnauIlH . Uma
h?rarinUlljinaConsiilla : time
mlarvaJurCofiSiilta : fnteger
htrffiOlrtldoAlmoco : Ume
horariDnrnAliTiqca : lime

COMENTRIOS SOBRE A RESOLUO:


a) A classe Agenda contempla o padro de agenda, de cada consultrio,
em cada dia da semana. Exemplo de um objeto instanciado a partir dessa
classe. Objeto AgendallhaSeg (diaSemana = 2; consultrio = Ilha; horarioPrimeiraConsulta = 09:00; horarioUltimaConsulta = 18:00; intervaloConsulta = 30; horariolnicioAImoco = 12:30; horarioFimAlmoco = 13:30);
b) O caso de uso Manter Agenda responsvel por verificar e exibir a
agenda de um consultrio numa determinada data. A partir da, para cada
horrio vago, possvel marcar uma consulta (Extends Caso de Uso
Registrar Consulta).
Por exemplo, suponha que o usurio queira ver a agenda do dia
30/09/2005.
O sistema verificar que dia 30/09 uma sexta (dia da semana = 6). Para
o dia da semana 6, a agenda do consultrio da Ilha. Considerando os
atributos desse objeto, o sistema monta a agenda do dia. Inicia com o horrio da primeira consulta (09:00). Depois monta um horrio a cada interva-

54 - Exercitando Modelagem em UML

Io de consulta (30 minutos) at o limite do horrio de almoo (12:30). Algo


assim:
09:00 / 09:30 /10:00 /10:30 /11:00 /11:30 /12:00
O horrio da tarde recomea no fim da hora de almoo (13:30). A partir
da, continua-se a montar horrios respeitando o intervalo de consulta (30
minutos) at o horrio limite da ltima consulta. A agenda completa ficaria
assim:
09:00 / 09:30 /10:00 /10:30 /11:00 /11:30 /12:00
13:30 /14:00 /14:30 /15:00 / 15:30 /16:00 /16:30 /17:00 /17:30
c) O atributo de classe dataLimiteMarcacaoFutura controla a data limite
que se pode marcar uma consulta. Por exemplo: estando no incio de setembro, s possvel marcar consulta com antecedncia de 45 dias (at
meados de outubro). Essa data fixa para qualquer objeto instanciado a
partir da classe. Mas no um valor definitivo. Est sempre sendo alterado.
d) O atributo de classe HmiteEncaixes controla o mximo de consultas de
encaixes que pode ser inserido num mesmo dia.

31. MINICENRIO: PEDIATRA (VARIAO A)


Na verso 1.1 do sistema, Dra. Janete deseja controlar os valores das
consultas.
Ela deseja obter, no fim do ms, um relatrio com o valor recebido pelas
consultas particulares e o faturado pelos convnios.
Cada convnio paga um valor diferente por consulta e credita em prazos
diferentes (alguns creditam em 45 dias, outros em 60 etc.) a partir da data
de apresentao da consulta ao plano. A previso de pagamento deve
aparecer no relatrio.
O valor da consulta particular fixo, mas um ou outro paciente pode receber urn desconto. Sendo assim, o valor efetivamente pago deve ser registrado.

Desenhando Diagrama de Classes a partir de Minicenriog 55


Exemplo do Relatrio de Faturamento:

Relatrio de Faturamento
Perodo: 01/07/05 - 31/07/05
Tipo
Pagamento
Particular
Unimed
Unimed

Qtd

Valor
Previso
Total
Recebimento
2000,00 em caixa
20
25
950,00
01/08/2005
1900.00
50
05/08/2005

Relatrio de Faturamento
Unimed
Unimed
Unimed
Unimed
Unimed
Cassl
Cs si
Total

Perodo: 01/07/05-31/07/05
30
1140,00
950,00
25
760,00
20
15
15
50
30
280

570,00
570,00
2000,00
1200,00
12040,00

10/08/2005
15/08/2005
20/08/2005
25/08/2005
30/08/2005
20/08/2005
30/SS/2005

EXERCCIO:
Atualize o diagrama de casos de uso e
indique o que rnyda no modelo de classes.

RESOLUO (DIAGRAMA DE CASOS DE Uso):

Doutora

Secretria

56 Exercitando Modelagem em UML

RESOLUO (DIAGRAMA DE CLASSES - SOMENTE AS CLASSES ALTERADAS):


PlanoSaude

Consulta
data : date
hora : time
d aiaLi m ite M a rcacaoF u!u r date
consultaRevisao : boolean
e h Encaixe : boolean
HmiteEnraixes = 3
valorConsulta : real
valorPago ; real
dataApresentacaoPlano : date

n orne: string
NmiteConsutasMes: integer
prazo C redito: Integer
valorConsulta : real

marcarConsulta

COMENTRIOS SOBRE A RESOLUO:


a) O atributo de classe vatorConsulta Indica o valor da consulta para qualquer
paciente que seja particular (no esteja vinculado a um plano de sade).
b) O atributo valorPago registrar efetivamente o valor pago por uma consulta,
considerando um eventual desconto concedido (se o cliente for particular).
c) O atributo daaApresentacaoPlano registrar a data em que a consulta foi
apresentada ao plano, a fim de que se possa calcular o prazo estimado de
recebimento do reembolso, de acordo com o prazo de cada plano de sade.

32. MINICENRIO: PEDIATRA (VARJAO B)


Dra. Janete est adorando o sistema e j encomendou uma manuteno
evolutiva, que resultar na verso 2.0. Nessa verso haver o controle do
pronturio.
Em cada consulta, ela precisa registrar: peso, altura, descrio da consulta
e medicamentos prescritos com tempo e dosagem. Desta forma, o sistema
tambm far a emisso da receita.
EXERCCIO:
Atualize o diagrama de casos de uso e
indique o que muda no modelo de classes.

Desenhando Diagrama de Classes a partir de Minicenros 57

RESOLUO (DIAGRAMA DE CASOS DE Uso):


include
Registrar Consulta

1
*exlends

Secrelria

RESOLUO (DIAGRAMA DE CLASSES - SOMENTE AS CLASSES ALTERADAS):


Paciente
Piontuario

peso: real
altura: real
descrio: string
Consulta

D..'

Prescrio

0..'

dosagem: strng
tempo: string
instrues: string

PlanoSaude
nome: string
NmiteConsultasMes: integer
prazoCredito: integer
vatorConsulta ; real

- _

58 > Exercitando Modelagem em UML

33. MlNICENRIO: APOSTA LOTRICA


Carlos aposta toda semana na Loeria, em jogos como quina, megasena,
lotomania etc.
So vrios cartes por semana. Na hora de conferir uma loucura. Certa
vez, quase que ele confere o carto errado.
Para resolver isso, ele quer desenvolver uma aplicao que cadastre os
cartes apostados e o resultado de um concurso, apresentando o relatrio
final com os nmeros acertados por carto e o valor do prmio, se houver.
EXERCCIO:
1. Desenhe o diagrama de casos de uso.
2. Desenhe o diagrama de classes completo.

RESOLUO (DIAGRAMA DE CASOS DE Uso):

Apostador

Desenhando Diagrama de Classes a partir de Minicenrios 59


RESOLUO (DIAGRAMA DE CLASSES):
Concurso

JogoLolerico
nome: slring
qld Mnima Aposte: inleger
qTdMaximaAposta: nleger
limileSuperioiAposta: inloger
rninimoAcertos: iniegar
mximo Acertos: Inlegei
qldNumSortBBiJos: inleger

0..'

numeroCcmcurso: inleger
data :da!e

1..*

Prerraacao

Aposta
numeroAposlado: irileger
(Concurso .JogaL.Qterlco.qldMinimaApoEta,
C on eu rso JogoLoterico .qldMaxi maAposla]

laixa: Integer
valeu: real
acumulado: boolean
riurn&FoSorteadQ: inleger
[C oncurso. JogoLole rico .qldN umSortea do s]

conferirAfldsta

COMENTRIOS SOBRE A RESOLUO:

a) Como o nico usurio dessa aplicao o Carlos, o ator foi identificado


como Apostador, que o papel assumido por ele na aplicao.
b) Repare que usamos uma notao oficial da UML, mas que pouco vejo
se fazer uso: a multiplicidade para atributos. Numa Aposta, registra-se uma
certa quantidade de nmeros apostados. Como o conjunto de nmeros,
no teria sentido criarmos uma classe para controlar essa coleo. A soluo consiste em se associar uma multiplicidade ao atributo numeroAposlado. Essa multiplicidade pode ser composta de limite inferior e limite superior ou apenas um valor fixo. No caso do nmero apostado, tm-se os dois
limites de acordo com as regras do jogo Ictrico. Sendo assim, o valor da
multiplicidade est fazendo referncia aos atributos da classe JogoLoterco. Assim, o limite inferior, ou seja, a menor quantidade de nmeros apostados o valor do atributo Concurso.JogoLoterico.qtdMinimaAposta. No
caso do limite superior, ou seja, a maior quantidade possvel de nmeros
apostados o valor do atributo Concurso.JogoLoterico.qtdMaximaAposta.
c) O que foi descrito na letra (b) ocorre tambm com a classe Premiacao. A
diferena est somente no fato de que no temos variao de nmeros
sorteados. sempre um nmero fixo. Sendo assim, a quantidade de nmeros sorteados (multiplicidade do atributo numeroSorteado) o valor do
atributo Concurso. JogoLoterico.qdNumSorfeados.

Captulo

Exercitando a Identificao
de Casos de Uso

Neste captulo trabalharemos alguns conjuntos de requisitos, de forma a


extrair deles a lista de Casos de Uso e a descrio de seus cenrios.
Devemos nos lembrar de que no existe na documentao oficial da UML
uma forma predefinida de se escrever um caso de uso. Entretanto, existem
boas prticas que devem ser seguidas, das quais podemos citar:
- O texto do caso de uso deve ser livre da forma como ser implementado,
exceto se for um caso de uso de projeto (exemplo: caso de uso Manter cpia de backup). Sendo assim, no diga que o usurio ir selecionar uma
determinada informao de uma listbox ou combobox; ou que clicar num
boto. Diga, apenas, que ser selecionado um valor de uma lista; ou que o
usurio escolher uma determinada opo, que pode ser implementada por
meio de um boto, de um menu, ou de dezenas de outras formas diferentes;
- Aps escrever sua primeira verso de caso de uso, volte e analise-o.
Verifique se alguma parte de seu caso de uso reaproveitvel em outro
caso de uso. Se existir, devemos separ-la em outro caso de uso e estabelecer um relacionamento de Include. Verifique se algum cenrio alternativo
do seu caso de uso est extenso demais. Se existir, devemos separ-lo
em outro caso de uso e estabelecer um relacionamento de Extends;
- Um caso de uso pode se transformar numa rotina de um sistema ou
apenas em um mtodo de uma classe, dependendo de sua complexidade;
- Para comear a escrever a lista de casos de uso, voc pode iniciar pela
lista de atores que interagem com a aplicao. Para cada aor, voc pode

60

Exercitando a Identificao de Casos de Uso 61


questionar: qual a influncia do ator na aplicao ou o quanto ele influenciado por ela; em quais aes esse ator participa.

34. CENRIO: ENCOMENDA DE PLACAS


Joo confecciona placas por encomenda. Como o volume dos pedidos tem
aumentado, ele pediu ao filho que lhe fizesse uma pequena aplicao que
controle:
- o cadastro de seus clientes
- as encomendas
Quando ele recebe uma encomenda, Joo anota num caderninho o nome
do cliente e seu telefone.
Para a encomenda, ele registra: o tamanho da placa (altura e largura), a
frase a ser escrita, cor da placa (branca ou cinza), cor da frase (azul, vermelho, amarelo, preto ou verde), data de entrega, valor do servio e valor
do sinal.
A aplicao deve obrigar que o valor do sinal seja de, no mnimo, 50%.
Para calcular o valor da placa, as seguintes frmulas so usadas:
rea
custo_material
custo_desenho
valor_placa

= altura x largura
= rea x R$ 147,30
= nmerojetras x R$ 0,32
= custojmaterial + custo_desenho

Para calcular o prazo de entrega, considera-se que ele s consegue produzir seis placas por dia.
Joo deseja que o sistema controle os pedidos, calcule o preo final das
peas e o prazo de entrega. Para cada encomenda cadastrada, deve ser
emitido um recibo em duas vias (cliente e empresa), contendo todos os
dados da encomenda e do pagamento.
EXERCCIO:
A partir do cenrio descrito, desenhe o diagrama de casos de uso e escreva
seus cenrios. Considere que s existe um ator, que o Sr. Joo, dono de sua
micro-empresa, que pode ser identificado como "Diretor da empresa".

62 Exercitando Modelagem em UML

RESOLUO (DIAGRAMA DE CASOS DE Uso E DESCRIO DOS CENRIOS):

Consultar Cliente

/ Calcular Preo de
extenua,-\Venda da Encomenda

Cadastrar Encomenda

Departamento
Administrativo

Calcular Prazo
de Entrega
Cadastrar custo para
slculo do valor de venda
Modificar Status
da Encomenda

CONSULTAR CLIENTE
Este caso de uso tem por objetivo apresentar os clientes cadastrados e
Descrio:
habilitar a incluso, alterao ou excluso de clientes.
Ator:

Diretor da empresa

Cenrio Prncjpjl:
1.
2.

3.

O sistema prepara uma lista de todos os clientes cadastrados.


O sistema oferece ao usurio:
2.1 .selecionar um cliente, para alterar seu cadastro;
2.2. localizar um cliente ou conjunto de clientes por meio de pesquisa;
2.3.selecionar a opo de "inserir cliente".
Pesquisa de Cliente
3.1. Para localizar um cliente, o usurio deve inserir um trecho de nome e/ou um trecho de telefone. O sistema far a busca parcial.
3.2.0 sistema exibe a lista de clientes que satisfaa o critrio, exibindo para cada um:

Exercitando a Identificao de Casos de Uso 63

4.
5.

3.2.1. cdigo de identificao


3.2.2. nome do cliente
3.2.3. telefone
Insero de Cliente
4.1 .[Include Caso de Uso Manter Cliente]
Seleo de Cliente
5.1 .Aps selecionar uni cliente, o sistema habilita as opes de "alterar cliente" e "excluir cliente*.
5.2.Se o usurio selecionar uma dessas opes, o sistema actona o cadastro de cliente. [Include Caso de Uso Manter Cliente]

MANTER CLIENTE
Descrio:

Este caso de uso tem por objetivo permitir a incluso alterao ou excluso
de dados ligados ao cadastro de clientes.

Diretor da empresa
Ator:
Pr-condico;
Receber a identificao do tipo de operao e os dados cadastrais do cliente, no caso de alterao
ou excluso.
Cenrio Principal:
1. Manuteno do Cadastro
1.1 .Em caso de Incluso", o sistema habilita a edio dos dados.
1 2 Em caso de "Alterao", o sistema exibe os dados cadastrados e os habilita para edio.
1.3. Em caso de "Consulta" ou "Excluso", o sistema exibe os dados cadastrados desabilitados
para edio.
1.3.1. No caso de excluso, o sistema solicita a confirmao.
2. O usurio informa, no caso de "Alterao" ou "Incluso":
2.1. nome do cliente
2.2. telefone de contato
3. O usurio confirma a operao realizada.
4. O sistema atualiza os dados cadastrais do cliente.
4.1. No caso de incluso, o sistema gera automaticamente um cdigo de identificao.
Cenrio Alternativo:
- Excluso no permitida
No possvel excluir um cliente que esteja associado a uma encomenda.

64 Exercitando Modelagem em UML

CADASTRAR CUSTO PARA CALCULO DO VALOR DE VENDA


Este caso de uso tem por objetivo cadastrar os valores fixos de custo, utiliDescrio:
zados no clculo do valor de venda das placas.
Diretor da empresa
Ator:
Cenrio Principal:
1. O sistema busca os valores cadastrados para:
1.1. valor fixo do material
1.2. valor fixo da letra
2. O usurio altera:
2.1. valor fixo do material
2.2. valor fixo da tetra
3. O usurio contirma o cadastramento.
4. O sistema atualiza os valores no cadastro.
Cenrio Alternativo:
-Valores Inexistentes no cadastro
Se no existir valor cadastrado para "valor fixo do material" e/ou "valor fixo da letra", o
sistema apresenta os campos em branco.
-Valores inconsistentes
No pode ser cadastrado valor negativo para "valor fixo do material" e "valor fixo da leira".

CADASTRAR ENCOMENDA
Descrio:

Este caso de uso tem por ofajetivo cadastrar encomendas de placas.

Ator:

Diretor da empresa

CenrjoPrincipal:
1. O sistema busca e exibe a lista dos clientes cadastrados, em ordem alfabtica de nome.
2. O usurio seleciona um nome de cliente da lista preexistente.
3. O sistema exibe o telefone do cliente.
4. O usurio informa os dados da encomenda:
4.1. altura da placa
4.2. largura da placa
4.3. frase para impresso
4.4. cor da placa, selecionada dentre as opes: cinza ou branca.
4.5. cor da frase, selecionada dentre as opes: azul, vermelho, amarelo, preto ou verde.
4.6. o sistema associa a data da encomenda como sendo a data atua!.
5. O sistema calcula e exibe a data prevista de entrega do pedido.
5.1. [Extends Caso de Uso Calcular Prazo de Entrega]
6. O sistema calcula e exibe o valor a pagar peia encomenda.

Exercitando a Identificao de Casos de Uso 65

6.1. [Extends Caso de Uso Calcular Preo de Venda da Encomenda]


7. O usurio informa o valor do sinal.
8. O usurio confirma a encomenda.
9. O sistema gera automaticamente um nmero de encomenda.
10. O sistema emite um recibo, em duas vias, com os seguintes dados:
10.1. nome do cliente, telefone de conlato. data da encomenda, frase a ser impressa na placa,
tamanho da placa {altura e largura), cor da placa, cor da frase, valor da encomenda, data
prevista de entrega e valor do sinal.
11. O sistema atualiza os valores no cadastro, lanando o status da encomenda como "aberto".
Cenrios Alternativos:
- Cliente no cadastrado
Se (or urn cliente novo, o usurio seleciona a opo de "cadastrar novo cliente". [Include
Manter Cliente].
- Valor do sinal insuficiente
O sistema no deve aceitar um valor de sinal inferior a 50% do valor de venda da pea. No
caso do sinal ser inferior, o sistema deve exibir uma mensagem de erro, incluindo na mensagem o
valor mnimo permitido.
CALCULAR PREO DE VENDA DA ENCOMENDA
Este caso de uso tem por objetivo calcular o preo de venda de uma placa,
Descrio:
baseado nas informaes recebidas para o clculo.
Diretor da empresa
Ator:
Pr-condico:
Receber as seguintes informaes: altura da placa, largura da placa, frase para impresso.
Cenrio Principal:
1, O sistema busca os valores cadastrados para "valor fixo do material" e "Valor fixo da letra".
2. O sistema calcula o preo de venda da encomenda, considerando as seguintes frmulas:
rea
= "altura da placa" x "largura da placa"
custo_material
- rea x 'Valor fixo do material"
nrnerojetras
= quantidade de letras da "frase para impresso".
custo_desenho
= nmerojetras x "valor fixo da letra".
valor_placa
= custo_material + custo_desenho
3- O sistema retorna o 'Valor_placa".
Cenrio Alternativo:
-Valores nulos
Se qualquer um dos valores de pr-condio estiver nulo, o sistema no efetuar o clculo.
Ser exibida uma mensagem de erro e o valor de retomo ser zero.

66 Exercitando Modelagem em UML


- Valores fixos inexistentes
Se no houver valor vlido para "valor fixo do materiaP e/ou para 'Valor fixo da letra", o sistema deve exibir uma mensagem de erro, informando que faliam dados de referncia para clculo da
encomenda.

CALCULAR PRAZO DE ENTREGA


Este caso de uso tem por objetivo calcular o prazo de entrega de uma determiDescrio:
nada placa, de acordo com as encomendas que esto com o slatus = "aberto".
Diretor da empresa

Ator:

Cenrio Principal:

1.

O sistema busca o total de encomendas com status = "aberto", agrupados por data, excluindose o dia atual.

2.

O sistema verifica a primeira data disponvel da lista, onde o nmero de encomendas seja
inferior a seis.
O sistema retorna a data disponvel no item 2, como a data prevista de entrega.

3.

Cenrio Alternativo:
- Nenhuma data disponvel
Se no houver nenhuma data disponvel dentro da lista recebida, o sistema deve calcular a
data prevista de entrega como sendo a maior data da lista acrescida de um dia. Se a data prevista
cair num sbado ou domingo, deve ser incrementada at a segunda-feira.
- Nenhuma encomenda cadastrada
Se no houver nenhuma encomenda cadastrada, o sistema deve calcular a data prevista
de entrega como sendo a data da encomenda acrescida de um dia. Se a data prevista cair num
sbado ou domingo, deve ser incrementada at a segunda-feira.

MODIFICAR STATUS DA ENCOMENDA


Descrio:

Este caso de uso tem por objetivo modificar o status de uma encomenda
durante a sua execuo.

Ator:

Diretor da empresa

Cenrio Principal:

1.
2.

O usurio informa o nmero da encomenda.


O sistema busca a encomenda e exibe:
2.1. onome do cliente;
2.2. o telefone;
2.3. a data da encomenda;
2.4. a data de entrega;

Exercitando a Identificao de Casos de Uso 67


2.5. o valor do pedido:
2.6. o valor do sinal;

4.

27. o staius atual da encomenda.


O usurio modifica o status da encomenda para um dos seguintes valores: "Pronto", "Cancelado" ou "Fechado".
O usurio confirma a alterao do status.

5.

O sistema atualiza o cadastro com o novo status.

3.

Cenrios Alternativos:
- Encomenda Inexistente

Se o nmero da encomenda no existir, exibir ao usurio uma mensagem de erro, e abrir


uma lista de encomendas com slatus diferente de "Fechado" e "Cancelado" para seleo,
- Alterao no permitida

No possvel alterar o status de encomendas que estejam com o status "Cancelado" ou


"Fechado'.
-Validao do Status
O status = "Aberto" s pode ser alterado para "Pronto" ou "Cancelado".
O status = "Pronto" s pode ser alterado para "Cancelado" ou "Fechado".

35. CENRIO: RDIO TXI MAR & SOL


A empresa de Rdio Txi Mar & Sol precisa de uma aplicao que controle:
- o cadastro de seus clientes
- o cadastro dos cooperados
- o cadastro das corridas programadas
Para cada cliente so cadastrados os seguintes dados: cdigo (que deve
ser gerado pelo sistema), nome, endereo completo (logradouro, nmero,
complemento, bairro, municpio, estado) e dois telefones de contato.
O cliente pode se cadastrar apenas com o nome para agilizar o processo.
Quando fizer sua primeira chamada por telefone, seus dados sero atualizados.
Para o cooperado (taxista) cadastram-se: nome, CPF, nmero da carteira
de motorista, categoria, data de validade da carteira, nmero do txi na
cooperativa (conhecido como nmero de VR), nmero da placa, modelo do
veiculo, fabricante, cor do veculo, endereo residencial completo, telefone
residencial e celular e data de entrada na Cooperativa. Quando o cooperado se desliga, deve ser cadastrada a data de desligamento.

68 Exercitando Modelagem em UML

Quando o cliente solicitar uma corrida programada (pedidos com antecedncia maior do que meia hora), cadastra-se no controle de corridas: o
endereo de sada do carro, o bairro de destino, a data e hora de sada,
telefone de contato (se local de saida diferente do cadastro). Se o cliente
no for cadastrado, seu cadastro deve ser feito no momento da solicitao
do carro. O status dessa corrida deve ser definido como: "aguardando VR".
Uma hora antes da corrida programada, a operadora questiona, pelo rdio,
aos cooperados que estejam em trnsito, qual deseja pegar a corrida programada. Deve ser cadastrado na aplicao o nmero da VR do taxista
que se candidatou corrida. Meia hora antes do horrio, o cliente deve ser
avisado a respeito do nmero da VR. Antes de avisar ao cliente, o status
deve ser assinalado como: "aguardando aviso". Aps o aviso, o status muda para "aviso efetuado". Aps ser atendido, o status deve ser alterado
para: "tripulado". Em qualquer momento a corrida pode ser cancelada pelo
passageiro.
Se for uma solicitao de carro imediato, a operadora deve retomar tela,
informando o status dentre as opes: "aguardando aviso", "aviso efetuado", "cancelado pelo passageiro" ou "cancelado pela cooperativa por falta
de carro". Se um logradouro no estiver na lista, a solicitao no ser
atendida.
Quando o cliente for atendido, o status deve ser alterado para: "tripulado".
EXERCCIO:
A partir do cenrio descrito, desenhe o diagrama de casos de uso e escreva os
seus cenrios. Considere que: o cadastramenlo das corridas e dos clientes
feito pela Operadora da Central; o cadastramento dos cooperados feito por
qualquer funcionrio da rea Administrativa; e o controle mensal de pagamentos_de diriaA fejto peia rea Financeira.

...

Exercitando a Identificao de Casos de Uso 69

RESOLUO (DIAGRAMA DE CASOS DE Uso E DESCRIO DOS CENRIOS):

CONSULTAR CLIENTE
Esle caso de uso tem por objetivo apresentar os clientes cadastrados e
Descrio:
habilitar a incluso, alterao ou excluso de clientes.
Ator:

Operadora

Cenrio Principal:
1. O sistema prepara uma lista de todos os clientes cadastrados.
2. O sistema oferece ao usurio:
2.1. selecionar um cliente, para alterar seu cadastro;
2.2.!ocalizar um cliente ou conjunto de clientes por meio de pesquisa;
2.3. selecionar a opo de "inserir cliente".
3. Pesquisa de Cliente
3.1. Para localizar um cliente, o usurio deve inserir um trecho do nome do cliente como critrio de pesquisa. O sistema far a busca parcial.
3.2.0 sistema exibe a lista de clientes que satisfaa o critrio, exibindo para cada um:
3.2.1. cdigo de identificao
3.2.2. nome do cliente
3.2.3. telefone
4. Insero de Cliente
4.1.[lnclude Caso de Uso Manter Cliente]
5. Seleo de Cliente
5.1 .Aps selecionar um cliente, o sistema habilita as opes de "alterar cliente" e "excluir cfiente".
5.2.Se o usurio selecionar uma dessas opes, o sistema aciona o cadastro de cliente. [Include Caso de Uso Manter Clienle]

Exercitando Modelagem em UML

MANTER CLIENTE
Descrio:
Ator:
Pr-condlo:

Este caso de uso tem por objeivo permitir a incluso, alterao ou excluso
de dados ligados ao cadastro de clientes.

Diretor da empresa

Receber a identificao do tipo de operao e os dados cadastrais do cliente, no caso de alterao


ou excluso.
Cenrio Principal:
1.

Manuteno do Cadastro

2.
3.

1.1 .Em caso de "Incluso*, o sistema habilita a edio dos dados.


1.2. Em caso de "Alterao", o sistema exibe os dados cadastrados e os habilita para edio.
1.3.Em caso de "Consulta" ou "Excluso", o sistema exibe os dados cadastrados desabilitados
para edio.
1.3.1. No caso de excluso, o sistema solicita a confirmao.
O sistema prepara uma lista de todos os logradouros atendidos pela Cooperativa.
O usurio informa, no caso de "Alterao" ou "Incluso":
3.1.nome do cliente
3.2. logradouro, selecionado de uma lista preexistente. O sistema exibe o bairro, a cidade e o
estado.
3.3.nmero e complemento do endereo.
3.4.dois telefones de contalo, Informando para cada um:
3.4.1. prefixo
3.4.2. nmero

3.4.3. tipo, selecionado entre as opes: residencial, comercial, celular ou recado.


4.

O usurio confirma a operao realizada.

5.

O sistema atualiza os dados cadastrais do cliente.


5.1.No caso de incluso, o sistema gera automaticamente um cdigo de identificao.
Cenrio Alternativo:
- Excluso no permitida
No possvel excluir um cliente que esteja associado a uma corrida cadastrada.
CONSULTAR COOPERADO
Este caso de uso tem por objetivo apresentar os cooperados (taxistas)
Descrio:
cadastrados e habilitar a incluso, alterao ou excluso de cooperados.
Ator:

rea Administrativa

Cenrio Principal:

1.

O sistema prepara uma lista de todos os cooperados cadastrados.

2.

O sistema oferece 30 usurio:

Exercitando a Identificao de Casos de Uso 71

3.

4.
5.

2.1 .selecionar um cooperado, para alterar seu cadastro;


2.2.localizar um cooperado ou conjunto de cooperados por meio de pesquisa;
2.3. selecionar a opo de "inserir cooperado".
Pesquisa de Cooperado
3.1. Para localizar um cooperado, o usurio deve inserir um trecho do nome do cooperado como critrio de pesquisa, O sistema far a busca parcial.
3.2.0 sistema exibe a lista de cooperados que satisfaa o critrio, exibindo para cada um:
3.2.1. nmero da VR do cooperado
3.2.2. nome do cooperado
Insero de Cooperado
4.1 .[Include Caso de Uso Manter Cooperado]
Seleo de Cooperado
5.1 .Aps selecionar um cooperado, o sistema habilita as opes de "alterar cooperado" e "excluir cooperado".
5.2.Se o usurio selecionar uma dessas opes, o sistema habilita o cadastrarnento de cooperado. [Include Caso de Uso Manter Cooperado]

MANTER COOPERADO
Este caso de uso tem por objetivo permitir a incluso ou alterao de dados
Descrio:
ligados ao cadastro de cooperados.
Ator:

rea Administrativa

Pr-condio:
Receber a identificao do tipo de operao e os dados cadastrais do cooperado, no caso de alterao ou excluso.
Cenrio Principal:

1.

2.
3.

Manuteno do Cadastro
1.1 .Em caso de "Incluso", o sistema habilita a edio dos dados.
1 .z Em caso de "Alterao", o sistema exibe os dados cadastrados e os habilita para edio.
1.3.Em caso de "Consulta" ou "Excluso", o sistema exibe os dados cadastrados desabilitados
para edio.
1.3.1. No caso de excluso, o sistema solicita a confirmao.
O sistema prepara uma lista de logradouros cadastrados.
O usurio informa, no caso de "Alterao" ou "Incluso":
3.1.CPF
3.2.nome do cooperado
3.3.dados da carteira de motorista: nmero, categoria e data de validade
3.4.dados do veculo: nmero da VR {identificao do veiculo na cooperativa), nmero da placa, modelo, fabricante
3.5.endereo completo, considerando que o logradouro selecionado de uma lista preexistente. Ao selecionar o logradouro, o sistema exibe o bairro, a cidade e o estado. O usurio
completa o cadastro do endereo com o nmero e complemento.

72 Exercitando Modelagem em UML

4.
5.

3.6.telefones residencial e celular


3.7.dala de entrada na Cooperativa
3.8.data de safda da Cooperativa (somente para alterao)
O usurio confirma a operao realizada.
O sistema atualiza os dados cadastrais do cooperado.

MANTER LOGRADOURO
Este caso de uso tem por objetivo apresentar os logradouros atendidos pela
Descrio:
cooperativa e habilitar a incluso, alterao ou excluso de logradouros.
Ator:

rea Administrativa

Cenrio Principal:

1.
2.

O sistema prepara uma lista de todos os logradouros cadastrados.


O sistema oferece ao usurio:
2.1. selecionar um logradouro, para alterar seu cadastro;
2.2. localizar um logradouro ou conjunto de logradouros por meio de pesquisa;
2.3.selecionar a opo de Inserir cilente".
3. Pesquisa de Logradouro
3.1.Para localizar um logradouro, o usurio teve inserir um trecho do nome e/ou do bairro como critrio de pesquisa. O sistema far a busca parcial.
3-2.0 sistema exibe a lista de logradouros que satisfaa o critrio, exibindo para cada um:
3.2.1. nome do logradouro
3.2.2. bairro
4. Manuteno do Cadastro
4.1.Em caso de "Incluso", o sistema habilita a edio dos dados.
4.2. Em caso de "Alterao", o sistema exibe os dados cadastrados Q os habilita para edio.
4.3.Em caso de "Consulta" ou "Excluso", o sistema exibe os dados cadastrados desablilados
para edio.
4.3.1. No caso de excluso, o sistema solicita a confirmao.
5. O usurio informa, no caso de "Alterao" ou "Incluso":
5.1. nome do logradouro
5.2.balrro
5.3. cidade
5.4.UF
6. O usurio confirma a operao realizada.
7. O sistema atualiza os dados cadastrais do logradouro.
Cenrio Alternativo:
- Excluso no permitida
No possvel excluir um logradouro que esteja associado a uma corrida, cooperado ou
cliente.

Exercitando a Identificao de Casos de Uso 73

CADASTRAR CORRIDA
Este caso de uso tem por objetivo cadastrar a solicitao dos clientes de
corridas
programadas (que so pedidas com antecedncia maior do que
Descrio:
meia hora) ou imediatas.
Ator:

Operadora da central

Cenrio Principal:
1. O usurio informa o cdigo de identificao do cliente.
1.1.0 sistema pesquisa o cdigo e exibe: o nome do cliente, seu endereo e telefones.
1.2.0 sistema exibe a lista de corridas programadas.
1.3.0 sistema oferece ao usurio:
1.3.1. selecionar uma corrida, para alterar seu cadastro;
1.3.2. alterar o cadastro do cliente;
1.3.3. selecionar a opo de Inserir corrida".
2. Manuteno do Cadastro
2.1 .Em caso de "Incluso", o sistema habilita a edio dos dados.
2,2.Em caso de "Alterao", o sistema exibe os dados cadastrados e os habilita para edio.
2.3.Em caso de "Consulta", o sistema exibe os dados cadastrados desabililados para edio.
3. Alterao do Cadastro de Cliente:
3.1 .[Include Caso de Uso Manter Ciiente]
4. O usurio informa, no caso de "Alterao" ou Incluso":
4.1.Se o endereo de origem da corrida o mesmo endereo do cliente.
4.2.Se no for o mesmo endereo:
4.2.1. o sistema prepara uma lista dos logradouros atendidos pela Cooperativa.
4.2.2. o usurio informa o logradouro de origem, selecionando de uma lista preexistente.
4.2.3. o usurio informa o nmero e o complemento do logradouro, alm de um telefone
de contato.
4.3.0 usurio informa o bairro de destino da corrida.
4.4.0 usurb informa a data e a hora para a qual a corrida deve ser programada; ou se uma
corrida imediata.
5. Somente para "Alterao" de corrida:
5.1. o sistema prepara uma lista de veculos cadastrados.
5.2. o usurio informa o nmero da VR escolhida para a corrida.
5.3. se a VR tiver sido informada, o usurio poder alterar o status da corrida para uma das
seguintes opes:
5.3.1. "aguardando aviso';
5.3.2. "aviso efetuado";
5.3.3. "tripulado".
5.4.Em qualquer situao, o usurio poder alterar o status da corrida para:
5.4.1. "cancelado pelo passageiro";
5.5.No caso de corrida imediata e no tendo sido informada a VR, o usurio poder alterar o
status da corrida para:
5.5.1. "cancelado pela cooperativa por falta de carro".

74 Exercitando Modelagem em UML

6.
7.

O usurio confirma a operao realizada.


O sistema atualza os dados cadastrais da corrida.
7.1 .Se for incluso, o sistema atualza o slatus automaticamente com o valor "aguardando VR".
Cenrio Alternativo:
- Cdigo desconhecido
Se o usurio no possuir o cdigo do cliente, ele poder pesquis-lo a partir do nome do
cliente [Include Caso de Uso Consultar Cliente}.
- Cliente no cadastrado
Se o cliente no for cadastrado, o usurio poder efetuar o cadastramento a partir deste
caso de uso. [Include Caso de Uso Manter Cliente]
-Validao do Status
O status "aguardando VR" s pode ser alterado para "aguardando aviso", "cancelado peto
passageiro" ou "cancelado pela cooperativa por falta de carro" (este ltimo, no caso especfico de
corrida imediata).
O stalus "aguardando aviso" s pode ser alterado para "aviso efetuado" ou "cancelado peio
passageiro'.
O status "aviso efetuado" s pode ser alterado para "tripulado" ou "cancelado pelo passageiro".
Os status "tripulado" e "cancelado" no podem ser alterados.

36. CENRIO: TREINADOR DE VLEI


Marco um treinador de vlei e deseja levar um Notebook para os jogos,
a fim de obter
- controle do placar
- controle dos pontos de cada partida, identificando-os como: ponto de
ssque, ponto de ataque (quando a vantagem estiver com o time adversrio), ponto de contra-ataque (quando a vantagem estiver com o prprio
time), ponto de bloqueio, erro do adversrio. No caso de bloqueio necessrio cadastrar se foi individual, duplo ou triplo.
So requisitos para a implantao dessa aplicao:
- cadastrar o nome de todos os jogadores do time e o nmero de suas
camisas;
- para cada jogo agendado, cadastrar: a data e hora do jogo, o local, o
nome do time adversrio, os nomes do juiz e do juiz auxiliar.
- a aplicao deve exibir para controle em cada set o placar que pode ser
alterado pelo auxiliar tcnico, informando quem fez o ltimo ponto e o tipo

Exercitando a Identificao de Casos de Uso - 75


do ponto. No caso do ponto ser do time adversrio, basta identificar o tipo
do ponto.
- ao final de um jogo, o sistema deve exibir a lista dos maiores pontuadores e o somatrio de pontos, por tipo, do jogo.
EXERCCIO:
A partir do cenrio descrito, desenhe o diagrama de casos de uso e escreva os
cenrios. Considere que: o cadastramento dos jogadores e das partidas feito
pelo Apoio. O cadastramento das informaes de um jogo feito pelo Auxiliar
Tcnico. O resumo de final de partida acessado tanto pelo Auxiliar Tcnico
quanto pelo Tcnico.

RESOLUO (DIAGRAMA DE CASOS DE Uso E DESCRIO DOS CENRIOS):

Tcr,

MANTER JOGO
Descrio:

Este caso de uso tem por objetlvo permitir a incluso ou alterao de dados
ligados ao cadastro de jogos (competies).

Ator:

Apoio Tcnico

Cenrio Principal:
1. O sistema prepara uma lista de todos os jogos cadastrados.
2. O sistema oferece ao usurio:
2.1 .selecionar um jogo, para alterar seu cadastro;
2.2. localizar um jogo ou grupo de jogos por meio de pesquisa;

76 Exercitando Modelagem em UML

2.3.selecionar a opo de 'inserir jogo".


Pesquisa de Jogo
3.1. Para localizar um jogo, o usurio deve inserir a data e/ou um trecho do nome do time adversrio como critrio de pesquisa. O sislema far a busca parcial.
3.2. O sistema exibe a lista de jogos que satisfaa o critrio, exibindo para cada um:
3.2.1. data do jogo
3.2.2. hora do jogo
3.2.3. nome do adversrio
4. Manuteno do Cadastro
4.1.Aps selecionar um jogo, o sistema habilita as opes de "Alterao11, "Consulta" ou "Excluso" de um jogo.
4.2. Em caso de "Incluso", o sistema habilita a edio dos dados.
4.3. Em caso de "Alterao", o sistema exibe os dados cadastrados e os habilita para edio.
4.4. Em caso de "Consulta" ou "Excluso", o sistema exibe os dados cadastrados desabiitados
para edio.
4.4.1. No caso de excluso, o sistema solicita a confirmao.
5. O usurio informa, no caso de "Alterao* ou Incluso":
5.1.data
5.2. hora
5.3.nome do lime adversrio
5.4.localdojogo
S.S.nome do juiz principal
5.6.nome do juiz auxiliar
6. O usurio confirma a operao realizada.
7. O sistema atualiza os dados cadastrais do jogo.
Cenriojlternativo;
-Excluso no permitida
No possvel excluir um jogo que esteja associado a um resultado.
3.

MANTER JOGADOR
Descrio:

Este caso de uso tem por objetivo permitir a incluso ou alterao de dados
referentes ao cadastro de jogadores.

Ator:

Apoio Tcnico

Cenrio Principal:
1. O sistema prepara uma lista de todos os jogadores cadastrados.
2. O sistema oferece ao usurio:
2.1 .selecionar um jogador, para alterar seu cadastro;
2.2.localizar um jogador ou grupo de jogadores por meio de pesquisa;
2.3.selecionar a opo de "inserir jogador".
3. Pesquisa de Jogador
3.1. Para localizar um jogador, o usurio deve inserir um trecho do nome como critrio de pesquisa. O sistema far a busca parcial.

Exercitando a Identificao de Casos de Uso 77

3.2.0 sistema exibe a lista de jogadores que satisfaa o critrio, exibindo para cada um:
3.2.1. nome do jogador
3.2.2. nmero da camisa
4.

Manuteno do Cadastro

4.1 .Aps selecionar um jogador, o sistema habilita as opes de "Alterao", "Consulta" ou


"Excluso" de um jogador.
4.2.Em caso de Incluso", o sistema habilita a edio dos dados.
4.3.Em caso de "Alterao", o sistema exibe os dados cadastrados e os habilita para edio.
4.4.Em caso de "Consulta" ou "Excluso", o sistema exibe os dados cadastrados desabilitados
5.

para edio.
4.4.1. No caso de excluso, o sistema solicita a confirmao.
O usurio informa, no caso de "Alterao" ou "Incluso":
5.1.nome do jogador
5.2. nmero da camisa

6. O usurio confirma a operao realizada.


7. O sisema atualza os dados cadastrais do jogador.
Cenrio Alternativo;
- Excluso no permitida

No possvel excluir um jogador que esteja associado a um resultado.


CONTROLAR PLACAR
Descrio:

Este caso de uso tem por objetivo fazer o controle do placar de um determinado jogo, desde o primeiro set at o ltimo.

Ator:

Auxiliar Tcnico

Cenrio Principal:
1. O sistema prepara uma lista de todos os jogos cadastrados que ainda no tiveram seu placar
registrado.
2. O usurio informa o jogo para o qual ser controlado o placar, seiecionando de uma lista preexistente.
2.1. O sistema exibe a data e hora do jogo, o nome do adversrio, o nome do juiz principal e o
nome do juiz auxiliar.
3. O sistema exibe o placar e habilita a opo de Iniciar Set".
3.1. [Extends Iniciar Set]
3.2. O sistema obtm o placar e o associa ao sei jogado.
3.3. O sistema verifica quem foi o ganhador do set, incrementando no placar o nmero de sets

ganhos do time que venceu o set.


3.4. Se nenhum dos times tiver alcanado trs vitrias, num limite de cinco sets, o sistema se

prepara para um novo set. (Passo 3).


4.

O sistema atualiza os dados cadastrais do jogo, incluindo os resuftados dos sets.

78 Exercitando Modelagem em UML

INICIAR SET
Descrio:

Este caso de uso tem por objetivo dar incio ao controle de umsetdevlei.

Ator:

Auxiliar Tcnico

Pr-condio;
Receber a identificao se o set de tie-break.
Cenrio Principal:
1. O sistema prepara uma lista de jogadores do time.
2. O usurio seleciona os jogadores que iniciaro a partida, cadastrando-os na seguinte ordem:
rede - ataque - esquerda, rede - ataque - meio, rede - ataque - direita, defesa - esquerda,
defesa - meio, defesa - direita).
3. O usurio informa qual time iniciar o jogo.
4. O sistema controla cada ponto do sei.
4.1.[Extends Caso de Uso Registrar Ponto]
4.2.Se o set no for de tie-break, os pontos so controlados at que um dos times atinja 25
pontos, tendo dois pontos do diferena para o time adversrio. Se no houver essa diferena, a pontuao prossegue at que essa diferena seja atingida.
4.3. Se o set for de tie-break, os pontos so controlados at que um dos times atinja 15 pontos, tendo dois pontos de diferena para o time adversrio. Se no houver essa diferena, a pontuao prossegue at que essa diferena seja atingida.
5. O sistema retoma o placar do set.
Ps-condig;
Retomar o placar do set.

REGISTRAR PONTO
Este caso de uso tem por objetivo identificar quem foi responsvel por um
Descrio:
ponto num determinado set, e reqistrar o tipo de ponto.

Auxiliar Tcnico
Ator:
Pr-condio_;
Receber a informao de que time encontra-se com a vantagem no jogo.
Cenrio Principal:
1. O sistema prepara uma lista dos jogadores do time.
2. O usurio inlorrna quem fez o ponto, selecionando entre as opes: nosso time e time adversrio.
3. O usurio informa o tipo de ponto, selecionando dentre as seguintes opes:
3.1. Se o time pontuador estava com a vantagem:
3.1.1. pontodesaque
3.1.2. ponto de ataque
3.1.3. ponto de bloqueio

Exercitando a Identificao de Casos de Uso 79


3.1.4. erro do adversrio
3.2. Se o time ponluador no estava com a vantagem:
3.2.1. ponto de contra-ataque
3.2.2. ponto de bloqueio
3.2.3. erro do adversrio
4. Se For escolhido ponto de bloqueio, o usurio deve informar o tipo do bloqueio, selecionando
entre as seguintes opes: individual, duplo ou triplo.
5. Se o time pontuador for o prprio time e o ponto no tiver sido de "erro de adversrio", o usurio deve seiecionar o(s) jogador(es) que loi(ram) responsveis] pelo ponto.
Ps-condio!
Retomar os dados relacionados ao ponto.

LISTAR MAIORES PONTUADORES


Descrio:
Ator:

Este caso de uso tem por objeth/o oferecer uma consulta dos maiores pontuadores de um jogo e o somatrio de pontos, por tipo, do jogo.
Auxiliar Tcnico, Tcnico

Pr-condico:
Receber a identificao do jogo.
Cenrio Principal:
1. O sistema contabiliza e exibe o total de pontos, agrupados por set e por tipo de ponto (saque,
ataque, contra-ataque, bloqueio e erro do adversrio),
2. O sistema contabiliza e exibe, em ordem crescente, o total de pontos conseguido, agrupados
por jogador e depois por tipo de ponto (saque, ataque, contra-ataque, bloqueio e erro do adversrio).

37. CENRIO: CONTROLE DE OBRA


lvaro est fazendo uma ampliao de sua residncia. Todo dia existe demanda de compra de material. Sendo assim, ele desenvolveu uma pequena
aplicao que controla essa demanda de solicitaes e as compras efetuadas, de forma a montar uma base de cotaes para as compras futuras.
A aplicao possui um cadastro de produtos, contendo: nome, descrio,
medida de venda do produto (kg, ml ou m; indicando peso, volume ou
comprimento) e valor da medida de venda (ex: 1,5).
A cada solicitao de compra cadastram-se os itens dessa solicitao. Cada item possui: o produto e a quantidade. Quando cada item adquirido,
atualiza-se a solicitao com o preo unitrio de, compra, a forma de pagamento (dinheiro, cheque, cheque pr ou carto), a data de compra e o
local da compra.

80 Exercitando Modelagem em UML

So controles oferecidos pela aplicao:


Quando h uma nova solicitao, possvel obter de cada item a lista dos
trs menores preos que j foram pagos para o referido produto, incluindo
na listagem o local onde foi comprado.
A lista de compras impressa a partir dos itens que no foram fechados,
de todas as solicitaes de compra que estejam com status em aberto.
Uma solicitao pode ser cancelada {status = "cancelado").
Quando todos os itens de uma solicitao tiverem sido comprados, o sistema atualiza automaticamente o status dessa solicitao para "fechado".
Deve ser emitida uma listagem de todos os produtos j comprados, com
seu somatrio de quantidade e de valor.
EXERCCIO:
A partir do cenrio descrito, desenhe o diagrama de casos de uso desse sistema. Escreva, tambm, os cenrios. Considere que todas as operaes so feilas pelo lvaro, que pode ser Identificado como Responsvel pela Obra.

RESOLUO (DIAGRAMA DE CASOS DE Uso E DESCRIO DOS CENRIOS):

Emitir relatrio geral


B ; !'. comprado

Exercitando a Identificao de Casos de Uso 81

CONSULTAR PRODUTO
Descrio:
Ator:
Cenrio Principal:

1.
2.

3.

Este caso de uso tem por objetivo apresentar os produtos cadastrados e


habilitar a Incluso, alterao ou excluso de produtos.

Responsvel pela obra

O sistema prepara uma lista de todos os produtos cadastrados.


O sistema oferece ao usurio:
2.1 .selecionar um produto, para alterar seu cadastro;
2.2 localizar um produto ou conjunto de produtos por meio de pesquisa;
2.3.se!ecionar a opo de "inserir produto".
Pesquisa de Produto

3.1. Para localizar um produto, o usurio deve inserir um trecho do nome do produto como critrio de pesquisa. O sistema far a busca parcial.
3.2.0 sistema exibe a lista de produtos que satisfaa o critrio, exibindo para cada um:
4.

5.

3.2.1. nome do produto


3.2.2. descrio
Ins9ro de Produto

4.1 .[Include Caso de Uso Manter Produto]


Seleo de Produto
5.1.Aps selecionar um produto, o sistema habilita as opes de "alterar produto" e "excluir
produto".
5.2.Se o usurio selecionar uma dessas opes, o sistema aciona o cadastro de produto. [Include Caso de Uso Manter Produto]

MANTER PRODUTO
Descrio:
Ator:
Prgondig;

Este caso de uso tern por objetivo permitir a manuteno dos dados cadastrais de produto (incluso, alterao e excluso).
Responsvel pela obra

Receber a identificao do tipo de operao e os dados cadastrais do produto, no caso de alterao


ou excluso.
Cenrio Principal;
1. Manuteno do Cadastro
1.1. Ern caso de "Incluso", o sistema habilita a edio dos dados.
1.2. Em caso de "Alterao", o sistema exibe os dados cadastrados e os Habilita para edio.
t.S.Em caso de "Consulta" ou "Excluso", o sistema exibe os dados cadastrados desatilitados
para edio.
1.3.1. No caso de excluso, o sistema solicita a confirmao.
2. O usurio informa, no caso de "Alterao" ou Incluso":

82 Exercitando Modelagem em UML

2.1.nome do produto
2.2.descrio do produto
2.3.medida de venda do produto, escolhido entre as opes: peso (kg), volume (ml) ou comprimento (m)
2.4. valor da medida de venda, como por exemplo 1,5
3. O usurio confirma a operao realizada.
4. O sistema atualiza os dados cadastrais do produto.
4.1. No caso de incluso, o sistema gera automaticamente um cdigo de identificao.
Cenrio Alternativo:
- Excluso no permitida
No possvel excluir um produto que esteja associado a uma solicitao de compra.
MANTER SOLICITAO DE COMPRA
Este caso de uso tem por objetivo permitir a manuteno das solicitaes
Descrio:
de compras (incluso, alterao e excluso)
Responsvel pela obra
Ator:
Cenrio Principal:
1. O sistema prepara uma lista de todas as solicitaes cadastradas, que ainda no tenham sido
fechadas (status = "aberto").
2. O sistema oferece ao usurio:
2.1.selecionar uma solicitao, para alterar seu cadastro;
2.2. localizar uma solicitao ou grupo de solicitaes por meio de pesquisa;
2.3.selecionar a opo de Inserir solicitao de compra".
3. Pesquisa de Solicitao de Compra
3.1. Para localizar um produto, o usurio deve inserir a data da solicitao e/ou um trecho do
nome de algum produto que conste da solicitao como critrio de pesquisa. O sistema
far a busca parcial.
3.2.0 sistema exibe a lista de solicitaes de compra que satisfaam o critrio, exibindo para
cada um:
3.2.1. data da solicitao
3.2.2. lista de produtos que fazem parte da solicitao
4. Manuteno do Cadastro
4.1.Aps selecionar uma solicitao de compra, o sistema habilita as opes de "Alterao",
"Consulta" ou "Cancelamento".
4.2. Em caso de "Incluso", o sistema habilita a edio dos dados.
4.3. Em caso de "Alterao", o sistema exibe os dados cadastrados e os habilita para edio.
4.4. Em caso de "Consulta" ou "Cancelamento", o sistema exibe os dados cadastrados desabilitados para edio.
4.4.1. No caso de cancelamento, o sistema solicita a confirmao.
5. O usurio informa, no caso de "Alterao" ou Incluso":
5.1.data da solicitao
5.2. itens da solicitao

Exercitando a Identificao de Casos de Uso 83


5.2.1. Extends [Caso de Uso Manter Item de Solicitao de Compra]
O usurio pode solicitar o cancelamento da solicitao de compra.
6.1. O sistema altera o status da solicitao de compra para "cancelada".
7. O usurio confirma a operao realizada.
8. O sistema alualiza os dados cadastrais da solicitao de compra.
8.1. No caso de incluso, o sistema atualiza o status com o valor "aberto".
Cenrio Alternativo:
- Cancelamento no permitido
No possvel cancelar urna solicitao de compra que j tenha tido algum item comprado. Nesse caso, s possvel cancelar os itens da solicitao,
6.

MANTER ITEM DE SOLICITAO DE COMPRA


Este caso de uso tem por objetivo permitir a manuteno dos itens c e uma
Descrio:
solicitao de compras (incluso, alterao e excluso).
Responsvel pela obra
Ator:
Cenrio Principal:
1. O sistema prepara uma lista de todos os itens cadastrados.
2. O sistema oferece ao usurio:
2.1.seleconar um item, para alterar seu cadastro;
2.2.localizar urn item ou grupo de itens por meio de pesquisa;
2.3.selecionar a opo de "inserir item".
3. Pesquisa de Item
3.1. Para localizar um itern,o usurio deve inserir trecho do nome de algum produto como critrio de pesquisa. O sistema far a busca parcial.
3.2. O sistema exibe z lista de itens que satisfaa o critrio, exibindo para cada um:
3.2.1. produto
3.2.2. quantidade solicitada
4. Manuteno do Cadastro
4.1.Aps seleconar um item. o sistema habilita as opes de "Alterao", "Consulta" ou "Excluso" de um item.
4.2.Em caso de "Incluso", o sistema habilita a edio dos dados.
4.3. Em caso de "Alterao", o sistema exibe os dados cadastrados e os habilita para edio.
4.4. Em caso de "Consulta" ou "Excluso", o sistema exibe os dados cadastrados desabillados
para edio.
4.4,1. No caso de excluso, o sistema solicita a confirmao.
5. O sistema prepara uma lista de todos os produtos cadastrados.
6. O usurio informa, no caso de "Alterao" ou "Incluso":
6.1 .produto, selecionado de uma lista preexistente;
6.2. quantidade solicitada.
7. O usurio confirma a operao realizada.
B, O sistema atualiza os dados cadastrais do item.

84 Exercitando Modelagem em UMl.

Cenrio Aj_ternal|vo:
- Excluso no permitida
No possvel excluir um item que esteja associado a uma compra efetuada.

REGISTRAR COMPRA EFETUADA


Descrio:
Ator:

Este caso de uso tem por objetivo registrar as compras que foram efetuadas
para atender a uma determinada solicitao de compra.
Responsvel pela obra

Cenrio Principal:
1. O sistema apresenta todos os itens de compra que ainda no foram atendidos, agrupando-os e
totalizando a quantidade daqueles que sejam do mesmo produto,
2. O sistema deve preparar urna lista dos locais cadastrados.
3. Para cada item de compra do qual o usurio queira registrar a aquisio:
3.1.0 usurio seleciona um dos itens de compra para registrar sua aquisio.
3.2. O usurio informa:
3.2.1. a quantidade adquirida.
3.2.2. s forma de pagamento, selecionada entre as opes: dinheiro, cheque, cheque pr
ou carto.
3.2.3. a data da compra.
3.2.4. local da compra, seleconado de uma lista preexistente.
4. O usurio confirma a operao realizada.
5. O sistema atualiza os dados cadastrais do item de compra.
Cenrio Alternativo:
- Local Inexistente
Se no existir um local cadastrado, permitir a incluso de um local. Include [Caso de Uso
Manter Local de Compra]
- Quantidade adquirida diferente da quantidade solicitada
Se a quantidade adquirida for inferior quantidade solicitada, o sistema deve aceitar e no
fechar o item de compra como atendido. No prximo Registro de Compra, este item deve aparecer
somente com a quantidade faltante.
MANTER LOCAL DE COMPRA
Este caso de uso tem por objetivo permitir a manuteno dos locais de
Descrio:
compra onde so adquiridos os itens da obra.
Responsvel pela obra
Ator:
Cenrio Principal:
1. O sistema prepara uma lista de locais de compra cadastrados.
Z. O sistema oferece ao usurio:

Exercitando a Identificao de Casos de Uso 85


2.1.selecionar um local, para alterar seu cadastro;
2.2.localizar um local por meio de pesquisa;
2.3.selecionar a opo de "inserir local".
3. Manuteno do Cadastro
3.1 ,Em caso de "Incluso", o sistema habilita a edio dos dados.
3.2. Em caso de "Alterao", o sistema exibe os dados cadastrados e os habilita para edio.
3.3. Em caso de "Consulta" ou "Excluso", o sistema exiba os dados cadastrados desabilitados
para edio.
3.3.1. No caso de excluso, o sistema solicita a confirmao.
4. O usurio informa, no caso de "Alterao" ou "Incluso":
4.1. nome do estabelecimento.
4.2. endereo completo, contendo: nome do logradouro, nmero, complemento e bairro.
4.3. telefones de contato.
5. O usurio confirma a operao realizada.
6. O sistema atualiza os dados cadastrais dos locais de compra.
6,1, No caso de incluso, o sistema gera automaticamente um cdigo de identificao.
Cenrio Alternativo:
- Excluso no permitida
No possvel excluir um local de compra que esteja associado a um item de compra.
IMPRIMIR LISTA DE COMPRA
Este caso de uso tem por objetivo gerar uma lista de compra, contendo
todos os itens ainda no adquiridos de todas as solicitaes de compra que
Descrio:
ainda encontram-se abertas, agrupando por produto, a fim de facilitar e
agilizar a compra.
Ator:

Responsvel pela obra

Cenrio Principal:
1. O sistema obtm a lista de todos os itens de compra que ainda no foram atendidos, agrupando e totalizando a quantidade daqueles que sejam do mesmo produto,
2. Para cada item de compra obtido:
2.1. O sistema busca todas as compras j realizadas para o referido item.
2.2. Desse conjunto, o sistema obtm os trs menores valores j pagos para aquele item, trazendo para cada valor, a data de aquisio e o local de compra.
3. O sistema exibe um relatrio contendo:
3.1. item de compra
3.2. quantidade total solicitada
3.3. valor, data e local dos trs menores preos'

86 Exercitando Modclagem em UML

EMITIR RELATRIO GERAL DE PRODUTOS COMPRADOS


Este caso de uso tem por objetivo emitir um relatrio geral contendo todos
Descrio:
os produtos comprados num determinado perodo,
Ator:
Responsvel pela obra
Cenrio Principal:

1.
2.

O usurio informa o perodo desejado para o relatrio (data de incio e data de trmino).
O sistema busca todos os itens de compra que j foram adquiridos, que estejam dentro do
perodo informado pelo usurio.
2.1.0 sistema agrupa todos os produtos comprados, calculando o que foi gasto para cada produto.
3. O sistema emite um relatrio contendo os seguintes dados:
3.1. nome do produto;
3.2. total adquirido do produto;
3.3. total gasto na aquisio;

3.4. somatrio geral do total gasto com os produtos.

38. CENRIO: CONTROLE DEOBRA (VARIAO A)


lvaro sentiu a necessidade de saber quanto estava gastando com acabamento, alvenaria etc. Sendo assim, preparou uma nova verso de sua
aplicao que controlasse o tipo do produto.
EXERCCIO:
Que novo caso de uso precisaria ser includo nesse modelo?

RESOLUO:

O CASO DE Uso MANTER TIPO DE PRODUTO.

39. CENRIO: SENHA DE ATENDIMENTO


A empresa Compre Bem implantou uma senha de atendimento para o SAC
de suas lojas. O objetivo reduzir o tempo de espera na fila.
O atendimento dividido por assuntos e cada caixa pode cuidar de um ou
mais assuntos, ou um assunto pode ser tratado por um ou mais caixas.
Para cada caixa deve-se saber o nmero e a posio (direita ou esquerda
da mquina de senhas).

Exercitando a Identificao de Casos de Uso > 87


Para cada caixa, deve-se ter um histrico de atendimentos, para se obter
estatstica. A estatstica deve ser detalhada quanto ao tempo mnimo, mdio e mximo de atendimento por caixa e por dia, alm do nmero de atendimentos por assunto,
A qualquer momento preciso saber que caixa est com um determinado
nmero de atendimento.

EXERCCIO:
A partir do cenrio descrito, desenhe o diagrama de casos de uso desse sistema. Escreva, tambm, os cenrios. Considere que as tarefas de controlar os
.assuntos e os caixas, obter estatstica e relatrios so do Setor Administrativo.
O Caixa se responsabiliza por controlar a prxima senha e o Balco de Informaes que gera novas senhas.
RESOLUO (DIAGRAMA DE CASOS DE Uso E DESCRIO DOS CENRIOS):

Admlnlairailvn

MANTER ASSUNTOS
Descrio:

Este caso ds uso tem por objetivo permitir a manuteno (incluso alteraco e excluso) dos assuntos controlados no atendimento.

Administrativo
Ator:
Cenrio Principal:
1. O sistema prepara uma lista da assuntos cadastrados.
2. O sistema oferece ao usurio:

88 Exercitando Modelagem em UML

3.

4.

2.1,selecionarum assunto, para alterar seu cadastro;


2.2.localizar um assunto por meio de pesquisa;
2.3.selecionar a opo de "inserir assunto".
Pesquisa de Assunto
3.1. Para locatizar um assunto, o usurio deve inserir um trecho do nome como critrio de
pesquisa. O sistema far a busca parcial.
3.2.0 sistema exibe a lista de assuntos que satisfaa o critrio, exibindo para cada um:
3.2.1, nome do assunto
3.2.2. os caixas responsveis
Manuteno do Cadastro

5.
6.

4.1.Aps selecionar um assunto, o sistema habilita as opes de "Alterao", "Consulta" ou


"Excluso" de um assunto.
4.2. Em caso de 'Incluso", o sistema habilita a edio dos dados.
4.3. Em caso de "Alterao", o sistema exibe os dados cadastrados e os habilita para edio.
4.4. Em caso de "Consulta" ou "Excluso", o sistema exibe os dados cadastrados desabilitados
para edio.
4.4.1. No caso de excluso, o sistema solicita a confirmao.
O sistema prepara uma lista de caixas cadastrados.
O usurio informa, no caso de "Alterao" ou "Incluso":
6.1. nome do assunto,
6.2. lista de caixas responsveis pelo atendimento daquele assunto, selecionados de uma lista
preexistente.
6.3. descrio do assunto.

7.

O usurio confirma a operao realizada.

8.

O sistema atualiza os dados cadastrais do assunto.


8.1. No caso de incluso, o sistema gera automaticamente um cdigo de identificao.

Cenrio Alternativo:
- Excluso no permitida

No possvel excluir um assunto que esteja associado a um atendimento.


MANTER CAIXAS
Descrio:

Este caso de uso tem por objetivo permitir a manuteno (incluso, alteraco e excluso) dos caixas.

Ator:

Administrativo

Cenrio Principal:

1.
2.

O sistema prepara uma lista de todos os caixas cadastrados.


O sistema oferece ao usurio:
2.1 .selecionar um caixa, para alterar seu cadastro;
2.2.localizar um caixa por meio de pesquisa;
2.3.selecionar a opo de "inserir caixa".

Exercitando a Identificao de Casos de Uso 89


3.

Pesquisa de Caixa
3.1. Para localizar um caixa, o usurio deve inserir um trecho do nome do atendente como critrio de pesquisa. O sistema far a busca parcial.
3.2. O sistema exibe a lista de caixas que satisfaa o critrio, exibindo para cada um:
3.2.1. nmero do caixa
3.2.2. atendente responsvel

4.

Manuteno do Cadastro

5.

4,1.Em caso de "Incluso", o sistema habilita a edio dos dados.


4.2. Cm caso de "Alterao", o sistema exibe os dados cadastrados e os habilita para edio.
4.3.Em caso de "Consulta" ou "Excluso", o sistema exibe os dados cadastrados desabilitados
para edio.
4.3.1, No caso de excluso, o sistema solicita a confirmao.
O usurio informa, no caso de "Alterao" ou Incluso":
5.1. nmero do caixa

5.2. atendente responsvel


5.3. posio do caixa, selecionando entre as opes: lado esquerdo ou lado direito.
6. O usurio confirma a operao realizada.
7. O sistema atualiza os dados cadastrais do caixa.
7.1.No caso de incluso, o sistema gera automaticamente um cdigo de identificao.
Cenrio Alternativo:
- Excluso no permitida
No possvel excluir um caixa que esteja associado a um atendimento.
VERIFICAR DISTRIBUIO ATUAL DE SENHAS
Este caso de uso tem por objetivo permitir a consulta de como esto distriDescrio:
budas as senhas, pelos caixas, no dia corrente,
Ator:

Administrativo

Cenrio Principal:
1. O sistema busca a lista de todos os assuntos cadastrados.
2. Para cada assunto, o sistema exibe:
2.1. a ltima senha liberada;
2.2. a ltima senha atendida;
2.3. o caixa que est atendendo ou que atendeu a ltima senha;
2.4. horrio de inicio do ltimo atendimento;
2.5. horrio de trmino (se houver) do ltimo atendimento.

90 Exercitando Modelagem em UML

OBTER ESTATSTICA DO HISTRICO DE ATENDIMENTOS


Descrio:

Este caso de uso tem por objetivo permitir a consulta ao histrico de atendimentos, qerando estatstica de tempo gasto para cada atendimento.

Ator:

Administrativo

Cenrio Principal;

1.
2.
3.

O usurio informa um perodo (data de inicio e data de fim) de pesquisa.


O sistema busca todos os atendimentos efetuados dentro do perodo informado.
Para cada dia do referido perodo, so agrupados os atendimentos por caixa. Para cada caixa
exibido;
3.1.nmero do caixa
3.2.nome do atendente responsvel pelo caixa
3.3.lista de atendimentos, exibindo para cada um:
3.3.1. horrio de incio

4.
5.

6.

3.3.2. horrio de trmino


3.3.3. tempo gasto no atendimento
3.3.4. assunto de referncia do atendimento
Para cada caixa, o sistema calcuia e exibe o tempo mnimo, mdio e mximo de atendimento.
Para cada dia do perodo de busca, o sistema calcula e exibe:
5.1 .o tempo mdio de atendimento
5.2.0 caixa qua teve o menor ndice mdio de atendimento
5.3.0 caixa que teve o maior ndice mdio de atendimento
Ao final, o sistema calcula e exibe o total de atendimentos, por assunto, exibindo em ordem
decrescente:
6.1.o nome do assunto
6.2.a quantidade de atendimentos

OBTER PRXIMO NMERO


Descrio:
Ator:

Este caso de uso tem por objetivo verificar para um determinado caixa e assunto
que ele trata, qual a prxima senha de atendimento, exibindo-a para os clientes.
Caixa

Pr-condlco:

Receber a identificao do caixa que est operando o sistema.


Cenrio Princjpal:
1. O sistema verifica todos os assuntos que so atendidos peio caixa.
2. O sistema verifica o ltimo assunto atendido, com sua respectiva senha.
2.1. Se o caixa atender mais de um assunto, o sistema verifica a ltima senha atendida do
prximo assunto do seu conjunto de atendimentos.
3. O sistema verifica se a ltima senha atendida menor que a ltima senha gerada.
3.1.Se for, o sistema incrementa a ltima senha atendida em uma unidade.
4. O sistema atualiza o cadastro de senhas.

Exercitando a Identificao de Casos de Uso 91


5.

O sistema exibe no painel de senhas:


5.1. o nmero da senha
5.2. o cdigo do assunto
5.3. a posio do Caixa (esquerda ou direita)

REGISTRAR TRMINO DE ATENDIMENTO


Este caso de uso tem por objetivo permitir que o usurio registre o trmino
Descrio:
do seu atendimento, preparando para a obteno da prxima senha.
Ator:
Caixa
Pr-condico:

Receber a identificao do caixa que est operando o sistema.


Cenrio Principal:
1. O sistema verifica o ltimo atendimento feito para a referida caixa, habilitando a opo de
encerrar atendimento.
2. O usurio seleciona a opo de encerrar atendimento.
3. O sistema atualiza o histrico de atendimentos, registrando a data de trmino do atendimento.
GERAR SENHA
Descrio:
Ator:

Este caso de uso tem por objetivo permitir a gerao de uma senha baseada numa lista de assuntos.

Balco de Informaes

Cenrio Principal:
1. O sistema prepara uma lista de todos os assuntos cadastrados.
2. O usurio Informa um assunto, selecionado de uma lista preexistente.
3. O sistema obtm a ltima senha gerada para aquele assunto e Incrementa esse valor em uma
unidade.
4. O sistema atualza o cadastro de senhas geradas, colocando o novo valor associado ao assunto.
5. O sistema emite um ticket impresso informando:
5.1. data do atendimento
5.2. assunto
5.3. senha gerada
Cenrio Alternativo:
- Primeiro acesso do dia

O sistema verifica se o primeiro acesso do dia para gerao de senhas, Se for, todas as
senhas associadas a todos os assuntos so zeradas.

92 Exercitando Modelagem em UML

40. CENRIO: CONTROLE DE BOLO


Jairo trabalha no Departamento de Informtica de uma grande empresa.
Ele e seus amigos esto sempre fazendo bolo da MegaSena, Quina e
outros tipos de jogos. Jairo sempre controla numa planilha Excel os nmeros apostados, alm das pessoas que entraram no bolo, seus e-mails
(para receberem os nmeros apostados) e se pagaram suas cotas. Entretanto, isso tem lhe tomado um tempo considervel. Sendo assim, ele pensou em desenvolver uma aplicao que atenda s seguintes funcionalidades:
- permita cadastrar os participantes de cada bolo, com seus ramais e emails;
- para cada bolo feito, cadastrar o valor da cota, nmero de cotas, os
cartes apostados (com sua relao de nmeros), o tipo de jogo (MegaSena, Quina etc.), o nmero do concurso e a data em que ser realizado o
sorteio;
- controlar quem pagou cada cota;
- gerar automaticamente uma pgina Web com os dados do sorteio, participantes do bolo com suas cotas e os nmeros apostados. O arquivo
HTML dessa pgina ser enviada por e-mail;
- cada participante poder adquirir mais de uma cota;
- gerar a lista de participantes que ainda no pagaram;
- a aplicao deve verificar se o total das cotas igual ao total apostado;
- uma determinada aposta pode ser aproveitada em outros boles.
EXERCCIO:
A partir do cenrio descrito, desenhe o diagrama de casos de uso desse sistema, Escreva, tambm, os cenrios. Considere que todas as operaes so feijas pelo Jaro, que pode ser identificado como Gestor do Bolo.

Exercitando a Identificao de Casos de Uso 93

RESOLUO (DIAGRAMA DE CASOS DE Uso E DESCRIO DOS CENRIOS):

Controlar
participantes e pagta
ds contes

Gestor da BolSo

MANTER PARTICIPANTES DO BouAo


Este caso de uso tem por objetivo permitir a manuteno (incluso, alteraDescrio:
o e excluso) dos participantes que possam vir a participar de um bolo,
Ator:
Gestor do Bolo

Cenrio Principal;
1. O sistema prepara uma lista de participantes cadastrados.
2. O sistema oferece ao usurio:
2. l .selecionar um participante, para alterar seu cadastro;
2,2, localizar um participante por meio de pesquisa;
2.3.selecionar a opo de "inserir participante".
3. Pesquisa de Participante
3.1. Para localizar um participante, o usurio deve inserir um trecho do nome como critrio de
pesquisa. O sistema far a busca parcial.
3.2.0 sistema exibe a lista de participantes que satisfaa o critrio, exibindo para cada um:
3.2.1. nome do participante
3.2.2. ramal
4. Manuteno do Cadastro
4.1.Em caso de "Incluso", o sistema habilita a edio dos dados.
4,2.Em caso de "Alterao", o sistema exibe os datos cadastrados e os habilita para edio,

94 Exercitando Modelagem em UML


4.3.Em caso de "Consulta" ou "Excluso", o sistema exibe os dados cadastrados desabilitados
para edio.
4.3.1. No caso de excluso, o sistema solicita a confirmao.
5. O usurio informa, no caso de "Alterao" ou "Incluso":
5.1. nome do participante
5.2. ramal
5.3. e-mail
6. O usurio confirma a operao realizada.
7. O sistema atuaiiza os dados cadastrais do participante.
7.1,No caso de incluso, o sistema gera automaticamente um cdigo de identificao.
Cenrio Alternativo:
- Excluso no permitida
No possvel excluir um participante que esteja associado a um bolo
REGISTRAR BOLAO
Descrio:
Ator:

Este caso de uso tem por objetivo permitir a manuteno (incluso, alterao e excluso) de um bolo. habilitando para outras tarefas como gerenciar os participantes, as cotas pagas e as apostas.
Gestor do Bolo

Cenrio Principal:
1. O sistema prepara uma lista de todos os boles cadastrados.
2. O sistema oferece ao usurio:
2.1.localizar um bolo por meio de pesquisa.
2.2.se!ecionar a opo de Inserir bolo".
2.3.selecionar um boio, para realizar as seguintes operaes, caso o sorteio a que se refere o
bolo ainda no tenha sido realizado:
2.3.1. alterar o cadastro do bolo, com as opes de "Alterao', "Consulta" e "Excluso".
2.3.2. controlar participantes e pagamento das cotas
2.3.3. registrar apostas
2.4.selecionar um bolo, para realizar as seguintes operaes, em qualquer situao do bolo:
2.4.1. imprimir lista de no-pagantes
2.4.2. gerar pgina web do bolo
3. Pesquisa de Bolo
3.1. Para localizar um bolo, o usurio deve inserir a data do sorteio e/ou o tipo de jogo como
critrio de pesquisa
3.2.0 sistema exibe a lista de boles que satisfaam o critrio, exibindo para cada um:
3.2.1. tipo do jogo ictrico
3.2.2. nmero do concurso
3.2.3. data do sorteio
3.2.4. valor da cota
4. Manuteno do Cadastro
4.1 .Em caso de "Incluso", o sistema habilita a edio dos dados.
4.2.Em caso de "Alterao", o sistema exibe os dados cadastrados e os habilita para edio.

Exercitando a Identificao de Casos de Uso 95


4.3.Em caso de "Consulta" ou "Excluso", o sistema exibe os dados cadastrados desabtlitados
para edio.
4.3.1. No caso de excluso, o sistema solicita a confirmao.
5. No caso de "Alterao" ou Incluso";
5.1, o sistema prepara uma lista com todos os tipos de jogos Ictricos
5.2, o usurio informa:
5.2.1. tipo de jogo lotrico, selecionado de uma lista preexistente.
5.2.2. nmero do concurso
5.2.3. data do sorteio
5.2.4. vatordacota
5.2.5. nmero de cotas
6. Opo de Controlar Participantes e pagamento das cotas
6.1.Extends [Caso de Uso Controlar participantes e pagto de cotas|
7. Opo de Registrar Apostas
7.1.Extends [Caso de Uso Registrar Apostas]
8. Opo de Imprimir lista de no-pagantes
8.1.Extends [Caso de Uso Imprimir lista de no-pagantes]
9. Opo de Gerar pgina Web
9.1 .Extends [Caso de Uso Gerar pgina web do bo!o]
10. O usurio poder solicitar a verificao de sincronismo entre as cotas e as apostas.
10.1. O sistema verificar se a soma das apostas correspondem soma das cotas (valor da
cota x nmero de cotas).
11. 0 usurio confirma as alteraes.
1 2. 0 sistema atualiza os dados cadastrais do bolo.
GERAR PAGINA WEB DO BOLAO
Este caso de uso tem por objetivo gerar uma pgina Web (em HTML)
Descrio:
contendo todas as informaes sobre o bolo, para ser distribuda para os
participantes.
Ator:
Gestor do Bolo
Pr-condo:
Receber a identificao do bolo.
Cenrio Principal:
1. O sistema busca a lista de participantes do bolo, com as seguintes informaes:
1.1.nome do participante
1.2.ramal do participante
1.3.nmero de cotas
1.4.situao de pagamento das cotas
2. O sistema busca os nmeros apostados para o bolo
3. O sistema busca os dados referentes ao bolo.
4. O sistema gera uma pgina web com as seguintes informaes:
4.1. tjpo de jogo lotrico
4.2. nmero do concurso

96 * Exercitando Modelagem em UML

4.3.
4.4.
4.5.
4.6.

data do concurso
valor da cota
lista de participantes, com nome, ramal, nmero de cotas e situao de pagamento das cotas
lista de apostas, mostrando os nmeros para cada aposta e o valor apostado.

IMPRIMIR LISTA DE NAO-PAGANTES


Descrio:
Ator:

Este caso d0 uso tem por objetivo mprimir um reatrio com os participantes de um boo que no efetuaram o pagamento de suas cotas.
Gestor do Bolo

Prjiondljg:

Receber a identificao do bolo.


Cenrio Principal:
1, O sistema busca a lista dos participantes do bolo que no estejam com as cotas pagas.
2. O sistema emite um relatrio com os seguintes dados:
2. t. nome do participante
2.2.ramal do participante
2.3.e-mail do participante
2.4. quantidade de cotas em aberto para pagamento
REGISTRAR APOSTAS
Este caso de uso tem por objetivo permitir o controle das apostas realizaDescrio:
das para um determinado bolo.
Ator:
Gestor do Bolo
PrjiondiQ:
Receber a identificao do bolo.
Cenrio Principal;
1. O sistema busca e exibe todas as apostas cadastradas para o referido bolo.
2. O sistema oferece ao usurio:
2.1. seiecionar a opo de "inserir aposta".
2.2. seiecionar uma aposta, para realizar as seguintes operaes:
2.2.1. alterar a aposta, com as opes de "Alterao", "Consulta" e "Excluso".
3. No caso de "Alterao" ou Incluso":
3.1. o usurio informa:
3.1.1. valor da aposta
3.1.2. nmeros apostados
Cenrio Alternativo:
- Permisso de incluso de nova aposta
O sistema s habilita a opo de "inserir aposta' se a soma dos valores das apostas cadastradas lor menor que a soma das cotas (nmero de cotas x valor da cota).

Exercitando a Identificao de Casos de Uso 97


- Limite de nmeros apostados
O intervalo permitido para a quantidade de nmeros apostados de: valor de quantidade
mnima de apostas do jogo Ictrico como limite inferior, e valor de quantidade mxima de apostas do
jogo lotrico como limite superior.
CONTROLAR PARTICIPANTES E PAGAMENTO DE COTA
Este caso de uso tem por objetivo permitir a manuteno (incluso, alieraDescrio:
co e excluso) dos participantes efetivos de um bolo e do pagamento de
suas cotas.
Ator:
Geslor do Balo
Pr-condico:

Receber a identificao do bolo.


Cenrio Principal:
1. O sistema busca e exibe a lista de participantes j cadastrados para o bolo, exibindo para
cada um:
1.1. o nome do participante
1.2. o ramal do participante
1.3. o nmero de cotas
1.4. se as cotas foram pagas
2, O usurio pode alterar a quantidade de cotas ou o status do pagamento de um dos participantes ou cadastrar um novo participante.
2.1.0 sistema prepara uma lista de todos os participantes credenciados para o bolo que est
cadastrado.
2.2.0 usurio informa um novo participante, selecionado de uma lista preexistente.
2.3.0 usurio informa a quantidade de cotas e se as cotas j foram pagas.

41. CENRIO: ESTACIONAMENTO


Bruno e seu pai compraram um terreno e inauguraro um estacionamento.
Para ajudar, a irm de Bruno est desenvolvendo uma aplicao de
controle de estacionamento.
Quando o veculo entra no estacionamento, o atendene observa sua placa
e a mesma cadastrada, juntamente com o modelo do veculo e sua cor.
A hora de entrada gerada automaticamente, correspondendo ao momento do cadastramento da placa. Aps estacionar o veculo, o cliente pega o
ticket onde est impresso: o nmero da placa, o modelo do veculo, a cor,
a data e a hora da entrada.

98 Exercitando Modelagem em UML

Ao retomar ao estacionamento, o cliente entrega o ticket. O tempo de permanncia calculado. Considerando esse tempo de permanncia, aplicada a tabela de preos, sabendo-se que a tabela de sbado no a
mesma dos dias teis e, s vezes, dependendo da poca do ano, os donos
lanam promoes durante os dias teis. Veja exemplo das tabelas de
preo:
Segunda sexta
1a hora = R$2,00
a partir da 2a hora (inteiro ou
frao) = + R$ 1,00

Sbado
Preo nico = RS 3,00

Os donos precisam de relatrios de faturamento dirio e semanal.


RESOLUO (DIAGRAMA DE CASOS DE uso E DESCRIO DOS CENRIOS):

Dilatria
Atenderrte

REGISTRAR ENTRADA DO VECULO


Esle caso de uso tem por objetivo registrar os dados do veculo que esteja
Descrio:
entrando no estacionamento.
Ator:
Atendente
Cenrio Principal:
1. O sistema prepara uma lista de modelos de carro.
2. O usurio informa:
2.1 .a placa do carro
2.2.o modelo, selecionado de uma lista preexistente.
2.3.a cor
3. O sistema verifica e registra automaticamente a data e a hora de incio do estacionamento.

Exercitando a Identificao de Casos de Uso 99


4.
5.

O usurio confirma as alteraes.


O sistema atualiza os dados cadastrais do veiculo.
5.1.0 sistema imprime o licke! de estacionamento, como comprovante do motorista. Extends
[Caso de Uso Emitir Ticket de Estacionamento]

EMITIR TICKET DE ESTACIONAMENTO


Esle caso de uso tem por objetivo emitir o ticket de estacionamento que o
Descrio:
cliente ir levar aps estacionar o veculo.
Ator;
Atendente
Cenrio Principal:
1. O sistema imprime:
1.1. data de ocupao da vaga
.,2. hora de incio de ocupao da vaga
1.3. placa do veculo
1.4. modelo do veculo
1.5. cor do veculo
REGISTRAR SADA DO VECULO
Este caso de uso tem por objetivo registrar a sada do veculo, calculando o
Descrio:
tempo de permanncia e o valor a pagar pelo estacionamento.
Ator:
Atendente
Cenrio Principal:
1. O sistema prepara uma lista dos veculos que ainda no tiveram sua sada registrada.
1.1. Para cada veculo, exibido:
1.1.1. a placa do veculo
1.1.2. a hora de incio
2. O usurio informa a placa da qual ser dada a sada, seecionando de uma lista preexistente.
2.1.0 sistema calcula o tempo de permanncia.
2.2.0 sistema calcula o preo do estacionamento, baseado no tempo de permanncia.
3. O sistema atualiza os dados cadastrais do veculo.
MANTER TABELA DE PREOS
Este caso de uso tem por objetivo permitir a manuteno da tabela de
Descrio:
preos utilizada para calcular a permanncia no estacionamento.
Ator:
Atendente
Cenrio Principaj:
1. O sistema busca e exibe os valores para as seguintes informaes:
1.1. dia da semana
1.2. valor da primeira hora

100 Exercitando Modelagem em UML


1.3. valor da hora subsequente
1.4. se no dia preo nico

GERAR RELATRIO DE FATURAMENTO DIRIO


Descrio:
Ator;

Este caso de uso tem por objetivo emitir um relatrio com o faturamento
dirio do estacionamento.
Diretoria

Cenrio Principal:

1.
2.

3.

O sistema prepara uma lista de todas as vagas ocupadas no dia.


O sistema exibe:
2.1.placa do carro
2.2.tempo de permanncia
2.3.valor pago
No final, o sistema exibe o total de valor recebido no dia.

GERAR RELATRIO DE FATURAMENTO MENSAL


Este caso de uso tem por objetivo emitir um relatrio com o fauramento
Descrio:
mensal do estacionamento.
Ator:
Diretoria
Cenrio Principal:
1. O sistema busca todas as vagas ocupadas durante o ms corrente.
2. O sistema exibe, para cada dia, que aparecer em ordem crescente:
2.1 .nmero de veculos atendidos
2.2.ualor (aturado no dia

42. CENRIO: JOGO DA VELHA


Amlia gosta de desenvolver pequenos jogos para os seus filhos. O ltimo
que ela desenvolveu foi o jogo da velha.
Para isso, ela relacionou as regras do jogo a fim
de facilitar sua implementao. Haver sempre
um jogador virtual que ser o prprio sistema, na
figura do computador. O jogador real poder
escolher o nome do seu adversrio. Alm disso,
o jogador real escolhe o smbolo que deseja usar
(crculo ou cruz).

Xo
o 0 \//\

\/
/

\/
/\

Exercitando a Identificao de Casos de Uso 101


As regras so:
- Traam-se duas linhas verticais e duas linhas horizontais, de modo a
criar nove quadrados de tamanhos iguais.
- Um jogador joga desenhando um crculo e o seu adversrio uma cruz.
- O objetivo cada jogador desenhar seu smbolo num quadrado vazio,
tentando marcar uma linha de trs smbolos iguais na horizontal, vertical
ou diagonal; ou evitar que o adversrio consiga essa linha de smbolos.

RESOLUO (DIAGRAMA DE CASOS DE Uso E DESCRIO DOS CENRIOS):

.nextends

Jogador

INICIAR TORNEIO
Descrio:
Este caso de uso tem por objetivo dar inicio a um torneio de jogos da velha.
Ator:
Jogador
Cenrio Principal;
1. O sistema prepara a lista de todos os jogadores cadastrados.
2. O usurio informa:
2.1. o nome do jogador fsico, selecionado de uma lista preexistente.
2.2. o smbolo usado pelo jogador lsico (crculo ou cruz).
2.3. o nome do jogador virtual, selecionado de uma lista preexistente.
2.4. o sistema associa automaticamente o smbolo usado pelo jogador virtual (crculo ou cruz).
3. O sistema define o jogador 1 como sendo o jogador lsico e zera seu score.
4. O sistema define o jogador 2 como sendo o jogador virtual e zera seu score.
5. Para cada partida, altemadamente, jogador fsico e virtual fazem a sua jogada.
S.I.Extends [Caso de Uso Jogar]

102 Exercitando Modelagem em UML


Cenrio Alternativo:
- Jogador no cadastrado
Se o nome do jogador no tiver cadastrado, o usurio poder fazer o cadastramento na
hora. Extends [Caso de Uso Manter Jogador]

MANTER JOGADOR
Descrio:
Ator:

Este caso de uso tem por objetivo permitir a manuteno do jogador que
participa de um torneio.
Jogador

Cenrio Principal;
1. O sistema prepara uma lista de jogadores cadastrados.
2. O sistema oferece ao usurio:
2.1 selecionar um jogador, para alterar seu cadastro;
2.2 selecionar a opo de "inserir jogador*.
3. Manuteno do Cadastro
3.1 Em caso de "Incluso", o sistema habilita a edio dos dados.
3.2 Em caso de "Alterao", o sistema exibe os dados cadastrados e os habilita para edio.
3.3 Em caso de "Excluso", o sistema exibe os dados cadastrados desabilitados para edio.
3.3.1 No caso de excluso, o sistema solicita a confirmao.
4. O usurio informa, no caso de "Alterao" ou "Incluso":
4.1 nome do jogador
5. O usurio confirma a operao realizada.
6. O sistema atualiza os dados cadastrais do jogador.
6.1 No caso de incluso, o sistema gera automaticamente um cdigo de identificao.

JOGAR
Descrio:
Ator:

Este caso de uso tem por objetivo receber e controlar a jogada de um


jogador virtual ou fsico.
Jogador

Pr-condio:
Receber a identificao do ltimo vencedor.
Cenrio Principal:
1. O sistema define de quem a vez da jogada.
1.1 .Se o ltimo vencedor tiver sido o jogador virtual ou for a primeira partida, a vez do jogador fsico. Caso contrrio, a vez do jogador virtual.
2. Enquanto existir quadrado livre e nenhum dos jogadores ganhou o jogo:
2.1 .Se a vez for do jogador fsico:
2.1.1. O usurio informa a posio em que colocar o seu smbolo.
2.2.Se a vez for do jogador virtual, somente uma dessas operaes ser feita, na ordem:

Exercitando a Identificao de Casos de Uso 103


2.2.1. Se o centro estiver desocupado, o sistema coloca o seu smbolo no centro.
2.2.2. Se o jogador fsico possuir duas figuras numa mesma linha horizontal, vertical ou
diagonal, onde exista um espao vago, o sistema colocar o seu sfmbolo no espao
desocupado.
2.2.3. Se houver canto livre, o sistema colocar o seu smbolo no primeiro canto livre desocupado.
2.2.4. Em caso contrrio, o sistema colocar o seu smbolo na primeira posio vaga que
encontrar.
2.3. O sistema verifica se houve a marcao de trs figuras iguais, horizontalmente, verticalmente ou diagonalmente. Se houver, o jogador que possua a referida figura determinado
como vencedor.
Ps-condio:
Notificar o vencedor da partida.

43. CENRIO: JOGO DA MEMRIA


Amlia desenvolveu agora um jogo da memria, que atende aos seguintes
requisitos:
- controlar a posio de cada quadrado, considerando 12 quadrados no
jogo;
- escolha a partir de um banco de figuras, de seis figuras que pertenam a
um mesmo grupo. Ex: suponha que num banco de figuras existam figuras
de objetos, animais, objetos geomtricos etc. Ao montar o jogo da memria, so obtidas seis figuras de objetos ou seis figuras de animais;
- sorteio aleatrio. A cada dois nmeros associar a um par. Guardar essas
coordenadas, associadas figura.

O jogo consiste no jogador tentar adivinhar a posio de todos os pares. A


cada jogada, ele seleciona uma posio. A aplicao revela a figura que
est nessa posio e fica esperando a prxima jogada. Ao selecionar a
prxima posio, a aplicao exibe a figura. Se for a figura-par, conta-se
uma pontuao (conforme a regra de pontuao) e as figuras ficam mostra. Caso contrrio, as figuras so escondidas e espera-se uma nova rodada.
Quando o jogador conseguir desvendar todos os pares, o programa guarda
a pontuao como sendo o ltimo escore e verifica se esse foi o maior escore do jogo, substituindo este ltimo se for o caso. Questiona-se, nesse
caso, o nome do jogador para registrar.

104 Exercitando Modelagem em UML

A regra da pontuao a seguinte: cada acerto vale 100 pontos. A cada


rodada errada, a pontuao a ser creditada diminui em 5 pontos, limitado a
10 pontos de crdito. Exemplo: se o jogador acertar um par na primeira
jogada, ele recebe 100 pontos. Na segunda jogada, ele erra o par. Na terceira jogada, ele acerta o par; ento receber 95 pontos.
RESOLUO {DIAGRAMA DE CASOS DE Uso E DESCRIO DOS CENRIOS):

Jogador
Administrador

MONTAR GRUPO DE FIGURA


Este caso de uso tem por objetivo permitir a manuteno dos grupos de
Descrio:
figura do joqo da memria.
Ator:
Administrador
Cenrio Principaj:
1. O sistema prepara uma lista de grupos de figuras cadastrados.
2. O sistema oferece ao usurio:
2.1 .selecionar um grupo, para alterar seu cadastro;
2.2.selecbnar a opo de "inserir grupo".
3. Manuteno do Cadastro
3.1. Em caso de Incluso", o sistema habilila a edio dos dados.
3.2. Em caso de "Alterao", o sistema exibe os dados cadastrados e os habilita para edio.
3.3.Em caso de "Consulta" ou "Excluso", o sistema exibe os dados cadastrados desabilitados
para edio.
3.3.1. No caso de excluso, o sistema solicita a confirmao.
4. O usurio informa, no caso de "Alterao" ou "Incluso":
4.1. nome do grupo
5. O usurio confirma a operao realizada.
6. O sistema atualiza os dados cadastrais do grupo.
6.1. No caso de incluso, o sistema gera automaticamente um cdigo de identificao.

Exercitando a Identificao de Casos de Uso 105


Cenrio Alternativo:
- Excluso no permitida

No possvel excluir um grupo que esteja associado a uma figura.

MANTER BANCO DE FIGURAS


Este caso de uso tem por objetivo permitir a manuteno das figuras que
Descrio:
participaro do jogo da velha.
Ator:
Jogador
Cenrio Principal:
1. O sistema prepara uma lista de figuras cadastradas.
2. O sistema oferece ao usurio:
2.1 .setectonar uma figura, para alterar seu cadastro;
2.2.selecionar a opo de "inserir figura".
1. Manuteno do Cadastro
1.1.Em caso de Incluso", o sistema habilita a edio dos dados.
1.2. Em caso de "Alterao", o sistema exibe os dados cadastrados e os habilita para edio.
1.3. Em caso de "Consulta" ou "Excluso", o sistema exibe os dados cadastrados desabilitados
para edio.
1.3.1. No caso de excluso, o sistema solicita a confirmao.
2. No caso de "Alterao* ou 'Incluso':
2.1. O sistema prepara uma lista dos grupos de figura.
2.2. O usurio informa:
2.2.1. grupo ao qual pertence a figura, selecionado de uma lista preexistente
2.2.2. nome da figura
2.2.3. nome fsico da figura
2.2.3.1. o sistema carrega e exibe a imagem da figura
3. O usurio confirma a operao realizada.
4. O sistema atualiza os dados cadastrais da figura.
4.1.No caso de incluso, o sistema gera automaticamente um cdigo de identificao.

MANTER CONFIGURAO DO JOGO


Este caso de uso tem por objetivo permitir a manuteno das configuraDescrio:
es do jogo da memria.
Ator:
Jogador
Cenrio Principal:
1. O sistema busca e exibe os valores para alterao do usurio:
1.1. quantidade de pontos para cada acerto.
1.2. quantidade de pontos perdidos para cada erro.
1.3. quantidade de pontos do jogador atual.
2. O usurio pode solicitar a limpeza dos dados referentes ao score mximo do jogo.

106 Exercitando Modelagem em UML

INICIAR PARTIDA
Descrio:
Ator:

Este caso de uso tem por orjjetivo dar incio a uma partida.
Jogador

Cenrio Principal:
1. O sistema escolhe aleatoriamente um grupo de figuras.
2. Para o grupo de figuras escolhido, o sistema obtm a lista de figuras pertencentes quele
grupo.
3. O usurio escolhe seis figuras da lista preexistente.
4. O sistema duplica as figuras e sorteia a coordenada das figuras dentro do jogo.
4.1.0 sistema guarda a posio de todas as figuras no jogo.
4.2.0 sistema aguarda as jogadas. Extends [Caso de Uso Efetuar Jogada]
4.3.0 sistema obtm o score mximo j alcanado.
4.4.0 sistema guarda e exibe o score do jogador.
4.4.1. O sistema verifica se o score do jogador maior que o score mximo j alcanado.
Se for, o usurio informa o seu nome e o score do jogador substitui o score mximo
j alcanado.

EFETUAR JOGADA
Descrio:
Ator:

Este caso de uso tem por objetivo receber e controlar uma jogada para
tentar descobrir um par no jogo da memria.
Jogador

Cenrio Principal:
1. O sistema verifica a pontuao para cada acerto e o decrscimo para cada erro.
2. Enquanto houver par coberto:
2.1. O usurio escolhe um loca! que esteja coberto.
2.2.0 sistema exibe a figura do local escolhido.
2.3. O usurio escolhe um outro local que esteja coberto.
2.4. O sistema exibe a figura do local escolhido.
2.5. Se as figuras forem iguais:
2.5.1. O sistema acrescenta no score do jogador a pontuao de acerto.
2.6.Se as figuras no forem iguais:
2.6.1. O sistema cobre as figuras novamente.
2.6.2. O sistema decrementa da pontuao para cada acerto o valor do decrscimo por erro, limitado ao valor de 10 pontos.
Ps-condio:
Retomar o score do jogador, aps trmino da partida.

Captulo

Exercitando a Identificao de
Classes a partir de Casos de Uso

Neste captulo reaproveitaremos alguns cenrios do Captulo 3. O objetivo


, a partir da anlise de um conjunto de casos de uso, desenhar um modelo de classes.
Exercitamos nos primeiros captulos o desenho de um modelo de classes,
a partir de cenrios de baixa complexidade. Entretanto, ao aumentar a
complexidade de um cenrio, faz-se necessria a anlise do caso de uso,
a fim de obtermos informaes mais precisas para modelar as classes da
aplicao.

44. CENRIO: ENCOMENDA DE PLACAS


EXERCCIO (A:
A partir do cenrio descrito no Exerccio 34 do Captulo 3 (Encomenda
de Placas) e dos casos de uso descritos, identifique as classes, com seus
atributos e mtodos. Represente os atributos que sejam do tipo objeto.
EXERCCIO (B\:
Utilizando apenas o nome das classes, desenhe o relacionamento entre as
classes.

107

108 Exercitando Modelagem em UML

RESOLUO 44.A (ENCOMENDA DE PLACAS):


enumeratedD
EnumCorFrasfl

Encomenda
Cfente
numero : kilagef
/diante : Cliente
slturaPlaca : r.larguraPlaca - real
frase : slrlng
eorFrase : EnumCoiPlaca
-i ~ : EnumCocFrase
dalBErieomenda : dato
dalaEntega : date

cdigo : Inleger
ntxne ; strng
telefone : slring

valorSinal. real
' : : I.M; ;' '^L--.1 :r-.'.r:"L
nalytFifQtAaiErizLJsat = 147.30
valorFi*r>l pira jp.a - 0 .1?

aberto
pronto
cancelado

azul
vermelho
a mareio
pato
vsrde

enurnefatei.
EnUmSfglusEncoTirKla

Bnuirarate*
EnumCurPlaca
branca
cinza

RESOLUO 44.B (ENCOMENDA DE PLACAS):


Encomenda

1..*

Cliente

45. CENRIO: RDIO TXI MAR a SOL

EXERCCIO f Al:

A partir do cenrio descrito no Exerccio 35 do Captulo 3 (Rdio Txi


Mar & Sol) e dos casos de uso descritos, identifique as classes, com seus
atributos e mtodos. Represente os atributos que sejam do tipo objeo,
EXERCCIO fB):
Utilizando apenas o nome das classes, desenhe o relacionamento entre as
classes.

Exercitando a Identificao de Classes a partir de Casos de Uso 109

RESOLUO 45.A (RDIO TXI):


Diente
codtgo : inTeger
nome: slring.
/endereo: Enderea
/telefones ; lista de Telefone

Endareca
/logradouro : Logradouro
numen" ^ Etring
complemento ; slring
cep : sWng

CartelraMoloriata

numefP - string
categoria . string

Ccurida
/cliente : Olente
/enderecoSaida : Endereo
balrraDeslina ; etring
data i date
hora : Ume
/lElCanlatD . Telefone
satus : EnumStgtusConTda
/carroProg ramado . Veiculo

Telefone
prefixo ; sbing
numero : string
tipo : numTlpoTelefone

Logradouro
numeLogadouro : Bbing
bairro : strtng
cidade : slring
eSlado ' slring
cepUnbco : atring

Veculo
numeroVR : slring
placa : string
modela : string
!,-,|-n --i'1,!- : slrtng

En umTtpoTelefone
residencial
comercial
celular
recado

Cooperado

cof : slring
nome : slring
/enfloro co . Endereo
.- .i -.'..-. : n-,. - de Telefone
dataEnlrada j .--:
dataSaida : dale
/caitMolorisTa : CartetraMoEcrista
/vebcufo : Veicula

lenumeratedo
Em ir. -: i ^ - 1 , , C 1 1 . L,
aguardando VR
aguardando aviso
aviso efetuatia
tripulado^
cancelado passageiro
cancelada falEa cano

110 Exercitando Modelagem em UML


RESOLUO 45.B

(RDIO TAXI):
0..1

46. CENRIO:
TREINADOR DEVLEI
t
EXERCCIO:
A partir do cenrio descrito no Exerccio 36 do Captulo 3 (Treinador de
Vlel) e dos casos de uso descritos, desenhe um modelo de classes completo, incluindo os atributos, mtodos e relacionamentos.

Exercitando a Identificao de Classes a partir de Casos de Uso * 111

RESOLUO 46 (TREINADOR DE VLEI):


Jogo
: integar

3..5

data: date
hora :tima
local: Btring
adversrio: Glring
juiz: slring
auxiliar: sbing

' .-'';-.{--Til : ';

-.j'c-M^ ? = - - ' , ! , . - - : coJao

da J

O
1-*

Jogador
D,t

nome: slring
carnia: tnegar

EipoPonLo: EnumTrpoPonLo

EnumTipoQlociueio

EnumUpoPonto
Se Barr.tipaPnlo = bloqueto

individual
duplo

triplo

bloqueD

47. CENRIO: CONTROLE DE BOLO


EXERCCIO:
A partir do cenrio descrito no Exerccio 40 do Captulo 3 (Controle de
Bolo) e dos casos de uso descritos, desenhe um modelo de classes
completo, incluindo os atributos, mtodos e relacionamentos.

112 * Exercitando Modelagetn em UML

RESOLUO 47 {CONTROLE DE BOLO):


Participante
Nome : slring
ramal: string
eMail: slnng
QuolaBolao
qld: integer
pago: bodean

0..-

Bolao
concurso: inleger
d.iia Sc rie ,-. . date
valorCota: real
numColas: .T.eger
gerarPagmaWebBalaa
gera r Li staN ao Pag ante 5
sincroncarCotasApostas
1

TipoJogn
nome: string
qtdMinimaAposta : Inleger
qtdMaximaAposta: Inleger

Aposta
valorAposta : real
numeroApostado . integer
[Bo Ia o.Ti p Jogo. qtd M inimaAposta,
Bolan.TipoJogo.qldMaiiimaAposlaj

Exercitando a Identificao de Classes a partir de Casos de Uso 113

48. CENRIO: JOGO DA VELHA


EXERCCIO:
A partir do cenrio descrito no Exerccio 42 do Captulo 3 (Jogo da Velha) e dos casos de uso descritos, desenhe um modelo de classes completo, incluindo os atributos, mtodos e relacionamentos.
RESOLUO 48 (JOGO DA VELHA):
Torneio

Partida
D..*

scoreFinalJogadorl : In legar
score Final Jogador2 : integer
0..'

D..*

Smbolo O

Smbolo X

1
Jogador

nome: string
ehVirtiial: boolaan

posicaoJogadaX: inleger [0..5J


posio Joga d a O : integer [0.. 5]

Captulo

Alguns Exerccios sobre Diagrama


de Mquina de Estados

Neste capitulo aproveitaremos que alguns cenrios tratados nos Captulos 2


e 3 possuem caractersticas que pedem um controle de estados. Sendo assim, a partir desses cenrios criaremos diagramas de mquina de estados.

49. CENRIO: CONTROLE DE TAREFAS


EXERCCIO:
f

A partir do cenrio descrito no Exerccio 17 do Captulo 2 (Controle de


Tarefas) e dos casos de uso descritos, desenhe um diagrama de mquina
de estados para controle da mudana de estados de uma tarefa.
RESOLUO 49 (CONTROLE DE TAREFAS):
Aguardando E<ecucio da liam da Tarefa
eniry/ModificarSlaiusTarea [Aliva)

/ Item 6e execuo lanado

{concluso = 100%]

Verificando concluso da tareia

[concluso < 100%] / MudarStatusTarefafCDiitiuida)

114

Alguns Exerccios sobre Diagrama de Mquina de Estados 115

50. CENRIO: ENCOMENDA DE PLACAS


EXERCCIO:
A partir do cenrio descrito no Exerccio 34 do Captulo 3 (Encomenda
de Placas) e dos casos de uso descritos, desenhe um diagrama de mquina de estados para controle da mudana de estados de uma tarefa.
RESOLUO 50 (ENCOMENDA DE PLACAS):
/ cadastro da e n coros n da

Aguardando Concluso da Encomenda


enlry/Mod i ficarSlatustAberto}

/ Cliente pede cancelamento

Cancelando encomenda

", Encomenda pronta

/ Cliente abandonou encomenda

e mry ' M od if i ca i S lau, s (cance lado)

Aguardando pagamento e enlrega


enlfy/M odificarS latus( p ronto)

/ Cliente paga encomenda, ModificaiStalus(lechado)

51. CENRIO: RDIO TXI MAR a SOL


EXERCCIO:
A partir do cenrio descrito no Exerccio 35 do Capitulo 3 (Rdio Txi
Mar & Sol) e dos casos de uso descritos, desenhe um diagrama de mquina de estados para controle da mudana de estados de uma tarefa.

116 Exercitando Modelagem em UML

RESOLUO 51 (RDIO TAXI MAR & SOL):

Apndice

Questes de Concursos Pblicos


sobre Orientao a Objetos e UML

1-

(BNDES 2002) Analise as seguintes afirmaes relativas Programao


Orientada a Objetos:
I. Em um programa orientado a objetos, as instncias de uma classe armazenam os mesmos tipos de informaes e apresentam o mesmo comportamento.
II. Em uma aplicao orientada a objetos. podem existir mltiplas instncias
de uma mesma classe.
III. Em um programa orientado a objetos, as instncias definem os servios
que podem ser solicitados aos mtodos.
IV. Em um programa orientado a objetos, o mtodo construtor no pode ser
executado quando a classe qual pertence executada.

Indique a opo que contenha todas as afirmaes verdadeiras.


a) l e II
d) l e III

2-

c) Ml e IV

(TCM) No contexto da Orientao a Objetos, o conjunto de objetos que


tm a mesma estrutura e o mesmo comportamento denominado:

a) classe
c) polimorfismo
3-

b) II e III
e) II e IV

b) herana
d) encapsulamento

(Eletrobrs) Considere as seguintes assertivas sobre o diagrama de


classes na notao UML:
V. uma classe representa um conjunto de objetos cuja cardinalidade sempre maior do que um.

117

118 Exercitando Modelagem em UML

VI. o polimorfismo das operaes uma consequncia da relao de herana


entre classes.
VII. se um objeto A est associado a um objeto B e B est associado a mais
de um objeto C ento, obrigatoriamente, um objeto C estar associado a
mais de um objeto A.
As assertivas correias so:
a) somente l
d) somente l e II
4-

c) somente III

(Eletrobrs) Em relao tecnologia de orientao a objetos, a afirmativa de que o estado de um objeto no deve ser acessado diretamente,
mas sim por intermdio de mtodos de acesso (ou propriedades) est
diretamente relacionada ao conceito de:
a) herana
d) polimorfismo

5-

b) somente M
e) somente II e III.

b) Interface
e) encapsulamento

c) classe

(TRE-2001) Generalizao / Especializao um tipo de relacionamento


possvel de ser aplicado ao(s) seguinte(s) elemento(s) de modelo na
UML:
a) Casos de uso, classes e atores;
b) Casos de uso e classes;
c) Classes e atores;
d) Casos de uso e atores;
e) Classes.

6-

(Eletrobrs) Observe o seguinte diagrama de transio de estados. Suponha que o sistema se encontra no estado EstadoO, e que ocorra a seguinte sequncia de eventos:
a b c b b b c a

Questes de Concursos Pblicos sobre Orientao a Objetos e UML 119

O estado do sistema aps a ocorrncia destes eventos :


a) EstadoO
d) Estado3
7-

b) Estadol
e) Estado4

c) Estado2

fEletrobrs) Modelo de Casos de Uso: Considere as seguintes assertivas sobre casos de uso:
I. descrevem uma sequncia de passos iniciada por um ator.
II. o estado em que o mundo deve se encontrar para que o caso possa ser
executado chamado de pr-condio
III. o caso de uso no descreve as respostas do sistema aos estmulos enviados pelo ator
IV. a recuperao de falhas na execuo de um passo descrita nas exceQes

120 Exercitando Modelagem em UML

As assertivas correias so:


a) somente as dos itens l, H e III;
b) somente as dos itens l, II e IV;
c) somente as dos itens l, III e IV;
d) somente as dos itens II, III e IV;
e) itens l, II, III e IV;
8-

(Eletrobrs) Considere as seguintes assertivas sobre o modelo de classes mostrado abaixo (notao UML padro):
I. um objeto livro pode ser associado a mais de um objeto leitor
II. um objeto leitor est associado a no mximo um nico objeto livro
III. nenhum objeto emprstimo est associado a uma associao entre livro e
leitores
Livro

Leitor

_
0..1

0..*

Emprstimo

As assertivas correias so:


a) somente o item I;
b) somente o item II;
c) somente o item III
d) somente os itens l e II;
e) itens l. II e III.

Questes de Concursos Pblicos sobre Orientao a Objetos e UML 121


9-

(Eletrobrs) Observe o diagrama de sequncia mostrado a seguir.

cntEmprestimo

leitor

TCNTEMPRESTIMO

:LEITOR

frmEmprestimo
TFRMEMPRESTIMO

Create

ObterCodLeitor

NomeLeitorfcod: string)

MostraNome Leitor

Observe as seguintes assertivas sobre o diagrama de sequncia dado:


l. Os nomes dos objetos participantes da sequncia so: TFRMEMPRESTIMO, TCNTEMPRESTIJMO e LEITOR
II. ObterCodLeitor um servio de cntEmprestimo
III. ObterCodLeitor executado antes de MostraNomeLeitor
As assertivas cornetas so:
a) somente a l
b) somente a II
c) somente a III
d) somente l e II
e) somente II e III
10- (Infraero) Observe as seguintes assertivas sobre a forma de especificao de requisitos conhecida como Casos de Uso:
I.
II.
III.
IV.

Todo caso de uso tem a participao de pelo menos um ator;


Um ator pode participar somente de urn caso de uso;
O roteiro de um caso de uso no pode utilizar roteiros de outros casos de uso;
O roteiro de um caso de uso pode ser alterado por outro caso de uso.

122 Exercitando Modelagem em UML


Os atributos correios so somente:
alell;
b) l e IV;

c) II, III e IV;


d) I. Ill e IV;

e) l, II, III e IV11- (IBGE) Considere as seguintes assertivas sobre a tcnica de especificao de requisitos conhecida como casos de uso:
l. todo caso de uso possui um roteiro;
II. o roteiro urna sequncia de passos executados por um ater:
III. uma exceo descreve a recuperao da falha de um passo de um caso
de uso.
As assertivas correias so:
(A)
(B)
(C)
(D)
(E)

somente a l;
somente a II;
somente a III;
somente l e li;
l, II e III.

12- (IBGE) Considere os seguintes elementos da UML:

I. classes
II. associaes
III. mensagem
IV. estado
V. transio
Os elementos que fazem parte de um diagrama de ciasses so:
(A)
(B)
(C)
(D)
(E)

somente l e II;
somente t, II e III;
somente l, 111 e IV;
somente II, III e IV;
somente III, IV e V.

Questes de Concursos Pblicos sobre Orientao a Objetos e UML 123


13- (TCU) Na UML, um diagrama de colaborao um tipo de diagrama de
interao que coloca a nfase na ordem temporal de mensagens. (Certo/Errado)
14- (SERPRO) Uma das vantagens dos mtodos de anlise e projeto orientado a objetos o aumento do gap conceituai entre os artefatos produzidos nas fases de anlise, projeto e implementao. (Certo/Errado)

GABARITO
01
02
03
04
05
06
07
08

(A)
(A)
(B)
(E)
(A)
(E)
(B)
(D)

09
10

(C)
(B)

11
12
13
14

(E)
(A)
Errado
Errado

Exercitando
modelagem
emUML
/

exerccios
resolvidos
Aps escrever seu primeiro livro, Desenvolvendo Aplicaes com UML - do conceituai implementao, atuaiiz-lo para
Desenvolvendo Aplicaes com UML2.0,
a autora, ao basear-se na experincia em
leeionar disciplinas de modelagem de
desenvolvimento de sistemas, percebeu
que surgia uma nova demanda em sala
de aula: um material de apoio prtico,
que pudesse ser usado para fixao da
matria.

ssim. percebendo essa necessidade como no exclusiva da docncia, mas lambem do aluno
i que entende a teoria, contudo no consegue sair do ponto zero; e do profissional, que tem

a necessidade do exemplo, principalmente quando caminha sozinho numa nova estrada de


aprendizagem, surgiu a ideia de "Exercitando modelagem em UML".
Este livro oferece ao leitor um caminho para a aprendizagem, por meio de tentativas e erros,
exemplos e exerccios. Para atingir este objetivo, este material est dividido em captulos, onde
cada um avana gradualmente pelos conceitos de orientao a objetos e principais diagramas
da UML. No apndice, como bnus, so oferecidas algumas questes de concursos pblicos
relacionadas ao tema.

Ana Cristina de Souza Luiz de Melo

.brasport.c

Você também pode gostar