摘要

Software architectures should always reflect the architectural changes occurring in software systems. In this paper, dynamic software architectures are studied from a new perspective. Software architectures are considered as goals or objectives that software systems are pursuing instead of constraints over systems. The architectural goals are decomposed into two categories of sub-goals, i.e., structural goals and interaction behavioral goals. For defining the architectural goals of software systems, the notation of architectural reference model is introduced. The architectural reference model is composed of components and connectors involved in software architectures and constraints over software architectures. For reasoning about the result of changes rigorously and automatically, software architectures and changes to software architectures are described in a uniform formalism and the results of changes can directly be derived from the compositions of software architectures and changes. For implementing the adaptations of software systems, an autonomous agent-based approach is adopted, in which autonomous agents are used to plan the achievement of architectural goals and cascade reactions caused by changes via using architectural style-specific knowledge and behavior rules defined for agents.