Ingegneria del software - Programma 2015

 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