Analise e Projeto de Software Orientado a Objetos II - Aula 04 - Resolvida
-
Upload
adriana-freitas-de-carvalho -
Category
Documents
-
view
56 -
download
1
Transcript of Analise e Projeto de Software Orientado a Objetos II - Aula 04 - Resolvida
Engenharia de Software I
Encontrando Classes, Atributose Relacionamentos
Profa. Adriana Freitas de CarvalhoCurso: Sistemas de InformaoUFMSAnlise e Projeto de SoftwareOrientado a Objetos IIINTRODUOObjetivoExercitar a abstrao de atributos, classes e relacionamentos.
ContedoExerccios
21. CONTA DE LUZCENRIO: As informaes a seguir se referem planilha Excel de uma pessoa 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.31. CONTA DE LUZIMAGEM DA PLANILHA:
EXERCCIO:Identifique as classes, atributos e mtodos desse cenrio.4
1. CONTA DE LUZRESOLUO:
COMENTRIOS SOBRE A RESOLUO:O retorno do mtodo string pois traz o ms e o ano (ex: 082005).5
2. CLASSE TEXTOSAIDACENRIO: Para fixao do conceito de classes em sala de aula, criaremos 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: label, edit e memo). 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.Identifique as classes, atributos e mtodos desse cenrio.62. CLASSE TEXTOSAIDARESOLUO:
7
2. CLASSE TEXTOSAIDACOMENTRIOS SOBRE A RESOLUOA 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 classe EnumCor.83. CLASSE BONECOEMMOVIMENTOCENRIO: Crie 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).
EXERCCIOIdentifique as classes, atributos e mtodos desse cenrio.93. CLASSE BONECOEMMOVIMENTORESOLUO:
10
3. CLASSE BONECOEMMOVIMENTOCOMENTRIOS SOBRE A RESOLUOPara 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.114. HORRIO DE REMDIOSCENRIO: As informaes a seguir se referem a uma aplicao de controle pessoal de horrio de remdios. Para cada remdio cadastra-se: o nome de quem vai tomar o remdio, a data de incio, a quantidade de dias que foi prescrita, 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.124. HORRIO DE REMDIOSAo 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 incio do dia, seleciona a opo de planilha de horrios de remdios do dia. No caso da pessoa atrasar o horrio de tomar o remdio num determinado dia, a planilha reorganiza os horrios daquele dia.
EXERCCIOIdentifique as classes, atributos e mtodos desse cenrio.Represente os relacionamentos como atributos derivados.134. HORRIO DE REMDIOSRESOLUO:14
4. HORRIO DE REMDIOSCOMENTRIOS SOBRE A RESOLUO: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.
Toda prescrio tem associada a ela uma planilha de horrios. Isso cria um relacionamento da classe PrescricaoRemedio com a classe Horario-Remedio, representada pelo atributo planilhaHorario. que corresponde a uma coleo de objetos da Classe HorarioRemedio.154. HORRIO DE REMDIOSO mtodo sugerirHoraro monta 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 for preciso para cadastrar todos os horrios em todos os dias.
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.165. GASTOS DIRIOSCENRIO: 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 gasto 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 como atributos derivados.175. GASTOS DIRIOSRESOLUO:18
5. GASTOS DIRIOSCOMENTRIOS SOBRE A RESOLUO:A classe enumeration foi criada para suportar o domnio do atributo FormaPagamento, que consistia de valores fixos e com caractersticas de rara mutao. Numa aplicao de contexto maior, essa classe poderia deixar de ser enumeration para se transformar numa classe de negcios.
Todo gasto refere-se a somente um tipo. Isso cria um relacionamento da classe Gasto com a classe TipoGasto, representada pelo atributo tipo.
Toda a complexidade do relatrio mensal est encapsulada no mtodo gerarRelatorioMensal.196. COMANDA ELETRNICACENRIO: As informaes a seguir se referem a uma aplicao de controle de comanda eletrnica de uma padaria. 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, e finaliza 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.206. COMANDA ELETRNICARESOLUO:21
6. COMANDA ELETRNICACOMENTRIOS SOBRE A RESOLUO:O atributo valorTotal 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.
Toda comanda possui uma lista de itens. Isso cria um relacionamento da classe Comanda com a classe ItemComanda, representada pelo atributo itens. Por sua vez, um item de comanda se refere a somente um produto. Esta representao feita no atributo produto.227. LISTA DE COMPRASCENRIO: 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).23
7. LISTA DE COMPRASESCLARECIMENTOS SOBRE O PROBLEMA: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.As compras so feitas pela prpria Carolina. Por esse motivo, ela no v necessidade de relacionar as marcas dos produtos.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.247. LISTA DE COMPRASRESOLUO:25
7. LISTA DE COMPRASCOMENTRIOS SOBRE A RESOLUO:O mtodo obterTotalEstimado um mtodo que atua sobre 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.
Ou seja, podemos concluir que o atributo totalEstimado que pertence Lista de Compras derivado, pois o resultado desse mtodo. O algoritmo do mtodo obterTotalEstimado(ms: integer) :267. LISTA DE COMPRAS define obj ItemCompra: ItemCompra
obter a coleo de objItemCompra,onde ListaCompra.ms = parmetro ms total O para cada objItemComprasubtotal objItemCompra.qtdEfetivaCompra * objItemCompra.produto.precoEstimadototal total + subtotal fim-para obterTotalEstimado total277. LISTA DE COMPRASToda 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.288. 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 exerccio anterior, para refletir esse novo cenrio.298. LISTA DE COMPRAS (VARIAO A)RESOLUO:30
8. LISTA DE COMPRAS (VARIAO A)COMENTRIOS SOBRE A RESOLUO:
Os atributos e ou mtodos criados esto em negrito. O que foi retirado consta riscado.Com a criao dos atributos precoMaximoAnterior e precoMaximoMes, eliminou-se o atributo precoEstimado. Essa informao ser obtida a partir do atributo precoMaximoAnterior.O atributo precoMaximoAnterior Q cadastrado pelo usurio.O algoritmo do mtodo obterTotatEstimado foi alterado:318. LISTA DE COMPRAS (VARIAO A) define obj ItemCompra: ItemCompra
obter a coleo de objItemCompra,onde ListaCompra.ms = parmetro ms total O para cada objItemComprasubtotal objItemCompra.qtdEfetivaCompra*objItemCompra.produto.precoMaximoAnteriortotal total + subtotal fim-para obterTotalEstimado total328. LISTA DE COMPRAS (VARIAO A)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.
ItemCompra.precoMaximoMes = ItemConpra.produto.precoMaximoAnterior * 1.0533