Lista de exercícios de UML 1. Faça um diagrama de classes para cada um dos casos abaixo: a) Uma loja de automóveis vende carros nacionais, importados, novos e usados. Os carros podem ser vendidos à vista, à prazo ou pela troca pelo carro antigo do cliente, nesse último caso, desejamos cadastrar o carro antigo ao carro vendido. Os carros usados são na verdade carros que foram deixados como troca. Uma venda pode ser feita por um único vendedor ou por um grupo de vendedores. b) Uma agência de viagens vende passagens, estadias em hotéis. Passeios e pacotes que podem agregar todos os anteriores. Os hotéis podem ter 3 categorias diferentes, o que define o preço de sua diária. Os hotéis e as passagens precisam de reservas. Todos os preços são dependentes da época da viagem e as passagens aéreas podem ser pagas a prazo. Defina um sistema capaz de montar pacotes e gerar relatórios de preços. 1
c) Para produção de um filme devemos ter o registro de todas as cenas filmadas, quais os atores que participaram na cena, todos os funcionários que participaram (câmeras, iluminadores, contra-regras, dublês) e o local das filmagens. Cada cena pode ter sido filmada muitas vezes e futuramente será escolhida uma. O filme é composto das cenas escolhidas numa sequência determinada. Cada cena tem uma duração em minutos. Depois do filme montado, o percentual de participação de cada funcionário, incluindo os atores será calculado. O sistema também deve produzir um relatório de cenas, atores e funcionários em cada locação. 2
2. Com relação ao Diagrama de Estado marque a opção falsa: a) Um objeto muda de estado quando acontece algum evento. b) Estado, transição, evento e ator são alguns dos componentes do Diagrama de Estado. c) Apresentam as seqüências que um objeto assume em sua existência em resposta a estímulos recebidos. d) Cada estado de um objeto é tipicamente determinado pelos valores dos seus atributos e (ou) pelas suas ligações com outros objetos. e) O estado inicial indica o estado de um objeto quando ele é criado. 3. Para modelar a dinâmica de um sistema a UML utiliza 5 diagramas: de casos de uso, de seqüência, de colaboração, de estados e de atividades. Considere as afirmações: I. O diagrama de casos de uso mostra uma série de casos de uso e de atores e suas relações. II. O diagrama de seqüência é um diagrama de interação que enfatiza a ordenação de mensagens no tempo. III. O diagrama de colaboração é um diagrama de interação que enfatiza a organização estrutural dos objetos que enviam e recebem mensagens. 3
IV. O diagrama de atividades mostra o fluxo de atividades dentro do sistema. Sobre as afirmações, pode-se dizer que: a) Apenas a I e II estão corretas. b) Apenas a I e III estão corretas. c) Apenas a I e IV estão corretas. d) Apenas a II e III estão corretas. e) I, II, III e IV estão corretas. 4. Desenvolva o Diagrama de Atividades para a lista de eventos abaixo: A autorização do pagamento tem início após um pedido ter sido feito pelo cliente. Ao mesmo tempo, a disponibilidade para cada um dos itens do pedido é verificada pelo depósito. Se a quantidade requisitada de um determinado item existe em estoque, tal quantidade é associada ao pedido. Caso contrário, somente a quantidade disponível no momento é associada ao pedido. O pedido é enviado pelo depósito ao cliente quanto todos os itens estiverem associados e o pagamento estiver autorizado. O pedido será cancelado se a ordem de pagamento não tiver sido autorizada. 4
5. Dados o diagrama de estados abaixo, verifique se apresenta algum erro em relação às transições de estados e descreva sucintamente: 5
Não há um evento para transformar o pedido para o estado expedindo a partir do estado aguardando. 6. Crie o Diagrama de Classes a partir do Diagrama de Casos de uso abaixo: 6
7. Desenvolva o Diagrama de Colaboração a partir do Diagrama de Sequência abaixo: 7
8. Baseado no Diagrama de Classes abaixo, faça o que se pede: a) Acrescente os símbolos de multiplicidade necessários. b) Defina as associações c) Aacrescente os nomes de associações necessários. d) Acrescente as seguintes operações: aquecer, contratar, despedir, reabastecer, reservar, limpar, descongelar, decolar, separar, cancelar e retardar. Caso necessário, acrescente a mesma operação a mais de uma classe. 8
9. Prepare Diagramas de Classes (da maneira mais completa possível) para as seguintes classes: a) Automóvel, motor, roda, freio, luz de freio, porta, bateria, silenciador, cano de escapamento. b) Peça de xadrez, fileira, coluna, casa, tabuleiro, movimento, posição e seqüência de movimentos. 10. Crie o diagrama de classes para o enunciado abaixo e responda as perguntas a seguir: A Assembleia Legislativa possui várias comissões, uma delas é a comissão do orçamento. Ela funciona da seguinte forma: O governo emite uma lista de ítens com códigos que é chamada de Orçamento. Cada ítem possui um valor que será destinado ao ítem, o qual pode ser de vários tipos, como por exemplo, pagamento de pessoal, educação, conservação de estradas, etc. Uma vez emitido o orçamento, cada deputado pertencente à comissão do orçamento faz emendas, ou seja modificações ao orçamento que são votadas. Cada emenda pode ser: de Texto, Prioridade ou Despesa. As emendas de texto apenas indicam um ítem do orçamento e uma modificação no texto do ítem. 9
As emendas de prioridade indicam um ítem e uma preferencia que o deputado dá dentro do ítem, por exemplo, o deputado pode escolher o ítem conservação de estradas e a preferência seria conservação da ponte Rio-Niterói. As emendas de despesa são semelhantes às de prioridade. A diferença é que indicam o valor para que o deputado quer fazer. Esse valor será acrescido num ítem e retirado de outros ítens do orçamento, ou seja, um deputado pode criar uma emenda de despesa para construir uma nova escola e retirar dinheiro da construção de uma estrada e da construção de um monumento. Cada valor retirado de um ítem do orçamento constitui uma retirada. A emenda de despesa deve possuir o valor total das retiradas. Todas as emendas possuem um nome, código e um status que indicará se ela foi aprovada ou rejeitada na votação. Cada Deputado possui um nome, um código e a sigla do seu partido. Cada emenda de despesa deve verificar se a soma das retiradas de vários ítens do orçamento foi colocado no ítem destino, ou seja, não houve desvio de verba. O sistema deve verificar todas as emendas de cada deputado e dizer se houve ou não desvio de verba. Uma vez que vários deputados podem fazer emendas de despesa à um mesmo ítem do orçamento, o valor total do ítem tem que ser calculado em função dos acréscimos e retiradas feitas pelo deputado. Desejamos projetar um sistema que permita que cada deputado da comissão do orçamento crie/modifique/apague os 3 tipos de emendas, as emendas possam ser checadas quanto ao uso da verba e depois possam ser votadas para aprovação ou rejeição. a) Faça uma lista de todas as classes do sistema, com a descrição de cada uma delas b) Faça o diagrama de classes do sistema. c) Escolha 3 tipos de relacionamento diferentes(associação/agregação) e uma herança e descreva sucintamente cada um deles (porque você está fazendo esse relacionamento) d) Descreva o(s) atributo(s) da(s) classe(s) que você tiver definido para modelar as emendas. 10
e) Descreva o(s) Método(s) da(s) classe(s) que você tiver definido para modelar o deputado. 11. Realize o Mapeamento Objeto-Relacional para o Diagrama de Classes criado na questão anterior. 12. Descreve a sequência de eventos ocorridos no Diagrama de Estados abaixo: 1. A conta do cliente é criada pelo banco e é classificada como disponível. 2. O depósito é realizado a partir de uma determinada quantia. 3. Saques são realizados, caso a quantia seja, no máximo, igual ao saldo. 4. Quando o saldo for maior que zero, a conta pode ser fechada. 11
5. Com a conta bloqueada, saques não são realizados e aplica-se juros após 30 dias. 6. A conta sái do estado de bloqueada para disponível quando o saldo for maior que zero. 12