Anno accademico 2023-2024

PROGETTAZIONE E ANALISI ORIENTATE AGLI OGGETTI

Docenti

Eddy Maddalena
Kevin Roitero
Totale crediti
6
Periodo didattico
Secondo Periodo
Tipologia
Caratterizzante
Prerequisiti. Il corso presuppone la conoscenza di base della programmazione OO (Orientata agli Oggetti).
Metodi didattici. Lezioni prettamente frontali integrate da attività pratiche e interattive. Verranno inoltre proposti seminari tematici specifici.
Modalità di verifica. L’esame è orale su appuntamento. È prevista un’attività extra opzionale (seminario, approfondimento, ecc.) su un argomento specifico da concordare con il docente.

I criteri di assegnazione del voto sono quelli stabiliti dal Corso di Studi e

reperibili al seguente link: https://www.uniud.it/it/didattica/corsi/area-scientifica/scienze-matematiche-informatiche-multimediali-fisiche/laurea/informatica/studiare/criteri.pdf

Altre informazioni. Il materiale a supporto della didattica (slide ed altro) verrà fornito tramite la piattaforma e-learning.
Obiettivi formativi
https://www.uniud.it/it/didattica/info-didattiche/regolamento-didattico-del-corso/LM-informatica/all-B2
Contenuti
Verranno descritti: il linguaggio di modellazione UML (Unified Modeling Language), i principi di costruzione di un buon software OO, i design pattern, il refactoring. Verranno anche discussi alcuni casi di studio di problemi reali.

Programma esteso:

* UML per il progetto. I diagrammi UML usati per la progettazione: diagrammi di classe, di collaborazione, di sequenza, degli stati, di attività, dei componenti e del dispiegamento (deployment).

* I principi della progettazione OO. I concetti e le tecniche che consentono di costruire progetti OO di buona qualità, ad esempio: domini, ingombro, coesione, spazio degli stati, comportamento, conformità di tipo, progetto per contratti, ecc.

* I design pattern. I design pattern stanno alla progettazione OO come la programmazione strutturata sta alla programmazione imperativa classica. I pattern sono schemi di soluzioni ricorrenti, la cui conoscenza semplifica il progetto di nuovo software OO. Vengono presentati e analizzati i pattern principali e introdotti i pattern architetturali.

* UML per l’analisi. Viene completata la presentazione di UML, introducendo i diagrammi di classe concettuali e dei casi d’uso. Vengono discusse le principali tematiche dell’analisi OO con UML.

* Il Refactoring. Viene presentata l’attività del refactoring, volta a migliorare codice già esistente e funzionante.

* Casi di studio e approfondimenti. I concetti e le tecniche introdotti vengono esemplificati in situazioni reali, attraverso un’attività seminariale che può essere svolta, opzionalmente, anche dagli studenti. Alcuni argomenti oggetto di approfondimento sono: Java Enterprise Edition, Casi di studio di progetti reali; Design pattern in situazioni reali.

Testi di riferimento
* M. Page-Jones. Progettazione a oggetti con UML, Apogeo, Milano, 2002. ISBN 88-7303803-4.

* E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns, Addison Wesley, 1997, ISBN: 0201634988.

* M. Fowler, K. Beck, J. Brant, W. Opdyke, D. Roberts, Refactoring: Improving the Design of Existing Code, Addison-Wesley, 1999, ISBN: 0201485672.

* A. Shalloway and J. Trott, Design Patterns Explained – A New Perspective on Object Oriented Design, 2a edizione, Addison Wesley, 2004, ISBN: 0321247140.

* Altri testi e materiale fornito a lezione.