Didattica - Architettura, Analisi e Progettazione del software

 

Obiettivi del corso: Fornire le conoscenze più avanzate su notazioni, metodi, processi e tecnologie per l'analisi, la progettazione e lo sviluppo del software. Applicare il tutto a casi di studio. Oltre a lezioni ed esercitazioni in classe, il corso prevede attività obbligatorie da svolgersi in laboratorio.
Programma: Il processo unificato RUP. Richiami di linguaggio UML ("Unified Modeling Language"). Notazione per l'analisi, la progettazione e la costruzione del software. ANALISI: Modello dei requisiti (attori, casi d'uso ed estensioni, oggetti del dominio del problema e loro relazioni), Modello di analisi. COSTRUZIONE: Modello di progettazione, progettazione di oggetti. ARCHITETTURE SOFTWARE: Architettura a uno, due e tre livelli e relativi supporti. VERIFICA: Modello di testing (testing OO e strumenti), ispezione (ispezione OO e strumenti).

  


Didattica - Informatica Sperimentale

 

Obiettivi del corso: Fornire concetti, metodi, processi e tecniche sperimentali per l'ingegneri del software. Applicare il tutto ad oggetti (metodi, processi, tecnologie) già considerati in corsi precedenti, nonché al caso delle tecnologie software a supporto dell'automazione e la reingegnerizzazione di processi aziendali, preliminarmente introdotte. Oltre a lezioni, seminari ed esercitazioni in classe, il corso prevede attività obbligatorie da svolgersi in laboratorio.
Programma: STRATEGIE EMPIRICHE: survey, casi di studio, esperimenti controllati. Empirismo e paradigma sperimentale nel contesto dell'informatica e, in particolare, dell'ingegneria del software. MISURE SOFTWARE: concetto di misura, scale, misure dirette e indirette, misure soggettive e oggettive. Approcci alla definizione di modelli di misura per il software. La tecnica GQM (Goal Question Metrics). Ciclo di vita di un modello di misura. IL PROCESSO SPERIMENTALE: variabili, fattori, trattamenti, oggetti e soggetti di un esperimento. Le fasi della sperimentazione: definizione - pianificazione - sviluppo - analisi e interpretazione - presentazione e diffusione dei risultati. FENOMENI ALEATORI: il ruolo della statistica nell'analisi e interpretazione dei dati sperimentali. Fondamenti di statistica descrittiva, test statistici, strumenti. SPERIMENTAZIONE, APPRENDIMENTO E RELATIVE ORGANIZZAZIONI: cicli di sperimentazione e feedback, experience factory da architettura per il QIP (Quality Improvement Paradigm). LABORATORIO: sulla base di prefissati obiettivi, saranno progettati e condotti in classe esperimenti controllati.

  


Didattica - Programmazione Orientata agli Oggetti

 

Obiettivi del corso: Il corso approfondisce il paradigma orientato agli oggetti e introduce ai fondamenti della programmazione concorrente.
Programma: FONDAMENTI DI OOP: motivazioni e principi di OO, elementi di base degli oggetti: identificatore, interfacce, operazioni, stati, variabili d'istanza, messaggi. Elementi di base delle classi: identificatore, interfacce, attributi, operazioni, metodi, responsabilità/operazioni/metodi, ereditarietà, polimorfismo, relazioni, persistenza. TYPING VS. BINDING: binding statico, statico-dinamico, dinamico-dinamico. DELEGA: concetti, realizzazione e impiego. ECCEZIONI: concetti, realizzazione e trattamento. EVENTI: concetti, realizzazione e gestione. Programmazione ad eventi, ascoltatori e adattatori. PROCESSI: sincronizzazione e comunicazione, mutua esclusione e monitor. ACCENNI UML: diagrammi delle classi e dei casi d'uso, approccio Model-View-Controller (MVC).