Consistent transformations for software architecture styles of distributed systems

Abstract One major problem for the specification and verification of software architectures and specially with distributed systems, is when system evolution includes dynamic changes and reconfigurations of components and connections. This paper presents a method for specifying reconfigurations or transformations over the topology of the architecture style, being sure that if the transformation can be specified, then its application over the system will be consistent with respect to the expected architecture style configuration. Styles are described by context-free hyperedge graph grammars. In this context, an instance of an architecture style is determined by a graph generated by the grammar. The formalization of the method will be introduced in two ways. The first approach is a visual presentation and has the intention of showing that it can be used by software architects in real life in a simple way. For this, as we mentioned, graph grammars represent styles and their generated graphs specific system architectures. A transformation is visualized as a rule that takes a graph generated by the grammar and applies a reconfiguration to part of that graph, obtaining a new graph that is surely another valid graph of the grammar. The second approach presents a formal model for the first one using lambda-terms and tile sequents showing also that it is implementable.