unifei - tópicos especiais em programação · instituto de engenharia de sistemas e tecnologias...

6
UNIFEI Universidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI Disciplina CCO02 – Engenharia de Software II Professor 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 carros são formados por rodas, motor e assessórios de aerodinâmica. As rodas são caracterizadas pelo tamanho do raio e pela largura do pneu. O motor pela quantidade de cilindros e tamanho do cilindro. Os assessórios de aerodinâmica são caracterizados pelo tipo (aerofólio ou bico) e tamanho. Construa uma classe que seja capaz 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. As casas são formadas por sala, banheiro, cozinha, quarto, e copa. Sobre a sala deve-se guardar tipo piso e quantidade de tomadas. Sobre o banheiro deve-se guardar  quantidade de tomadas e se possui bidê. Sobre a cozinha se tem piso até o teto e a quantidade de tomadas. Sobre o quarto deve-se guardar a quantidade de tomadas e se possui guarda roupa embutido. Existem 3 tipos de casas A, B e C. A casa A possui 1 sala, 1 banheiro, 1 cozinha e 2 quartos. A casa B possui quantidade m 2  de quintal, 1 sala, 2 banheiros, 1 cozinha e 3 quartos. A casa C possui uma quantidade m 2  de quintal e jardim, alem de 1 sala, 3 banheiros, 1 cozinha, 1 copa 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 confeitaria que podem ser fritos ou assados. A confeitaria fabrica salgados do tipo esfirra e pastel, além de doces do tipo torta e churros. Sobre a esfirra deve-se guardar se é aberta ou fechada e tipo de recheio. Sobre a coxinha deve-se guardar o tipo de recheio e se tem ou não requeijão. Sobre a torta deve-se guardar o tipo recheio e se possui ou não tampa. Sobre o churros deve-se guardar o tipo recheio e a cobertura (açúcar ou canela). Use o padrão Abstract Factory. 4) Implemente um sistema de lava-jato para carros. O atendimento é feito através de um dos serviços: busca-e-traz ou por agendamento. No serviço de busca-e-traz um cliente em uma data solicita que o carro seja  buscado e levado em um endereço. No serviço de agendamento um cliente em uma data leva o carro ao lava-jato. 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 prototipo para 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 aluno defente 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 e orientar novamente seus ex-alunos.

Upload: duongnhi

Post on 26-Dec-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

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 deve­se guardar tipo piso equantidade de tomadas. Sobre o banheiro deve­se guardar  quantidade de tomadas e se possui bidê. Sobre acozinha se tem piso até o teto e a quantidade de tomadas. Sobre o quarto deve­se 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 deve­se guardar se é aberta ou fechada e tipo de recheio. Sobre a coxinhadeve­se guardar o tipo de recheio e se tem ou não requeijão. Sobre a torta deve­se guardar o tipo recheio ese possui ou não tampa. Sobre o churros deve­se guardar o tipo recheio e a cobertura (açúcar ou canela).Use o padrão Abstract Factory.

4) Implemente um sistema de lava­jato para carros. O atendimento é   feito através de um dos serviços:busca­e­traz ou por agendamento. No serviço de busca­e­traz 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 aolava­jato. 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 ex­alunos.

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 deve­se guardar se é aberta ou fechada e tipo de recheio. Sobre a coxinha deve­se 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 deve­se armazenar o CGC, endereço e o químico responsável. Sobre as fábricas deve­se se armazenaro endereço CGC, endereço e número de operários. Sobre as lojas   deve­se 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: X­Burger, X­Tudo, Frango­Simples e Frango Tudo. OX­Burger é 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 X­Tudo é 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.   OFrango­Simples   é   feito com 1 filé  de frango empanado, 5  folhas de alface,  2  fatias de queijo,  75g demaionese e uma pão de leite.  O Frango­Tudo é 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.