UNIFEI - Tópicos Especiais em Programação · Instituto de Engenharia de Sistemas e Tecnologias...
Transcript of UNIFEI - Tópicos Especiais em Programação · Instituto de Engenharia de Sistemas e Tecnologias...
UNIFEI Universidade Federal de ItajubáInstituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI
Disciplina CCO02 – Engenharia de Software IIProfessor Enzo Seraphim
Lista de Exercícios sobre Padrões de Projeto – Construção
1) Foi solicitado que você criasse um sistema para gerenciar construção de carros de competição. Os carrossão formados por rodas, motor e assessórios de aerodinâmica. As rodas são caracterizadas pelo tamanho doraio e pela largura do pneu. O motor pela quantidade de cilindros e tamanho do cilindro. Os assessórios deaerodinâmica são caracterizados pelo tipo (aerofólio ou bico) e tamanho. Construa uma classe que sejacapaz de construir um carro. Use o padrão Builder.
2) Foi solicitado que você criasse um sistema para gerenciar construção de um condomínio de casas. Ascasas são formadas por sala, banheiro, cozinha, quarto, e copa. Sobre a sala devese guardar tipo piso equantidade de tomadas. Sobre o banheiro devese guardar quantidade de tomadas e se possui bidê. Sobre acozinha se tem piso até o teto e a quantidade de tomadas. Sobre o quarto devese guardar a quantidade detomadas e se possui guarda roupa embutido. Existem 3 tipos de casas A, B e C. A casa A possui 1 sala, 1banheiro, 1 cozinha e 2 quartos. A casa B possui quantidade m2 de quintal, 1 sala, 2 banheiros, 1 cozinha e 3quartos. A casa C possui uma quantidade m2 de quintal e jardim, alem de 1 sala, 3 banheiros, 1 cozinha, 1copa e 3 quartos. Use o padrão Builder.
3) Foi solicitado que você criasse um sistema para gerenciar construção doces e salgados de uma confeitariaque podem ser fritos ou assados. A confeitaria fabrica salgados do tipo esfirra e pastel, além de doces do tipotorta e churros. Sobre a esfirra devese guardar se é aberta ou fechada e tipo de recheio. Sobre a coxinhadevese guardar o tipo de recheio e se tem ou não requeijão. Sobre a torta devese guardar o tipo recheio ese possui ou não tampa. Sobre o churros devese guardar o tipo recheio e a cobertura (açúcar ou canela).Use o padrão Abstract Factory.
4) Implemente um sistema de lavajato para carros. O atendimento é feito através de um dos serviços:buscaetraz ou por agendamento. No serviço de buscaetraz um cliente em uma data solicita que o carroseja buscado e levado em um endereço. No serviço de agendamento um cliente em uma data leva o carro aolavajato. Cada serviço atendido deve formar um caixa diário que é de responsabilidade de um funcionário.Uma outra cópia do serviço atendido deve formar o ficha do cliente. Use o padrão de software prototipopara construir um modelo UML e uma implementação em Java .
5) Implemente em java a classe abaixo, e implemente um método para descobrir qual é a maior batata,maior cenoura e o maior tomate produzido.
6) Um professor só pode orientar um aluno por vez de doutorado em um ano. Ao final do ano o alunodefente e não é mais orientado pelo professor. Um professor é caracterizado por nome e titulação. Um Alunoé caracterizado pelo nome e nome projeto. Construa uma modelagem que permita voltar no tempo eorientar novamente seus exalunos.
UNIFEI Universidade Federal de ItajubáInstituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI
Disciplina CCO02 – Engenharia de Software IIProfessor Enzo Seraphim
Lista de Exercícios sobre Padrões de Projeto – Construção
7) Implemente na linguagem java o modelo UML abaixo e responda qual o nome padrão de construçãousado.
8) A Gula fabrica 4 tipos de produtos que possuem um preço de venda. Os produtos são: bombons cobertospor quantidades variadas de chocolate e um tipo de recheio; barras de chocolate de diversos tamanhos comalgum ingrediente adicional; bolachas com um tipo de massa e outro tipo de recheio; biscoitos com um tipode aroma. As fábricas que fabricam barra só podem fabricar bombons e as fábricas que fabricam bolacha sópodem fabricar biscotos. Construa um diagrama de classes usando pelo menos um padrão de construção ejustifique o padrão usado.
9) Construa um diagrama de classes e a implementação na linguagem java do padrão de projeto fábricaabstrata para criar 2 famílias: Estantes e Mesa. Toda estante tem uma quantidade de divisórias na horizontale na vertical. As estantes de madeira não possuem portas, no entanto, possuem um espaço para televisão(definido pelo tamanho da televisão em polegadas). As estantes de aço possuem uma quantidade de portas ea espessura das lâminas de aço. Todas as mesas possuem uma largura, um comprimento e altura. As mesasde madeira possuem um tipo de madeira utilizada e se possuem detalhes em relevo. As mesas de aço podemter um tampão de vidro ou de pedra (definidas por um enumerado). Existem dois fabricantes destes móveis:um que fabrica móveis de madeira chamado Carpintaria e outro que fabrica móveis de aço chamadoFundição.
10) Implemente na linguagem Java as classes do diagrama UML abaixo. Somente declare o que deve estardentro de cada classe, pois não será avaliado declarações fora do escopo da classe (ex: pacotes, inclusões dearquivos, etc). Responda: Qual o nome desse padrão de projeto.
UNIFEI Universidade Federal de ItajubáInstituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI
Disciplina CCO02 – Engenharia de Software IIProfessor Enzo Seraphim
Lista de Exercícios sobre Padrões de Projeto – Construção
11) Implemente o padrão protótipo genérico abaixo na linguagem JAVA. Crie um main que aloca as classesAluno e Celular.
12) Baseado na classe Protótipo do exercício anterior, crie uma nova interface genérica chamada Igualdadeque tem um método chamado isEqual() que retorna boolean. O parâmetro desse método deve garantir que acomparação seja com outro objeto da mesma classe. Em seguida adicione a implementação desta interfacenas classes Aluno e Celular. Modifique o main para testar a igualdade entre dois alunos com valores deatributos iguais e dois celulares com valores de atributos diferentes.
13) Dado a classe Consulta abaixo, implemente o diagrama que usa o padrão recordador para guardar ohistórico dos tratamentos feitos pela consulta. Faça um main que cria a classe consulta e mude o valor dotratamento 5 vezes. Em seguida, desfaça o tratamento 3 vezes, imprimindo o valor do tratamento na telaapós cada desfazer.
classe sem recordador:
classe com recordador:
14) Todo funcionário deve ter seu nome, cargo, salário e departamento que trabalha na empresa. Nodecorrer do tempo o funcionário pode ser alocado para outros departamentos da empresa. Entretanto, podehaver uma requisição para que o funcionário retorne ao seu departamento anterior. Construa umdiagrama de classes usando o padrão de projeto Recordador.
UNIFEI Universidade Federal de ItajubáInstituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI
Disciplina CCO02 – Engenharia de Software IIProfessor Enzo Seraphim
Lista de Exercícios sobre Padrões de Projeto – Construção
15) Implemente as classes com os relacionamentos abaixo na linguagem Java e responda qual é o padrão deconstrução caracterizado. Somente declare o que deve estar dentro de cada classe, pois não será avaliadodeclarações fora do escopo da classe (ex: pacotes, inclusões de arquivos, etc).
16) Implemente o padrão protótipo genérico CRTP (curiously recurring template pattern) abaixo nalinguagem JAVA. Adicione na sua implementação uma nova interface genérica chamada Igualdade que temum método chamado isEqual() que tem como parâmetro um outro objeto da mesma classe. Essa funçãodeve retorna verdadeiro se ambas classes tem os mesmos valores de atributos. Verifique esse condição para aimplementação desta interface nas classes nas classes Carro e Moto.
17) Foi solicitado que você criasse um sistema para gerenciar construção doces e salgados de umaconfeitaria que podem ser fritos ou assados. A confeitaria fabrica salgados do tipo esfirra e coxinha. Sobre aesfirra devese guardar se é aberta ou fechada e tipo de recheio. Sobre a coxinha devese guardar o tipo derecheio e se tem ou não requeijão. Use o padrão método de fabrica para criar confeitarias especificas paracada tipo de salgado.
UNIFEI Universidade Federal de ItajubáInstituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI
Disciplina CCO02 – Engenharia de Software IIProfessor Enzo Seraphim
Lista de Exercícios sobre Padrões de Projeto – Construção
18) Uma empresa que vende perfume possui uma única matriz, 2 fábricas e 3 lojas de vendas. Sobre amatriz devese armazenar o CGC, endereço e o químico responsável. Sobre as fábricas devese se armazenaro endereço CGC, endereço e número de operários. Sobre as lojas devese se armazenar o endereço CGC,endereço e o número de vendedores. Os perfumes são fabricados pela fábrica e são caracterizados peloidentificador (incremental), nome, preço e linha masculino ou feminino. Qualquer unidade da empresa,matriz ou fábrica ou loja, podem vender perfumes. Quando o perfume é vendido pela matriz ou pela fábricao lucro sobre o valor de custo é de 70%, mas quando é vendido na loja o lucro sobre o valor de custo é de50%. Toda venda incrementa o faturamento anual da empresa que deve ser armazenado na matriz.Construa uma aplicação texto que inicialmente pede as informações de 1 matriz, 2 fábricas, 3 lojas e 2perfumes. Mostre o mostre o faturamento anual da empresa. Faça uma venda de perfumes para cada dessasunidades mudando o perfume. Mostre novamente o mostre o faturamento anual da empresa.
19) Implemente as classes com os relacionamentos abaixo na linguagemJava. Somente declare o que deve estar dentro de cada classe, pois não será avaliado declarações fora doescopo da classe (ex: pacotes, inclusões de arquivos, etc).
20) Implemente as classes com os relacionamentos abaixo na linguagemJava. Somente declare o que deve estar dentro de cada classe, pois não será avaliado declarações fora doescopo da classe (ex: pacotes, inclusões de arquivos, etc).
UNIFEI Universidade Federal de ItajubáInstituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI
Disciplina CCO02 – Engenharia de Software IIProfessor Enzo Seraphim
Lista de Exercícios sobre Padrões de Projeto – Construção
21) A rede McMineiro fabrica quatro tipos de lanches: XBurger, XTudo, FrangoSimples e Frango Tudo. OXBurger é feito com 2 hambúrgueres, 3 folhas alface, 3 fatias de queijo, 50g de molho especial, 1 rodelacebola, 3 fatias de picles e um pão de leite com gergelim. O XTudo é feito com 2 hambúrgueres, 2 folhasalface, 2 fatias de queijo, 50g de maionese, 1 ovo, 3 fatias de bacon e um pão de leite com gergelim. OFrangoSimples é feito com 1 filé de frango empanado, 5 folhas de alface, 2 fatias de queijo, 75g demaionese e uma pão de leite. O FrangoTudo é feito com 2 filés de frango empanado, 2 fatias de queijo, 60gde molho especial, 1 ovo, 3 fatias de bacon e um pão de leite com gergelim. As lanchonetes da franquia sãode dois tipos McMineiro Galinha e o McMineiro Vaquinha. Ambas lanchonetes somente fabricam lanches, noentanto, o McMineiro Galinha fabrica somente lanches de frango e o McMineiro Vaquinha fabrica somentelanches de hambúrguer. Construa um diagrama em UML usando o padrão de projeto fábrica abstrata. Omitamétodos gets e sets para atributos privados da classe e os métodos manipuladores de relacionamentos entreas classes. Neste diagrama não existem classes vazias, ou seja, uma classe sem campos ou sem métodos.
22) Implemente na linguagem java o modelo UML abaixo e responda: qual o nome padrão de construçãousado; e o que faz o método D.metD1(v:String):String.