Department of Computer Science & Engineering

University of Ioannina

Software & Data Evolution

Course Feature
Class Description

Course ID: S1

Unit: ADVANCED COMPUTER SYSTEMS – Unit S: Software Systems

Weekly Hours: 4


ECTS Credits: 7

Course Homepage:

Description: The course Software and Data Evolution offers an in-depth coverage of a core topic within the broader field of information systems engineering — specifically, the evolution and re-engineering of software and data. The course starts by reviewing software evolution in general. Then, it proceeds to cover in an in-depth analysis, the area of the re-engineering of legacy software. The course presents the general method of re-engineering a legacy system into a new, well-designed and maintainable object-oriented system. Then, the particular steps of the method, along with patterns and anti-patterns are covered: reverse engineering, abstract modeling of an OO system, identification of bad design symptoms, re-engineering patterns and forces. The course moves on to cover the evolution of data, and presents typical patterns by which database schemata evolve, and techniques to handle schema evolution. A team project where a large and complex software system is re-engineered accompanies the theoretical lecturing.