Automated synthesis of domain-specific model interpreters

Software architecture models are specifications of the principal design decisions about a software system that primarily govern its structure, behavior, and quality. Architecture models provide a blueprint for how the system is implemented, serve as a basis for experimentation with and rationalization of design decisions, and enable the automation of software engineering tasks. Domain-specific languages (DSLs) are modeling languages that are defined and customized for a particular family of problems or systems (the domain). DSLs are able to concisely and intuitively express software architecture models because they natively include the design abstractions that are most useful and natural for the system under development. However, because DSLs have non-standard semantics that cannot be known a priori, leveraging architecture models specified in a DSL for automated quality analysis, code generation, and other activities requires the implementation of specialized tools, called model interpreters, that perform these functions. Implementation and maintenance of domain-specific model interpreters are widely recognized as difficult and complex tasks that incur a significant burden on software engineers and reduce the appeal of the DSL approach. In this dissertation, I describe XTEAM, an integrated set of processes, notations, tools, and designs that enable the automated synthesis of model interpreters for DSLs. The key elements of XTEAM are (1) semantics embedded in the DSL specification (called a metamodel), (2) a metamodel interpreter that automatically synthesizes transformation rules derived from those semantics, and (3) a reusable model interpreter framework that applies those transformation rules in an efficient and structured way to domain-specific models. The impact of XTEAM is that software engineers can use a DSL and perform automated model analysis, code generation, and other types of model transformation and manipulation without having to develop custom tools, greatly reducing the time, effort, expense, and risk associated with domain-specific modeling. XTEAM has been and continues to be used successfully on a number of software engineering projects, and experimental evaluation of XTEAM indicates that, even when pessimistic assumptions are made, XTEAM automates what would otherwise require multiple person-months of effort.

[1]  Robert Giegerich,et al.  A truly generative semantics-directed compiler generator , 1982, SIGPLAN '82.

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

[3]  Sam Malek,et al.  A framework for utility-based service oriented design in SASSY , 2010, WOSP/SIPEW '10.

[4]  Paola Inverardi,et al.  Uncovering Architectural Mismatch in Component Behavior , 1999, Sci. Comput. Program..

[5]  Richard N. Taylor,et al.  Software architecture: foundations, theory, and practice , 2009, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[6]  Lixin Shen,et al.  Reliability Modeling Using UML , 2003, Software Engineering Research and Practice.

[7]  Paul Clements,et al.  ATAM: Method for Architecture Evaluation , 2000 .

[8]  Huilin Ye,et al.  Approach to modelling feature variability and dependencies in software product lines , 2005, IEE Proc. Softw..

[9]  Richard N. Taylor,et al.  ArchStudio 4: An Architecture-Based Meta-Modeling Environment , 2007, 29th International Conference on Software Engineering (ICSE'07 Companion).

[10]  Peter Kilpatrick,et al.  Weaving behavior into feature models for embedded system families , 2006 .

[11]  Sam Malek,et al.  Self-* software architectures and component middleware in pervasive environments , 2007, MPAC '07.

[12]  Steve Cook,et al.  Domain-Specific Development with Visual Studio DSL Tools , 2007 .

[13]  Yuriy Brun,et al.  An architecture-driven software mobility framework , 2010, J. Syst. Softw..

[14]  Anneke Kleppe,et al.  The Object Constraint Language: Getting Your Models Ready for MDA , 2003 .

[15]  Sam Malek,et al.  RESISTing reliability degradation through proactive reconfiguration , 2010, ASE.

[16]  Gabriel A. Moreno,et al.  Packaging Predictable Assembly , 2002, Component Deployment.

[17]  Nenad Medvidovic,et al.  Estimating software component reliability by leveraging architectural models , 2006, ICSE '06.

[18]  Yuriy Brun,et al.  Smart Redundancy for Distributed Computation , 2011, 2011 31st International Conference on Distributed Computing Systems.

[19]  Ivar Jacobson,et al.  The unified modeling language reference manual , 2010 .

[20]  Bruce R. Schatz,et al.  An Overview of the Production-Quality Compiler-Compiler Project , 1980, Computer.

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

[22]  Charles W. Krueger,et al.  Software reuse , 1992, CSUR.

[23]  Colin Atkinson,et al.  Meta-level Independent Modelling , 2000 .

[24]  J. Banks,et al.  Discrete-Event System Simulation , 1995 .

[25]  Ivan Porres,et al.  A Relation Between Context-Free Grammars and Meta Object Facility Metamodels , 2003 .

[26]  Michael M. Gorlick,et al.  Using weaves for software construction and analysis , 1991, [1991 Proceedings] 13th International Conference on Software Engineering.

[27]  Ellis Horowitz,et al.  Software Cost Estimation with COCOMO II , 2000 .

[28]  Nenad Medvidovic,et al.  Prediction of energy consumption behavior in component-based distributed systems , 2008 .

[29]  Kurt C. Wallnau,et al.  Volume III: A Technology for Predictable Assembly from Certifiable Components , 2003 .

[30]  Ricardo Valerdi,et al.  Test and evaluation of a SoS using a prescriptive and adaptive testing framework , 2010, 2010 5th International Conference on System of Systems Engineering.

[31]  Gabor Karsai,et al.  Metamodel driven model migration , 2003 .

[32]  James B. Dabney,et al.  Mastering Simulink 4 , 2001 .

[33]  Markus Voelter A Family of Languages for Architecture Description , 2008 .

[34]  Aniruddha S. Gokhale,et al.  Model driven middleware: A new paradigm for developing distributed real-time and embedded systems , 2008, Sci. Comput. Program..

[35]  Stavros Tripakis,et al.  Kronos: A Model-Checking Tool for Real-Time Systems , 1998, CAV.

[36]  Gabor Karsai,et al.  The Generic Modeling Environment , 2001 .

[37]  Roy T. Fielding,et al.  Principled design of the modern Web architecture , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[38]  Gordon D. Plotkin,et al.  A structural approach to operational semantics , 2004, J. Log. Algebraic Methods Program..

[39]  Marija Mikic-Rakic,et al.  A style-aware architectural middleware for resource-constrained, distributed systems , 2005, IEEE Transactions on Software Engineering.

[40]  Nenad Medvidovic,et al.  Construction of Analytic Frameworks for Component-Based Architectures , 2007, SBCARS.

[41]  Michael Eisenbarth,et al.  A decade of scoping: a survey , 2009, SPLC.

[42]  Douglas C. Schmidt,et al.  Ultra-Large-Scale Systems: The Software Challenge of the Future , 2006 .

[43]  Sam Malek,et al.  A framework for estimating the energy consumption induced by a distributed system's architectural style , 2009, SAVCBS '09.

[44]  Nenad Medvidovic,et al.  A Highly Extensible Simulation Framework for Domain-Specific Architectures , 2009 .

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

[46]  Thomas L. Harman,et al.  Mastering Simulink , 2003 .

[47]  Kai Koskimies,et al.  Framework specialization aspects , 2007, AOSD.

[48]  Marta Z. Kwiatkowska,et al.  PRISM: Probabilistic Symbolic Model Checker , 2002, Computer Performance Evaluation / TOOLS.

[49]  Parastoo Mohagheghi,et al.  Where Is the Proof? - A Review of Experiences from Applying MDE in Industry , 2008, ECMDA-FA.

[50]  Paola Inverardi,et al.  Transformations of software models into performance models , 2005, ICSE.

[51]  Michael J. C. Gordon,et al.  The denotational description of programming languages - an introduction , 1979 .

[52]  Yuriy Brun,et al.  Injecting Robustness into Autonomic Grid Systems , 2009 .

[53]  Pierre-Yves Schobbens,et al.  Generic semantics of feature diagrams , 2007, Comput. Networks.

[54]  Murray Woodside Tutorial introduction to layered modeling of software performance , 2002 .

[55]  John D. McGregor,et al.  Calculating ROI for software product lines , 2004, IEEE Software.

[56]  Sam Malek,et al.  Improving Availability in Large, Distributed Component-Based Systems Via Redeployment , 2005, Component Deployment.

[57]  Gabor Karsai Structured specification of model interpreters , 1999, Proceedings ECBS'99. IEEE Conference and Workshop on Engineering of Computer-Based Systems.

[58]  Diego Latella,et al.  Dependability analysis in the early phases of UML-based system design , 2001, Comput. Syst. Sci. Eng..

[59]  Sagar Chaki,et al.  The ComFoRT Reasoning Framework , 2005, CAV.

[60]  Gaurav S. Sukhatme,et al.  Architecture-driven self-adaptation and self-management in robotics systems , 2009, 2009 ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems.

[61]  Stephen C. Johnson A portable compiler: theory and practice , 1978, POPL.

[62]  Andrew M. Kuhn,et al.  Code Complete , 2005, Technometrics.

[63]  Barry W. Boehm,et al.  A software product line life cycle cost estimation model , 2004, Proceedings. 2004 International Symposium on Empirical Software Engineering, 2004. ISESE '04..

[64]  Matthew B. Dwyer,et al.  Cadena: an integrated development, analysis, and verification environment for component-based systems , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[65]  Sam Malek,et al.  A Modeling Language for Activity-Oriented Composition of Service-Oriented Software Systems , 2009, MoDELS.

[66]  Carol A. Sledge Reports from the Field on System of Systems Interoperability Challenges and Promising Approaches , 2010 .

[67]  C. Robert Kenley,et al.  5.2.2 Normative and Descriptive Models for Test & Evaluation of Unmanned and Autonomous Systems of Systems , 2010 .

[68]  R. G. G. Cattell,et al.  A Survey and Critique of Some Models of Code Generation , 1977 .

[69]  Sam Malek,et al.  A Framework for Estimating the Impact of a Distributed Software System's Architectural Style on its Energy Consumption , 2008, Seventh Working IEEE/IFIP Conference on Software Architecture (WICSA 2008).

[70]  Peter H. Feiler,et al.  The Architecture Analysis & Design Language (AADL): An Introduction , 2006 .

[71]  Eila Niemelä,et al.  Survey of reliability and availability prediction methods from the viewpoint of software architecture , 2007, Software & Systems Modeling.

[72]  Richard F. Paige,et al.  Principles for modeling language design , 2000, Inf. Softw. Technol..

[73]  Jakob E. Bardram,et al.  Architectural prototyping: an approach for grounding architectural design and learning , 2004, Proceedings. Fourth Working IEEE/IFIP Conference on Software Architecture (WICSA 2004).

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

[75]  Heiko Kern,et al.  The Interchange of ( Meta ) Models between MetaEdit + and Eclipse EMF Using M 3-Level-Based Bridges , 2008 .

[76]  John Hatcliff,et al.  A type-centric framework for specifying heterogeneous, large-scale, component-oriented, architectures , 2010, Sci. Comput. Program..

[77]  R. G. G. Cattell,et al.  Code generation in a machine-independent compiler , 1979, SIGPLAN '79.

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

[79]  Gabor Karsai,et al.  On the Use of Graph Transformation in the Formal Specification of Model Interpreters , 2003, J. Univers. Comput. Sci..

[80]  Ian T. Foster,et al.  The Anatomy of the Grid: Enabling Scalable Virtual Organizations , 2001, Int. J. High Perform. Comput. Appl..

[81]  David Garlan,et al.  Documenting software architectures: views and beyond , 2002, 25th International Conference on Software Engineering, 2003. Proceedings..

[82]  Jing Zhang,et al.  Metamodel-driven model interpreter evolution , 2005, OOPSLA '05.

[83]  Sam Malek,et al.  Scenario-Driven Dynamic Analysis of Distributed Architectures , 2007, FASE.

[84]  Nenad Medvidovic,et al.  Model Interpreter Frameworks: A Foundation for the Analysis of Domain-Specific Software Architectures , 2008, J. Univers. Comput. Sci..

[85]  Klaus Pohl,et al.  Model Checking of Domain Artifacts in Product Line Engineering , 2009, 2009 IEEE/ACM International Conference on Automated Software Engineering.

[86]  André van der Hoek,et al.  Modeling Product Line Architectures through Change Sets and Relationships , 2007, 29th International Conference on Software Engineering (ICSE'07).

[87]  Dennis G. Kafura,et al.  The Use of Software Complexity Metrics in Software Maintenance , 1987, IEEE Transactions on Software Engineering.

[88]  Matthias Weber,et al.  Multi-level feature trees , 2007, Requirements Engineering.

[89]  Douglas C. Schmidt,et al.  Improving Domain-specific Language Reuse through Software Product-line Configuration Techniques , 2008 .

[90]  M Mernik,et al.  When and how to develop domain-specific languages , 2005, CSUR.

[91]  William R. Cook,et al.  Fitting the pieces together: a machine-checked model of safe composition , 2009, ESEC/FSE '09.

[92]  Douglas C. Schmidt,et al.  Guest Editor's Introduction: Model-Driven Engineering , 2006, Computer.

[93]  Chiyoung Seo,et al.  Exploring the Role of Software Architecture in Dynamic and Fault Tolerant Pervasive Systems , 2007, First International Workshop on Software Engineering for Pervasive Computing Applications, Systems, and Environments (SEPCASE '07).

[94]  A. Varga,et al.  THE OMNET++ DISCRETE EVENT SIMULATION SYSTEM , 2003 .

[95]  Sam Malek,et al.  FUSION: a framework for engineering self-tuning self-adaptive software systems , 2010, FSE '10.

[96]  Ricardo Valerdi,et al.  Cost and risk considerations for test and evaluation of unmanned and autonomous systems of systems , 2010, 2010 5th International Conference on System of Systems Engineering.

[97]  Eric M. Dashofy,et al.  An infrastructure for the rapid development of XML-based architecture description languages , 2002, Proceedings of the 24th International Conference on Software Engineering. ICSE 2002.

[98]  Nenad Medvidovic,et al.  Unmanned and Autonomous Systems of Systems Test and Evaluation: Challenges and Opportunities , 2010 .

[99]  Nenad Medvidovic,et al.  PLASMA: a plan-based layered architecture for software model-driven adaptation , 2010, ASE '10.

[100]  Edmund M. Clarke,et al.  Model Checking , 1999, Handbook of Automated Reasoning.

[101]  Lawrence R. Rabiner,et al.  A tutorial on hidden Markov models and selected applications in speech recognition , 1989, Proc. IEEE.

[102]  Kai Koskimies,et al.  Automating the construction of domain-specific modeling languages for object-oriented frameworks , 2010, J. Syst. Softw..

[103]  Claudio Demartini,et al.  dSPIN: A Dynamic Extension of SPIN , 1999, SPIN.

[104]  Janos Sztipanovits,et al.  Formalizing the structural semantics of domain-specific modeling languages , 2009, Software & Systems Modeling.

[105]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[106]  Gordon D. Plotkin,et al.  The origins of structural operational semantics , 2004, J. Log. Algebraic Methods Program..

[107]  Sam Malek,et al.  Reconceptualizing a Family of Heterogeneous Embedded Systems via Explicit Architectural Support , 2007, 29th International Conference on Software Engineering (ICSE'07).

[108]  Nenad Medvidovic,et al.  A Methodology and Framework for Creating Domain-Specific Development Infrastructures , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering.

[109]  Henry Muccini,et al.  Providing Architectural Languages and Tools Interoperability through Model Transformation Technologies , 2010, IEEE Transactions on Software Engineering.

[110]  G. Nordstrom,et al.  On metamodel composition , 2001, Proceedings of the 2001 IEEE International Conference on Control Applications (CCA'01) (Cat. No.01CH37204).

[111]  Gabor Karsai,et al.  Model-Integrated Computing , 1997, Computer.

[112]  Louise Trevillyan,et al.  The Experimental Compiling System , 1980, IBM J. Res. Dev..

[113]  Richard N. Taylor,et al.  A highly-extensible, XML-based architecture description language , 2001, Proceedings Working IEEE/IFIP Conference on Software Architecture.