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