There are four major areas of application of a re-engineering. These include, for example, the translation of the source code, obsolete programming languages are replaced by modern alternatives or updated to a current version. However, the structure of the system is not touched and remains in place.
What does Software Re-Engineering involve?
The four major areas of application of Re-Engineering:
- Translation of the source code: Obsolete programming languages are replaced by modern alternatives or updated to a current version. However, the structure of the system is not touched and remains in place. One reason for updating to modern languages is the costly maintenance of compilers for old languages. If languages are no longer supported, the technologies must be maintained independently, which is a costly undertaking.
- Architecture rework: Poorly designed architectures are very susceptible to errors that happen when the code is reworked. It is possible that the quality of the application will decline with each revision, as errors are inherited and, at worst, exacerbated. Unclear architectures often make maintenance difficult, which can end in poor support. In this situation, re-engineering is a sensible step to make the application competitive again
- Improving the structure: It is not uncommon for user software to hastily add a new function without adapting the underlying logic. Such “add-ons” can create fatal gaps in the application, so that in the worst case memory leaks or data loss can occur. At this point, re-engineering the affected structures is the only way to save the software
- Data re-engineering: A software re-engineering normally has no influence on the processed data, which is why they can remain untouched. However, re-engineering of the data structure is still possible. Re-engineering data models can be useful in order not to compromise the performance of the overall system. This is because data requirements can change over time and must be adapted accordingly.
The three approaches to data Re-Engineering:
- Clean-Up: All data is thoroughly checked for accuracy. Redundancy is eliminated and all data sets are brought into a homogeneous format to increase quality and.
- Extention: The units of the data model are either adjusted or new units are added to accommodate more information. The data is also cleaned and adapted to the new format, as in the Clean Up.
- Migration: All existing records are migrated to an existing database or newly set up database. Reasons for this can be factors such as performance or compatibility of the database management system. Depending on the project, migration is also related to a re-engineering of the entire application, which is why the data must be migrated to the new environment. Migrations ultimately aim to improve the communication between the system and the database, which provides a better user experience for the end user.
Re-engineering focuses on optimizing the structure of the system and increasing the usability of the application for the end-user. The improvement of the architecture and basic structures results, among other things, in a reduction of the maintenance effort and thus the costs. When re-engineering the data sets, the value of the existing information should be increased in order to provide the application with the right data on the one hand and to be able to map the desired data models on the other. Depending on the application and the objective, the effort required for re-engineering varies. It should always be weighed up which steps are necessary to make a system fit again.
Do you have any questions? Would you like to find out more about our services?
We look forward to your enquiry.
Sofia Steninger
Solution Sales Manager