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 desenvolvi-


mento de sistemas, com foco em UML, aliada necessidade de ter um
material de apoio tcnico mais completo, me levaram a escrever Desen-
volvendo 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 u-
sado 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 Pro-
gramadora, percebi que tambm temos a necessidade do exemplo. Princi-
palmente 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 pes-
soas comuns que precisam de uma ferramenta para resolver seus proble-
mas. Meu objetivo com esse tipo de abordagem foi o de aproximar o pro-
blema do conhecimento pblico do meu leitor. Assim, tenho certeza que
vocs ro se familiarizar com os problemas de cada um de nossos perso-
nagens.
Quaisquer duvidas, comentrios, sugestes e/ou criticas podem ser envia-
das 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


1. Exerccio: Conta de Luz 3
2. Exerccio: Classe TextoSaida 4
3. Exerccio: Classe BonecoEm Movimento 5
4. Exerccio: Horrio de Remdios 6
5. Exerccio: Gastos Dirios - 8
6. Exerccio: Comanda Eletrnica 9
7. Exerccio: Lista de Compras 10
8. Exerccio: Lista de Compras (Variao A) 12
9. Exerccio: Lista de Compras (Variao B) 13
10. Exerccio: Lista de Compras (Variao C) 15
11. Exerccio: Lista de Compras (Variao D) 15
12. Exerccio: Coleo de CD's 16
13. Exerccio: Coleo de CD's (Variao A) 17
14. Exerccio: Sala de Reunio 18
15. Exerccio: Sala de Reunio (Variao A) 21
16. Exerccio: Herana 22
2. Desenhando Diagrama de Classes a partir de Minicenrios 24
17. Minicenrio: Controle de Tarefas 25
18. Minicenrio: Ligaes telefnicas via modem 28
19. Minicenrio: Testes de Fixao 30
20. Minicenrio: Testes de Fixao (Variao A) 33
21. Minicenrio: Festas Infantis 33
22. Minicenrio: Festas Infantis (Variao A) 35
23. Minicenrio: Cursos de Aperfeioamento 36
24. Minicenrio: Cursos de Aperfeioamento (Variao A) 37
25. Minicenrio: Classificados na Web 39
26. Minicenrio: Jogo da Forca 42
XII Exercitando Modelagem em UML

27. Minicenrio: Ferramenta de UML 44


28. Minicenrio: Clube da Leitura , 46
29. Minicenrio: Condomnio 48
30. Minicenrio: Pediatra 51
31. Minicenrio: Pediatra (Variao A) 54
32. Minicenrio: Pediatra (Variao B) 56
33. Minicenrio: Aposta Lotrica , 58
3. Exercitando a Identificao de Casos de Uso 60
34. Cenrio: Encomenda de placas 61
35. Cenrio: Rdio Txi Mar & Sol 67
36. Cenrio: Treinador de vlei 74
37. Cenrio: Controle de Obra 79
38. Cenrio: Controle de Obra (Variao A) 86
39. Cenrio: Senha de Atendimento 86
40. Cenrio: Controle de Bolo 92
41. Cenrio: Estacionamento 97
42. Cenrio: Jogo da Velha .....100
43. Cenrio: Jogo da Memria 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 114
49. Cenrio: Controle de Tarefas 114
50. Cenrio: Encomenda de Placas 115
51. Cenrio: Rdio Txi Mar & Sol 115
Apndice. Questes de Concursos Pblicos sobre Orientao a
Objetos e UML 117
Encontrando Classes, Atributos
Captulo 1
e Relacionamentos

Um dos principais diagramas da UML o Diagrama de Classes. Obser-


vando meus alunos, no vejo dificuldade no aprendizado do que um re-
lacionamento de associao, herana ou agregao. Vejo dificuldade em
se abstrair o conceito desses relacionamentos do mundo real, ou melhor,
de um problema real.

Provavelmente seja fcil entender


que nome atributo de pessoa, e
que funcionrio uma herana de
Produto cermico, geralmente em
forma de paraleleppedo, para pessoa. Mas ser que o nvel de
construes. facilidade permanece o mesmo
quando estamos diante de um pro-
blema real e este precisa ser abs-
trado para atributos, classes, rela-
cionamentos e outros elementos?
Posso apostar que no! E como
possvel que essa abstrao se
torne uma tarefa natural? Respon-
do: 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 dire-
tamente 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 abstra-
co, 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 (acom-


panhados 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 existen-
te 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 relacio-
namentos em atributos, de forma a representar como eles sero implemen-
tados. Para melhor entendimento dos exercidos, especificamos esses atri-
butos que correspondem aos relacionamentos implementados. Esses atri-
butos 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 co-
mo 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. Aten-
o! 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 kw gasto ^ data pagto Jjgj^


04/07/2005 4166 460 206,43 15/07/2005 15,33
02/08/2005 4201 350 157,07 15/08/2005 12,06

Menor Consumo 350 ago/05


Maior Consumo 460 Jul/05

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

RESOLUO:

Classe Atributos Mtodos


dataLeitura : date
nmeroLeitura: integer
cadastrarConta
qtdKwGasto : integer
ContaLuz verificaMesMenorConsumo : string
valorPagar: real
verificaMesMaiorConsumo: string
daiaPagamento : date
mediaConsumo: real

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 Cris-
tina 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), esco-
lhendo 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 Atributos Mtodos
texto : string
tipoComponente :
EnumTipoComponente cadastrar
TextoSaida
tamanhoLetra : integer exibirTexto
corFonte: EnumCor
corFundo : EnumCor
label
enumeration
edit
EnumTpoComponente
memo
preto
branco
enumeration
azul
EnumCor
amarelo
cinza

COMENTRIOS SOBRE A RESOLUO:


a) A classe enumeration EnumTipoComponente foi criada para suportar o
domnio do atributo tipoComponente, que consiste de valores fixos, defini-
dos 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 coor-
denada Y e direo atual (cima, baixo, direita, esquerda).
6 Exercitando Modelagem em UML

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

RESOLUO:
Classe Atributos Mtodos
nome : string cadastrar
coordenadaX : integer mover (novaCoordenadaX:
Boneco
coordenadaY : integer integer, novaCoordena-
direcaoAtual : EnumDirecao daY: integer)
cima
enumerai ion baixo
EnumDirecao direita
esquerda

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 bo-
neco, os atributos coordenadaX e coordenadaY so atualizados com os
valores dos parmetros novaCoordenadaX e novaCoordenadaY, respecti-
vamente.
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 quan-
tidade 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 determina-


do 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 Atributos Mtodos


usurio : strng
datalnicio : date
qtdDias : integer
sugerirHorarios
PrescricaoRemedio qtdVezesDia : integer
exibirPlanilhaHorarios
dosagem : real (dataReferencia : date )
remdio : string
/planrlnaHorario : Coleo
de HorarioRemedio
data : date
HorarloRemedio cadastrarHorario
horrio : time

COMENTRIOS SOBRE A RESOLUO:


a) Numa primeira modelagem. os atributos remdio e usurio (do Rem-
dio) foram definidos como string. Esses atributos so fortes candidatos a
se tomarem classes de negcio. O que determina essa mudana o con-
texto 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 Horario-
Remedio, 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 seguin-
tes horrios: [6h, 14h. 22h], [7h, 15h, 23h], [8h, 16h, 24h].
Uma vez escolhido o conjunto de horrios, o mtodo HoraroRemedio.ca-
dastrarHorario chamado quantas vezes forem necessrias para cadas-
trar todos os horrios em todos os dias.
8 Exercitando Modelagem em UML

d) A classe HorarioRemedio foi criada incluindo o atributo data, para permi-


tir 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 Atributos Mtodos


TipoGasto descricaoTipo : string cadastrar
/tipo : Classe TipoGasto
data : date cadastrar
Gasto valor : real gerarRelatoroMen-
formaPagamento : Enum- sal{mesAno: string)
FormaPagamento
dinheiro
enumerationi
cheque
EnumFormaPaga-
carto
mento
chequePre

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 dei-
xar 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 Atributos Mtodos
cdigo : string
Produto descrio : string cadastrar
precoUnitario : real
numero : integer
registrarltem( item : ItemCo-
/valorTotal : real
Comanda manda )
/itens : Coleo de ItemCo-
fecharComanda
manda
/produto : Produto
ItemComanda cadastrar
quantidade : integer
10 Exercitando Modelagem em UML

COMENTRIOS SOBRE A RESOLUO:


a) O atributo va/orTbfa/da classe Comanda derivado, porque o resulta-
do 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 atribu-
to /tens. Por sua vez, um item de comanda se refere a somente um produ-
to. Esta representao feita no atributo produto.

7. EXERCCIO: LISTA DE COMPRAS


CENRIO: Carolina controla em Excel uma planilha com a sua lista de com-
pras 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:

Unidade de Qtd Preo


Produto compra Qtd Ms Compra Estimado
Arroz Kg 8 7 1,80
Feijo Kg 6 6 2,10
Acar Kg 3 2 1,05
Carne Kg 6 7,5 8,00

Total Estimado 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 Atributos Mtodos


ms : integer cadastrar
ListaCompra /itens : Coleo de ItemCompra obterTotalEstimado{ms :
/total Estimado : real integer)
/produto : Classe Produto
ItemCompra cadastrar
qtdEfetivaCompra : real
nome : string
unidadeCompra : string cadastrar
Produto
qtdPrevistoMes : real
precoEstimado : real

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 quantifi-
carmos 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 obterTotalEstima-
do(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 relacio-


namento 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 pessoalmen-
te. 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 Atributos Mtodos


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

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 atri-
buto 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 Supermer-
cado para outro. Tem feito compras (ou pedido para fazer) em at trs Su-
permercados 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 Valor
Produto Compra Compra Supermercado
Arroz julho 1.80 XXX
Arroz agosto 1.75 YYY
Arroz setembro 2,05 XXX
Feilo julho 2.10 XXX
Feijo agosto 2,25 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 Atributos Mtodos
'
ms : integer cadastrar
LlstaCompra /itens : Coleo de ItemCompra obterTotal Estimado)
/total Estimado : real : integer)
/produto : Classe Produto
ItemCompra qtdEfetivaCompra : real cadastrar
/precoMaximoMes : real
nome : string
descricaoProduto : string
cadastrar
Produto unidadeCompra : string
qtdPrevistoMes : real
/precoMaximoAnteror : real
ms : integer
/produto : Classe Produto .
HistoricoCompra valorPago : real cadastrar
/supermercado : Classe
Supermercado
Supermercado nome : sring 1
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 supermer-


cado 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 pro-
duto, 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 pre-
o. 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: HistoricoCompra
ATRIBUTO: validoParaAnalise: boolean

12. EXERCCIO: COLECO DE CD's


CENRIO: Adriano tem uma coleo grande de CD's e gostaria de cadas-
trar 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 Atributos Mtodos
nome : string
Musico cadastrar
ehSolo : boolean
Encontrando Classes, Atributos e Relacionamentos 17

Classe Atributos Mtodos


/musico : Classe Musico
CD titulo : sfring cadastrar
ano : intetjer

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 Atributos Mtodos


nome : string
Musico cadastrar
ehSolo : boolean
/musico : Classe Musico cadastrar
CD titulo : string listarCdsPorMusico(musico:
ano : tnteqer Classe Musico)
18 Exercitando Mocielagem em UML

Classe Atributos Mtodos


ehDuplo : boolean listarCdsPorMusica(musica:
ehColetnea : boolean Classe Musica)
/ItstaMusIcas : Coleo de
Musica
nome : string
Musica cadastrar
tempoFaixa : real

0..* 1.-"
CD 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 necessida-
de 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 Sala 101 Sala 105 Sala 201


08h30m
09h Dr. Glauco As- Mariana - assunto: anlise
sunto: processo de material
09h30 empresa Mar e Dra. Maria- As-
10h Lua sunto: palestra
10h30 sobre, a nova lei
de falncias
11h Dra. Maria assunto: reu-
11h30 nio 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 Atributos Mtodos
/sala : Classe
Sala Reunio aiocar
dataAIocacao : date realocar(novaData : date,
horalnicioAlocacao : time novaHoralnicio: time,
AlocacaoSala
horaFimAlocacao : time novaHoraFim: time, novaSala:
/responsavelAlocacao: Classe Sala)
Classe Funcionrio cancelar
assunto : string
20 Exercitando Modelagem em UML

Classe Atributos Mtodos


nome : string
Funcionrio cargo : string cadastrar
ramal : integer
cadastrar
numero : integer obterSalaLivrefdata: date.
SalaReuniao
qtdLugares : integer horalnicio: time. horaFim: timel :
coleco de SalaReuniao

SalaReuniao

o..-
0..*
AlocacaoSala Funcionrio

COMENTRIOS SOBRE A RESOLUO:


a) Toda alocao de sala registra qual sala foi alocada e qual foi o funcio-
nrio 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 assun-
to 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 unit-
rio 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 Atributos Mtodos


/sala : Classe
SalaReuniao
dataAIocacao : date alocar
horalnicioAlocacao : time realocar(novaData : date,
horaFimAlocacao : time novaHoralnicio: time,
AlocacaoSala
/responsavelAlocacao: novaHoraFim: time, novaSala:
Classe Funcionrio Classe Sala)
assunto : string cancelar
/listaMateriaisAlocados :
Coleo de Material
nome : string
Funcionrio cargo : string cadastrar
ramal : integer
cadastrar
numero : integer obterSalalivrefdata: date,
SalaReuniao horalnicio: tirne. horaRm:
qtdLugares : integer
time) : coleco de
SalaReuniao
Material nome : string cadastrar
22 Exercitando Modelagem em UML

SalaReuniao

0..'
0..*
AlocacaoSala 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 alo-
cados. Isso cria o relacionamento entre a classe AlocacaoSala e Material,
representada pelo atributo UstaMateriaisAlocados.

16. EXERCCIO: HERANA


Observe as duas classes adiante:
Classe Atributos Mtodos
matricula: integer
nome: string
dataNascimento: date cadastrar
/endereo: Classe Endereo obterldade
Funcionrio /telsContato: Coleo de reajustarSalario (percentual:
Telefone real)
/cargo: Classe Cargo promover(novoCargo : Cargo)
salrio: real
dataAdmissao : date
Encontrando Classes, Atributos e Relacionamentos 23

Classe Atributos Mtodos


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

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

RESOLUO:
Classe Atributos Mtodos
nome : string
dataNascimento : date
cadastrar
Pessoa /endereo : Classe Endereo
obterldade
/telsContato : Coleo de
Telefone
matricula : integer reajustarSalario
/cargo : Classe Cargo (percentual : real)
Funcionrio
salrio : real promover(novoCargo :
dataAdmissao : date Cargo)
cdigo : string
Cliente
/profisso : Classe Profisso

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 escreve-
remos 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 aparece-
ro 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 existen-


te entre objetos, em cada caso de uso;
- Os casos de uso Manter XXX indicam que o caso de uso tratar da con-
sulta, incluso, alterao e excluso de XXX. Exemplo: Caso de Uso Man-
ler 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 da-
do 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 tare-
fa.
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 au-
tomaticamente 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


Data limite = 06/08/2005
Percentual j concludo = 65%
Detalhamento = planejamento dos preparativos para a festa de
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
f 20% 1 Encomenda do bolo, salgados e doces - 15/07/2005
[ 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 0..*
nome: slring
dataLJmitBExecucao : date percentual: real
detalhamanto: string descrio: string
/ percentual Concluso: real data Execuo: date
slalus: EnumStaiusTarefa

oenumarateda Somatrio de HEmExecucao.Percentual,


EnumStatusTarefa 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 identifica-
do 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 exe-
cuo cadastrada.

18. MINICENRIO: LIGAES TELEFNICAS VIA MODEM


Bruna resolveu desenvolver uma aplicao para controlar as ligaes tele-
fnicas de sua casa, a fim de checar se o valor que paga mensalmente
est correio. Assim, sempre que desejar, poder listar as ligaes efetua-
das 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 qua-
tro minutos de conversao concluda, cobra-se mais um pulso.
- Cada pulso custa R$ 0,08 para ligaes locais.

Exemplo:
Ligao de 2m - 1 pulso
Ligao de 4m30s - 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
O N
\
"i

Pessoa
include
Calcular pulsos

Cadastrar valores
variveis para regra
de clculo

RESOLUO (DIAGRAMA DE CLASSES):

Agenda Ligao

O..* O..'
data: date
nomeContalo: string hora Inicio: lima
OddTeleooe: string horaTerrnino: time
telefone: string flernpoGasto: real
MumeroPulsos: Integer
telefoneDiscado: string

RegraCalculo
discar
valorPulso: real encerrariJgacao
inlervaloPulso: Integer

calcuiarPulsos(cJ9la: dale.
lempoLigacao: neal): Integer
calcularTempo(horalnicio: time,
horaTernino: Hme): raal
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 esco-
lher 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, en-
to 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, preci-
so informar o nmero de questes desejadas e a qual disciplina pertence o
teste.
Para cada disciplina, cadastra-se: uma lista de questes objetivas, identifi-
cando de que bimestre cada questo e a que matria pertence. O gabari-
to 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, nme-
ros 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

A
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 mat-
ria 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, ob-
tendo as questes da disciplina "MATEMTICA" e da primeira srie, teria-
mos o seguinte comando;
32 Exercitando Modelagem em UML

SELECT Questo.numero. Questo.enunciado


FROM Questo
WHERE Questo.matria.disciplina.nome = "MATEMTICA"
AND Questo.matria.serie = l

b) Como o nico usurio dessa aplicao a Mariana, e ela assume o pa-


pel 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..'

M ale ria Disciplina

nome; string O
descrio : string nome: strirtg
serie: integer
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 exem-
plo: 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:
f
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 per-
mita 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 nome: string
valorAluguel: real
descrio: string
corToalfia: string

O..'

Aluguel
Endereo

dataFesta: date logradouro: string


horrio Inicio: time numero: string
horarioTermino: lime endereo da lesla complemento: string
v Io rCo brado: real bairro: string
cidade: string
1..' cep: string
uf: string

Cliente

nome : string
telefone: 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 pa-


pel 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 ini-
cio 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 program-
tico 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 dalalnicio. date
carjaHoraria: real dalaTermino: da l
contedo Programtico: slring horalniclo: lima
valor: real 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, n-
mero da carteira de identidade, CPF, data de nascimento, endereo com-
pleto 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):

Curso Telefone

nome: slring ddti: slring


carga Horria : real numero : slring
conleudoProgramaUco: t p : slrng
valor: real

Turma Aluno

dalalnido: date nome: S


-:, " ---.P - : -; :i- identidade: Slring
haralnlciQ : lime cpf: slring
horgTermino : rjma dataNascimenlo : dale

Professor Matricula Endereo

nome: Elring logradouro : srtng


(Jala : date
telefone: stnng numenj : sLring
ualorPago : real
valorHoraAula : real complemento ; atrng
bairro : slring

uf : string

25. MlNICENRIO: CLASSIFICADOS NA WEB

Dalila est oferecendo aos amigos da escola, do bairro e do clube, o servi-


o 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

computador 5
olaca vdeo 1
cen drive 1
DVD 2
imvel venda 1
imvel aluguel 2
Clique no linfc para acessar os anncios.
Resumo de todos os anncios

comoutador 35
Dlaca vdeo 2

oen drive 3
imvel venda 2
imvel aluauel 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: 01/08/2005

EXERCCIO:
1. Desenhe o diagrama de casos de uso.
2. Desenhe_o_diagrarna dg c[asses_CQrnpleto.
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 : siri na nome '. string


qldPelavras : inlEger
com Imagem : boolean
(otahiaAnunciOs

1 o..-

Seo da Interesse
-' o
Anuncio 0..'

lextTltulo : slrtng Cliente


preo : real
teirtoAnuncio : string
nomeConlalo : strlng 0..' 1
telefonei - strlng nome : strlng
telefane2: strlng telefone islrlng
obsTelefone : slring eMail : alring
Imagem : Pictura aGinan!e . boolean
dalalnsercao : date
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 Dire-
tor.

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 pala-
vras, ou uma frase e escolhe aleatoriamente o tema e as palavras (ou fra-
se);
t
-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):

Administrador Jogador

RESOLUO (DIAGRAMA DE CLASSES):

Tema

mxne: slring numero: Inlager


ImagamPedacoBoneco: Plture
maxinoErros: inleger

0.,'

Rodada
BancoPalavra

ponlosPalavra Certa = IDO


paiavraOuFrase: slring o..- oontosLelrg = 15
/ehPrasa:boolean 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 pala-
vra solta ou uma frase,
b) Cada rodada tem no mximo trs palavras ou uma frase. Assim, a mul-
tiplicidade 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 Controte-
Rodada, 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 bone-
co 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 desenvolvi-
mento, 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 diret-
rio). 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, re-


nome-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

mostra rArvore enumera te d


EnumStatus

naolniciado
a m Desenvolvimento
finalizado
1..* 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 par-
tir 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: Ceboli-


nha, 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 cri-
ana 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}^ f Regislrar devoluo '

Bibliotecrio
48 Exercitando Modelagem em UML

RESOLUO (DIAGRAMA DE CLASSES):

Colscaa

nome ; slring

t
Revrala Amigo

nojne;E[rinfl
numeroEdicao: m tcgw
ano: intfler telefona: suna
gnjpc: EfiumGnJpoAmlgo

numero: rnlegar prdio


IdenljficacaoEliquebi'. ilring escola
cor: slriOQ

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 con-
domnio, 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 200,00/10x2= 40,00
102 200,00/10x3= 60,00
201 200,00/10x2= 40,00
202 200,00/10x3= 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 atra-
so, 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 nome:stnng
telefone - :-:nr.q
ocupao: EnumTrpoOcupaao

jnesAno . slrlng
cifl: slritig
: real valor: real
.--':;-:: : in

"npoDespeaa
1
O,.
nome : ainng mesAno: atring
: boolean valor: rc&1

- J 11 ire r ]Lt " a


EnumlipoOcupacao

(nqulllno
Vazo
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 exem-
plo: gua, luz etc). Depois, o usurio lana as despesas especficas dos apar-
tamentos (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) R$ 20,00
Luz (200,00 /10 x 2 quartos) R$ 40,00
Taxa do Salo de Festas R$ 25,00
Total a pagar R$ 85,00
O condomnio do apartamento 102 ser:
gua (100,00/10 x 3 quartos) R$ 30,00
Luz (200,00 /10 x 3 quartos) R$ 60,00
Total a pagar 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 con-
sultrios. 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 sis-


tema que controle a marcao de consultas e a ficha dos pacientes.
Para os pacientes, preciso controlar: nome, endereo, telefones de con-
tato, 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 revi-
so, 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 numera: alring
dalaNas&meiCo: aSn upo: stmg
dalaPrfmeiraCwiauCtB: date obs:stnng
aMall : Etring
pJan-oParticular: bootoan

EiomTipoConsuHofio

RanoSaude Ilha
Bon
Tljuca
nome;Blrng
limteConsuIlaaMe:

Consulta Agenta

data : dala
daSeniana Inleger
hora : lime
con^uIloriD : EnurnUpoConsultorta
rialBLimitBMjtrcacaaFutura : dars o..- horarinPrimairaCDnauIlH . Uma
consultRayL&at] : brjlean
h?rarinUlljinaConsiilla : time
eiEncama : boolsan mlarvaJurCofiSiilta : fnteger
NiriileEncaikfia = 3 htrffiOlrtldoAlmoco : Ume
horariDnrnAliTiqca : lime
marcarConsulIa

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; horario-
PrimeiraConsulta = 09:00; horarioUltimaConsulta = 18:00; intervaloConsul-
ta = 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 ho-
rrio 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 se-
tembro, 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 altera-
do.
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 rece-
ber urn desconto. Sendo assim, o valor efetivamente pago deve ser regis-
trado.
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 Valor Previso
Pagamento Qtd Total Recebimento
Particular 20 2000,00 em caixa
Unimed 25 950,00 01/08/2005
Unimed 50 1900.00 05/08/2005

Relatrio de Faturamento
Perodo: 01/07/05-31/07/05
Unimed 30 1140,00 10/08/2005
Unimed 25 950,00 15/08/2005
Unimed 20 760,00 20/08/2005
Unimed 15 570,00 25/08/2005
Unimed 15 570,00 30/08/2005
Cassl 50 2000,00 20/08/2005
Cs si 30 1200,00 30/SS/2005
Total 280 12040,00

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):

Consulta PlanoSaude

data : date
hora : time n orne: string
d aiaLi m ite M a rcacaoF u!u r date NmiteConsutasMes: integer
consultaRevisao : boolean prazo C redito: Integer
e h Encaixe : boolean valorConsulta : real
HmiteEnraixes = 3
valorConsulta : real
valorPago ; real
dataApresentacaoPlano : date

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 PlanoSaude


tempo: string
instrues: string
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):

JogoLolerico Concurso

nome: slring
qld Mnima Aposte: inleger numeroCcmcurso: inleger
qTdMaximaAposta: nleger 0..' data :da!e
limileSuperioiAposta: inloger
rninimoAcertos: iniegar
mximo Acertos: Inlegei
qldNumSortBBiJos: inleger

1..*

Aposta Prerraacao

numeroAposlado: irileger laixa: Integer


(Concurso .JogaL.Qterlco.qldMinimaApoEta, valeu: real
C on eu rso JogoLoterico .qldMaxi maAposla] acumulado: boolean
riurn&FoSorteadQ: inleger
[C oncurso. JogoLole rico .qldN umSortea do s]
conferirAfldsta

COMENTRIOS SOBRE A RESOLUO:


t
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 solu-
o consiste em se associar uma multiplicidade ao atributo numeroAposla-
do. Essa multiplicidade pode ser composta de limite inferior e limite superi-
or 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 JogoLoter-
co. Assim, o limite inferior, ou seja, a menor quantidade de nmeros apos-
tados 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 n-
meros sorteados (multiplicidade do atributo numeroSorteado) o valor do
atributo Concurso. JogoLoterico.qdNumSorfeados.
Exercitando a Identificao
Captulo 3
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 c-
pia 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 estabe-
lecer 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 influen-


ciado 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, ver-
melho, 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 = altura x largura


custo_material = rea x R$ 147,30
custo_desenho = nmerojetras x R$ 0,32
valor_placa = custojmaterial + custo_desenho

Para calcular o prazo de entrega, considera-se que ele s consegue pro-


duzir 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. 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. localizar 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 de nome e/ou um trecho de te-
lefone. 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

3.2.1. cdigo de identificao


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

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

Ator: Diretor da empresa


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, utili-
Descrio: zados no clculo do valor de venda das placas.

Ator: Diretor da empresa


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.

Ator: Diretor da empresa


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 sis-
tema 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 determi-
Descrio: nada placa, de acordo com as encomendas que esto com o slatus = "aberto".
Ator: Diretor da empresa

Cenrio Principal:
1. O sistema busca o total de encomendas com status = "aberto", agrupados por data, excluindo-
se o dia atual.
2. O sistema verifica a primeira data disponvel da lista, onde o nmero de encomendas seja
inferior a seis.
3. O sistema retorna a data disponvel no item 2, como a data prevista de entrega.
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


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

Ator: Diretor da empresa

Cenrio Principal:
1. O usurio informa o nmero da encomenda.
2. 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;
27. o staius atual da encomenda.
3. O usurio modifica o status da encomenda para um dos seguintes valores: "Pronto", "Cancela-
do" ou "Fechado".
4. O usurio confirma a alterao do status.
5. O sistema atualiza o cadastro com o novo status.
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 atuali-
zados.

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 coopera-
do se desliga, deve ser cadastrada a data de desligamento.
68 Exercitando Modelagem em UML

Quando o cliente solicitar uma corrida programada (pedidos com antece-


dncia 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 pro-
gramada. 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 mu-
da 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 efetua-
do", "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 pagamen-
tos_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 crit-
rio 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 cfien-
te".
5.2.Se o usurio selecionar uma dessas opes, o sistema aciona o cadastro de cliente. [In-
clude Caso de Uso Manter Clienle]
Exercitando Modelagem em UML

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

Ator: Diretor da empresa


Pr-condlo:
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 sistema prepara uma lista de todos os logradouros atendidos pela Cooperativa.
3. 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

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".
3. Pesquisa de Cooperado
3.1. Para localizar um cooperado, o usurio deve inserir um trecho do nome do cooperado co-
mo 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
4. Insero de Cooperado
4.1 .[Include Caso de Uso Manter Cooperado]
5. Seleo de Cooperado
5.1 .Aps selecionar um cooperado, o sistema habilita as opes de "alterar cooperado" e "ex-
cluir cooperado".
5.2.Se o usurio selecionar uma dessas opes, o sistema habilita o cadastrarnento de coope-
rado. [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 altera-
o ou excluso.
Cenrio Principal:
1. 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.
2. O sistema prepara uma lista de logradouros cadastrados.
3. 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 pla-
ca, modelo, fabricante
3.5.endereo completo, considerando que o logradouro selecionado de uma lista preexisten-
te. 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

3.6.telefones residencial e celular


3.7.dala de entrada na Cooperativa
3.8.data de safda da Cooperativa (somente para alterao)
4. O usurio confirma a operao realizada.
5. 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. O sistema prepara uma lista de todos os logradouros cadastrados.
2. 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 co-
mo 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
Descrio: corridas programadas (que so pedidas com antecedncia maior do que
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. O usurio confirma a operao realizada.


7. 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 passa-
geiro".
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 advers-
rio), ponto de contra-ataque (quando a vantagem estiver com o prprio
time), ponto de bloqueio, erro do adversrio. No caso de bloqueio neces-
srio 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 pontuado-


res 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
Este caso de uso tem por objetlvo permitir a incluso ou alterao de dados
Descrio: 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".


3. Pesquisa de Jogo
3.1. Para localizar um jogo, o usurio deve inserir a data e/ou um trecho do nome do time ad-
versrio 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 "Ex-
cluso" 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.

MANTER JOGADOR
Este caso de uso tem por objetivo permitir a incluso ou alterao de dados
Descrio: 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 pes-
quisa. 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
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.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
Este caso de uso tem por objetivo fazer o controle do placar de um determi-
Descrio: nado 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 pree-
xistente.
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 dife-
rena, 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 pon-
tos, tendo dois pontos de diferena para o time adversrio. Se no houver essa diferen-
a, 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.

Ator: Auxiliar Tcnico


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 adver-
srio.
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 usu-
rio deve seiecionar o(s) jogador(es) que loi(ram) responsveis] pelo ponto.
Ps-condio!
Retomar os dados relacionados ao ponto.

LISTAR MAIORES PONTUADORES


Descrio: Este caso de uso tem por objeth/o oferecer uma consulta dos maiores pon-
tuadores de um jogo e o somatrio de pontos, por tipo, do jogo.
Ator: 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 ad-
versrio).

37. CENRIO: CONTROLE DE OBRA


lvaro est fazendo uma ampliao de sua residncia. Todo dia existe de-
manda de compra de material. Sendo assim, ele desenvolveu uma pequena
aplicao que controla essa demanda de solicitaes e as compras efetua-
das, 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. Ca-


da item possui: o produto e a quantidade. Quando cada item adquirido,
atualiza-se a solicitao com o preo unitrio de, compra, a forma de pa-
gamento (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 sis-
tema 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 siste-
ma. Escreva, tambm, os cenrios. Considere que todas as operaes so fei-
las 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
Este caso de uso tem por objetivo apresentar os produtos cadastrados e
Descrio: habilitar a Incluso, alterao ou excluso de produtos.

Ator: Responsvel pela obra


Cenrio Principal:
1. O sistema prepara uma lista de todos os produtos cadastrados.
2. 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".
3. Pesquisa de Produto
3.1. Para localizar um produto, o usurio deve inserir um trecho do nome do produto como cri-
trio 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:
3.2.1. nome do produto
3.2.2. descrio
4. Ins9ro de Produto
4.1 .[Include Caso de Uso Manter Produto]
5. 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. [In-
clude Caso de Uso Manter Produto]

MANTER PRODUTO
Este caso de uso tern por objetivo permitir a manuteno dos dados cadas-
Descrio: trais de produto (incluso, alterao e excluso).
Ator: Responsvel pela obra
Prgondig;
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 com-
primento (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)

Ator: Responsvel pela obra


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 desabili-
tados 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]


6. 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 compra-
do. Nesse caso, s possvel cancelar os itens da solicitao,

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).
Ator: Responsvel pela obra
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 cri-
trio 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 "Ex-
cluso" 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


Este caso de uso tem por objetivo registrar as compras que foram efetuadas
Descrio: para atender a uma determinada solicitao de compra.
Ator:
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.
Ator: Responsvel pela obra
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, agrupan-
do 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, tra-
zendo 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


Descrio: Este caso de uso tem por objetivo emitir um relatrio geral contendo todos
os produtos comprados num determinado perodo,
Ator: Responsvel pela obra
Cenrio Principal:
1. O usurio informa o perodo desejado para o relatrio (data de incio e data de trmino).
2. 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 pro-
duto.
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 aca-
bamento, 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, m-
dio e mximo de atendimento por caixa e por dia, alm do nmero de a-
tendimentos 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 siste-
ma. 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 Informa-
es que gera novas senhas.

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

Admlnlairailvn

MANTER ASSUNTOS
Este caso ds uso tem por objetivo permitir a manuteno (incluso altera-
Descrio: co e excluso) dos assuntos controlados no atendimento.
Ator: Administrativo
Cenrio Principal:
1. O sistema prepara uma lista da assuntos cadastrados.
2. O sistema oferece ao usurio:
88 Exercitando Modelagem em UML

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".
3. 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
4. Manuteno do Cadastro
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.
5. O sistema prepara uma lista de caixas cadastrados.
6. 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
Este caso de uso tem por objetivo permitir a manuteno (incluso, altera-
Descrio: co e excluso) dos caixas.
Ator: Administrativo
Cenrio Principal:
1. O sistema prepara uma lista de todos os caixas cadastrados.
2. 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 cri-
trio 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
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.
5. 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 distri-
Descrio: 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 aten-
dimentos, qerando estatstica de tempo gasto para cada atendimento.
Ator: Administrativo
Cenrio Principal;
1. O usurio informa um perodo (data de inicio e data de fim) de pesquisa.
2. O sistema busca todos os atendimentos efetuados dentro do perodo informado.
3. 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
3.3.2. horrio de trmino
3.3.3. tempo gasto no atendimento
3.3.4. assunto de referncia do atendimento
4. Para cada caixa, o sistema calcuia e exibe o tempo mnimo, mdio e mximo de atendimento.
5. 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
6. 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: 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.
Ator: 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


Descrio: Este caso de uso tem por objetivo permitir que o usurio registre o trmino
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: Este caso de uso tem por objetivo permitir a gerao de uma senha basea-
da numa lista de assuntos.
Ator: 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 nme-
ros apostados, alm das pessoas que entraram no bolo, seus e-mails
(para receberem os nmeros apostados) e se pagaram suas cotas. Entre-
tanto, isso tem lhe tomado um tempo considervel. Sendo assim, ele pen-
sou em desenvolver uma aplicao que atenda s seguintes funcionalida-
des:
- permita cadastrar os participantes de cada bolo, com seus ramais e e-
mails;

- para cada bolo feito, cadastrar o valor da cota, nmero de cotas, os


cartes apostados (com sua relao de nmeros), o tipo de jogo (MegaSe-
na, 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, parti-
cipantes 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 siste-
ma, Escreva, tambm, os cenrios. Considere que todas as operaes so fei-
jas 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


Descrio: Este caso de uso tem por objetivo permitir a manuteno (incluso, altera-
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
Este caso de uso tem por objetivo permitir a manuteno (incluso, altera-
Descrio: o e excluso) de um bolo. habilitando para outras tarefas como geren-
ciar os participantes, as cotas pagas e as apostas.
Ator: 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. data do concurso


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

IMPRIMIR LISTA DE NAO-PAGANTES


Descrio: Este caso d0 uso tem por objetivo mprimir um reatrio com os participan-
tes de um boo que no efetuaram o pagamento de suas cotas.
Ator: 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
Descrio: Este caso de uso tem por objetivo permitir o controle das apostas realiza-
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 ca-
dastradas 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, aliera-
Descrio: 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 participan-
tes 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 momen-
to 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 per-


manncia calculado. Considerando esse tempo de permanncia, apli-
cada 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 Sbado
1a hora = R$2,00 Preo nico = RS 3,00
a partir da 2a hora (inteiro ou
frao) = + R$ 1,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


Descrio: Esle caso de uso tem por objetivo registrar os dados do veculo que esteja
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. O usurio confirma as alteraes.


5. 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


Descrio: Esle caso de uso tem por objetivo emitir o ticket de estacionamento que o
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


Descrio: Este caso de uso tem por objetivo registrar a sada do veculo, calculando o
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


Descrio: Este caso de uso tem por objetivo permitir a manuteno da tabela de
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: Este caso de uso tem por objetivo emitir um relatrio com o faturamento
dirio do estacionamento.
Ator; Diretoria
Cenrio Principal:
1. O sistema prepara uma lista de todas as vagas ocupadas no dia.
2. O sistema exibe:
2.1.placa do carro
2.2.tempo de permanncia
2.3.valor pago
3. No final, o sistema exibe o total de valor recebido no dia.

GERAR RELATRIO DE FATURAMENTO MENSAL


Descrio: Este caso de uso tem por objetivo emitir um relatrio com o fauramento
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.

Xo \/
Para isso, ela relacionou as regras do jogo a fim
de facilitar sua implementao. Haver sempre /
o 0 \//\
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). \/
/\
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):

O .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: Este caso de uso tem por objetivo permitir a manuteno do jogador que
participa de um torneio.
Ator: 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: Este caso de uso tem por objetivo receber e controlar a jogada de um
jogador virtual ou fsico.
Ator: 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 joga-
dor 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 de-
socupado.
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, vertical-
mente 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 mem-
ria, 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 mos-
tra. Caso contrrio, as figuras so escondidas e espera-se uma nova roda-
da.
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 es-
core 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 ter-
ceira 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


Descrio: Este caso de uso tem por objetivo permitir a manuteno dos grupos de
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


Descrio: Este caso de uso tem por objetivo permitir a manuteno das figuras que
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


Descrio: Este caso de uso tem por objetivo permitir a manuteno das configura-
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: Este caso de uso tem por orjjetivo dar incio a uma partida.
Ator: 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: Este caso de uso tem por objetivo receber e controlar uma jogada para
tentar descobrir um par no jogo da memria.
Ator: 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 er-
ro, limitado ao valor de 10 pontos.
Ps-condio:
Retomar o score do jogador, aps trmino da partida.
Exercitando a Identificao de
Captulo 4
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 mode-
lo 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):


Encomenda enumeratedD
Cfente EnumCorFrasfl
azul
numero : kilagef vermelho
cdigo : Inleger a mareio
/diante : Cliente ntxne ; strng
slturaPlaca : r.- pato
telefone : slring
larguraPlaca - real vsrde
frase : slrlng
eorFrase : EnumCoiPlaca
-i ~ : EnumCocFrase
dalBErieomenda : dato enurnefatei. Bnuirarate*
dalaEntega : date EnUmSfglusEncoTirKla EnumCurPlaca
valorSinal. real aberto branca
' : : I.M; ;' '^L--.1 :r-.'.r:"L pronto cinza
nalytFifQtAaiErizLJsat = 147.30 cancelado
valorFi*r>l pira jp.a - 0 .1?

RESOLUO 44.B (ENCOMENDA DE PLACAS):


1..* 1
Encomenda 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 Telefone
En umTtpoTelefone

codtgo : inTeger residencial


prefixo ; sbing
nome: slring. comercial
numero : string
/endereo: Enderea celular
tipo : numTlpoTelefone
/telefones ; lista de Telefone recado

Endareca Logradouro Cooperado

/logradouro : Logradouro numeLogadouro : Bbing


bairro : strtng cof : slring
numen" ^ Etring
complemento ; slring cidade : slring nome : slring
eSlado ' slring /enfloro co . Endereo
cep : sWng
cepUnbco : atring .- .i -.'..-. : n-,. - de Telefone
dataEnlrada j .--:
dataSaida : dale
/caitMolorisTa : CartetraMoEcrista
/vebcufo : Veicula
CartelraMoloriata Veculo

numeroVR : slring lenumeratedo


numefP - string placa : string Em ir. -: i ^ - 1 , , C 1 1 . L,
modela : string
categoria . string !,-,|-n --i'1,!- : slrtng
aguardando VR
aguardando aviso
aviso efetuatia
tripulado^
Ccurida cancelado passageiro
cancelada falEa cano
/cliente : Olente
/enderecoSaida : Endereo
balrraDeslina ; etring
data i date
hora : Ume
/lElCanlatD . Telefone
satus : EnumStgtusConTda
/carroProg ramado . Veiculo
110 Exercitando Modelagem em UML

RESOLUO 45.B (RDIO TAXI):

0..1

46. CENRIO:
t TREINADOR DEVLEI
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 com-
pleto, incluindo os atributos, mtodos e relacionamentos.
Exercitando a Identificao de Classes a partir de Casos de Uso * 111

RESOLUO 46 (TREINADOR DE VLEI):

Jogo

3..5 : integar
data: date ' .-'';-.{--Til : ';
hora :tima
local: Btring
adversrio: Glring -.j'c-M^ ? = - - ' , ! , . - - : coJao
juiz: slring da J
auxiliar: sbing

1-*

Jogador
D,t

nome: slring EipoPonLo: EnumTrpoPonLo


carnia: tnegar

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

0..- qld: integer


pago: bodean
Bolao

concurso: inleger
d.iia Sc rie ,-. . date
valorCota: real
numColas: .T.eger

gerarPagmaWebBalaa
gera r Li staN ao Pag ante 5
sincroncarCotasApostas
TipoJogn
1

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 Ve-
lha) e dos casos de uso descritos, desenhe um modelo de classes comple-
to, incluindo os atributos, mtodos e relacionamentos.

RESOLUO 48 (JOGO DA VELHA):

Torneio Partida

scoreFinalJogadorl : In legar D..* posicaoJogadaX: inleger [0..5J


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

0..' D..*

Smbolo O Smbolo X

1 1

Jogador

nome: string
ehVirtiial: boolaan
Alguns Exerccios sobre Diagrama
Captulo 5
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 as-
sim, 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 m-
quina 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 ", Encomenda pronta

Cancelando encomenda Aguardando pagamento e enlrega


/ Cliente abandonou encomenda

e mry ' M od if i ca i S lau, s (cance lado) 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 m-
quina 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 arma-
zenam os mesmos tipos de informaes e apresentam o mesmo compor-
tamento.
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 b) II e III c) Ml e IV
d) l e III e) II e IV

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


tm a mesma estrutura e o mesmo comportamento denominado:

a) classe b) herana
c) polimorfismo d) encapsulamento

3- (Eletrobrs) Considere as seguintes assertivas sobre o diagrama de


classes na notao UML:

V. uma classe representa um conjunto de objetos cuja cardinalidade sem-


pre 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 b) somente M c) somente III


d) somente l e II e) somente II e III.

4- (Eletrobrs) Em relao tecnologia de orientao a objetos, a afirmati-


va 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 b) Interface c) classe


d) polimorfismo e) encapsulamento

5- (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. Su-


ponha que o sistema se encontra no estado EstadoO, e que ocorra a se-
guinte 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 b) Estadol c) Estado2


d) Estado3 e) Estado4

7- fEletrobrs) Modelo de Casos de Uso: Considere as seguintes asserti-


vas 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 envia-
dos pelo ator
IV. a recuperao de falhas na execuo de um passo descrita nas exce-
Qes
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 clas-


ses 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: TFRMEMPRES-


TIMO, 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 especifica-


o de requisitos conhecida como Casos de Uso:

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


II. Um ator pode participar somente de urn caso de uso;
III. O roteiro de um caso de uso no pode utilizar roteiros de outros casos de uso;
IV. 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 IV-

11- (IBGE) Considere as seguintes assertivas sobre a tcnica de especifica-


o 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) somente a l;
(B) somente a II;
(C) somente a III;
(D) somente l e li;
(E) 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) somente l e II;


(B) somente t, II e III;
(C) somente l, 111 e IV;
(D) somente II, III e IV;
(E) 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. (Cer-
to/Errado)

14- (SERPRO) Uma das vantagens dos mtodos de anlise e projeto orien-
tado a objetos o aumento do gap conceituai entre os artefatos produ-
zidos nas fases de anlise, projeto e implementao. (Certo/Errado)

GABARITO

01 (A)
02 (A)
03 (B)
04 (E)
05 (A)
06 (E)
07 (B)
08 (D)
09 (C)
10 (B)
11 (E)
12 (A)
13 Errado
14 Errado
exerccios
Exercitando resolvidos
Aps escrever seu primeiro livro, Desen-

modelagem volvendo Aplicaes com UML - do con-


ceituai implementao, atuaiiz-lo para
Desenvolvendo Aplicaes com UML2.0,
a autora, ao basear-se na experincia em

emUML 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