Você está na página 1de 2

DEPARTAMENTO DE INFORMTICA FACULDADE DE CINCIAS UNIVERSIDADE DE LISBOA

Desenvolvimento Centrado em Objectos


Licenciatura em Informtica

Exame 1 poca
18 de Junho de 2005

Aviso

Identifique, com o seu nome e nmero de aluno, todas as folhas que entregar e numere-as com n de folha/n total de folhas.

Durao 3 horas

GRUPO I

[3+1+3+4+1]

Considere um sistema de software embebido num figorfico que mantm informao relativamente aos produtos armazenados e que opera o termstato tendo em conta a sua carga.
Caso de Uso Retirar Produtos Actor Principal Utilizador Interesses Utilizador: Pretende rapidamente localizar os produtos pretendidos e obter sempre os produtos h mais tempo guardados. Pr-Condies: Ps-Condies: A informao acerca dos produtos guardados no frigorfico actualizada. O valor do termostto actualizado. Cenrio Principal de Sucesso 1. O Utilizador indica ao Sistema que quer retirar produtos do frigorfico. 2. O Sistema pede ao utilizador um tipo de produto. 3. O Utilizador indica ao Sistema um tipo de produto. 4. O Sistema confirma que existe pelo menos um produto desse tipo no frigorfico, mostrando o seu identificador e a gaveta em que o mesmo se encontra guardado. O Sistema repete os passos 2-4 at o Utilizador assinalar que acabou. 5. O Sistema regista que os produtos entretanto identificados foram retirados do frigorfico. 6. O Sistema actualiza o valor adequado do termstato para a carga actual.

1 2

Apresente um Diagrama de Sequncia do Sistema (SSD) para o cenrio de sucesso do caso de uso apresentado. Explique em que situaes verdadeiramente importante fazer Diagramas de Sequncia do Sistema (SSDs) para cenrios alternativos.

3 4

Apresente um modelo do domnio que inclua os conceitos relevantes que surgem no caso de uso apresentado. Desenhe a operao do sistema que captura o passo 3 do caso de uso. Apresente esse desenho atravs de diagramas de colaborao UML e indique os padres de desenho que utilizou para atribuir as responsabilidades envolvidas. Explique de que forma a aplicao do princpio de desenho High Cohesion contribui para a qualidade do software. [2+3+1.5+1.5]

GRUPO II
Considere o seguinte interface :
/** Interface que representa elementos com relao de * de ordem total em que ha ainda a noo de * elemento seguinte. */ public interface Successorable extends Comparable { /** O elemento seguinte na relacao de ordem. * @ensures compareTo(\result)==-1 */ Successorable suc(); }

Apresente um interface IIntervalo que represente intervalos fechados definidos por objectos com o tipo Sucessorable. O conceito representado por IIntervalo portanto uma generalizao dos intervalos fechados de inteiros, por e.x., [2,7]. O interface IIntervalo deve ter operaes que permitam: saber os dois extremos que definem o intervalo; saber se outro intervalo est estritamente antes (por exemplo [2,5] est estritamente antes de [7,10] mas no est estritamente antes de [3,6]); obter um conjunto ordenado com os elementos no intervalo (por exemplo no intervalo [2,5], esto {2,3,4,5}).

Programe uma classe MeuIntervalo que implemente IIntervalo e cujas instncias possam ser criadas dando os dois extremos do intervalo; que redefina os mtodos toString() e equals() de Object de forma apropriada. Explique se dever ou no ser tambm redefinido o mtodo hashCode(). Pretende-se incluir numa classe Xpto um mtodo intervaloToString que devolve uma String com os elementos pertencentes a um dado intervalo. Este mtodo deve ser acessvel apenas a classes clientes na mesma package que Xpto. Indique, justificando, qual deve ser a assinatura desse mtodo. Considere que no contexto de uma determinada aplicao quer usar intervalos de inteiros. Como o poderia fazer usando a classe MeuIntervalo e o interface IIntervalo e a classe Integer? Sugesto: usando a herana, defina uma especializao de Integer. Recorrendo soluo que indicou, escreva um pedao de cdigo que, pela ordem indicada: 1 cria o intervalo [2,7]; 2 cria o intervalo [3,9]; 3 v se o primeiro intervalo est estritamente antes do segundo; 4 imprime no cran os elementos do primeiro intervalo por ordem crescente.

Você também pode gostar