Metodologie di Programmazione: Lezione 11

Riccardo Silvestri

Estensibilità e riusabilità

Qualsiasi sistema software non banale sarà modificato ed esteso nel futuro. A volte l'estensibilità è parte integrante delle specifiche, come ad esempio nel caso di un prototipo. Anche se non si conoscono in anticipo tutte le possibili estensioni, è bene progettare il sistema software in vista di future estensioni. Procedendo in tal modo la struttura del codice ci guadagnerà in razionalità, leggibilità e possibilità di riuso. Non a caso una migliore riusabilità del codice è favorita proprio dal progettare pensando alle possibili estensioni future. Non solo progettare per l'estensibilità favorisce la riusabilità ma entrambe aiutano anche l'applicazione dell'information hiding. Infatti, la riusabilità di una componente software (ad esempio una classe o un metodo) è facilitata se questa ha poche e ben definite dipendenze con il resto del software. E ciò è strettamente connesso con il fatto che la componente abbia un'implementazione libera da inutili dipendenze. A sua volta proprio la decomposizione del sistema in componenti largamente indipendenti facilita l'estensibilità rendendo più agevole aggiungere componenti o modificare componenti esistenti. Quindi i tre principi, estensibilità, riusabilità e information hiding, se ben usati si aiutano a vicenda.

Questi principi di buona progettazione sono discussi in relazione alle strutture dei primi due homework. La lezione è anche dedicata alla revisione di concetti e alla discussione di esercizi di precedenti lezioni.

30 Mar 2015