Corso di Laurea Triennale in Informatica ‐ 3° anno Codice e denominazione insegnamento E3101Q119 ‐ Ingegneria del software N° cfu 8 Tipologia Attività Formativa (TAF) B ‐ caratterizzante SSD semestre INF/01 1 Tipo insegnamento a scelta Contenuti: Principi, tecniche e strumenti per lo sviluppo di software. Pattern ed esempi della loro applicazione nello sviluppo del software. Best practices in Java. Valutazione della qualità del codice. Esempi di progetti software e le problematiche affrontate. Obiettivi formativi: Acquisire conoscenze più avanzate di sviluppo del software rispetto a quelle acquisite durante il corso del II anno di analisi e progettazione del software. Conoscere ed applicare i pattern durante lo sviluppo del software. Imparare numerose best practices in Java. Conoscere ed utilizzare metriche di valutazione della qualità del codice. Prerequisiti: Nozioni base di programmazione (vedi insegnamento "Programmazione 1" e Programmazione 2") e di ingegneria del software (vedi insegnamento "Analisi e progettazione del software"). Docente responsabile dell'insegnamento: ARCELLI FONTANA Francesca unico Turn rno Docenti e attività didattica docente Tipologia attività didattica assistita Tipologia attività didattica assistita N° N° cfu cfu N° ore attività didattica assistita didattica assistita erogata Lezione ARCELLI FONTANA Francesca 4 32 CV docente Esercitazione RAIBULET Claudia 2 20 CV docente Laboratorio ZANONI Marco 2 24 8 76 totale Metodi didattici Lezioni ed esercitazioni in aula. Il materiale didattico sarà disponibile nella piattaforma di e‐learning per approfondimenti. Attività di esercizi di sviluppo software in laboratorio. Testi di riferimento: I. Sommerville, Ingegneria del Software, Pearson, 8° ed, 2007. C. Larman, Applicare UML e i Pattern – analisi e progettazione orientata agli oggetti, Pearson, 3° ed, 2005. Modalità di verifica dell'apprendimento La verifica dell'apprendimento comprende una prova scritta (e.g., sviluppo di un progetto software) e una discussione del risultato. Programma esteso – a.a. 2015‐2016 argomento tipologia attività didattica lezione frontale Presentazione del corso. Obiettivi e contenuti. Varietá in ingegneria del software: esercitazione 1 model‐driven software engineering, component‐based software engineering, laboratorio aspect‐oriented software engineering, distributed software engineering. 2 Architetture software. Progettazione di architetture software. Pattern architetturali. Diagramma dei package, dei componenti e di deployment. Best practices in Java. Reflessivitá in Java. Sviluppo di strumenti come plug‐in di Eclipse. 6 esercitazione 4 laboratorio 3 7 esercitazione 2 laboratorio 6 4 esercitazione 4 laboratorio 6 studio individuale Valutazione della qualita' del software. Metriche per la valutazione del software. Antipattern. Gestione dei progetti software: concetti base. Piannificazione dei progetti: diagrammi Gantt e PERT. Gestione dei rischi, gestione della qualitá. 4 2 3 20 2 esercitazione 2 laboratorio 2 16 Lezione frontale 4 esercitazione 4 laboratorio 4 studio individuale 8 16 Lezione frontale studio individuale 7 18 Lezione frontale Sistemi self‐managed e self‐adaptive: concetti fondamentali, domini applicativi, e esercitazione case study. Model‐driven engineering. laboratorio Aspect‐oriented software engineering: concetti fondamentali. Aspect‐oriented design e programmazione. 18 Lezione frontale Lezione frontale 6 0 Lezione frontale studio individuale 5 0 4 studio individuale 4 3 studio individuale studio individuale Applicazione dei design pattern nello sviluppo del software. Modellazione di un 3 framework di persistenza con i design pattern. Sviluppo di un sistema di gestione di risorse con i design pattern. ore 20 Lezione frontale 2 esercitazione 2 laboratorio 0 studio individuale 12