Pattern-based model refactoring

In this paper an approach to refactoring a software model using design patterns is described. A design pattern is described as a set of three components: the problem specification which defines where and when the pattern can be applied, the Target specification which describes the structure of the pattern, and model transformation that describes the transformation needed to apply the pattern. XML is chosen to formally represent both the pattern and the software model. A software model is checked for pattern applicability and if an instance of the problem is found, the related transformation is executed as a sequence of primitive model refactorings. Abstract Factory design pattern is used as a case study to demonstrate our approach.

[1]  Martin Fowler,et al.  Refactoring - Improving the Design of Existing Code , 1999, Addison Wesley object technology series.

[2]  Doris L. Carver,et al.  A Metamodeling Approach to Model Refactoring , 2003 .

[3]  Gabriele Taentzer,et al.  EMF Model Refactoring based on Graph Transformation Concepts , 2007, Electron. Commun. Eur. Assoc. Softw. Sci. Technol..

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

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

[6]  Jing Dong,et al.  DP-Miner: Design Pattern Discovery Using Matrix , 2007, 14th Annual IEEE International Conference and Workshops on the Engineering of Computer-Based Systems (ECBS'07).

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

[8]  Peter Norvig,et al.  Artificial Intelligence: A Modern Approach , 1995 .

[9]  Rudolf Ferenc,et al.  Mining design patterns from C++ source code , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[10]  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).

[11]  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).

[12]  Mohammad Abdollahi Azgomi,et al.  UML Model Refactoring with Emphasis on Behavior Preservation , 2008, 2008 2nd IFIP/IEEE International Symposium on Theoretical Aspects of Software Engineering.

[13]  Thorsten Sturm,et al.  Refactoring Browser for UML , 2002, NetObjectDays.

[14]  Dae-Kyoo Kim,et al.  Software Quality Improvement via Pattern-Based Model Refactoring , 2008, 2008 11th IEEE High Assurance Systems Engineering Symposium.

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

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

[17]  Don Roberts,et al.  Practical analysis for refactoring , 1999 .

[18]  Albert Zündorf,et al.  Rewriting poor Design Patterns by good Design Patterns , 1997 .

[19]  Thomas Baar,et al.  Refactoring OCL annotated UML class diagrams , 2005, MoDELS'05.

[20]  Kevin Lano,et al.  Semantics and Transformations for UML Models , 1998, UML.

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

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

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

[24]  Ian Bayley,et al.  Formalising Design Patterns in Predicate Logic , 2007, Fifth IEEE International Conference on Software Engineering and Formal Methods (SEFM 2007).

[25]  Diomidis Spinellis,et al.  Refactoring--Does It Improve Software Quality? , 2007, Fifth International Workshop on Software Quality (WoSQ'07: ICSE Workshops 2007).

[26]  Tom Mens,et al.  Refactoring of UML models using AGG , 2008, Electron. Commun. Eur. Assoc. Softw. Sci. Technol..