Abstract:Runtime software architecture is a dynamic and structural abstract of the running system, which describes the elements of current system, the state of these elements, and the relation between them. Runtime architecture has a causal connection with the running system, in order for system administrators to monitor and control the system through reading and editing the architecture. The key to construct a runtime architecture is to develop the infrastructure between the target architecture and system. This is done to maintain the causal connection between them. However, because of the diversity of target systems and architectures, and the complexity of the causal connection maintaining logic between them, the development of such infrastructures is tedious, error-prone, and hard to reuse or evolve. This paper presents a model-driven approach to constructing runtime architectures. Developers describe the target system, the architecture, and the relation between them as declarative models, and the supporting framework automatically generates the runtime architecture infrastructures. The research designs the runtime architecture modeling language based on the extension of the standard MOF and QVT languages, and implements the supporting framework based on a set of general synchronization techniques between the system and architecture. A set of case studies illustrate that this approach applies to a wide range of systems and architectures and improves the efficiency and reusability of the construction of runtime models.