Informazioni sul documento
- Università
- Politecnico di Milano
- Corso di laurea
- Computer Engineering
- Materia
- Ingegneria del Software
- Classificazione
- Esame · Esame completo
- Contenuto
- Testo d’esame
- Formato originale
- Testo
- Testo ricercabile
Esame completo di Ingegneria del Software per il corso di Computer Engineering presso Politecnico di Milano. Materiale proveniente dall’archivio storico Studwiz e classificato per la consultazione online.
Esame completo di Ingegneria del Software per il corso di Computer Engineering presso Politecnico di Milano. Materiale proveniente dall’archivio storico Studwiz e classificato per la consultazione online.
Qualità dell’importazione: il testo è stato estratto direttamente dal documento originale.
Passaggi rappresentativi riconosciuti nelle diverse parti del materiale. Il testo completo resta presente nella pagina per la ricerca, mentre l’anteprima compatta rende più semplice la lettura.
Ingegneria del Software — Soluzione del Tema 13/07/2021 Esercizio 1 Si consideri la seguente classe Java MusicLibrary per la gestione di una collezione di brani musicali. Ogni brano `e rap- presentato dalla classe immutabile Song che contiene alcune informazioni tra cui l’artista o gruppo musicale ( Artist) che esegue il brano e la data (Date) in cui il brano `e stato registrato, come riportato di seguito. public class MusicLibrary { // Ritorna l’insieme di artisti che eseguono almeno un brano nella collezione. public /*@ pure @ */ Set<Artist> getArtists(); // Ritorna la lista di brani eseguiti dall’artista artist. // Lancia una UnknownArtistException se la collezione non contiene brani di artist. public /*@ pure @ */ List<Song> getByArtist(Artist artist) throws UnknownArtistException; // Ritorna l’insieme dei brani eseguiti in data date. // Lancia una UnknownDateException se nessun brano della collezione e’ // stato composto in data date. public /*@ pure @ */ Set<Song> getByDate(Date date) throws UnknownDateException; // Aggiunge il brano alla collezione. public void addSong(Song s); } public /*@ pure @ */ class Song { // Ritorna l’artista o gruppo che esegue il brano public Artist getArtist(); // Ritorna la data di registrazione del brano public Date getDate(); } Domanda a) Si specifichi in JML il metodo getByDate(). Soluzione Definiamo getByDate() in funzione di getByArtist() e getArtists(). //@requires date != null //@ //@ensures \result != null && ! \result.isEmpty() && //@ (\forall Artist a; getArtists().contains(a); //@ (\forall Song s; getByArtist(a).contains(s); //@ \result.contains(s) <==> date.equals(s.getDate()))) && //@ (\forall Song s; \result.contains(s); //@ s.getDate().equals(date) && getArtists().contains(s.getArtist()) && //@…
Prima pagina del documento.