2004 · 35 citations · 45 references
ComputingComputer ScienceFormal MethodsSoftware EngineeringSystems ArchitectureArchitecture EvaluationSoftware ArchitectureSoftware DesignSoftware EvolutionSoftware MaintenanceArchitecture EvolutionClassification CriteriaDynamic Architectures
Dynamic architectural change is defined as the addition and removal of components and connectors. Dynamic software architectures are those architectures that modify their architecture and enact the modifications during the system’s execution. This behavior is most commonly known as run-time evolution or dynamism. As dynamic software architecture use becomes more widespread, it is important to gain a better understanding of this type of software evolutionary change and be able to classify formalisms, approaches and tools. Current evaluations in the areas of software architecture and evolutionary change have made strides in classification but are not sufficient to evaluate dynamic software architectures. A dedicated comparison of dynamic software architectures and architectural formalisms is necessary in order to gain a deeper understanding of run-time evolution. In this paper we present a set of classification criteria for the comparison of dynamic software architectures based on: change type, change process, and change infrastructure. We demonstrate the use of the criteria by classifying three types of dynamic software architectural change. In addition we survey 14 current approaches to the formal specification of dynamic software architectures based on graphs, process algebras, logic, and other formalisms. We then
45
E. M. Clarke, Orna Grümberg, D. Long · 1996 · 6.9K citations
A calculus of mobile processes, II
Robin Milner, Joachim Parrow, David Walker · Information and Computation · 1992 · 1.7K citations · Full text
Gérard Berry, Gérard Boudol · Theoretical Computer Science · 1992 · 817 citations