Developpement logiciel par transformation de modeles

Software engineering researchers have long tried to understand the software process development to mechanize it or at least to codify its good practices. We identify two major approaches to characterize the process. The first approach—known as transformational—sees the process as a sequence of property-preserving transformations. This idea was recently adopted by the OMG’s model-driven architecture (MDA). The second approach consists in identifying and codifying proven solutions to recurring problems. Research on architectural styles, frameworks and design patterns are part of this approach. Our research recognizes the complementarity of these two approaches, in particular in the design step. Indeed within the model-driven development context, we view software design as the process of applying codified solution patterns to input models. Software design is typically defined in terms of architectural design and detailed design. Architectural design aims at organizing the software in modules or components that meet a set of non-functional requirements while detailed design is—in some way—concerned by the contents of the identified components. Architectural design relies on architectural styles which are principles of organization to optimize certain quality requirements, whereas detailed design relies on design patterns to assign responsibilities to classes. Both architectural styles and design patterns are design artifacts that encode proven solutions to recurring design problems. While these design artifacts are documented, the decision to apply them remains essentially manual. Besides, once a decision has been made to use a design artifact, there is no adequate support to apply it to existing models. As design patterns present an “easier” problem to solve, and because architectural styles implementation relies on design patterns, our strategy for addressing these issues was to try to solve the problem for design patterns first, and then tackle architectural styles. Hence, in this thesis, we propose an approach for representing and applying design patterns. Our approach is based on an explicit representation of the problems solved by design patterns. Indeed, and explicit representation of the problem solved by a pattern enables to: (1) better understand the pattern, (2) recognize the opportunity of applying the pattern by matching the representation of the problem against the models of the considered system, and (3) specify declaratively the application of the pattern as a transformation of an instance of the problem into an instance of the solution. To verify and validate the proposed approach, we used it to represent and apply several design patterns. We also conducted practical tests on models generated from open source systems. Keywords. Design patterns, Design problems, Pattern matching, Model marquing, Model transformation, Meta-modelling.

[1]  Roman Barták,et al.  Constraint Programming: In Pursuit of the Holy Grail , 1999 .

[2]  Ira D. Baxter,et al.  Design maintenance systems , 1991, CACM.

[3]  Richard N. Taylor,et al.  A Component- and Message-Based Architectural Style for GUI Software , 1995, 1995 17th International Conference on Software Engineering.

[4]  Christos Kloukinas,et al.  Towards a Base UML Profile for Architecture Description , 2001 .

[5]  Richard N. Taylor,et al.  A Classification and Comparison Framework for Software Architecture Description Languages , 2000, IEEE Trans. Software Eng..

[6]  David Garlan,et al.  A formal basis for architectural connection , 1997, TSEM.

[7]  David Garlan,et al.  Exploiting style in architectural design environments , 1994, SIGSOFT '94.

[8]  Rolf Adams,et al.  Representing Design Patterns and Frameworks in UML - Towards a Comprehensive Approach , 2002, J. Object Technol..

[9]  Dániel Varró,et al.  Advanced model transformation language constructs in the VIATRA2 framework , 2006, SAC.

[10]  Juan de Lara,et al.  Tools of model transformation by graph transformation: A comparative study , 2012, International Conference on Education and e-Learning Innovations.

[11]  Mary Shaw,et al.  Characteristics of Higher-Level Languages for Software Architecture. , 1994 .

[12]  Mary Shaw,et al.  Abstractions for Software Architecture and Tools to Support Them , 1995, IEEE Trans. Software Eng..

[13]  Oliver Ciupke,et al.  Automatic detection of design problems in object-oriented reengineering , 1999, Proceedings of Technology of Object-Oriented Languages and Systems - TOOLS 30 (Cat. No.PR00278).

[14]  David Garlan,et al.  A Formal Approach to Software Architectures , 1992, IFIP Congress.

[15]  Nenad Medvidovic,et al.  Modeling software architectures in the Unified Modeling Language , 2002, TSEM.

[16]  Martin Fowler,et al.  Analysis patterns - reusable object models , 1996, Addison-Wesley series in object-oriented software engineering.

[17]  Albert Zündorf,et al.  Graph Pattern Matching in PROGRES , 1994, TAGT.

[18]  Houari A. Sahraoui,et al.  Predicting class libraries interface evolution: an investigation into machine learning approaches , 2000, Proceedings Seventh Asia-Pacific Software Engeering Conference. APSEC 2000.

[19]  Walter Zimmer,et al.  Relationships between design patterns , 1995 .

[20]  Peter Coad,et al.  Object-oriented patterns , 1992, CACM.

[21]  Roel Wuyts,et al.  Declarative reasoning about the structure of object-oriented systems , 1998, Proceedings. Technology of Object-Oriented Languages. TOOLS 26 (Cat. No.98EX176).

[22]  Dániel Varró,et al.  Adaptive Graph Pattern Matching for Model Transformations using Model-sensitive Search Plans , 2006, GRaMoT@GPCE.

[23]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[24]  Laurence Tratt,et al.  A model driven approach to model transformations. , 2003 .

[25]  Ralf Steinbrüggen,et al.  Program Transformation Systems , 1983, CSUR.

[26]  Houari A. Sahraoui,et al.  Détection d'anomalies utilisant un langage de règle de qualité , 2006, LMO.

[27]  Lutz Prechelt,et al.  Functionality versus Practicality: Employing Existing Tools for Recovering Structural Design Patterns , 1998, J. Univers. Comput. Sci..

[28]  Marco Meijers,et al.  Tool Support for Object-Oriented Patterns , 1997, ECOOP.

[29]  Paul C. Clements,et al.  A survey of architecture description languages , 1996, Proceedings of the 8th International Workshop on Software Specification and Design.

[30]  Michael Rudolf Utilizing Constraint Satisfaction Techniques for Efficient Graph Pattern Matching , 1998, TAGT.

[31]  Gabor Karsai,et al.  The design of a simple language for graph transformations , 2005 .

[32]  James Noble,et al.  Classifying relationships between object-oriented design patterns , 1998, Proceedings 1998 Australian Software Engineering Conference (Cat. No.98EX233).

[33]  Reiko Heckel,et al.  A view-oriented approach to system modelling based on graph transformation , 1997, ESEC '97/FSE-5.

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

[35]  Richard C. Waters,et al.  Approaches to Automatic Programming , 1993, Adv. Comput..

[36]  Amnon H. Eden,et al.  Towards a Mathematical Foundation for Design Patterns , 1999 .

[37]  Ákos Horváth,et al.  Generic Search Plans for Matching Advanced Graph Patterns , 2007, Electron. Commun. Eur. Assoc. Softw. Sci. Technol..

[38]  Narayan C. Debnath,et al.  Defining Patterns Using UML Profiles , 2006, IEEE International Conference on Computer Systems and Applications, 2006..

[39]  Bernd-Uwe Pagel,et al.  Towards Pattern-based Tools , 1996 .

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

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

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

[43]  M.P.J. Stevens,et al.  Specification and analysis , 1996 .

[44]  Ivica Crnkovic,et al.  6th ICSE workshop on component-based software engineering: automated reasoning and prediction , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[45]  Reiko Heckel,et al.  Confluence of Typed Attributed Graph Transformation Systems , 2002, ICGT.

[46]  Hafedh Mili,et al.  Detecting Patterns of Poor Design Solutions Using Constraint Propagation , 2008, MoDELS.

[47]  David Garlan,et al.  Reconciling the needs of architectural description with object-modeling notations , 2000, Sci. Comput. Program..

[48]  Luciano Baresi,et al.  Tutorial Introduction to Graph Transformation: A Software Engineering Perspective , 2002, ICGT.

[49]  Gabor Karsai,et al.  Applying a Model Transformation Taxonomy to Graph Transformation Technology , 2006, GRaMoT@GPCE.

[50]  Andy Hon,et al.  Constraint Programming in Java with JSolver , 1999 .

[51]  Manuel Bodirsky,et al.  Equivalence Constraint Satisfaction Problems , 2012, CSL.

[52]  James E. Rumbaugh,et al.  Object-Oriented Modelling and Design , 1991 .

[53]  Claudia Raibulet,et al.  Elemental Design Patterns Recognition In Java , 2005, 13th IEEE International Workshop on Software Technology and Engineering Practice (STEP'05).

[54]  Ali Mili,et al.  Reuse-based software engineering: techniques, organization, and controls , 2001 .

[55]  Ali Mili,et al.  Reusing Software: Issues and Research Directions , 1995, IEEE Trans. Software Eng..

[56]  Jean-Marc Jézéquel,et al.  Design Patterns Application in UML , 2000, ECOOP.

[57]  Ralph E. Johnson,et al.  Frameworks = (components + patterns) , 1997, CACM.

[58]  Charles J. Petrie,et al.  On the Equivalence of Constraint Satisfaction Problems , 1990, ECAI.

[59]  Jochen Malte Küster,et al.  Validation of model transformations: first experiences using a white box approach , 2006, MoDELS'06.

[60]  Vipin Kumar,et al.  Algorithms for Constraint-Satisfaction Problems: A Survey , 1992, AI Mag..

[61]  Frank Marschall,et al.  Model Transformations for the MDA with BOTL , 2003 .

[62]  John M. Vlissides,et al.  Automatic Code Generation from Design Patterns , 1996, IBM Syst. J..

[63]  Dániel Varró,et al.  Designing the automatic transformation of visual languages , 2002, Sci. Comput. Program..

[64]  A. Kalnins,et al.  Simple and efficient implementation of pattern matching in MOLA tool , 2006, 2006 7th International Baltic Conference on Databases and Information Systems.

[65]  Stuart Kent,et al.  Precise Visual Specification of Design Patterns , 1998, ECOOP.

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

[67]  Carlos José Pereira de Lucena,et al.  Extending UML to Improve the Representation of Design Patterns , 2000 .

[68]  Dániel Varró,et al.  Using Graph Transformation for Practical Model-Driven Software Engineering , 2005, Model-Driven Software Development.

[69]  Steve Vestal,et al.  A cursory overview and comparison of four architecture description languages , 1993 .

[70]  Tom Mens,et al.  A declarative evolution framework for object-oriented design patterns , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

[71]  Toufik Taibi,et al.  Formal Specification of Design Patterns and Their Instances , 2006, IEEE International Conference on Computer Systems and Applications, 2006..

[72]  Walter Mann,et al.  Correction to "Specification and Analysis of System Architecture Using Rapide" , 1995, IEEE Trans. Software Eng..

[73]  David Garlan,et al.  Acme: architectural description of component-based systems , 2000 .

[74]  Kurt Mehlhorn,et al.  Data Structures and Algorithms 2: Graph Algorithms and NP-Completeness , 1984, EATCS Monographs on Theoretical Computer Science.

[75]  Peter van Beek,et al.  On the Conversion between Non-Binary and Binary Constraint Satisfaction Problems , 1998, AAAI/IAAI.

[76]  Robert Engel,et al.  Making design patterns explicit in FACE , 1997, FSE 1997.

[77]  Frank Budinsky,et al.  Eclipse Modeling Framework , 2003 .

[78]  Robert J. Allen A formal approach to software architecture , 1997 .

[79]  Mary Shaw,et al.  An Introduction to Software Architecture , 1993, Advances in Software Engineering and Knowledge Engineering.

[80]  P. David Stotts,et al.  SPQR: flexible automated design pattern extraction from source code , 2003, 18th IEEE International Conference on Automated Software Engineering, 2003. Proceedings..

[81]  John Grundy,et al.  Design pattern modelling and instantiation using DPML , 2002 .

[82]  David Garlan,et al.  Reconciling the needs of architectural description with object-modeling notations , 2002, Sci. Comput. Program..