Quantum Computing is becoming more and more mature and mainstream. Even so, there is still a great volatility in quantum programming technology during these first stages of this technological leap. Thus, some managers could feel unwilling to adopt one of the today quantum technology that could be the tomorrow deprecated one. Nevertheless, organizations are faced with the challenge of embracing quantum computing in a timely manner as a mean of arming themselves for the future and remaining competitive. Thus, it is certain that most organizations, if they have not already done so, will have to invest in enterprise, quantum information systems.
Some organizations already have some business functionality designed and developed as quantum software that are executed in quantum computers in isolation, whilst other companies are planning the migration of some pieces of classical software toward quantum information systems. In the short term, quantum computers will obviously not be used for everything. Apart from the initial prohibitive cost, there are not many well-known algorithms; some specific tasks might be still carried out by classical computers, and with better performance. It will be more common to use quantum computers to solve certain difficult problems by means of specific calls from classical computers to remote quantum ones. In this scenario, software modernization processes have proven to be an effective mechanism in the migration and evolution of classical-quantum software, while still preserving business knowledge.
QPath, as a Quantum Software Development & Application Lifecycle Platform, will support quantum software modernization. QPath software modernization is based on existing standards such as UML and KDM (ISO/IEC 19505 and 19506 respectively). The software modernization process supported by QPath is based on the Architecture-Driven Modernization approach, proposed by the OMG, which is the evolution of traditional reengineering by following Model-Driven Engineering (MDE) principles. ADM advocates the usage of KDM (Knowledge Discovery Metamodel) as the core to accomplish such modernization. Software modernization can first analyse the software artefacts and their interrelationships in legacy systems, and it builds one or more representations of the legacy system according to KDM. The abstraction achieved through KDM ensures the interoperability between reverse engineering tools and other software modernization tools.
Software modernization of hybrid systems can be structured in the three traditional reengineering stages: reverse engineering, restructuring and forward engineering.
QPath will support the reverse engineering of classical systems (plus existing quantum programs, if any) that extracts and represents knowledge in a KDM repository. This common repository manages information of various concerns of classical-quantum information systems in a holistic and technological-agnostic way. The modernization process takes into account a KDM extension defined through its standard extensibility mechanisms (i.e., extension families) so that the quantum knowledge can be integrated in the KDM repository. Relationships (e.g., of use, dependence, etc.) can be established between classical and quantum software assets that help to migrate quantum and classical systems in combination toward hybrid information systems.
During restructuring stage, the QPath modernization process is able to apply some model refactoring at high-level (i.e., KDM models) but also (semi)automatically transform KDM models into UML models. A UML extension is considered for the representation of high-level models for quantum programs and how those programs are integrated with classical information systems artefacts. The process employs automatic model transformations to transform KDM models into UML models. These transformations consider both quantum extensions. If new functionality is added during the restructuring phase, new quantum computing concerns are added. In that case, extensions for the current UML diagrams, or new ones, can be provided in order to collect quantum computing information in combination with analysis and design diagrams for classical information systems.
Finally, in the forward engineering stage, UML design models can be used to generate target information systems and complete the modernization process. Even more, UML models can be used as the input for well-known code generator tools for plenty of programming languages. QPath will also include code generators for some of the most extended quantum programming languages. These low-code, generative techniques are implemented to facilitate the link from a high-level description to low-level implementation with quantum gates and the integration of these in the target hybrid system.
One of the most important advantages of the QPath Modernization approach is that it is based on well-known and proven standards like KDM and UML. The usage of such standards can help to bring those best practices and methods to the modernization of quantum and hybrid information systems. KDM helps with the abstraction of technological/vendor details, and collects all the system artefact knowledge in an integrated way. Secondly, UML helps to design and define the architecture of the target systems by combining classical and quantum systems.
The QPath Modernization contributes to boost the construction and deployment of quantum applications as well as their integration with other classical software assets.