Software & Data Evolution
Course ID: S1
Unit: ADVANCED COMPUTER SYSTEMS – Unit S: Software Systems
Weekly Hours: 4
ECTS Credits: 7
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.