Compositional Verification of Architectural Refactorings

With the success of model-driven development as well as component-based and service-oriented systems, models of software architecture are key artefacts in the development process. To adapt to changing requirements and improve internal software quality such models have to evolve while preserving aspects of their behaviour. These behaviour preserving developments are known as refactorings. The verification of behaviour preservation requires formal semantics that can be defined by model transformation, e.g., using process algebras as semantic domain for architectural models. Denotational semantics of programming languages are by definition compositional. In order to enjoy a similar property in the case of model transformations, every component of the source model should be distinguishable in the target model and the mapping compatible with syntactic and semantic composition. To avoid the costly verification of refactoring steps on large systems we present a method based on compositional typed graph transformations which allows us to extract a (usually much smaller) rule from the transformation performed and verify this rule instead. The main result of the paper shows that the verification of rules is indeed sufficient to guarantee the desired semantic relation between source and target models. A formal definition of compositionality for mappings from typed graphs to semantic domains is proposed. In order to guarantee compositionality, a syntactic criterion has been established for the implementation of the mappings by typed graph transformations with negative application conditions. We apply the approach to the refactoring of architectural models based on UML component, structure, and activity diagrams with CSP as semantic domain.

[1]  Reiko Heckel,et al.  A methodology for specifying and analyzing consistency of object-oriented behavioral models , 2001, ESEC/FSE-9.

[2]  Hartmut Ehrig,et al.  Fundamentals of Algebraic Graph Transformation , 2006, Monographs in Theoretical Computer Science. An EATCS Series.

[3]  Hartmut Ehrig,et al.  Parallelism and Concurrency in Adhesive High-Level Replacement Systems with Negative Application Conditions , 2008, Electron. Notes Theor. Comput. Sci..

[4]  Reiko Heckel,et al.  Veriflcation of Architectural Refactoring Rules , 2008 .

[5]  Dénes Bisztray,et al.  Verification of Architectural Refactorings: Rule Extraction and Tool Support , 2008, ICGT.

[6]  Jeff Magee,et al.  Dynamic structure in software architectures , 1996, SIGSOFT '96.

[7]  Derrick G. Kourie,et al.  Towards proving preservation of behaviour of refactoring of UML models , 2005 .

[8]  Bran Selic,et al.  Using UML for Modeling Complex Real-Time Systems , 1998, LCTES.

[9]  Paulo Borba,et al.  An Approach to Invariant-based Program Refactoring , 2006, Electron. Commun. Eur. Assoc. Softw. Sci. Technol..

[10]  Allan Clark,et al.  Semantic-Based Development of Service-Oriented Systems , 2006, FORTE.

[11]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[12]  David Garlan,et al.  Specifying and Analyzing Dynamic Software Architectures , 1998, FASE.

[13]  Hartmut Ehrig,et al.  Fundamentals of Algebraic Graph Transformation (Monographs in Theoretical Computer Science. An EATCS Series) , 1992 .

[14]  Hartmut Ehrig,et al.  Behavior Preservation in Model Refactoring Using DPO Transformations with Borrowed Contexts , 2008, ICGT.

[15]  Qing Li,et al.  Unified Modeling Language , 2009 .

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

[17]  Andy Schürr,et al.  Specification of Graph Translators with Triple Graph Grammars , 1994, WG.

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

[19]  Hartmut Ehrig,et al.  Deriving bisimulation congruences in the DPO approach to graph rewriting with borrowed contexts , 2006, Mathematical Structures in Computer Science.

[20]  Gabriele Taentzer,et al.  Termination of High-Level Replacement Units with Application to Model Transformation , 2005, Electron. Notes Theor. Comput. Sci..

[21]  K. Rustan M. Leino,et al.  Object Invariants in Dynamic Contexts , 2004, ECOOP.

[22]  Dániel Varró,et al.  Model transformation by example , 2006, MoDELS'06.