Diploma Universitario di Ingegneria Informatica
Esame di Fondamenti di Informatica II - primo modulo
A.A. 2002/03 - Appello del 8 aprile 2003

Problema 1   Si consideri la seguente specifica del tipo astratto Biblioteca:

TipoAstratto Biblioteca

Sorte BB(sorta per il dominio di interesse)

Funzioni

FineTipoAstratto

Si vuole scrivere una classe C++ Biblioteca che realizzi il tipo astratto Biblioteca, considerando che per riferirsi al tipo astratto Libro ed al tipo astratto Persona è necessario utilizzare le classe Libro e Persona che si suppongono già realizzata, della quali però non è nota la definizione.

Domanda 1   Si illustrino le scelte di progetto relative alla realizzazione del tipo astratto Biblioteca mediante la classe C++ Biblioteca.

Domanda 2   Si scriva la classe Biblioteca (file .h e file .cpp) secondo le scelte di progetto illustrate per la Domanda 1. Scrivere il codice delle funzioni pubbliche e private della classe. La realizzazione del codice delle funzioni che realizzano Nome, Presente, e due a scelta tra Presta, Restaura, e RendiDisponibile è opzionale; tutto il resto è obbligatorio.

Problema 2   Realizzare una funzione esterna (non friend) della classe Biblioteca che, dato un oggetto bdi tipo Biblioteca, restituisca un nuovo oggetto Biblioteca contenete gli stessi libri ma tutti nello stato di diponibile.

Problema 3   Spiegare brevemente il significato delle nozioni di coesione, information hiding, accoppiamento, e interfacciamento esplicito, e descrivere i criteri fondamentali che legano tali nozioni con la qualità della modularizzazione.