Quantum software architecture (QSA) is a developing field that applies architectural principles to the design, development, validation, and deployment of software for quantum computing systems. As quantum computing moves from theoretical concepts to practical applications, the need for systematic approaches to software engineering becomes increasingly critical. At the endeavor lies the role of modeling systems, which serve as visual or textual languages to specify, document, and represent the various aspects of a quantum software system’s architecture. These systems provide a blueprint, abstracting away complex implementation details and facilitating communication among stakeholders.
Types of Modelling Systems in Quantum Software Architecture
Some types of modeling systems that have been used to represent quantum software architectural solutions:
- UML Profiles and Extensions: The Unified Modeling Language (UML) is a standard for modeling classical software systems. Recognizing its understanding and expressiveness, researchers have discovered the creation of UML profiles and extensions custom-made to the specific needs of quantum computing.
- Q-UML: One notable example is Q-UML, an extension of UML that supports the structural and behavioural representation of quantum search algorithms. Q-UML utilizes UML class diagrams to denote the structure and UML sequence diagrams to depict the behaviour, such as the execution flow of a quantum search design. The review notes that Q-UML currently lacks complete support for other architecting activities like architectural implementation or evaluation.
- The review indicates that, different from classical software architecture where UML is considered a de facto standard, there is less evidence of widespread adoption of UML-based modeling for quantum software architectures. Yet, the potential of UML’s existing tools, frameworks, and architectural knowledge through custom-made profiles remains important.
- Graph-Based Models: Graph-based models of systems used to agree the structure and semantics of QSAs. Modules of source code are represented as nodes in a graph, while the interconnections or interactions between these modules are represented as edges.
- Strawberry Fields: The open-source quantum programming architecture Strawberry Fields utilizes graph-based models to represent modules of code that implement quantum software. Nodes can represent computational elements or data stores, and edges signify the flow of control or data between them. For example, a node representing a ‘Transaction Commit’ module might have an edge (a connector) leading to a node in place of an ‘Update Transaction Record’ module.
- Box and Arrow Systems: Box and arrow systems are a more conventional and spontaneous way to represent software architectures. In this approach, components of the system are represented as boxes, and the interactions or relationships between them are showed as arrows.
- These systems are used to demonstrate the high-level structure and flow within a quantum software system. For instance, a quantum algorithm like Shor’s algorithm for integer factorization can be partially denoted as a UML component diagram, where components like ‘Shor Factor’ and ‘Shor Order’ (boxes) coordinate through a ‘get Factors’ connector (arrow).
Modelling systems support the different activities within an architectural process for quantum software, which includes architectural requirements, architectural modelling (design), architectural implementation, architectural validation, and architectural deployment. The findings suggest that:
- Most existing modelling systems primarily focus on supporting architectural requirements and design (architectural modelling) phases. For example, Q-UML supports modelling requirements and specifying the structural representation and implementation flow of a quantum search design.
- An important number of systems also provide support for the architectural implementation phase, demonstrating how abstract models can be translated into more concrete specifications.
- There is comparatively less support for later lifecycle activities such as architectural evaluation and deployment.
This indicates a need for further development of modelling systems that provide more comprehensive coverage of the entire quantum software development lifecycle.
The development of architectural modelling tools and frameworks specifically for quantum software is still in its early stages. While some frameworks like Strawberry Fields include modelling capabilities, the availability of dedicated tools that can aid in creating, operating, and analysing architectural models for quantum systems remains limited.
The challenges in developing modelling systems for QSA
- The Innovation of Quantum Computing: Quantum computing is an example of a shift from classical computing, introducing unique concepts and behaviours that are not captured by existing classical modelling techniques.
- The Hybrid Nature of Quantum Software: Quantum applications are likely to be hybrid, involving both classical and quantum components that need to interact effortlessly. Modelling systems must be able to represent these interactions effectively.
- Quantum-Specific Requirements: Quantum software has specific requirements related to quantum singularities like entanglement, superposition, and decoherence. Existing classical models do not openly cover these properties.
- Lack of Standardisation: As the field of QSA is still emerging, there is a lack of widely accepted standards and best practices for modelling quantum software architectures.
The development of modelling systems is critical for the development of quantum software engineering. Future research directions include:
- Developing more expressive UML profiles and architectural description languages (ADLs) that can specify quantum-specific aspects and ease the (semi)formal analysis of quantum software architectures.
- Creating domain-specific modelling languages (DSLs) custom-made to particular types of quantum applications or quantum computing platforms.
- Investigating visual modelling techniques that can automatically represent quantum concepts and the flow of quantum information.
- Developing model transformation to automate the generation of quantum code and deployment configurations from architectural models.
- Building integrated toolchains that support the creation, analysis, validation, and evolution of quantum software architectures based on well-defined modelling systems.
Modelling systems are essential for effectively designing and engineering quantum software systems. While existing approaches familiar concepts from classical software architecture, the unique characteristics of quantum computing require the development and modification of systems that can sufficiently capture quantum-specific requirements and ease the entire software development lifecycle. The continued research and development in this area will be critical for enabling the widespread adoption and successful application of quantum computing technologies.