Formalizing architectural refactorings as graph transformation systems

Architectural refactorings are an appropriate technique for the development and improvement of architectural specifications. However, these refactorings are often applied manually. This paper presents a mapping of an architectural specification language to a hypergraph-based data structure. Thus, architectural refactorings can be formalized as hypergraph transformation rules and can be applied automatically.

[1]  Ivar Jacobson,et al.  The Unified Modeling Language User Guide , 1998, J. Database Manag..

[2]  Reiko Heckel,et al.  Algebraic Approaches to Graph Transformation - Part I: Basic Concepts and Double Pushout Approach , 1997, Handbook of Graph Grammars.

[3]  Simon M. Kaplan,et al.  Visual concurrent programming with Δ-grammars , 1992, J. Vis. Lang. Comput..

[4]  Alessandro Birolini Reliability Engineering: Theory and Practice , 1999 .

[5]  Lars Grunske,et al.  Application of Behavior-Preserving Transformations to Improve Non-Functional Properties of an Architecture Specification , 2004, SNPD.

[6]  Tom Mens,et al.  A survey of software refactoring , 2004, IEEE Transactions on Software Engineering.

[7]  Jean-Marc Jézéquel,et al.  Refactoring UML Models , 2001, UML.

[8]  C LuckhamDavid,et al.  Specification and Analysis of System Architecture Using Rapide , 1995 .

[9]  Oscar Nierstrasz,et al.  Object-oriented reengineering patterns , 2004, Proceedings. 26th International Conference on Software Engineering.

[10]  Lars Grunske A visual architecture description language for embedded systems with hierarchical typed hypergraphs , 2003, OOPSLA 2003.

[11]  Berthold Hoffmann,et al.  Hierarchical Graph Transformation , 2002, J. Comput. Syst. Sci..

[12]  Hartmut Ehrig,et al.  Introduction to the Algebraic Theory of Graph Grammars (A Survey) , 1978, Graph-Grammars and Their Application to Computer Science and Biology.

[13]  Annegret Habel,et al.  Hyperedge Replacement: Grammars and Languages , 1992, Lecture Notes in Computer Science.

[14]  Tom Mens,et al.  Formalising Behaviour Preserving Program Transformations , 2002, ICGT.

[15]  Hassan Gomaa,et al.  Designing concurrent, distributed, and real-time applications with UML , 2000, ICSE.

[16]  William F. Opdyke,et al.  Refactoring object-oriented frameworks , 1992 .

[17]  William J Edwards,et al.  Doing Hard Time , 1994 .

[18]  Tom Mens,et al.  Towards Automating Source-Consistent UML Refactorings , 2003, UML.

[19]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[20]  Bran Selic,et al.  Real-time object-oriented modeling , 1994, Wiley professional computing.

[21]  Reiko Heckel,et al.  Graph Grammars with Negative Application Conditions , 1996, Fundam. Informaticae.

[22]  Berthold Hoffmann,et al.  Shapely hierarchical graph transformation , 2001, Proceedings IEEE Symposia on Human-Centric Computing Languages and Environments (Cat. No.01TH8587).

[23]  Robert L. Nord,et al.  Applied Software Architecture , 1999, Addison Wesley object technology series.