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 resul...