Evoluzione dei Sistemi Software e Reverse Engineering

Transcript

Evoluzione dei Sistemi Software e Reverse Engineering
 Corso di Laurea Magistrale in Informatica ‐ 2° anno
Codice e denominazione insegnamento
F1801Q116 ‐ Evoluzione dei Sistemi Software e Reverse Engineering
N° cfu
6
Tipologia Attività Formativa (TAF)
B ‐ caratterizzante
SSD
semestre
INF/01
1
Tipo insegnamento
a scelta
Contenuti:
Introduzione alle principali problematiche di reverse engineering, software evolution e program comprehension. Approfondimenti di alcuni argomenti e sperimentazioni di diversi tool.
Obiettivi formativi:
Lo studente acquisirà competenze relative alle problematiche principali dell'evoluzione del software e della reverse engineering, sarà in grado di effettuare analisi e utilizzare diversi strumenti di reverse engineering e di supporto alla comprensione e manutenzione del software.
Prerequisiti:
Conoscenza approfondita del linguaggio Java.
Docente responsabile dell'insegnamento: ARCELLI FONTANA Francesca
unico
Turno
Docenti e attività didattica
docente
Tipologia attività didattica assistita
N° cfu
N° ore attività didattica assistita erogata
Lezione
ARCELLI FONTANA Francesca
5
40
Esercitazione
ZANONI Marco
1
10
6
50
totale
CV docente
Metodi didattici
Lezioni frontali esercitazioni, approfondimenti di alcuni contenuti o sperimentazione di alcuni strumenti e presentazione da parte degli studenti.
Testi di riferimento:
Slides del docente, articoli, survey e tutorial forniti dal docente, tesi di laurea e di dottorato svolte presso il laboratorio di ricerca ESSeRE.
Modalità di verifica dell'apprendimento
Esame finale con progetto o sperimentazione di alcuni strumenti.
Programma esteso – a.a. 2015‐2016
argomento
tipologia attività didattica
lezione frontale
Introduzione alla Software evolution, Reverse Engineering, Sistemi Legacy. 1
Comprensione e manutenzione del software.
Tecniche e tools per la Reverse Engineering e l'Integrazione di sistemi. Introduzione e 2
applicazione della model‐driven reverse engineering.
studio individuale
5
Lezione frontale
6
esercitazione
7
esercitazione
2
14
Lezione frontale
6
esercitazione
2
studio individuale
Lezione frontale
Modernizazione dei sistemi legacy: Migrazione dei sistemi legacy systems verso 5
architetture SOA. Approccio unificato alla reverse engineering dei dati e del software.
12
Lezione frontale
studio individuale
Metriche di Qualità del Software , software quality assessment. Application Portfolio 4
Management: problemi, tools, tecniche e metriche.
2
esercitazione
studio individuale
3 Pattern object‐oriented per la reverse engineering; ore
14
5
esercitazione
studio individuale
Lezione frontale
Tool e tecniche per la design pattern detection nel codice. Tecniche di data mining per esercitazione
6
la design pattern detection. Tools per la software architecture reconstruction.
studio individuale
Lezione frontale
Riconoscimento di antipattern e code smell nel codice, il loro refactoring. Impatto delle 7 tecniche di refactoring sulla qualità del codice.. Analisi di correlazione fra code smell e esercitazione
metriche.
studio individuale
Lezione frontale
15
6
2
14
4
4
14
4
Tecniche di hacking, decompiling and code obfuscation. Analisi statica e dinamica per la esercitazione
8
reverse engineering .
studio individuale
12