Sei sulla pagina 1di 129

Ana Cristina Melo

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

JMU

Apresentao

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

X Exercitando Modelagem em UML

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

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

Sumrio

1. Encontrando Classes, Atributos e Relacionamentos 1. Exerccio: Conta de Luz


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

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

2. Desenhando Diagrama de Classes a partir de Minicenrios


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

24
25 28 30 33 33 35 36 37 39 42

XII Exercitando Modelagem em UML

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

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

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

4. Exercitando a Identificao de Classes a partir de Casos de Uso.. 107 44. Cenrio: Encomenda de placas 107 45. Cenrio: Rdio Txi Mar & Sol 108 46. Cenrio: Treinador de Vlei 110 47. Cenrio: Controle de Bolo 111 48. Cenrio: Jogo da Velha 113 5. Alguns Exerccios sobre Diagrama de Mquina de Estados 49. Cenrio: Controle de Tarefas 50. Cenrio: Encomenda de Placas 51. Cenrio: Rdio Txi Mar & Sol Apndice. Questes de Concursos Pblicos sobre Orientao a Objetos e UML 114 114 115 115 117

Captulo

Encontrando Classes, Atributos e Relacionamentos

Um dos principais diagramas da UML o Diagrama de Classes. Observando meus alunos, no vejo dificuldade no aprendizado do que um relacionamento de associao, herana ou agregao. Vejo dificuldade em se abstrair o conceito desses relacionamentos do mundo real, ou melhor, de um problema real. Provavelmente seja fcil entender que nome atributo de pessoa, e que funcionrio uma herana de pessoa. Mas ser que o nvel de facilidade permanece o mesmo quando estamos diante de um problema real e este precisa ser abstrado para atributos, classes, relacionamentos e outros elementos? Posso apostar que no! E como possvel que essa abstrao se torne uma tarefa natural? Respondo: exercitando e/ou aprendendo por meio de anlise de exerccios prontos.

Produto cermico, geralmente em forma de paraleleppedo, para

construes.

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

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

1. EXERCCIO: CONTA DE Luz


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

4 Exercitando Modelagem em UML

IMAGEM DA PLANILHA:
LISTA DE ACOMPANHAMENTO DE GASTO DE LUZ

data leitura n" leitura


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

kw gasto
460 350

^
206,43 157,07 ago/05 Jul/05

data pagto Jjgj^


15/07/2005 15/08/2005 15,33 12,06

350 460

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

RESOLUO: Classe
Atributos dataLeitura : date nmeroLeitura: integer qtdKwGasto : integer valorPagar: real daiaPagamento : date mediaConsumo: real Mtodos cadastrarConta verificaMesMenorConsumo : string verificaMesMaiorConsumo: string

ContaLuz

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

2. EXERCCIO: CLASSE TEXTOSAIDA


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

Encontrando Classes, Atributos e Relacionamentos 5

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

RESOLUO:
Classe
Atributos

Mtodos

TextoSaida

enumeration EnumTpoComponente

enumeration EnumCor

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

cadastrar exibirTexto

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

3. EXERCCIO: CLASSE BONECOEMMOVIMENTO


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

6 Exercitando Modelagem em UML

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

RESOLUO:
Classe Boneco Atributos
nome : string coordenadaX : integer coordenadaY : integer direcaoAtual : EnumDirecao cima baixo direita esquerda Mtodos cadastrar mover (novaCoordenadaX: integer, novaCoordenadaY: integer)

enumerai ion EnumDirecao

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

4.

EXERCCIO: HORRIO DE REMDIOS

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

Encontrando Classes, Atributos e Relacionamentos * 7 No caso de Maurcio atrasar o horrio de tomar o remdio num determinado dia, a planilha reorganiza os horrios daquele dia. EXERCCIO: Identifique as classes, atributos e mtodos desse cenrio. Represente os relacionamentos como atributos derivados. RESOLUO: Classe Atributos usurio : strng datalnicio : date qtdDias : integer qtdVezesDia : integer dosagem : real remdio : string /planrlnaHorario : Coleo de HorarioRemedio data : date horrio : time Mtodos

PrescricaoRemedio

sugerirHorarios exibirPlanilhaHorarios (dataReferencia : date )

HorarloRemedio

cadastrarHorario

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

8 Exercitando Modelagem em UML

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

5. EXERCCIO: GASTOS DIRIOS


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

RESOLUO:
Classe TipoGasto Atributos descricaoTipo : string /tipo : Classe TipoGasto data : date valor : real formaPagamento : EnumFormaPagamento dinheiro cheque carto chequePre Mtodos cadastrar cadastrar gerarRelatoroMensal{mesAno: string)

Gasto

enumerationi EnumFormaPagamento

COMENTRIOS SOBRE A RESOLUO:


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

Encontrando Classes, Atributos e Relacionamentos 9

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

6.

EXERCCIO: COMANDA ELETRNICA

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

RESOLUO:
Classe Produto Atributos cdigo : string descrio : string precoUnitario : real numero : integer /valorTotal : real /itens : Coleo de ItemComanda /produto : Produto quantidade : integer Mtodos cadastrar registrarltem( item : ItemComanda ) fecharComanda cadastrar

Comanda

ItemComanda

10 Exercitando Modelagem em UML

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

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

7. EXERCCIO: LISTA DE COMPRAS


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

Qtd
Compra
8 6 3 6

Kg Kg Kg Kg

7
6 2

7,5

Preo Estimado 1,80 2,10 1,05 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 ListaCompra ItemCompra Atributos ms : integer /itens : Coleo de ItemCompra /total Estimado : real /produto : Classe Produto qtdEfetivaCompra : real nome : string unidadeCompra : string qtdPrevistoMes : real precoEstimado : real Mtodos cadastrar obterTotalEstimado{ms : integer) cadastrar cadastrar

Produto

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

12 Exercitando Modelagem em UML

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

8. EXERCCIO: LISTA DE COMPRAS (VARIAO A)


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

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

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

ItemCompra

Produto

cadastrar

COMENTRIOS SOBRE A RESOLUO: a) Os atributos e ou mtodos criados esto em negrito. O que foi retirado consta riscado.

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

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

9.

EXERCCIO: LISTA DE COMPRAS (VARIAO B)

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

1.80 1.75 2,05 2.10 2,25

XXX
YYY XXX XXX XXX

14 Exercitando Modelagem em UML

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

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

'

ItemCompra

Produto

cadastrar

.
cadastrar

HistoricoCompra

Supermercado

cadastrar

*m

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

Encontrando Classes, Atributos e Relacionamentos 15

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

10. EXERCCIO: LISTA DE COMPRAS (VARIAO C)


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

RESOLUO: MTODO DA CLASSE HISTORICOCOMPRA: obterSupermercadoMaisVantajoso(mesReferencia: integer): Supermercado


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

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

11. EXERCCIO: LISTA DE COMPRAS (VARIAO D)


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

16 Exercitando Modelagem em UML

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

RESOLUO: CLASSE: ATRIBUTO:


HistoricoCompra validoParaAnalise: boolean

12. EXERCCIO: COLECO DE CD's


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

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

RESOLUO:
Classe Musico Atributos nome : string ehSolo : boolean Mtodos cadastrar

Encontrando Classes, Atributos e Relacionamentos 17

Classe
CD

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

Mtodos cadastrar

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

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


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

RESOLUO:
Classe Musico Atributos nome : string ehSolo : boolean /musico : Classe Musico titulo : string ano : tnteqer Mtodos cadastrar cadastrar listarCdsPorMusico(musico: Classe Musico)

CD

18 Exercitando Mocielagem em UML Classe Atributos ehDuplo : boolean ehColetnea : boolean /ItstaMusIcas : Coleo de Musica nome : string tempoFaixa : real Mtodos listarCdsPorMusica(musica: Classe Musica)

Musica

cadastrar

CD

0..*

1.-"

Musico

1..'
Musica

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

14. EXERCCIO: SALA DE REUNIO


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

Encontrando Classes, Atributos e Relacionamentos 19

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

IMAGEM DA PLANILHA:
QUagosto Horrio 08h30m 09h 09h30 10h 10h30 11h Sala 101 Dr. Glauco Assunto: processo empresa Mar e Lua Sala 105 Sala 201 Mariana - assunto: anlise de material

Dra. Maria- Assunto: palestra sobre, a nova lei de falncias

11h30

Dra. Maria assunto: reunio de projeto

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

RESOLUO:
Classe
Atributos /sala : Classe Sala Reunio dataAIocacao : date horalnicioAlocacao : time horaFimAlocacao : time /responsavelAlocacao: Classe Funcionrio assunto : string Mtodos aiocar realocar(novaData : date, novaHoralnicio: time, novaHoraFim: time, novaSala: Classe Sala) cancelar

AlocacaoSala

20 Exercitando Modelagem em UML Classe Funcionrio Atributos nome : string cargo : string ramal : integer numero : integer qtdLugares : integer Mtodos cadastrar cadastrar obterSalaLivrefdata: date. horalnicio: time. horaFim: timel : coleco de SalaReuniao

SalaReuniao

SalaReuniao

O
o..AlocacaoSala
0..*

Funcionrio

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

Encontrando Classes, Atributos e Relacionamentos 21

15. EXERCCIO: SALA DE REUNIO (VARIAO A)


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

Classe

AlocacaoSala

Funcionrio

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

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

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

SalaReuniao

Material

22 Exercitando Modelagem em UML

SalaReuniao

O
0..'

AlocacaoSala
0..*

0..*

Funcionrio

0..*

Material

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

16. EXERCCIO: HERANA


Observe as duas classes adiante:
Classe Atributos matricula: integer nome: string dataNascimento: date /endereo: Classe Endereo /telsContato: Coleo de Telefone /cargo: Classe Cargo salrio: real dataAdmissao : date Mtodos

Funcionrio

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

Encontrando Classes, Atributos e Relacionamentos 23

Classe

Cliente

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

Mtodos

cadastrar obterldade

;,

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

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

Pessoa

Funcionrio

Cliente

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

Captulo J^B

Desenhando Diagrama de Classes a partir de Minicenrios

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

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

24

Desenhando Diagrama de Classes a partir de Minicenrios 25

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

17. MINICENRIO: CONTROLE DE TAREFAS,


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

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

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

RESOLUO (DIAGRAMA DE CASOS DE Uso):

extends.

extends Pessoa Verificar Concluso da Tarefa

Desenhando Diagrama de Classes a partir de Minicenrios 27

RESOLUO (DIAGRAMA DE CLASSES):


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

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

oenumarateda EnumStatusTarefa

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

ai i v concluda

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

28 Exercitando Modelagem em UML

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

18. MINICENRIO: LIGAES TELEFNICAS VIA MODEM


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

Exemplo: Ligao de 2m Ligao de 4m30s


Ligao de 8m

- 1 pulso - 2 pulsos
- 3 pulsos

- Os finais de semana possuem uma promoo. Cada ligao contabiliza somente um pulso, independente do nmero de minutos de conversao.
EXERCCIO: 1. Desenhe o diagrama de casos de uso. 2. Desenhe o diagrama de ciasses completo.

Desenhando Diagrama de Classes a partir de Minicenrios 29

RESOLUO (DIAGRAMA DE CASOS DE Uso):


Listar ligaes de umpeciodo

iqclude
N \ "i

Pessoa include Calcular pulsos

Cadastrar valores variveis para regra de clculo

RESOLUO (DIAGRAMA DE CLASSES):


Agenda
O..* O..'

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

nomeContalo: string OddTeleooe: string telefone: string

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

30 Exercitando Modelagem em UML

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

19. MINICENRIO: TESTES DE FIXAO


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

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

RESOLUO (DIAGRAMA DE CASOS DE Uso):


exlendsu

Professor

exlends

exiends

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

32 Exercitando Modelagem em UML


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

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

RESOLUO (DIAGRAMA DE CLASSES):


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

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

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

Disciplina

O
nome: strirtg

Desenhando Diagrama de Classes a partir de Minicenrios 33

20. MINICENRIO: TESTES DE FIXAO (VARIAO A)


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

RESOLUO: Na classe Questo so includos dois atributos: -fatorAparecimentoNumerador: integer - fatorAparecimentoDenominador: integer COMENTRIOS SOBRE A RESOLUO: a) Repare que o cenrio desse exerccio complexo, mas o reflexo dessa complexidade no no modelo de classes e sim no cenrio do caso de uso "Gerar Questes Aleatrias", que corresponde implementao do mtodo geraQuestaoAleatoria. No modelo de classes, bastou acrescentar dois atributos.
f

21. MINICENRIO: FESTAS INFANTIS


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

34 * Exercitando Modelagem em UML

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

RESOLUO (DIAGRAMA DE CLASSES):


Tema

ItemTema

nome: string valorAluguel: real corToalfia: string

1..*
nome: string descrio: string

O..'

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

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

endereo da lesla

1..'

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 papel de dona de uma microempresa informal, o ator foi identificado como Diretor.

22. MINICENRIO: FESTAS INFANTIS (VARIAO A)


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

Quais so as modificaes necessrias no modelo para refletir esse cenrio? Responda textualmente. RESOLUO: Na classe Aluguel so includos dois atributos: - valorPagoSinal: real - dataQuitacao: date

36 * Exercitando Modelagem em UML

23. MINICENRIO: CURSOS DE APERFEIOAMENTO


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

RESOLUO (DIAGRAMA DE CASOS DE Uso):

Departamento Administrativo

Desenhando Diagrama de Classes a partir de Minicenrios * 37

RESOLUO (DIAGRAMA DE CLASSES):


Curso
0..'

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

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

Q..'

Pmfessor

nome: strng telefone: siring valorHoraAula: real

24. MINICENRIO: CURSOS DE APERFEIOAMENTO


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

38 Exercitando Modelagem em UML

RESOLUO (DIAGRAMA DE CASOS DE Uso):

Departamento Administrativo

Desenhando Diagrama de Classes a partir de Minicenrios 39

RESOLUO (DIAGRAMA DE CLASSES):


Curso nome: slring carga Horria : real conleudoProgramaUco: valor: real Telefone ddti: slring numero : slring t p : slrng

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

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

Professor nome: Elring telefone: stnng valorHoraAula : real

Matricula

Endereo

(Jala : date ualorPago : real

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

uf : string

25. MlNICENRIO: CLASSIFICADOS NA WEB


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

40 * Exercitando Modelagem em UML Exemplo da divulgao feita por e-mail: Anncios inseridos em 01/08/2005 computador olaca vdeo cen drive DVD imvel venda imvel aluguel
Clique no linfc para acessar os anncios. Resumo de todos os anncios

5 1 1
2 1 2

comoutador Dlaca vdeo oen drive imvel venda imvel aluauel

35
2 3 2 5

O cliente pode cadastrar sees de interesse, a fim de receber os novos anncios pelo e-mail, sem precisar visitar o site.

/
O anncio segue o formato desse exemplo: Seco Computador Pentium 4 3.0 Ghz RS 1.300,00

Computador Pentium 4.0 3.0 Ghz, 256 Mb Memria, HD 40 Gb, gravador de CD. monitor Samsung 17". Tratar Marta
2222-1111/2111-2222 noite

inserido em:

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 qldPelavras : inlEger com Imagem : boolean nome '. string

(otahiaAnunciOs

o..o
Seo da Interesse

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

0..' Cliente 0..'

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

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

26. MlNICENRIO: JOGO DA FORCA


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

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

Desenhando Diagrama de Classes a partir de Minicenrios 43

RESOLUO (DIAGRAMA DE CASOS DE Uso):

Administrador

Jogador

RESOLUO (DIAGRAMA DE CLASSES):


Tema mxne: slring numero: Inlager ImagamPedacoBoneco: Plture maxinoErros: inleger

0.,'

BancoPalavra

Rodada

paiavraOuFrase: slring /ehPrasa:boolean

o..-

ponlosPalavra Certa = IDO oontosLelrg = 15 nomeJogador: string lotalPontos: inleger

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

44 Exercitando Modelagem cm UML

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

27. MINICENRIO: FERRAMENTA DE UML


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

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

RESOLUO (DIAGRAMA DE CASOS DE Uso):

Desenhar rvore Hierrquica

Analista

46 Exercitando Modeiagem em UML

RESOLUO (DIAGRAMA DE CLASSES):


Pacote nome: string

mostra rArvore

enumera te d EnumStatus naolniciado a m Desenvolvimento finalizado a provadoPel oLIsu ario

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

COMENTRIOS SOBRE A RESOLUO:


f

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

28. MINICENRIO: CLUBE DA LEITURA


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

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

RESOLUO {DIAGRAMA DE CASOS DE uso):

entenda Manter emprstimo}^ f Regislrar devoluo '

Bibliotecrio

48 Exercitando Modelagem em UML

RESOLUO (DIAGRAMA DE CLASSES):


Colscaa

nome ; slring

Revrala

t
nojne;E[rinfl

Amigo

numeroEdicao: m tcgw ano: intfler

telefona: suna gnjpc: EfiumGnJpoAmlgo

numero: rnlegar IdenljficacaoEliquebi'. ilring cor: slriOQ

prdio escola

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

29. MINICENRIO: CONDOMNIO


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

Desenhando Diagrama de Classes a partir de Minicenarios - 49

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

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

50 Exercitando M ode l agem em UML

RESOLUO (DIAGRAMA DE CASOS DE Uso):

RESOLUO (DIAGRAMA DE CLASSES):


Apartamento numero: Inleger qLdQuartos: integer ocupao: EnumTrpoOcupaao Proprietria

nome:stnng telefone - :-:nr.q

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

"npoDespeaa
O,.
1

nome : ainng : boolean

mesAno: atring 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 exemplo: gua, luz etc). Depois, o usurio lana as despesas especficas dos apartamentos (por exemplo: multa do ms anterior, taxa do salo de festas etc). O caso de uso Calcular Condomnio chamado para ratear todas as despesas, lanando para cada apartamento as contas a serem pagas. Por exemplo: Suponha que: - existam os seguintes apartamentos - 101 (2 quartos), 102 (3 quartos), 201 (2 quartos), 202 (3 quartos); -totalizando todos os quartos do prdio, h 10 quartos; -foram lanadas as despesas de gua (100,00) e luz (200,00); - o apartamento 101 tem uma taxa de salo de festas de R$ 25,00. O condomnio do apartamento 101 ser: gua (100,00 /10 x 2 quartos) Luz (200,00 /10 x 2 quartos) Taxa do Salo de Festas Total a pagar O condomnio do apartamento 102 ser: gua (100,00/10 x 3 quartos) Luz (200,00 /10 x 3 quartos) Total a pagar R$ 20,00 R$ 40,00 R$ 25,00 R$ 85,00 R$ 30,00 R$ 60,00 R$ 90,00

b) A classe Despesa armazena as despesas do condomnio. O atributo valorRateado indica se esse tipo de despesa de lanamento fixo (o mesmo valor para todos os condminos, como acontece com o salo de festas; ou de valor varivel, como acontece com a gua).

30. MINICENRIO: PEDIATRA


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

52 Exercitando Modelagem em UML

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

RESOLUO (DIAGRAMA DE CASOS DE Uso):

"--

includa

exlends

Secretria

Desenhando Diagrama de Classes a partir de Minicenrios 53

RESOLUO (DIAGRAMA DE CLASSES):

Tefafona nome: slnng and-Braca: slnng dalaNas&meiCo: aSn dalaPrfmeiraCwiauCtB: date aMall : Etring pJan-oParticular: bootoan numera: alring upo: stmg obs:stnng

EiomTipoConsuHofio RanoSaude nome;Blrng limteConsuIlaaMe: Ilha Bon Tljuca

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

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

o..-

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

54 - Exercitando Modelagem em UML

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

31. MINICENRIO: PEDIATRA (VARIAO A)


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

Desenhando Diagrama de Classes a partir de Minicenriog 55 Exemplo do Relatrio de Faturamento:

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

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

Relatrio de Faturamento
Unimed Unimed Unimed Unimed Unimed Cassl Cs si Total Perodo: 01/07/05-31/07/05 30 1140,00 950,00 25 760,00 20
15 15 50 30
280

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

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

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

RESOLUO (DIAGRAMA DE CASOS DE Uso):

Doutora

Secretria

56 Exercitando Modelagem em UML

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


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

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

0..'
PlanoSaude nome: string NmiteConsultasMes: integer prazoCredito: integer vatorConsulta ; real

- _

58 > Exercitando Modelagem em UML

33. MlNICENRIO: APOSTA LOTRICA


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

RESOLUO (DIAGRAMA DE CASOS DE Uso):

Apostador

Desenhando Diagrama de Classes a partir de Minicenrios 59 RESOLUO (DIAGRAMA DE CLASSES):


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

0..'

numeroCcmcurso: inleger data :da!e

1. .*

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

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

COMENTRIOS SOBRE A RESOLUO:

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

Captulo

Exercitando a Identificao de Casos de Uso

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

60

Exercitando a Identificao de Casos de Uso 61 questionar: qual a influncia do ator na aplicao ou o quanto ele influenciado por ela; em quais aes esse ator participa.

34. CENRIO: ENCOMENDA DE PLACAS


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

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

62 Exercitando Modelagem em UML

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

Consultar Cliente

/ Calcular Preo de extenua,-\Venda da Encomenda

Departamento Administrativo

Cadastrar Encomenda

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: Cenrio Prncjpjl: 1. 2. O sistema prepara uma lista de todos os clientes cadastrados. O sistema oferece ao usurio: 2.1 .selecionar um cliente, para alterar seu cadastro; 2.2. localizar um cliente ou conjunto de clientes por meio de pesquisa; 2.3.selecionar a opo de "inserir cliente". Pesquisa de Cliente 3.1. Para localizar um cliente, o usurio deve inserir um trecho de nome e/ou um trecho de telefone. O sistema far a busca parcial. 3.2.0 sistema exibe a lista de clientes que satisfaa o critrio, exibindo para cada um: Diretor da empresa

3.

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

4. 5.

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

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

64 Exercitando Modelagem em UML

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

CADASTRAR ENCOMENDA Descrio: Este caso de uso tem por ofajetivo cadastrar encomendas de placas. Diretor da empresa

Ator:

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

Exercitando a Identificao de Casos de Uso 65

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

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

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

Cenrio Principal:

1.
2. 3.

O sistema busca o total de encomendas com status = "aberto", agrupados por data, excluindose o dia atual.
O sistema verifica a primeira data disponvel da lista, onde o nmero de encomendas seja inferior a seis. O sistema retorna a data disponvel no item 2, como a data prevista de entrega.

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

MODIFICAR STATUS DA ENCOMENDA


Descrio: Ator: Cenrio Principal: Este caso de uso tem por objetivo modificar o status de uma encomenda durante a sua execuo. Diretor da empresa

1. 2.

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

Exercitando a Identificao de Casos de Uso 67 2.5. o valor do pedido: 2.6. o valor do sinal;

3. 4.
5.

27. o staius atual da encomenda. O usurio modifica o status da encomenda para um dos seguintes valores: "Pronto", "Cancelado" ou "Fechado". O usurio confirma a alterao do status.
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 atualizados. Para o cooperado (taxista) cadastram-se: nome, CPF, nmero da carteira de motorista, categoria, data de validade da carteira, nmero do txi na cooperativa (conhecido como nmero de VR), nmero da placa, modelo do veiculo, fabricante, cor do veculo, endereo residencial completo, telefone residencial e celular e data de entrada na Cooperativa. Quando o cooperado se desliga, deve ser cadastrada a data de desligamento.

68 Exercitando Modelagem em UML

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

...

Exercitando a Identificao de Casos de Uso 69

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

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

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

Exercitando Modelagem em UML

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

Diretor da empresa

Receber a identificao do tipo de operao e os dados cadastrais do cliente, no caso de alterao ou excluso. Cenrio Principal:
1. Manuteno do Cadastro

2. 3.

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

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


4. O usurio confirma a operao realizada.

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: Cenrio Principal: rea Administrativa

5.

1.
2.

O sistema prepara uma lista de todos os cooperados cadastrados.


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

3.

4.
5.

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

rea Administrativa

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

1.

2. 3.

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

72 Exercitando Modelagem em UML


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

4. 5.

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:
Cenrio Principal:

rea Administrativa

1. 2.

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

Exercitando a Identificao de Casos de Uso 73

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

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

74 Exercitando Modelagem em UML

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

6. 7.

36. CENRIO: TREINADOR DE VLEI


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

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

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

Tcr,

MANTER JOGO Descrio: Ator: Este caso de uso tem por objetlvo permitir a incluso ou alterao de dados ligados ao cadastro de jogos (competies). 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

3.

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

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

Exercitando a Identificao de Casos de Uso 77

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

4.1 .Aps selecionar um jogador, o sistema habilita as opes de "Alterao", "Consulta" ou "Excluso" de um jogador. 4.2.Em caso de Incluso", o sistema habilita a edio dos dados. 4.3.Em caso de "Alterao", o sistema exibe os dados cadastrados e os habilita para edio. 4.4.Em caso de "Consulta" ou "Excluso", o sistema exibe os dados cadastrados desabilitados
5. para edio. 4.4.1. No caso de excluso, o sistema solicita a confirmao. O usurio informa, no caso de "Alterao" ou "Incluso": 5.1.nome do jogador 5.2. nmero da camisa

6. O usurio confirma a operao realizada. 7. O sisema atualza os dados cadastrais do jogador. Cenrio Alternativo;
- Excluso no permitida

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


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

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

ganhos do time que venceu o set.


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

prepara para um novo set. (Passo 3).


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

78 Exercitando Modelagem em UML

INICIAR SET
Descrio: Ator: Este caso de uso tem por objetivo dar incio ao controle de umsetdevlei. Auxiliar Tcnico

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

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

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

Exercitando a Identificao de Casos de Uso 79


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

LISTAR MAIORES PONTUADORES


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

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

37. CENRIO: CONTROLE DE OBRA


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

80 Exercitando Modelagem em UML

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

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

Emitir relatrio geral B ; !'. comprado

Exercitando a Identificao de Casos de Uso 81

CONSULTAR PRODUTO
Descrio: Ator: Cenrio Principal: Este caso de uso tem por objetivo apresentar os produtos cadastrados e habilitar a Incluso, alterao ou excluso de produtos.

Responsvel pela obra

1. 2.

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

3.

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

5.

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

MANTER PRODUTO
Descrio: Ator: Prgondig;

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

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

82 Exercitando Modelagem em UML

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

Exercitando a Identificao de Casos de Uso 83 5.2.1. Extends [Caso de Uso Manter Item de Solicitao de Compra] O usurio pode solicitar o cancelamento da solicitao de compra. 6.1. O sistema altera o status da solicitao de compra para "cancelada". 7. O usurio confirma a operao realizada. 8. O sistema alualiza os dados cadastrais da solicitao de compra. 8.1. No caso de incluso, o sistema atualiza o status com o valor "aberto". Cenrio Alternativo: - Cancelamento no permitido No possvel cancelar urna solicitao de compra que j tenha tido algum item comprado. Nesse caso, s possvel cancelar os itens da solicitao, 6. MANTER ITEM DE SOLICITAO DE COMPRA Este caso de uso tem por objetivo permitir a manuteno dos itens c e uma Descrio: solicitao de compras (incluso, alterao e excluso). Responsvel pela obra Ator: Cenrio Principal: 1. O sistema prepara uma lista de todos os itens cadastrados. 2. O sistema oferece ao usurio: 2.1.seleconar um item, para alterar seu cadastro; 2.2.localizar urn item ou grupo de itens por meio de pesquisa; 2.3.selecionar a opo de "inserir item". 3. Pesquisa de Item 3.1. Para localizar um itern,o usurio deve inserir trecho do nome de algum produto como critrio de pesquisa. O sistema far a busca parcial. 3.2. O sistema exibe z lista de itens que satisfaa o critrio, exibindo para cada um: 3.2.1. produto 3.2.2. quantidade solicitada 4. Manuteno do Cadastro 4.1.Aps seleconar um item. o sistema habilita as opes de "Alterao", "Consulta" ou "Excluso" de um item. 4.2.Em caso de "Incluso", o sistema habilita a edio dos dados. 4.3. Em caso de "Alterao", o sistema exibe os dados cadastrados e os habilita para edio. 4.4. Em caso de "Consulta" ou "Excluso", o sistema exibe os dados cadastrados desabillados para edio. 4.4,1. No caso de excluso, o sistema solicita a confirmao. 5. O sistema prepara uma lista de todos os produtos cadastrados. 6. O usurio informa, no caso de "Alterao" ou "Incluso": 6.1 .produto, selecionado de uma lista preexistente; 6.2. quantidade solicitada. 7. O usurio confirma a operao realizada. B, O sistema atualiza os dados cadastrais do item.

84 Exercitando Modelagem em UMl.

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

REGISTRAR COMPRA EFETUADA


Descrio: Ator:

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

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

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

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

86 Exercitando Modclagem em UML

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

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

1. 2.

3.4. somatrio geral do total gasto com os produtos.

38. CENRIO: CONTROLE DEOBRA (VARIAO A)


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

RESOLUO: O CASO DE Uso MANTER TIPO DE PRODUTO.

39. CENRIO: SENHA DE ATENDIMENTO


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

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

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

Admlnlairailvn

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

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

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

3.

4.

5. 6.

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

7.

8.

O sistema atualiza os dados cadastrais do assunto. 8.1. No caso de incluso, o sistema gera automaticamente um cdigo de identificao.

Cenrio Alternativo:
- Excluso no permitida

No possvel excluir um assunto que esteja associado a um atendimento. MANTER CAIXAS Descrio:
Ator: Cenrio Principal:

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

1. 2.

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

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

4.

5.

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

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

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

90 Exercitando Modelagem em UML

OBTER ESTATSTICA DO HISTRICO DE ATENDIMENTOS


Descrio: Ator: Cenrio Principal;

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

1. 2. 3.

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

4. 5.

6.

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

OBTER PRXIMO NMERO


Descrio: Ator: Pr-condlco:

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

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

Exercitando a Identificao de Casos de Uso 91 5. O sistema exibe no painel de senhas: 5.1. o nmero da senha 5.2. o cdigo do assunto 5.3. a posio do Caixa (esquerda ou direita)

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

Receber a identificao do caixa que est operando o sistema. Cenrio Principal: 1. O sistema verifica o ltimo atendimento feito para a referida caixa, habilitando a opo de encerrar atendimento. 2. O usurio seleciona a opo de encerrar atendimento. 3. O sistema atualiza o histrico de atendimentos, registrando a data de trmino do atendimento. GERAR SENHA Descrio:
Ator:
Este caso de uso tem por objetivo permitir a gerao de uma senha baseada numa lista de assuntos.

Balco de Informaes

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

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

92 Exercitando Modelagem em UML

40. CENRIO: CONTROLE DE BOLO


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

Exercitando a Identificao de Casos de Uso 93

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

Controlar participantes e pagta ds contes

Gestor da BolSo

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

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

94 Exercitando Modelagem em UML 4.3.Em caso de "Consulta" ou "Excluso", o sistema exibe os dados cadastrados desabilitados para edio. 4.3.1. No caso de excluso, o sistema solicita a confirmao. 5. O usurio informa, no caso de "Alterao" ou "Incluso": 5.1. nome do participante 5.2. ramal 5.3. e-mail 6. O usurio confirma a operao realizada. 7. O sistema atuaiiza os dados cadastrais do participante. 7.1,No caso de incluso, o sistema gera automaticamente um cdigo de identificao. Cenrio Alternativo: - Excluso no permitida No possvel excluir um participante que esteja associado a um bolo REGISTRAR BOLAO Descrio: Ator: Este caso de uso tem por objetivo permitir a manuteno (incluso, alterao e excluso) de um bolo. habilitando para outras tarefas como gerenciar os participantes, as cotas pagas e as apostas. Gestor do Bolo

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

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

96 * Exercitando Modelagem em UML

4.3. 4.4. 4.5. 4.6.

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

IMPRIMIR LISTA DE NAO-PAGANTES


Descrio: Ator: Prjiondljg:

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

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

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

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

41. CENRIO: ESTACIONAMENTO


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

98 Exercitando Modelagem em UML

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

Os donos precisam de relatrios de faturamento dirio e semanal. RESOLUO (DIAGRAMA DE CASOS DE uso E DESCRIO DOS CENRIOS):

Dilatria Atenderrte

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

Exercitando a Identificao de Casos de Uso 99 4. 5. O usurio confirma as alteraes. O sistema atualiza os dados cadastrais do veiculo. 5.1.0 sistema imprime o licke! de estacionamento, como comprovante do motorista. Extends [Caso de Uso Emitir Ticket de Estacionamento]

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

100 Exercitando Modelagem em UML 1.3. valor da hora subsequente 1.4. se no dia preo nico

GERAR RELATRIO DE FATURAMENTO DIRIO


Descrio: Ator; Cenrio Principal:

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

1. 2.

3.

O sistema prepara uma lista de todas as vagas ocupadas no dia. O sistema exibe: 2.1.placa do carro 2.2.tempo de permanncia 2.3.valor pago No final, o sistema exibe o total de valor recebido no dia.

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

42. CENRIO: JOGO DA VELHA


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

Xo / / o 0 \\

\/ /

\/ /\

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

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

.nextends

Jogador

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

102 Exercitando Modelagem em UML


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

MANTER JOGADOR
Descrio: Ator:

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

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

JOGAR
Descrio: Ator: Este caso de uso tem por objetivo receber e controlar a jogada de um jogador virtual ou fsico. Jogador

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

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

43. CENRIO: JOGO DA MEMRIA


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

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

104 Exercitando Modelagem em UML

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

Jogador Administrador

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

Exercitando a Identificao de Casos de Uso 105


Cenrio Alternativo: - Excluso no permitida

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

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

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

106 Exercitando Modelagem em UML

INICIAR PARTIDA Descrio: Ator:

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

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

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

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

Captulo

Exercitando a Identificao de Classes a partir de Casos de Uso

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

44. CENRIO: ENCOMENDA DE PLACAS


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

107

108 Exercitando Modelagem em UML

RESOLUO 44.A (ENCOMENDA DE PLACAS):


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

enurnefatei. EnUmSfglusEncoTirKla aberto pronto cancelado branca cinza

Bnuirarate* EnumCurPlaca

RESOLUO 44.B (ENCOMENDA DE PLACAS):


Encomenda
1..*

Cliente

45. CENRIO: RDIO TXI MAR a SOL


EXERCCIO f Al:

A partir do cenrio descrito no Exerccio 35 do Captulo 3 (Rdio Txi Mar & Sol) e dos casos de uso descritos, identifique as classes, com seus atributos e mtodos. Represente os atributos que sejam do tipo objeo, EXERCCIO fB): Utilizando apenas o nome das classes, desenhe o relacionamento entre as classes.

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

RESOLUO 45.A (RDIO TXI):


Diente codtgo : inTeger nome: slring. /endereo: Enderea /telefones ; lista de Telefone Telefone prefixo ; sbing numero : string tipo : numTlpoTelefone En umTtpoTelefone residencial comercial celular recado

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

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

Cooperado

CartelraMoloriata

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

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

numefP - string categoria . string

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

Ccurida /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: TREINADOR DEVLEI t


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

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

RESOLUO 46 (TREINADOR DE VLEI):


Jogo data: date hora :tima local: Btring adversrio: Glring juiz: slring auxiliar: sbing
3..5

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

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

da J

O
1-*

Jogador
D,t

nome: slring carnia: tnegar

EipoPonLo: EnumTrpoPonLo

EnumTipoQlociueio individual duplo bloqueD

EnumUpoPonto Se Barr.tipaPnlo = bloqueto

triplo

47. CENRIO: CONTROLE DE BOLO


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

112 * Exercitando Modelagetn em UML

RESOLUO 47 {CONTROLE DE BOLO):


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

0..-

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

TipoJogn nome: string qtdMinimaAposta : Inleger qtdMaximaAposta: Inleger

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

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

48. CENRIO: JOGO DA VELHA


EXERCCIO: A partir do cenrio descrito no Exerccio 42 do Captulo 3 (Jogo da Velha) e dos casos de uso descritos, desenhe um modelo de classes completo, incluindo os atributos, mtodos e relacionamentos. RESOLUO 48 (JOGO DA VELHA):
Torneio scoreFinalJogadorl : In legar score Final Jogador2 : integer
0..' D..*

Partida posicaoJogadaX: inleger [0..5J posio Joga d a O : integer [0.. 5]

D..*
Smbolo X

Smbolo O

1
Jogador nome: string ehVirtiial: boolaan

Captulo

Alguns Exerccios sobre Diagrama de Mquina de Estados

Neste capitulo aproveitaremos que alguns cenrios tratados nos Captulos 2 e 3 possuem caractersticas que pedem um controle de estados. Sendo assim, a partir desses cenrios criaremos diagramas de mquina de estados.

49. CENRIO: CONTROLE DE TAREFAS


EXERCCIO:
f

A partir do cenrio descrito no Exerccio 17 do Captulo 2 (Controle de Tarefas) e dos casos de uso descritos, desenhe um diagrama de mquina de estados para controle da mudana de estados de uma tarefa. RESOLUO 49 (CONTROLE DE TAREFAS):
Aguardando E<ecucio da liam da Tarefa eniry/ModificarSlaiusTarea [Aliva) {concluso = 100%]

/ Item 6e execuo lanado

Verificando concluso da tareia

[concluso < 100%] / MudarStatusTarefafCDiitiuida)

114

Alguns Exerccios sobre Diagrama de Mquina de Estados 115

50. CENRIO: ENCOMENDA DE PLACAS


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

/ Cliente pede cancelamento

", Encomenda pronta

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

/ Cliente abandonou encomenda

Aguardando pagamento e enlrega enlfy/M odificarS latus( p ronto)

/ Cliente paga encomenda, ModificaiStalus(lechado)

51. CENRIO: RDIO TXI MAR a SOL


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

116 Exercitando Modelagem em UML

RESOLUO 51 (RDIO TAXI MAR & SOL):

Apndice

Questes de Concursos Pblicos sobre Orientao a Objetos e UML

1-

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

Indique a opo que contenha todas as afirmaes verdadeiras.


a) l e II d) l e III b) II e III e) II e IV c) Ml e IV

2-

(TCM) No contexto da Orientao a Objetos, o conjunto de objetos que tm a mesma estrutura e o mesmo comportamento denominado: b) herana d) encapsulamento

a) classe c) polimorfismo 3-

(Eletrobrs) Considere as seguintes assertivas sobre o diagrama de classes na notao UML: V. uma classe representa um conjunto de objetos cuja cardinalidade sempre maior do que um.

117

118 Exercitando Modelagem em UML

VI. o polimorfismo das operaes uma consequncia da relao de herana entre classes. VII. se um objeto A est associado a um objeto B e B est associado a mais de um objeto C ento, obrigatoriamente, um objeto C estar associado a mais de um objeto A. As assertivas correias so: a) somente l d) somente l e II 4b) somente M e) somente II e III. c) somente III

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

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. Suponha que o sistema se encontra no estado EstadoO, e que ocorra a seguinte sequncia de eventos: a b c b b b c a

Questes de Concursos Pblicos sobre Orientao a Objetos e UML 119

O estado do sistema aps a ocorrncia destes eventos : a) EstadoO d) Estado3 7b) Estadol e) Estado4 c) Estado2

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

120 Exercitando Modelagem em UML

As assertivas correias so: a) somente as dos itens l, H e III; b) somente as dos itens l, II e IV; c) somente as dos itens l, III e IV; d) somente as dos itens II, III e IV; e) itens l, II, III e IV; 8(Eletrobrs) Considere as seguintes assertivas sobre o modelo de classes mostrado abaixo (notao UML padro): I. um objeto livro pode ser associado a mais de um objeto leitor II. um objeto leitor est associado a no mximo um nico objeto livro III. nenhum objeto emprstimo est associado a uma associao entre livro e leitores Livro _
0..1 0..*

Leitor

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 TCNTEMPRESTIMO frmEmprestimo TFRMEMPRESTIMO Create

leitor :LEITOR

ObterCodLeitor

NomeLeitorfcod: string)

MostraNome Leitor

Observe as seguintes assertivas sobre o diagrama de sequncia dado: l. Os nomes dos objetos participantes da sequncia so: TFRMEMPRESTIMO, TCNTEMPRESTIJMO e LEITOR II. ObterCodLeitor um servio de cntEmprestimo III. ObterCodLeitor executado antes de MostraNomeLeitor As assertivas cornetas so: a) somente a l b) somente a II c) somente a III d) somente l e II e) somente II e III 10- (Infraero) Observe as seguintes assertivas sobre a forma de especificao de requisitos conhecida como Casos de Uso: I. II. III. IV. Todo caso de uso tem a participao de pelo menos um ator; Um ator pode participar somente de urn caso de uso; O roteiro de um caso de uso no pode utilizar roteiros de outros casos de uso; O roteiro de um caso de uso pode ser alterado por outro caso de uso.

122 Exercitando Modelagem em UML Os atributos correios so somente: alell; b) l e IV;

c) II, III e IV; d) I. Ill e IV;

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

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

I. classes II. associaes III. mensagem


IV. estado V. transio Os elementos que fazem parte de um diagrama de ciasses so: (A) (B) (C) (D) (E) somente l e II; somente t, II e III; somente l, 111 e IV; somente II, III e IV; somente III, IV e V.

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

GABARITO
01 02 03 04 05 06 07 08
(A) (A) (B) (E) (A) (E) (B) (D)

09 10
11 12 13 14

(C) (B)
(E) (A) Errado Errado

Exercitando modelagem emUML


/

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

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

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

Ana Cristina de Souza Luiz de Melo

.brasport.c

Potrebbero piacerti anche