University of Leicester

cms

CO7206—System Re-engineering

Convenor:
Neil Walkinshaw
Description:

Software development is not always a "green-fields" process. More often than not, new software engineers are hired to maintain and evolve existing systems, not to develop new ones. If a new system is to be developed, it has to be integrated with other existing "legacy" software systems. Legacy systems are valuable software systems that are still in use but are difficult to maintain, change or migrate because they were developed with technologies of the past and/or because they were not engineered properly. Very often, these systems were developed without proper documentation, version control, or proper design. Many such systems had undergone numerous changes by different people that violate the original system design, if any ever existed. As a result, it is challenging to understand, modify or migrate these systems. Fresh software developers are usually neither equipped with the necessary skills nor have the desire to work with these software "legacies". Fresh software development is usually considered superior to software maintenance and reengineering. The year 2000 problem and the deployment of the Euro gave rise to research and practice of software system reverse engineering and reengineering. Reengineering is "the examination of a subject system to reconstitute it in a new form and the subsequent implementation of the new form." [Chikofsky, and Cross II, 1990]. Part of any reengineering efforts is a reverse engineering process, which is "the process of analyzing a subject system with two goals in mind: (1) to identify the system's components and their interrelationships; and, (2) to create representations of the system in another form or at a higher level of abstraction." [Chikofsky, and Cross II, 1990].

In the Internet era, it is very important to have the skills to deal with legacy systems because it is not always the case that Web applications will be developed from scratch. In many cases it is required to open the available information systems to Web access or integrate them with other Web applications.

This module is an introduction to the main issues related to software systems ageing and evolution. We will examine some of the available methods and technologies for software reverse engineering and reengineering as well as some of the managerial and planning issues specific to software reengineering projects.

Author: Form auto-generator (csadmit@mcs.le.ac.uk).
Author: Neil Walkinshaw.
© University of Leicester November 2016. Last modified: 15th August 2018, 17:52:54
CMS Web Maintainer. This document has been approved by the Head of Department.