Progettazione del Software

Ing. Informatica A.A. 2022/23

Descrizione del Corso


Prerequisiti. Si richiede conoscenza dei fondamenti della programmazione.

Obiettivi. L'obiettivo del corso è duplice. Da una parte introduce alla programmazione orientata agli oggetti, usando il linguaggio Java come strumento per illustrare concetti fondamentali come oggetti, classi, metodi, interfacce, ereditarietà, polimorfismo, tipi generici, package, eccezioni.

Particolare enfasi viene posta sull'uso e sul progetto di librerie software e su aspetti generali come modularità, robustezza, riusabilità e manutenibilità del codice illustrando concetti come astrazione, incapsulamento, mascheramento dell'informazione, generalizzazione e specializzazione che consentono di realizzare applicazioni complesse su larga scala. D'altra parte il corso approfondisce gli aspetti fondamentali relativi alla progettazione del software: le qualità del software, il concetto di modulo e la modularizzazione, la distinzione tra analisi (concettualizzazione) e progettazione (realizzazione), la nozione di specifica, ecc. Gli argomenti vengono trattati dando enfasi ad aspetti metodologici e ad aspetti ingegneristici utilizzando la notazione di UML (Unified Modeling Language) per la fase di analisi, e il linguaggio Java per la fase di progettazione. Alla fine del corso lo studente dovrebbe avere acquisito tecniche e metodi per affrontare problemi di progettazione dei programmi secondo una metodologia basata sulla distinzione tra concettualizzazione e realizzazione, sulla modularizzazione e sull'orientamento agli oggetti.

Materiale didattico.

[1] Slides del corso, A.A. 2021/22 Disponibili in Materiale didattico.

[2] Un manuale Java (se non se ne possiede uno, viene suggerito Cay Horstmann, 2018: Java per impazienti. Pearson)

Tutor del corso: Ing. Flavia Monti (monti at diag dot uniroma1 dot it) e Silvestro Veneruso (veneruso at diag dot uniroma1 dot it)