General design process of software architecture: first design the conceptual architecture, determine the most critical design elements and interaction mechanisms, and then design the actual architecture considering the application of specific technologies.
What is a conceptual architecture?
Features of the conceptual architecture:
The system is described by the main design elements and their relationships.
Compliant with the features of the software architecture: Architecture = component + interaction.
It is usually coarse-grained.
It includes some high-level decisions, which are very important for system expansion and maintenance in the future.
Focuses on key mechanisms.
Is the initial architectural design result.
The conceptual architecture of software is similar to the metaphor in Agile development. It is a very broad description of the software system. It is a kind of software system involving people, including developers and customers, A way and method for communication.
Conceptual architecture is a product in a highly abstract situation, so it does not reflect the personalization of a specific system. This is also why the conceptual architecture of many products of the same type is similar.
The conceptual architecture is often unrelated to the application of specific technologies and the selection of specific platforms, while the actual architecture is very concerned about these issues.
From the conceptual architecture to the actual architecture, it is impossible to directly implement the conceptual architecture. Developers also need to pay attention to the following points:
1.
Interface. The conceptual architecture does not have the interface concept, but only the interaction between Abstract components and components.
2.
Subsystem. In a conceptual architecture, there are only abstract components. These components do not have the responsibility of interface friends. They are generally used to process components, data components, or connection components.
3.
Interaction Mechanism. The Interaction Mechanism in the actual architecture is 'real', such as through interfaces and Callbacks. the interaction mechanism in the conceptual architecture is 'conceptual, for example, 'layer A uses B service', and the so-called 'use' does not specify which method to adopt.
References
Software Architecture Design