Pattern-based model refactoring for the introduction association relationship

Refactoring is an important software development process involving the restructuring of a model to improve its internal qualities without changing its external behavior. In this paper, we propose a new approach of model refactoring based on the combined use of UML, B and CSP. UML models are described by class diagrams, OCL constraints, and state machine diagrams. We detail a refactoring pattern that allows for the introduction of an association relationship between two existing classes. We illustrate our proposal by giving a case study involving the SAAT (Software Architecture Analysis Tool) system.

[1]  Hung Ledang Automatic translation from UML specifications to B , 2001, Proceedings 16th Annual International Conference on Automated Software Engineering (ASE 2001).

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

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

[4]  Jeanine Souquières,et al.  A Systematic Approach to Transform OMT Diagrams to a B Specification , 1999, World Congress on Formal Methods.

[5]  C. Delporte Habilitation à diriger des recherches , 2003 .

[6]  Tom Mens,et al.  Analysing refactoring dependencies using graph transformation , 2007, Software & Systems Modeling.

[7]  Jean-Raymond Abrial,et al.  The B-book - assigning programs to meanings , 1996 .

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

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

[10]  Cláudia Maria Lima Werner,et al.  Refactoring object constraint language specifications , 2007, Software & Systems Modeling.

[11]  Uwe Aßmann,et al.  Tool supported OCL refactoring catalogue , 2012, OCL '12.

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

[13]  Gianna Reggio,et al.  Consistency Problems in UML-Based Software Development , 2004, UML Satellite Activities.

[14]  Michael Butler,et al.  U2B - A tool for translating UML-B models into B , 2004 .

[15]  Helen Sharp,et al.  Agile Processes, in Software Engineering, and Extreme Programming , 2016, Lecture Notes in Business Information Processing.

[16]  Jeanine Souquières,et al.  Integration of UML and B specification techniques: systematic transformation from OCL expressions into B , 2002, Ninth Asia-Pacific Software Engineering Conference, 2002..

[17]  Steve A. Schneider,et al.  Augmenting B with Control Annotations , 2007, B.

[18]  Jeff Sutherland,et al.  The Scrum Guide , 2012 .

[19]  Yves Ledru,et al.  Ingénierie Dirigée par les Modèles pour une intégration efficace de UML et B , 2009, INFORSID.

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

[21]  Uwe Aßmann,et al.  Role-based generic model refactoring , 2010, MODELS'10.

[22]  David Clark,et al.  UML to B: Formal Verification of Object-Oriented Models , 2004, IFM.

[23]  Slavisa Markovic,et al.  Model refactoring using transformations , 2008 .

[24]  Shane Warden,et al.  The art of agile development , 2007 .

[25]  Alberto Sillitti Agile Processes in Software Engineering and Extreme Programming, 11th International Conference, XP 2010, Trondheim, Norway, June 1-4, 2010. Proceedings , 2010, XP.

[26]  Tom Mens,et al.  On the Use of Graph Transformations for Model Refactoring , 2005, GTTSE.

[27]  Helmut Neukirchen,et al.  An approach and tool for synchronous refactoring of UML diagrams and models using model-to-model transformations , 2012, WRT '12.

[28]  Boulbaba Ben Ammar,et al.  Schéma de refactoring de diagrammes de classes basé sur la notion de délégation , 2008 .

[29]  Andrew William Roscoe,et al.  Model-checking CSP , 1994 .

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

[31]  Paul Benoit,et al.  Météor: A Successful Application of B in a Large Project , 1999, World Congress on Formal Methods.

[32]  Edsger W. Dijkstra,et al.  Guarded commands, nondeterminacy and formal derivation of programs , 1975, Commun. ACM.

[33]  Heike Wehrheim,et al.  Checking Consistency in UML Diagramms: Classes and State Machines , 2003, FMOODS.

[34]  Christopher G. Lasater,et al.  Design Patterns , 2008, Wiley Encyclopedia of Computer Science and Engineering.

[35]  Mauricio A. Saca Refactoring improving the design of existing code , 2017, 2017 IEEE 37th Central America and Panama Convention (CONCAPAN XXXVII).