UNIFEI Disciplina Professor Universidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI CCO02 – Engenharia de Software II Enzo Seraphim Lista de Exercícios sobre Padrões de Projeto – Operação 1) Uma fita pode estar em um dos estados: alugada, em manutenção ou disponível para locação. Toda fita mantém a data de início do estado que se encontra. A fita que está alugada é caracterizada pela matricula do cliente. A fita que está em manutenção é caracterizada por defeito. A fita que está disponível é caracterizada pela prateleira que se encontra. 2) A água pode ser encontrada em 3 estados: sólido, liquido e gasoso. Se a água esta na temperatura abaixo de 0 graus está no estado sólido, se está acima de de 100 graus encontra­se no estado gasoso e no intervalo de 0 à 100 encontra­se no estado liquido. Faça um ou mais métodos para calcular o volume da água se for passado para o estado acima ou abaixo. 3) Implemente na linguagem java o modelo UML abaixo. 4) Implemente na linguagem java o modelo UML abaixo e responda quais os 3 padrões usados. Para cada padrão identificado, caracterize quais são as classes e métodos envolvidos. UNIFEI Disciplina Professor Universidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI CCO02 – Engenharia de Software II Enzo Seraphim Lista de Exercícios sobre Padrões de Projeto – Operação 5) A empresa Parmaleite industrializa derivados do leite. O leite pode estar bom para consumo, coalhado e estragado. Quando o leite está bom para o consumo, existe menos de 1milhão de bactérias por litro. Quando o leite está coalhado, existe entre 1milhão e 10 milhões de bactérias por litro. Quando o leite está estragado e portanto impróprio para o consumo, existe mais de 10 milhões de bactérias por litro. Se o leite está bom para o consumo é medido a sua quantidade e gordura. Se o leite está coalhado é medido a quantidade de soro por litro. Se o leite está estragado é medido sua acidez. Faça a modelagem em UML e implemente na linguagem java. 6) Abaixo é apresentado uma aplicação que faz várias requisições: emagrece, engorda e sabedoria. No entanto, essa aplicação não possibilita criar filas de requisições (log). Construa um diagrama UML uma solução usando o padrão Comando que suporte criar filas de requisições. Apresente a Classe App no diagrama UML, mas não considere na implementação na linguagem Java. Dica: as classes Caminhada, Leitura e Refeicao não devem ser alteradas. 7) Implemente na linguagem Java as classes do diagrama UML abaixo. Somente declare o que deve estar dentro de cada classe, pois não será avaliado declarações fora do escopo da classe (ex: pacotes, inclusões de arquivos, etc). Responda: Qual o nome desse padrão de projeto. 8) Pessoas que foram atingidas por raios gama são condenadas a uma vida compartilhada com os seus dois lados: selvagem e civilizado. O lado selvagem evolui as características de resistência, agilidade e regeneração. O lado civilizado evolui as características de raciocínio dedutivo e grau de observação que ajuda nas ocasiões de fuga. A transição entre civilizado e selvagem acontece quando a pessoa acumula uma quantidade de 80% de raiva, sendo que abaixo dessa quantidade o selvagem torna­se civilizado novamente. Uma pessoa que foi atingida pelos raios gama enquanto salvava um adolescente durante o teste militar foi o cientista Dr. Robert Bruce Banner. Construa um diagrama de classes usando o padrão de projeto Estado. Implemente as classes na linguagem Java, mas somente declare o que deve estar dentro de cada classe, pois não será avaliado declarações fora do escopo da classe (ex: pacotes, inclusões de arquivos, etc). UNIFEI Disciplina Professor Universidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI CCO02 – Engenharia de Software II Enzo Seraphim Lista de Exercícios sobre Padrões de Projeto – Operação 9) Em um país distante existe uma população de indíviduos chamados flangus. Os flangus tem uma energia vital chamada glob que aumenta ou diminui em decorrência a 2 eventos: comer ou dormir. Assim, um flangus somente pode estar se alimentando ou dormindo. A comida dos flangus podem ser de dois tipos: a aglobina, mais calórica, incrementa o glob de um flangus em 3 unidades e é representada pela letra “a”; e a oglobina, menos calórica, incrementa o glob de um flangus em 1 unidade e é representada pela letra “o”. Um flangus dorme sempre por um período fixo de sono e caso não tenha comida próximo ele volta a dormir por mais um período. Cada período de sono, um flangus consome sua energia vital em 2 unidades e é representada pela letra “s”. Faça uma modelagem em UML usando um padrão de software para processar uma expressão que representa a vida de um flangus e retorne sua energia vital (glob). Por exemplo, a s o o a s s, retorna o valor 2. 10) Implemente na linguagem Java as classes do diagrama UML abaixo. Somente declare o que deve estar dentro de cada classe, pois não será avaliado declarações fora do escopo da classe (ex: pacotes, inclusões de arquivos, etc). Responda: Qual o nome desse padrão de projeto.