NOTE: To use the advanced features of this site you need javascript turned on.

Home Knowledge Base Software Translation Software Re-engineering

Software Re-engineering

Legacy applications usually undergo maintenance from time to time. This way, the functionality is permanently adapted to match the business needs of the owner.

The most difficult issue of application maintenance is when it becomes a struggle to implement new features due to technical limitations of the programing language and of its tools. There are cases when the rewrite of the legacy application in another programming language is not an option, due to costs or lack of qualified staff to maintain the new system. Software re-engineering is the preferred option in this case.

Software re-engineering means implementing or reimplementing a part of a legacy application using modern technologies, without modifying overall functionality.

The classic example of software re-engineering refers to the user interface and consists in implementing graphic or Web interfaces for applications with text mode interfaces – such as mainframe applications.

The evolution of software systems has produced three fundamental types of user interfaces:

  • Text mode interfaces that use a character grid in order to present information,

  • Graphic interfaces that show information as combinations of pixels,

  • Web interfaces that use services of graphic interfaces in order to display structured documents.

Text mode interfaces are no longer used in modern software systems, the other two types having replaced it almost completely. Most legacy software systems though use text mode interfaces.

An example of user interface in text mode is the following:



After a translation process, this text mode interface is transformed into the following graphical interface:



After software re-engineering the application for customer records receives a new interface, without altering the rest of the implementation.

The re-engineering process changes the detailing level of the user interface. Translating text interfaces into graphical ones produces additional information by better formatting. This additional information is obtained either by human intervention or by defining algorithms that analyze the structure of text screens and extract equivalent constructions for graphical interfaces.

Other common re-engineering processes apply to data store switching (e.g. text files or hierarchical databases into relational databases) or abandoning a legacy messaging system for a modern one (e.g. from a custom messaging solution to IBM MQ Series, enabling communication with applications written in various programming languages).