Ligação de dados abstractos a classes java - Java - Portugal-a-Programar
Ligação de dados abstractos a classes java
Por Camara, 14 de Maio de 2007 em Java
Tenho um trabalho para fazer de estruturas de dados, mas estou com alguma dificuldade em deduzir os dados para uma classe java.
c r i a r F a i x a : T i t u l o i n t −−>? Faixa ;
t i t u l o : Faixa −−> T i t u l o ;
duracao : Faixa −−> i n t ;
T : T i t u l o ; D: i n t ;
c r i a r F a i x a ( T , D) i f D >= 1 ;
T : T i t u l o ; D: i n t ; F1 , F2 : Faixa ;
t i t u l o ( criarFaixa (T , D) ) = T ;
duracao ( c r i a r F a i x a ( T , D ) ) = D ;
end s p e c i f i c a t i o n
Algum de voçês me pode dar uma ajuda.
O projecto até nem é dificil, cadeira de AED @ fcul estou certo?
Também estou a fazer o projecto, e estou na parte de finalizar os contratos e começar os testes aka debugging.
Qual é a tua dúvida concreta?
Essa especificação, traduz numa linguagem mais formal, qual deve ser o aspecto da classe Faixa, os contratos, e os metodos que nela deve conter.
Os dominios, são as restrições aos metodos, e os axiomas são o que cada observador faz quando chamam um constutor, nada de muito dificil.
A classe Memoria tem uma especifição algo mais complicada, mas "fazível".
Não exites em colocar a tua dúvida concreta
A minha dúvida é que não consigo extrair uma classe mediante uma especificação.
Além disso quanto à estrutura de dados, quero fazer com uma double linked list, mas não estou a conseguir adaptar o código aisepodes a uma estrutura. :wallbash:
Se me puderes ajudar!
A especificação orienta a tua classe, a nível de contratos axiomas e todos aqueles argumentos lá escritos.
O refinamente traduz para uma linguagem mais "aportuguesada" o conceito da classe, ou seja, os metodos, os argumentos, e que tipo de objecto/estrutura ou tipo primitivo deve devolver.
Relativamente à DLL, eu usei uma SLL, mas tens duas opções. Ou programas uma DLL dentro da classe AiSePodes(como nested class, e como temos vindo a fazer nas aulas), ou crias uma classe à parte, já como Lista.
Eu apenas tenho duas classes como pedido pelo enunciado, mas dentro do AiSePodes tenho: uma representação de NO, a SLL(lista simplesmente ligada por nos ligados entre si), e o MeuIterador.
Começa por fazer a classe faixa, lá diz-te quais são os teus métodos, para além do construtor(que vem com nome diferente, mas o nome do construtor tem que ser igual ao da classe), usa mais 2, e se quiseres um 3º aka toString().
No AiSePodes, se olhares no AiMusica, mais precisamente no Menu(ou em cada método que esse menu chama), estão lá os metodos que o AiSePodes chama, e se quiseres podes começar por aí.
O prazo está a acabar, se bem me recordo a entrega é de hoje a 8 dias
Um dia temos de nos encontrar na FCUL.
Já agora está a definir a capacidade () como números de faixas, ou o tempo de cada faixa.
Já me tinha esquecido deste tópico. Se tiveres duvidas manda pm com o teu msn.
Já agora induzi-te a erro.
A especificação e as classes são dois mundos à parte. A especificação é do mundo dos contractos, e as classes são do mundo java. O refinamento faz a ligação entre esses dois mundos, ligação essa que é observada/compilada pelo congu.
Se fizeres uma estrutura de dados tipo, arvores, listas, pilhas, filas, convém fazer uma classe à parte, como é um conceito que faz sentido fora da classe AiSePodes, é possível que possa ser usado para outros meios.