Visual Design of Software Architecture and Evolution based on Graph Transformation

Abstract The paper suggests a two-level approach to describe visually software architectures and their evolution. One visual modeling formalism is used to describe the architecture level while another is used to model the behavior of each component (component specification level). Graph transformation is applied for both levels to describe the modeling formalisms and the model evolution in a formal way. The graph transformation based visual modeling approach GenGEd allows the designer to define the concrete and abstract syntax of each formalism. Thus, the choice of the visual formalisms is not restricted to existing ADLs or modeling languages but new visual languages can be defined by the user according to the problem domain. The architecture and component specifications are related over their abstract syntax. Here, it is possible to enforce coherence between the two levels while the user is changing the model in the editor generated by the GenGEd tool. The ideas are illustrated by a small example using UML-like class diagrams for the architecture and Petri net like networks for the component behavior.

[1]  Valérie Issarny,et al.  Component-Based Programming of Distributed Applications , 1999, Advances in Distributed Systems.

[2]  Richard C. Holt,et al.  Using graph rewriting to specify software architectural transformations , 2000, Proceedings ASE 2000. Fifteenth IEEE International Conference on Automated Software Engineering.

[3]  Hartmut Ehrig,et al.  Handbook of graph grammars and computing by graph transformation: vol. 2: applications, languages, and tools , 1999 .

[4]  Grzegorz Rozenberg,et al.  Handbook of Graph Grammars and Computing by Graph Transformations, Volume 1: Foundations , 1997 .

[5]  Reiko Heckel,et al.  Algebraic Approaches to Graph Transformation - Part II: Single Pushout Approach and Comparison with Double Pushout Approach , 1997, Handbook of Graph Grammars.

[6]  Gabriele Taentzer,et al.  Distributed Graphs and Graph Transformation , 1999, Appl. Categorical Struct..

[7]  Clemens Szyperski,et al.  Component software , 1997 .

[8]  Ugo Montanari,et al.  Graph grammars and constraint solving for software architecture styles , 1998, ISAW '98.

[9]  Holger Giese,et al.  Modeling Distributed Software Systems with Object Coordination Nets , 1998, PDSE.

[10]  Gabriele Taentzer,et al.  ViewPoint-oriented software development by distributed graph transformation: towards a basis for living with inconsistencies , 1999, Proceedings IEEE International Symposium on Requirements Engineering (Cat. No.PR00188).

[11]  Roswitha Bardohl GENGED: visual definition of visual languages: based on algebraic graph transformation , 1999 .

[12]  Alexander L. Wolf,et al.  Software architecture , 2001 .

[13]  Reiko Heckel,et al.  Cooperability in Train Control Systems: Specification of Scenarios using Open Nets , 2001, Trans. SDPS.

[14]  Jeff Magee,et al.  Analysing dynamic change in software architectures: a case study , 1998, Proceedings. Fourth International Conference on Configurable Distributed Systems (Cat. No.98EX159).

[15]  Robert L. Nord,et al.  Describing Software Architecture with UML , 1999, WICSA.

[16]  Hartmut Ehrig,et al.  Fundamentals of Algebraic Specification 1: Equations and Initial Semantics , 1985 .

[17]  Martin Grosse-rhode,et al.  Concepts for the Evolution of Component-Based Software Systems , 2000 .

[18]  J. Davenport Editor , 1960 .

[19]  Paola Inverardi,et al.  Modeling Software Architecutes and Styles with Graph Grammars and Constraint Solving , 1999, WICSA.

[20]  Hartmut Ehrig,et al.  Algebraic high-level net transformation systems , 1995, Mathematical Structures in Computer Science.

[21]  Michel Wermelinger,et al.  A graph transformation approach to software architecture reconfiguration , 2002, Sci. Comput. Program..