A valuable asset with a technical history
The automated calculation of wages in the public sector, including
including all tax and social security aspects places the highest demands on precision and performance.
The legal regulations, which have evolved over decades, offer countless possible combinations and edge cases.
On this basis, IT solutions have to calculate hundreds of thousands of salaries reliably and to the cent at the touch of a button for every key date.
Our customer’s system, consisting of over 1 million lines of COBOL code, had been used successfully for this purpose since the early 1970s.
Technologically, however, it became increasingly difficult to integrate the new legal regulations, which often had to be implemented at short notice.
In addition, the technology was neither designed for online and cloud operation nor suitable for the real-time evaluations required by the business in the meantime.
Decreasing maintainability, outdated architecture patterns, incomplete documentation and the lack of specialists for legacy technologies thus became an existential risk.
How do you modernize such a complex application without jeopardizing ongoing operations and without burdening the specialist department with requirements gathering or manual testing?
How do you replace a COBOL monolith – essentially a single large batch process – with a technologically modern and highly maintainable application that can keep up with the performance of the top-optimized mainframe and deliver the same calculation results to the cent as the old system without a “feature freeze”?
”It is important to bear in mind that a highly complex payroll accounting system has been newly implemented. itestra and the employees involved can be proud of this achievement.
Abteilungsleitung
Reverse engineering and an innovative architecture
The first goal for the itestra team was to extract the technical rules and facts from the existing COBOL code.
To this end, manual and tool-supported reverse engineering was used to gradually analyze the complex conditions and calculation rules that had developed over decades, while at the same time preparing tools for later tracking of the code migration.
At the same time, the idea arose of radically reducing the complexity of the new implementation by means of a mathematical approach – which is rare for object-oriented systems – and thus making the code more understandable and maintainable as well as the calculations more comprehensible for the future.
By combining the principles of functional and object-oriented programming, each calculated value and each intermediate result arising in the course of the calculation is calculated once by exactly one function.
This makes
- Sub-calculations encapsulated in reusable, named functions,
- Code redundancy and error sources reduced,
- prevents side effects and
- repeated calculations are avoided during execution.
Each calculation process is automatically logged at the level of the extracted functions that reflect the technicality, which simplifies tracking and enables isolated tests of sub-calculations.
Old code - COBOL
The new code in C#
Calculation protocol of the new system
Comparative tests: the key to success and an enormous challenge
Each of the approximately 400,000 salaries to be calculated results from up to 45,000 individual values, which in turn can be the result of intermediate calculations or predefined input variables.
In order to achieve exactly the same results in the new system as in COBOL, not only were specially developed fixed-point data types in C# necessary, but also extensive machine comparison tests, in which existing input data was calculated in both systems and all intermediate results and outputs were fully compared.
What sounds simple at first proved to be an extremely complex undertaking in practice:
- During development, certain sub-calculations were not yet fully implemented.
The corresponding interim results, as well as all subsequent calculations dependent on them, had to be excluded from the comparison. - A single, minimal difference could result in extensive deviations, which made the classification and search for the cause much more difficult.
The enormous amounts of data, the automated control of the legacy system in the test process and ensuring that all data protection requirements were met made the comparison tests a very challenging task.
Once the team had overcome these hurdles, the automated comparison tests became a key factor in the success of the project.
A functional and object-oriented calculation core
Migration at a fixed price and without feature freeze
Thanks to many years of experience in reengineering extensive business-critical information systems and the use of specially developed tools for static code analysis, itestra was able to offer the entire replacement as a fixed-price project with a binding milestone plan after intensive coordination with the client, thus reducing the project risk for the client to a minimum.
Parallel to the modernization, 340 changes were made to the old system over the three-year project period in order to meet legal and other technical requirements. All changes were carefully coordinated with the modernization roadmap. Thanks to the automated migration tracking, a feature freeze could be avoided just as effectively as repeated changes to code scopes that had already been replaced.
A competitive edge
The newly created solution provides an extremely powerful and flexible basis for future innovations and requirements. Immediately after completion, this proved to be an enormous advantage when several new remuneration regulations and ordinances were issued at short notice and, in some cases, for a limited period of time in the course of the coronavirus pandemic.
All requirements could be implemented in the new solution on time, which would not have been possible with the old system.
The complete modernization of the complex calculation system, including the shutdown of the old COBOL programs, gives our customer a competitive edge. The new, innovative solution is characterized by high efficiency and flexibility, is state of the art and can be used without proprietary hardware in a cloud or on premise. The high quality of the software has enabled the customer to seamlessly take over the created system, train its own developers and now carry out further development itself.
With an eye on the market and the growing requirements, the company is excellently prepared for the future.
Facts and figures
About itestra
We develop and innovate business software solutions
We are guided by two core values in everything we do: We want to achieve the best possible added value for our customers through our solutions. This is based on quality, i.e. the second point: our employees can and should develop professionally and personally, become better and better and achieve great things. For ourselves, for our performance and for the added value of our customers.
Contact us
Do you have questions about reverse engineering?
Please feel free to write or call us.
info@itestra.de+49 89 381570-110
Software renovation/software refurbishment
Understanding software, preserving assets
Old but valuable Successful IT and software systems have been in place for decades in almost all industries and control business processes and devices. They have been developed over many years, are indispensable for business, manage customer and business data and contain precise detailed knowledge about the business. Existing software therefore has enormous value and is part of a company’s assets. However, efficiency and performance are declining Technical change and changing requirements are causing software solutions to age. Quality deficiencies increase over time and result in decreasing performance, increasing time-to-system and rising costs. However, due to the enormous scope of the systems, replacing them with new procurement or new implementation is often expensive, risky or even unrealistic. Software renovation is a new option for action Software renovation means understanding existing software, using existing assets and restoring future viability with innovative methods and tools.
Creating future viability efficiently
System sizes:
Software value:
Software age:
Technologies:
- Full-scale redesign
- Reverse engineering, knowledge extraction
- Algorithmic performance optimization
- Re-documentation
- Platform migration, technology/framework change
- Code-CleanUp, Stabilization
- Architecture change, refactoring
Methods and tools for software renovation
How is software renovated?
Innovation instead of rough mechanics Software renovation is not a mechanical activity or tool, but an innovative discipline that encompasses and uses specialist knowledge, methods, special activities and, in some areas, tools. The health check creates clarity Software renovation begins with a structured inventory, the health check, of the existing solution with regard to the degree of coverage of business requirements, technical quality (implementation, documentation, data storage), costs (development, operation, infrastructure) and development and operating processes. Actual – target = roadmap The inventory is compared with alternative solution designs, industry benchmarks and the company’s strategic objectives. A transformation roadmap is derived from the actual and target figures, taking into account the economic framework conditions, which is then implemented in projects in the short term or over several years – depending on requirements.
Added value through software renovation
We restore for the future
Expert for software renovation Based on our own scientific work, we have been evaluating, optimizing and renovating extensive software systems of well-known companies in various industries for more than 15 years.
Our software renovation services Our portfolio includes the complete redesign of software landscapes, e.g. from RPG, NATURAL, COBOL, C/++ into modern, object and service-oriented as well as web-based systems in Java, C# and others, as well as platform migration, new documentation of legacy software, restoration of maintainability through code cleanup or performance optimization of central algorithms to reduce runtimes and CPU costs by more than 50%.
We renovate the value of software We take responsibility, guarantee contractual success and use innovative methods such as manual reverse engineering, automated comparison testing, migration tracking (to track redesign progress), write-through architecture to avoid parallel development and special analysis tools.
Advantages of reverse engineering
Reverse engineering vs. new development
Reverse engineering describes the process of analyzing and understanding an existing software solution in order to improve it or develop a new solution. Compared to a completely new development, reverse engineering offers these advantages:
- Time and cost savings By studying the existing design, existing functionality can be used and does not have to be redeveloped, which saves time and money.
- Improving designs Understanding the original functionality promotes targeted re-engineering, e.g. in order to be able to adapt to new requirements.
- Avoidance of duplication Reverse engineering can ensure that existing solutions are not developed again.
- Protecting intellectual property Reverse engineering can help protect intellectual property by ensuring that existing designs are not used.
- Expanding knowledge Reverse engineering enables developers to improve their technical understanding and learn about new technologies and methods.