Software Quality Improvement via Pattern-Based Model Refactoring

This paper describes an approach to refactoring a software model using design patterns to improve design quality. In this approach, we define a design pattern as a set of three components, a problem specification characterizing problem models, a solution specification characterizing solution models and a transformation specification describing how a problem model should be transformed to a solution model. A problem model is checked for pattern applicability against the problem specification. If the pattern is applicable, the transformation specification is instantiated and applied to the model to incorporate the pattern's solution properties. The resulting model is a solution model conforming to the solution specification of the pattern. We demonstrate the approach using the visitor design pattern and a distributed monitoring system.

[1]  Dae-Kyoo Kim,et al.  Pattern-Based Transformation Rules for Developing Interaction Models of Access Control Systems , 2008, ICSR.

[2]  Ivan Porres,et al.  Model Refactorings as Rule-Based Update Transformations , 2003, UML.

[3]  Jim Steel,et al.  Transformation: The Missing Link of MDA , 2002, ICGT.

[4]  T. Mens,et al.  A Taxonomy of Model Transformations , 2004 .

[5]  Paul L. Bergstein,et al.  Object-preserving class transformations , 1991, OOPSLA '91.

[6]  Robert B. France,et al.  Model Composition Directives , 2004, UML.

[7]  Robert B. France,et al.  A UML-based pattern specification technique , 2004, IEEE Transactions on Software Engineering.

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

[9]  Tom Mens,et al.  A Taxonomy of Model Transformation , 2006, GRaMoT@GPCE.

[10]  Jon Whittle Transformations and Software Modeling Languages: Automating Transformations in UML , 2002, UML.

[11]  Jean Bézivin,et al.  First experiments with the ATL model transformation language: Transforming XSLT into XQuery , 2003 .

[12]  Stuart Kent,et al.  A Relational Approach to Defining Transformations in a Metamodel , 2002, UML.

[13]  Mel O Cinn eide Automated application of design patterns: a refactoring approach , 2001 .

[14]  Dae-Kyoo Kim,et al.  The Role-Based Metamodeling Language for Specifying Design Patterns , 2007 .

[15]  Krzysztof Czarnecki,et al.  Classification of Model Transformation Approaches , 2003 .

[16]  Dae-Kyoo Kim,et al.  Inference of design pattern instances in UML models via logic programming , 2006, 11th IEEE International Conference on Engineering of Complex Computer Systems (ICECCS'06).

[17]  Jay Banerjee,et al.  Semantics and implementation of schema evolution in object-oriented databases , 1987, SIGMOD '87.

[18]  Mel Ó Cinnéide Automated application of design patterns : a refactoring approach , 2001 .

[19]  Michael Philippsen,et al.  Two Controlled Experiments Assessing the Usefulness of Design Pattern Documentation in Program Maintenance , 2002, IEEE Trans. Software Eng..

[20]  Robert B. France,et al.  A Metamodeling Approach to Pattern-Based Model Refactoring , 2003, IEEE Softw..

[21]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[22]  Dae-Kyoo Kim,et al.  Evaluating pattern conformance of UML models: a divide-and-conquer approach and case studies , 2008, Software Quality Journal.

[23]  Robert B. France,et al.  A role-based metamodeling approach to specifying design patterns , 2003, Proceedings 27th Annual International Computer Software and Applications Conference. COMPAC 2003.

[24]  J. Küster,et al.  Taming Model Round-Trip Engineering , 2004 .

[25]  Don Batory,et al.  Automated Software Evolution via Design Pattern Transformations , 1995 .

[26]  Dae-Kyoo Kim,et al.  An approach to precisely specifying the problem domain of design patterns , 2007, J. Vis. Lang. Comput..

[27]  Dragan Milicev,et al.  Automatic Model Transformations Using Extended UML Object Diagrams in Modeling Environments , 2002, IEEE Trans. Software Eng..

[28]  Douglas C. Schmidt,et al.  DOVE: a distributed object visualization environment , 1999 .

[29]  Dániel Varró,et al.  Generic and Meta-transformations for Model Transformation Engineering , 2004, UML.

[30]  Annegret Habel,et al.  Graph Transformation for Specification and Programming , 1999, Sci. Comput. Program..

[31]  Walter Zimmer,et al.  On the computer aided introduction of design patterns into object-oriented systems , 1998, Proceedings Technology of Object-Oriented Languages. TOOLS 27 (Cat. No.98EX224).

[32]  Douglas C. Schmidt,et al.  Pattern-Oriented Software Architecture, Patterns for Concurrent and Networked Objects , 2013 .