Diploma Universitario di Ingegneria Informatica
Esame di Fondamenti di Informatica II - primo modulo
A.A. 2000/01 - Appello del 14 dicembre 2001

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

TipoAstratto Buffer

Sorte BF (sorta per il dominio di interesse)

Funzioni

FineTipoAstratto

Si vuole scrivere una classe C++ Buffer che realizzi il tipo astratto Buffer, considerando che per riferirsi al tipo astratto Dato è necessario utilizzare la classe Dato che si suppone già realizzata, e che mette a diposizione il costruttore di copia, l'assegnazione, il distruttore, e un metodo dimensione() che restituisce la dimensione in byte del dato rappresentato dall'oggetto di invocazione (il resto della definizione della classe non interessa).

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

Domanda 2   Si scriva la classe Buffer (file .h e file .cpp) secondo le scelte di progetto illustrate per la Domanda 1. Scrivere il codice di tutte le funzioni pubbliche e private della classe.

Problema 2   Realizzare una funzione Accoda esterna (non friend) della classe Buffer che dati due oggetti b1 e b2 di tipo Buffer, inserisca tutti gli elementi di b2 in b1 se questi complessivamente non superano la capacità residua di b1, e non faccia niente altrimenti.

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.