EVOLUZIONE DEI SISTEMI SOFTWARE E REVERSE ENGINEERING [1516-2-F1801Q116]
(Associate Professor) Arcelli Fontana Francesca
(Post-Doc Research Fellow) Zanoni Marco
(PhD Student) Roveda Riccardo
Introduction to the principal problematics of reverse engineering, software evolution and program comprehension. Deep study of some topics with different tools experimentations.
The student will learn all the principal techniques used to support software evolution and reverse engineering. The student will be able to use different tools useful for reverse engineering, program comprehension and software maintainability.
Lessons, exercitations, students experimentatons of tools with oral presentation.
- Introducton to Software evolution and Reverse Engineering. Legacy systems. Software comprehension and maintainability: principal problems.
- Techniques and tools for Reverse Engineering and Systems Integration. Introduction and application to model‐driven reverse engineering.
- Object‐oriented patterns for reverse engineering.
- Software quality metrics and software quality assessment. Application Portfolio Management: problems, tools, techniques and metrics.
- Modernization of legacy systems: Migration of legacy systems towards SOA architecture. Unified approach for reverse engineering of data and software.
- Tools and techniques for design pattern detection in the code. Data mining techniques for design pattern detection. Tools for software architecture reconstruction.
- Antipattern and code smell detection in the code, their refactoring. Impact of refactoring techniques on the code quality. Correlation analysis among code smells and metrics.
- Techniques of hacking, decompiling and code obfuscation. Static and dynamic analysis for reverse engineering.
Other contents of the course can be found on http://elearning.unimib.it/course/view.php?id=7186