Diploma Universitario di Ingegneria Informatica
Esame di Fondamenti di Informatica II - primo modulo
A.A. 2001/02 - Appello del 11 dicembre 2002

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

TipoAstratto VideoTape

Sorte VT(sorta per il dominio di interesse)

Funzioni

FineTipoAstratto

Si vuole scrivere una classe C++ VideoTape che realizzi il tipo astratto VideoTape, considerando che per riferirsi al tipo astratto SequenzaVideo è necessario utilizzare la classe SequenzaVideo che si suppone già realizzata, della quale però non è nota la definizione, eccetto che per la funzione durata, che dato un oggetto s di tipo SequenzaVideo va invocata con la sintassi s.durata() e restituisce un double che rappresenta la durata del brano in minuti.

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

Domanda 2   Si scriva la classe VideoTape (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 esterna (non friend) della classe VideoTape che, dato un oggetto v di tipo VideoTape, restituisca un nuovo oggetto VideoTape contenete le stesse sequenze video di v ma in ordine inverso.

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.