Embedding model specifications in object-oriented program code: a bottom-up approach for model-based software development

Models in software engineering are descriptive structures so that transformations can connect their contents at a semantic level. In model-based software development, algorithmic program code usually exists alongside models - derived from them or with the purpose to amend them. While thus both kinds of notations must be considered by developers, no consistent mapping is given since transformations between models and code are usually unidirectional for code generation. This impedes a continuous integration of both, limits the applicability of models, and prevents error tracking and monitoring at run time with respect to models. In this thesis, the approach of embedded models is introduced. Embedded models define patterns in program code whose elements have formal relations to models and can be executed by reflection at the same time. Model specifications are thus embedded in implementations and can be accessed by bidirectional transformations for design, verification, execution, and monitoring. The thesis focuses on the development of such patterns and their precise description as well as on the connection to other program code surrounding embedded models. Implementations are described for two modeling domains, state machines and process models, including tools for design, verification, execution, monitoring, and design recovery. The approach is evaluated with two case studies, the modeling of a real-world load generator for performance tests and the development of model-based educational graphical scenarios for university teaching. Both case studies show that the approach is valid and fulfills its purpose for a certain class of applications. Focusing on the integration in implementations, embedded models are thus a bottom-up approach for model-based software development.

[1]  Klaus Havelund,et al.  Model checking programs , 2000, Proceedings ASE 2000. Fifteenth IEEE International Conference on Automated Software Engineering.

[2]  Herbert A. Simon,et al.  The Sciences of the Artificial , 1970 .

[3]  Frank Tip,et al.  A survey of program slicing techniques , 1994, J. Program. Lang..

[4]  Paul Hudak,et al.  Modular domain specific languages and tools , 1998, Proceedings. Fifth International Conference on Software Reuse (Cat. No.98TB100203).

[5]  Renaud Pawlak,et al.  Foundations of AOP for J2EE Development , 2005 .

[6]  Michael Striewe,et al.  Support for Evolution of Software Systems using Embedded Models , 2009 .

[7]  Jacky Estublier,et al.  Composing domain-specific languages for wide-scope software engineering applications , 2005, MoDELS'05.

[8]  Andreas Elsner,et al.  Selective Tracing of Java Programs , 2004 .

[9]  Gerard J. Holzmann,et al.  SOFTWARE TESTING, VERIFICATION AND RELIABILITY , 2022 .

[10]  Michal Antkiewicz,et al.  Automatic extraction of framework-specific models from framework-based application code , 2007, ASE.

[11]  Jean-Marc Jézéquel,et al.  Using UML Action Semantics for model execution and transformation , 2002, Inf. Syst..

[12]  Frank Budinsky,et al.  EMF: Eclipse Modeling Framework 2.0 , 2009 .

[13]  David H. Lorenz,et al.  ModelTalk: A Framework for Developing Domain Specific Executable Models , 2009, ArXiv.

[14]  Albert L. Baker,et al.  JML: A Notation for Detailed Design , 1999, Behavioral Specifications of Businesses and Systems.

[15]  Junichi Suzuki,et al.  Modeling turnpike frontend system: a model-driven development framework leveraging UML metamodeling and attribute-oriented programming , 2005, MoDELS'05.

[16]  David Frankel,et al.  Model Driven Architecture: Applying MDA to Enterprise Computing , 2003 .

[17]  Shin Nakajima,et al.  The SPIN Model Checker : Primer and Reference Manual , 2004 .

[18]  Guy L. Steele,et al.  Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley)) , 2005 .

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

[20]  PhD Iain Craig Ma The Interpretation of Object-Oriented Programming Languages , 2002, Springer London.

[21]  Holger Giese,et al.  Seamless UML Support for Service-Based Software Architectures , 2003, FIDJI.

[22]  Michael Striewe,et al.  Using a Triple Graph Grammar for State Machine Implementations , 2008, Electron. Commun. Eur. Assoc. Softw. Sci. Technol..

[23]  Forrest Shull,et al.  AN INDUCTIVE METHOD FOR DISCOVERING DESIGN PATTERNS FROM OBJECT-ORIENTED SOFTWARE SYSTEMS , 1998 .

[24]  Jean-Marie Favre,et al.  Towards a Basic Theory to Model Model Driven Engineering , 2004 .

[25]  Michael Kölling,et al.  greenfoot: combining object visualisation with interaction , 2004, OOPSLA '04.

[26]  Oscar Pastor,et al.  Model-driven architecture in practice - a software production environment based on conceptual modeling , 2007 .

[27]  Alex Groce,et al.  Model driven code checking , 2008, Automated Software Engineering.

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

[29]  Lionel C. Briand,et al.  Model Driven Engineering Languages and Systems, 8th International Conference, MoDELS 2005, Montego Bay, Jamaica, October 2-7, 2005, Proceedings , 2005, MoDELS.

[30]  John Anil Saldhana UML Diagrams to Object Petri Net Models: An Approach for Modeling and Analysis , 2000 .

[31]  Albert Zündorf,et al.  Recovering UML Diagrams from Java Code using Patterns , 2001 .

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

[33]  Dániel Varró,et al.  A Formal Semantics of UML Statecharts by Model Transition Systems , 2002, ICGT.

[34]  Florian Matthes,et al.  Introspective Model-Driven Development , 2006, EWSA.

[35]  Alessandro Orso,et al.  Recognizing behavioral patterns atruntime using finite automata , 2006, WODA '06.

[36]  Frank Yellin,et al.  The Java Virtual Machine Specification , 1996 .

[37]  Marcelo d'Amorim,et al.  A Formal Monitoring-Based Framework for Software Development and Analysis , 2004, ICFEM.

[38]  Jean Bézivin,et al.  Towards a precise definition of the OMG/MDA framework , 2001, Proceedings 16th Annual International Conference on Automated Software Engineering (ASE 2001).

[39]  David Chek Ling Ngo,et al.  Formal Specification of Design Patterns - A Balanced Approach , 2003, J. Object Technol..

[40]  Eelco Visser,et al.  Concrete syntax for objects: domain-specific language embedding and assimilation without restrictions , 2004, OOPSLA '04.

[41]  Michelle L. Crane,et al.  UML vs. classical vs. rhapsody statecharts: not all models are created equal , 2005, MoDELS'05.

[42]  筑波技術大学附属図書館 Architecture and Design , 2010 .

[43]  W. Schafer,et al.  Towards pattern-based design recovery , 2002, Proceedings of the 24th International Conference on Software Engineering. ICSE 2002.

[44]  Eelco Visser,et al.  MetaBorg in Action: Examples of Domain-Specific Language Embedding and Assimilation Using Stratego/XT , 2005, GTTSE.

[45]  C. A. R. HOARE,et al.  An axiomatic basis for computer programming , 1969, CACM.

[46]  Dennis Wagelaar,et al.  Explicit platform models for MDA , 2005, MoDELS'05.

[47]  Oscar Nierstrasz,et al.  Example-Driven Reconstruction of Software Models , 2007, 11th European Conference on Software Maintenance and Reengineering (CSMR'07).

[48]  Frank Buschmann,et al.  Pattern-Oriented Software Architecture, a Pattern Language for Distributed Computing , 2007 .

[49]  Steve Freeman,et al.  Evolving an embedded domain-specific language in Java , 2006, OOPSLA '06.

[50]  Marek Vokác,et al.  Using a domain-specific language and custom tools to model a multi-tier service-oriented application — experiences and challenges , 2005, MoDELS'05.

[51]  Hong Yan,et al.  DiscoTect: a system for discovering architectures from running systems , 2004, Proceedings. 26th International Conference on Software Engineering.

[52]  Jean-Marc Jézéquel,et al.  Precise Modeling of Design Patterns , 2000, UML.

[53]  Paul Francis,et al.  Model Driven Architecture with Executable UML , 2004 .

[54]  Michal Antkiewicz,et al.  Fast extraction of high-quality framework-specific models from application code , 2009, Automated Software Engineering.

[55]  Ronald A. Olsson,et al.  Reverse Engineering of Design Patterns from Java Source Code , 2006, 21st IEEE/ACM International Conference on Automated Software Engineering (ASE'06).

[56]  Ira R. Forman,et al.  Java reflection in action , 2005 .

[57]  Antoni Olivé Tomàs Conceptual Schema-Centric Development: A Grand Challenge for Information Systems Research , 2005 .

[58]  Gabriele Taentzer,et al.  ViewPoint-oriented software development by distributed graph transformation: towards a basis for living with inconsistencies , 1999, Proceedings IEEE International Symposium on Requirements Engineering (Cat. No.PR00188).

[59]  Stephen J. Mellor,et al.  Executable UML How to Build Class Models , 2001 .

[60]  O. Ribeiro,et al.  Designing Tool Support for Translating Use Cases and UML 2.0 Sequence Diagrams into a Coloured Petri Net , 2007, Sixth International Workshop on Scenarios and State Machines (SCESM'07: ICSE Workshops 2007).

[61]  Jan Jürjens A UML statecharts semantics with message-passing , 2002, SAC '02.

[62]  Lei Zhang,et al.  OCL4X: An Action Semantics Language for UML Model Execution , 2007, 31st Annual International Computer Software and Applications Conference (COMPSAC 2007).

[63]  Eugen-Nicolae Volanschi A Portable Compiler-Integrated Approach to Permanent Checking , 2006, ASE.

[64]  Eric Bodden The design and implementation of formal monitoring techniques , 2007, OOPSLA '07.

[65]  Michal Antkiewicz,et al.  Framework-Specific modeling languages with round-trip engineering , 2006, MoDELS'06.

[66]  Matthew B. Dwyer,et al.  Bandera: extracting finite-state models from Java source code , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[67]  Jonathan Riehl Assimilating MetaBorg:: embedding language tools in languages , 2006, GPCE '06.

[68]  Steen Brahe,et al.  BPM on Top of SOA: Experiences from the Financial Industry , 2007, BPM.

[69]  Amnon H. Eden,et al.  Precise specification and automatic application of design patterns , 1997, Proceedings 12th IEEE International Conference Automated Software Engineering.

[70]  Bashar Nuseibeh,et al.  To be and not to be: on managing inconsistency in software development , 1996, Proceedings of the 8th International Workshop on Software Specification and Design.

[71]  Robert Englander Developing Java Beans , 1997 .

[72]  Colin Atkinson,et al.  Model-Driven Development: A Metamodeling Foundation , 2003, IEEE Softw..

[73]  Martin Gogolla,et al.  State diagrams in UML: A formal semantics using graph transformations , 1998 .

[74]  Walter Cazzola,et al.  Evaluation of Object-Oriented Reflective Models , 1998, ECOOP Workshops.

[75]  Yann-Gaël Guéhéneuc,et al.  Instantiating and detecting design patterns: putting bits and pieces together , 2001, Proceedings 16th Annual International Conference on Automated Software Engineering (ASE 2001).

[76]  Wang Yi,et al.  Uppaal in a nutshell , 1997, International Journal on Software Tools for Technology Transfer.

[77]  Christian Hofer,et al.  Polymorphic embedding of dsls , 2008, GPCE '08.

[78]  Hafedh Mili,et al.  A model-driven framework for representing and applying design patterns , 2007, 31st Annual International Computer Software and Applications Conference (COMPSAC 2007).

[79]  Ritu Agarwal,et al.  Object-oriented modeling with UML: a study of developers' perceptions , 2003, CACM.

[80]  Neelam Soundarajan,et al.  Responsibilities and rewards: specifying design patterns , 2004, Proceedings. 26th International Conference on Software Engineering.

[81]  Anatoly Shalyto,et al.  UniMod: Method and Tool for Development of Reactive Object- Oriented Programs with Explicit States Emphasis , 2005 .

[82]  Sudipto Ghosh,et al.  A UML-Based Metamodeling Language to Specify Design Patterns , 2003 .

[83]  Ilka Philippow,et al.  An approach for reverse engineering of design patterns , 2004, Software & Systems Modeling.

[84]  Giovanna Di Marzo Serugendo,et al.  Specification-Carrying Code for Self-Managed Systems , 2005 .

[85]  Neil Walkinshaw,et al.  Reverse Engineering State Machines by Interactive Grammar Inference , 2007, 14th Working Conference on Reverse Engineering (WCRE 2007).

[86]  Peri L. Tarr,et al.  Model-driven development : The good , the bad , and the ugly & , 2006 .

[87]  Frank Weil,et al.  Model-Driven engineering in a large industrial context — motorola case study , 2005, MoDELS'05.

[88]  Michael Soden,et al.  Towards a model execution framework for Eclipse , 2009, BM-MDA '09.

[89]  Andy S. Evans,et al.  Reasoning with UML class diagrams , 1998, Proceedings. 2nd IEEE Workshop on Industrial Strength Formal Specification Techniques.

[90]  Michael Striewe,et al.  SyLaGen - An Extendable Tool Environment for Generating Load , 2010, MMB/DFT.

[91]  Arie van Deursen,et al.  Domain-specific languages: an annotated bibliography , 2000, SIGP.

[92]  Linda Bridge,et al.  Generation gap? , 2006, Alberta RN.

[93]  Margaret-Anne D. Storey,et al.  Theories, Methods and Tools in Program Comprehension: Past, Present and Future , 2005, IWPC.

[94]  Bernhard Beckert,et al.  Verification of Object-Oriented Software. The KeY Approach - Foreword by K. Rustan M. Leino , 2007, The KeY Approach.

[95]  Douglas C. Schmidt,et al.  Object-oriented application frameworks , 1997, CACM.

[96]  Doron A. Peled,et al.  Software Reliability Methods , 2001, Texts in Computer Science.

[97]  Michael Striewe,et al.  Enabling Graph Transformations on Program Code , 2010 .

[98]  하수철,et al.  [서평]「Component Software」 - Beyond Object-Oriented Programming - , 2000 .

[99]  Steven H. Kim Knowledge systems through Prolog - an introduction , 1991 .

[100]  Yann-Gaël Guéhéneuc,et al.  Meta-modeling Design Patterns: application to pattern detection and code synthesis , 2001 .

[101]  Alan W. Brown,et al.  A Rational approach to model-driven development , 2006, IBM Syst. J..

[102]  Bran Selic,et al.  The Pragmatics of Model-Driven Development , 2003, IEEE Softw..

[103]  T. Taibi,et al.  Generating Java Code from Design Patterns Formalized in BPSL , 2006, 2006 Innovations in Information Technology.

[104]  Michal Antkiewicz Round-trip engineering using framework-specific modeling languages , 2007, OOPSLA '07.

[105]  Oscar Nierstrasz,et al.  Model Driven Engineering Languages and Systems, 9th International Conference, MoDELS 2006, Genova, Italy, October 1-6, 2006, Proceedings , 2006, MoDELS.

[106]  Matthias Meyer,et al.  Reverse engineering with the reclipse tool suite , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[107]  Rudolf K. Keller,et al.  Pattern visualization for software comprehension , 1998, Proceedings. 6th International Workshop on Program Comprehension. IWPC'98 (Cat. No.98TB100242).