Modernization / Reengineering

SOFTWARE MODERNIZATION AND REENGINEERING

With the pace of technological innovation, applications might become unadapted to integrate newer technologies or connect to the outside world. Because natural evolution of a software application tends to make it less efficient, obscure, and costly to update and maintain, modernization becomes complicated or impossible due to a lack of understanding of its internal structure.

Primhill Computers Survol approach of exploring legacy systems and highlighting their internal mechanisms may help improve preliminaries studies before reengineering projects. Continuous monitoring of on-going development projects allows technical leadership to ensure that evolutions do not bring undesired new side-effects, software dependencies or unnecessary interconnections.

Our specific approach begins with an assessment step, where the target information system is equipped with software probes allowing to accurately monitor its behavior. This audit stage is done with standardized tools, which are integral part of the project.

The result of this preliminary analysis, and its tools, are part of the project deliverables. The development team is therefore able to autonomously resume this analysis at any moment. The team is strongly encouraged to use the same monitoring tools during the rest of the project.

Decisions of refactoring are based on the results returned by this study stage. During further development projects, they are continuously used to check the validity of the preliminary analysis.

The investigation tools can be:

  • Survol scripts based on low-level software tools (Scanner or analyzers such as nmap, radare2, tcpdump... and various debuggers). Survol framework makes these sophisticated tools available to anyone.
  • Specific monitoring scripts, designed to fit in the Survol framework and interface, can be created if this is necessary.
  • CIM providers, based on WMI or WBEM.
  • Interfacing to semantic web tools: These are not developments but simply using Survol capability to extract structural data from an information system, to feed graph databases or semantic data tools for further analysis.

These tools are designed to fit into Survol framework and are continuously used during the lifecycle of the project, of which they are an integral part. If, based on the investigation stage, no decision of software renovation is taken, or further developments are postponed, the monitoring tools are a significant deliverable in terms of documentation and self-analysis capability, and an investment usable for later software maintenance.