Quantum computing has gained a lot of interest in recent years, thanks to its ability to solve certain problems that classical computing cannot address. These applications will only be achieved through the development of quantum software. Thus, many organizations are starting projects to integrate this new software into their existing systems. Software modernization (as based on Model-Driven Engineering) can be used to migrate from/to the so-called hybrid software systems, which integrate classical and quantum software. In that process, reverse engineering and restructuring phases have already been addressed, but the forward engineering phase for hybrid software has not yet been addressed. This paper presents a preliminary code generation technique from extended UML design models. It proposes an EGL transformation to generate Python and Qiskit code by integrating classical and quantum code. The transformation has been preliminarily validated with an example of application with the design model of a hybrid system for a financial web application. The implication of this work is that the software modernization process for hybrid software systems is completed, which facilitates the adoption of this new paradigm in the industry.
Quantum computing has gained a lot of interest in recent years, thanks to its ability to solve certain problems that classical computing cannot address. These applications will only be achieved through the development of quantum software. Thus, many organizations are starting projects to integrate this new software into their existing systems. Software modernization (as based on Model-Driven Engineering) can be used to migrate from/to the so-called hybrid software systems, which integrate classical and quantum software. In that process, reverse engineering and restructuring phases have already been addressed, but the forward engineering phase for hybrid software has not yet been addressed. This paper presents a preliminary code generation technique from extended UML design models. It proposes an EGL transformation to generate Python and Qiskit code by integrating classical and quantum code. The transformation has been preliminarily validated with an example of application with the design model of a hybrid system for a financial web application. The implication of this work is that the software modernization process for hybrid software systems is completed, which facilitates the adoption of this new paradigm in the industry.
Abstract Quantum computing is gaining an increasing interest since it can solve certain problems exponentially faster than classical computing. Thus, many organizations are researching and launching investments for integrating quantum software into their existing systems. Software modernization (as based on Model-Driven Engineering) has been proposed to migrate from/to the so-called hybrid software systems, which integrate classical and quantum software. In that process, both, reverse engineering and restructuring phases, have already been investigated. However, forward engineering phase for generating hybrid source code from high-level design models has not yet been addressed. Thus, this research proposes a quantum code generation technique from extended UML design models. It consists of a set of Model-to-Text transformations (defined through Epsilon Generation Language) to generate both Python and Qiskit code, which, respectively, integrate classical and quantum code. The transformation has been validated through a multi-case study with 7 hybrid software systems modeled in UML, which demonstrated that the transformation is effective and efficient. The implication of this work is that the software modernization process for hybrid software systems can be completed by tackling forward engineering phase, and that Model-Driven Engineering can therefore globally facilitate industry adoption of quantum software.
Quantum computing has come to stay in our lives. Companies are investing billions of dollars in it because of the potential benefits that it can achieve, providing promising applications in almost every business sector. Although quantum computing is evolving at an exponential rate, the development of tools, techniques, or frameworks for the evolution of current information systems towards quantum software systems is still proving to be a challenge. This research contributes to the evolution of current information systems towards hybrid information systems (combining the classical and quantum computing paradigm). We propose a software modernization process, by following model-driven engineering principles, adapted to the quantum paradigm, based on modified versions of standards for reverse engineering of classical, quantum software assets, and for the design of the target system. In particular, this paper focuses on the restructuring transformation from KDM to UML models, where KDM models have been generated from Q# code. This proposal has been validated through a case study involving 17 programmes. The results obtained show optimistic values regarding the complexity of the UML models generated, their expressiveness and scalability. The main implication of this research is that UML models can indeed help the software evolution of/toward hybrid information systems.
Abstract Developers of the many promising quantum computing applications that currently exist are urging companies in many different sectors seriously consider integrating this new technology into their business. For these applications to function, not only are quantum computers required, but quantum software also. Accordingly, quantum software engineering has become an important research field, in that it attempts to apply or adapt existing methods and techniques (or propose new ones) for the analysis, design, coding, and testing of quantum software, as well as playing a key role in ensuring quality in large-scale productions. The design of quantum software nevertheless poses two main challenges: the modelling of software quantum elements must be done in high-level modelling languages; and the need to further develop so-called “hybrid information systems”, which combine quantum and classical software. To address these challenges, we first propose a quantum UML profile for analysing and designing hybrid information systems; we then demonstrate its applicability through various structural and behavioural diagrams such as use case, class, sequence, activity, and deployment. In comparison to certain other quantum domain-specific languages, this UML profile ensures compliance with a well-known international standard that is supported by many tools and is followed by an extensive community.
Abstract Quantum computing is getting closer and closer to bringing all its potential applications to our lives. This means that in a few years the current IT will evolve into hybrid software systems where quantum and classical computing paradigms should be designed, developed, and operated together. This is a big challenge that will require software modernization processes for transforming and migrating legacy software systems (which may include adding new existing quantum software) toward such hybrid software systems. This chapter discusses the challenges of hybrid software and how software modernization (based on architecture-driven modernization) can be used as a reengineering solution for an effective evolution of classical and quantum software.
None of the quantum computing applications imagined will ever become a reality without quantum software. Quantum programmes have, to date, been coded with ad hoc techniques. Researchers in the field of quantum software engineering are, therefore, now demanding more systematic techniques and methods with which to produce software with sufficient quality. One of the challenges and lessons learned from classic software engineering is the need for high-level, abstract and technology-independent representations with which to design software before it is coded. This paper specifically addresses this challenge for quantum software design. Since UML is a well-proven modelling language that has been widely employed by industry for some time, we propose a UML extension for the representation of quantum algorithms. Our proposal comprises the definition of a UML profile based on various stereotypes that can be applied to the existing UML activity diagrams in order to represent quantum circuits. The advantage of this representation is that UML quantum circuits can be interrelated with other UML elements and diagrams, which will make it possible to represent various concerns and viewpoints of the so-called hybrid information systems. This will consequently enable classical and quantum aspects to be modelled together in integrated designs in a technological-agnostic manner that is already supported by a considerable number of existing software design tools.
Abstract Quantum computing is now a reality, and its incomparable computational power has led companies to show a great interest in being able to work with quantum software in order to support part of their current and future business operations. However, the quantum computing paradigm differs significantly from its classical counterparts, which has brought about the need to revolutionise how the future software is designed, built, and operated in order to work with quantum computers. Since companies cannot discard all their current (and probably mission-critical) information systems, they must adapt their classical information systems to new specific quantum applications, thus evolving towards hybrid information systems. Unfortunately, there are no specific methods with which to deal with this challenge. We believe that reengineering, and more specifically, software modernisation using model-driven engineering principles, could be useful as regard migrating classical systems and existing quantum programs towards hybrid information systems. This paper, therefore, presents QRev, a reverse engineering tool that analyses quantum programs developed in Q# in order to identify its components and interrelationships, and then generates abstract models that can be used in software modernisation processes. The platform-independent models are generated according to the Knowledge Discovery Metamodel (KDM) standard. QRev is validated in a case study involving five quantum programs in order to demonstrate its effectiveness and scalability. The main implication of the study is that QRev can be used in order to attain KDM models, which can subsequently be employed to restructure or add new quantum functionality at a higher abstraction level, i.e. independently of the specific quantum technology.