The QPath Blog
Professional development of quantum/classical hybrid software systems: the life cycle
The successful adoption of quantum computing in the real world will depend not only on the necessary scientific/technical breakthroughs in the field of quantum hardware, but also on the pace of development of the natural companion for successful computing technologies: software. Of crucial importance in this process will be the capabilities we are able to build in the short term to produce software solutions and systems that realise quantum business benefits and, sooner rather than later, monetise their practical value to industry. To be successful in this regard, it will be essential to develop quantum software for industry with the design, architecture, extensibility, scalability, high performance and security guarantees that industry needs and demands. Based on our extensive experience in the development of software for industry, we know that the natural integration of all these elements, each with its own specific weight as part of the whole, is only feasible if the development of quantum software is done from a professional perspective.
Motivated by the relevance of this issue, on 14 April, World Quantum Day, we published the short article Some reflections on professional quantum/classical software development[1]. Having made that sort of general introduction to the subject, we thought it appropriate to address, in more detail, some of the different aspects of the broad, complex, and changing “world” of professional quantum software development for industry. To this end, in this instalment we will focus on the lifecycle of hybrid quantum/classical software systems.
The development of industry-ready quantum software systems is hybrid because, for these systems to be useful, they must necessarily integrate and operate dynamically and transparently for users with classical IT, as is the case with very many other services in the classical software domain. The classic IT of each company or organisation is specific, different, often custom developed and/or implemented to suit the needs and objectives of its owners. Therefore, among other issues, designing and implementing quantum/classical hybrid systems useful for the real world is often quite far from the limits and scopes that are usually set for proof-of-concept programming, prototyping or laboratory/academic experiments.
Successfully tackling challenges of this magnitude requires much more than conceiving and developing the indispensable and fabulous quantum algorithms, it is also necessary to do so in such a way that these algorithms are a harmonious part of a software system capable of integrating with classical industry technologies, robustly withstanding the passage of time and able to absorb the changing business needs and the other solutions and technologies with which they interact, be part of a complex and evolving set of IT services, be projects based on good software engineering practices, and have the right tools to make them possible in an “industrial” and efficient way (in the real world this means being cost competitive and offering the best time to market).
When hybrid quantum/classical software solutions are developed in the framework described above we are in the realm of what we consider professional development and application of Quantum Software Engineering principles[2] that are directly linked to the proven Software Engineering best practice of managing hybrid quantum/classical software systems throughout their lifecycle:
· embracing the coexistence of classical and quantum computing
· support the management of quantum software development projects
· consider the evolution of quantum software
· aim to deliver quantum software with zero desirable defects
· promote the reusability of quantum software
· cover software governance and management
The quantum/classical hybrid software lifecycle
The first complexity we must address when developing industry-ready hybrid quantum/classical software systems is that these projects are composed of two parts, each with their respective development teams, their own characteristics, complexities, and corresponding software lifecycle:
· Classical software lifecycle
· Quantum software lifecycle
As it is not difficult to guess, each of these cycles has its specificities, functional, technical and integration requirements, its technological environments, but both share a great common goal to contribute to the creation of a harmonious quantum/classical hybrid software system that can be used by business users and organisations in their daily activities.
Each of these life cycles has its own phases which, although they share the same name, differ substantially in the scope and content of the work to be done in each of them, namely: from the conception and analysis activities to the design, implementation and testing of the system, as well as its different evolutions.
How can we integrate both cycles in such a way that we work with a single hybrid software development cycle? Our solution to this question has been to develop a model based on the ICSM[3] model that is able to address the most common challenges faced by hybrid software development projects[4]:
· Multi-owner and multi-mission systems of systems (SoS).
· Emergence and “human intensive” with many non-pre-specifiable requirements, non-pre-specifiable budgets and schedules leading to the need to manage uncertainty and risk.
· Rapid pace of change requiring incremental developments and adaptability to avoid technology obsolescence and changes in mission priorities.
Moreover, because this spiral model is based on four fundamentals that we consider essential for hybrid software development projects:
· stakeholder value orientation
· incremental commitment and accountability
· concurrent multidisciplinary engineering
· evidence- and risk-based decisions
These fundamentals, combined with appropriate models of team management, collaboration, product engineering, project planning and management, configuration and maintenance, and quality, result in a framework that facilitates the successful management of hybrid quantum/classical software development projects.
Given that the management of the classic software lifecycle is widely known, we will not delve into the details of its management, although this does not mean that we do not consider it to be very important to ensure a good hybridization of classic and quantum software[5]. In this sense, we will only highlight that in order to make a good hybridization with quantum services, the classical solution in charge of the connection with quantum services, as with any other professionally developed classical software, the development team must design, build, test, deploy and maintain the software solution throughout its useful life. The only caveat is that as long as there are no error-free quantum vendor proposals, the development team should seriously consider how to deal with this risk, as well as the risk associated with the availability of different technology proposals.
We know that one of the characteristics of quantum software development teams globally today is the multidisciplinary composition of the teams, so it is very common that among those who perform tasks as developers there are many technicians who, by profession, are not programmers and/or computer engineers, so not only are they unaware of the good practices of quantum software engineering, but they are also unaware of the importance of developing quantum software. We also know that, even for computer engineers, there is not much knowledge about the emerging discipline of quantum software engineering and, therefore, about the specifics of the quantum software lifecycle.
With all of them in mind, we have designed and developed QuantumPath®, a full-stack platform for the professional development of quantum software and the control of its lifecycle: from the creation of the quantum algorithm, through its development, testing and application, to its deployment, execution, and reuse. A platform that makes it possible to work with Software Engineering best practices, even without knowing them. And considering the risk associated with the adoption of the aforementioned technology, a platform that, thanks to its agnosticism by design, will reduce this level of risk to a controlled point that will not critically affect the end user.
Hybrid quantum/classical software lifecycle management with QuantumPath®
QuantumPath® is an ecosystem of tools, services and processes that simplify the development of quantum algorithms embedded in hybrid information systems, a platform capable of managing quantum algorithms and quantum technology agnostic solutions (gate-based, quantum annealing) assisted by general purpose tools.
QuantumPath® provides developers with a wide range of objects for the organization of quantum software projects, including project management (team, roles, permissions, security, etc.), as well as management of the solution itself, its assets, etc.
As shown in Figure 1, QuantumPath® not only supports a complete lifecycle for creating and maintaining professional quantum software solutions (from quantum algorithm creation through development, testing and deployment, to deployment and reuse), but also offers a complete ALM stack that accelerates the design, construction, and deployment of quantum applications.
Figure 1. Quantum software solution lifecycle with QuantumPath®
It is noteworthy that with QuantumPath® the software lifecycle, given the platform agnostic nature of the platform, applies to all solutions developed with the platform, regardless of the type of quantum hardware for which it was developed: quantum gate-based, quantum annealing, simulators, etc.
QuantumPath® offers tools and technologies throughout the lifecycle phases that are designed to facilitate the work of developers while fulfilling these functions, for example:
· The Vision, Organization and Design phases are performed by the quantum asset management tools that make up the solution, and these can be built with the support of visual (“no-code”) designers, called Q Assets Compositor®. This makes it possible not to worry about limits on the number of gates, variables, etc., since these will be barriers that will be broken as quantum technologies advance.
· The construction phase is iterative and common to the different types of quantum technologies (quantum circuits, optimization algorithms). Quantum assets are refactored as the problem and technology are better understood with the support of visual designers and/or intermediate language implementations -additionally, if it is necessary to go even deeper at the machine level, it is possible to interact at this low level with direct code editors, although this is not recommended due to their dependency on the quantum technology.
o This construction phase has an additional ally: qSOA® and its ability to enable the dynamic development of highly scalable assets. Through code, new assets can be created from automatable business logics. This places CORE within the scope of providing distributed services as we know them.
· Testing of the solutions through a series of tools contained in the CORE module and, in a more specialized way, using Q Tester APP[6]. In this case we are talking about two contexts:
o Inherent testing of QuantumPath® CORE. From the intermediate language it provides what is necessary to launch the use case against the quantum provider. In this case, CORE is responsible for performing a continuous process of testing and improvement of the subsystems responsible for this action within the system. Each evolving requirement of a given third-party quantum service provider is analyzed, implemented, and refactored in the CORE subsystems.
o Testing of quantum assets. In this case, the user performs testing phases using professional value-added tools -such as Q Tester APP-, employing specialized techniques such as use cases and mutants, of the assets being built. In such a way that the time and effort to validate the asset and its results in an iterative and assisted way can be reduced.
· Production is managed through the runtime dashboard, supporting the execution of algorithms “anywhere”, as well as the analysis of the data generated during the entire lifecycle through its powerful telemetry.
o The Runtime Dashboard makes possible, visually, the execution and analysis of the results over time, in such a way as to manage the executions of a given asset. And on this, determine when it is ready for production, perform queries of executions performed at a given time and -why not- analyze these executions in periods of time.
o On the other hand, this same execution can be carried out through the qSOA® API services. QuantumPath® becomes a remote process server and makes possible the hybridization of information systems, providing the classical environment with a model of “quantum RPC components”. All these execution triggers go through the same subsystem with which the DR interacts, so everything is logged and managed.
o Since all execution and telemetry elements are centralized in a standardized database, production exploitation is also made possible. History over time that enables the necessary queries and analysis to measure production, enabling multiple dimensions of study.
As shown in Figure 2, advanced tools allow platform administrators to automate the lifecycle of quantum solutions in different ways based on pipeline modes that support different design paths for quantum assets:
Figura 2. Pipeline Modes of QuantumPath®
The developer can access the visual language level, and QuantumPath® will provide the lifecycle control tools, autocompiling and autotranspiling the product to make it ready to run. Likewise, if the developer generates intermediate language, QuantumPath® auto-infers to visual language and autotranspiles the product to make it ready to run as well as pass it back to the design phases. In other words, the product will make the development of assets coherent by controlling each of the phases through which it passes according to its “pipeline”. In the special case of DirectCode, certain agnostic elements are lost, since QuantumPath® allows the user to reach the SDK level of a given manufacturer if desired (it allows to highly specialize the solution or to reduce learning curves). But always within the lifecycle logics mentioned above.
In addition, users who so wish can combine these phases by applying the DevOps “philosophy”, since both deployment and continuous integration are supported by the platform itself.
qSOA®[7], which we have already discussed in the previous points, is the QuantumPath® technology that enables the integration of quantum software and classical computing through ConnectionPoints and its protocol based on open standards. It is a REST API, typical in classical architectures, which makes it possible to interact with the CORE through programming languages. This makes it possible to approach the construction of hybrid solutions from two contexts:
· One team develops the quantum assets entirely with the commented design and construction tools. In such a way that the classical system only has to make the call to the use case materialized as a Flow.
· A development team fully automates by code both the creation of the assets and their execution in the form of a use case.
With qSOA® the QuantumPath® ALM stack has been extended, making it possible to dynamically design and build (software-automatable) as well as exploit use cases integrated with classical IT. In this way, as shown in Figure 3, QuantumPath® not only supports the entire quantum development lifecycle, but also fully supports the hybrid lifecycle, as qSOA® simplifies the creation of hybrid classical-quantum architectures, through its API that exposes flows as call points allowing to dynamically extend the asset catalog.
Figure 3. Life cycle of hybrid quantum/classical software systems with QuantumPath®.
Summary
In the current complex context of chronic quantum workforce deficit, we consider that it is more important that we can create and provide technologies and tools that facilitate the professional development of quantum software, than to focus on who develops quantum software and what professions they have. In this situation, what is urgent is that those who do so can have, from now on, the most appropriate tools to accelerate the necessary competencies to be able to develop high quality quantum software for the real world.
The professional development of quantum software and quantum/classical hybrid systems useful for the industry is based on the application of the best practices of quantum software engineering in the different processes and stages of the work. The QuantumPath® ecosystem of tools, services and processes facilitates and guides developers in the use of good software engineering practices, whether they know them or not, and this has a positive impact on the quality of the software solutions created. Among these best practices is the management of software throughout its life cycle.
Working with tools such as QuantumPath® that facilitate the management of the quantum software lifecycle, speeds up the work of development teams, increases their productivity in development tasks, evolutionary and adaptive maintenance and, not least, has the added value of improving the protection of companies’ investment in quantum software.
It is very important to understand that quantum computing should be considered as one more business element, however incipient the technology may still be. As is the case with AI today, it has been shown that disruptive technologies impose a before and after that cannot catch us unawares. Use cases must not be isolated facts of laboratories and experiments, they must give way to more and more success stories from a business point of view, of major solutions at the project level that will prepare the company for what is to come. And this transition will be less prolonged and painful for companies if they have the principles, tools and services that make these projects more viable.
In this process, professional software development is and will be very important since, in the end, this is an essential piece to make exponential the exploitation of the technology and its practical application and, in doing so, to take advantage of the experience that a software company brings to this new technology that is put within our reach. By working with QuantumPath®, users -in addition to working with the life cycle- can also apply to their developments, transparently, other important principles of software engineering[8], such as:
· being agnostic with respect to quantum programming languages and technologies
· ensuring the quality of quantum software
· addressing security and privacy by design
· addressing software sustainability by design
The QuantumPath® platform is an accelerator for the development of quantum solutions and simplifies their adoption in the professional environment because, in addition to providing tools and guidelines to apply the best practices of quantum software engineering, it provides the ability to create hybrid quantum/classical software systems that are truly useful for companies by dynamically embedding calls/responses to quantum services in the classical software they use. And all this adapting to the evolution of the maturity level of quantum hardware.
As we stated at the beginning of the article, the adoption of quantum computing in the real world increasingly demands that quantum software facilitates its use, extends practical use experiences to multiple areas and, above all, effectively demonstrates the advantages that quantum computing brings to business.
The rapid development of quantum computing in recent years has allowed us to realize that, as we expressed in July 2020[9], quantum software must be produced in a more industrial and controlled way, which implies that in doing so, aspects such as quality, delivery, project management, evolution and reuse of quantum software, etc. must be addressed.
Three years after the publication of that article, and after a very intense activity in quantum software research and development, we are not only convinced that quantum computing will be the main driver of a new golden age of software engineering during the present decade (2020), but we also consider that professionally developed hybrid quantum/classical software systems will be determinant in the successful adoption of quantum computing by the real world. Let’s not waste time, the time to start producing high quality quantum/classical hybrid software systems is now.
[1] Peterssen, G., Piattini, M., Hevia, J.L. Some reflections on professional quantum/classical software development. April, 2023. The QPath® Blog.
[3] Boehm, B., Turner, R., Lane, J.A. and Koolmanojwong, S. (2014). The Incremental Commitment Spiral odel: Principles and Practices for Successful Systems and Software, Pearson Education.
[4] Peterssen, G. Hevia, J.L. Piattini, M. Quantum Software Engineering & QuantumPath®. aQuantum. 2023
[5] Idem, Section 3.1, ISO/IEC/IEEE 12207 standard.
[6] Martínez, A. Peterssen, G. QTester APP beta 1: test manager for quantum software – QuantumPath. April, 2023. The QPath® Blog.
[7] Hevia, J.L. Piattini, M. Peterssen, G. qSOA®: technology for dynamic integration of quantum-classical hybrid software systems. June, 2022. The QPath® Blog.
[9] Quantum Computing: A New Software Engineering Golden Age. ACM SIGSOFT Software Engineering Notes Volume 45 Issue 3 July 2020 pp 12- 14. https://doi.org/10.1145/3402127.3402131