scispace - formally typeset
Search or ask a question

A Model-Based Approach to Families of Embedded Domain-Specific Languages.

01 Jan 2010-pp 33-33
TL;DR: This paper presents an approach to build embedded domain-specific languages applying the principles of model-driven engineering, and proposes composition mechanisms for the abstract syntax, concrete syntax, and model transformation levels of a DSL's definition.
Abstract: With the emergence of model-driven engineering (MDE), the creation of domain-specific languages (DSLs) is becoming a fundamental part of language engineering The development cost of a DSL should be modest compared to the cost of developing a general-purpose programming language Reducing the implementation effort and providing reuse techniques are key aspects for DSL approaches to be really effective In this paper, we present an approach to build embedded domain-specific languages applying the principles of model-driven engineering On the basis of this approach, we will tackle reuse of DSLs by defining families of DSLs, addressing reuse both from the DSL developer and user point of views A family of DSLs will be built up by composing several DSLs, so we will propose composition mechanisms for the abstract syntax, concrete syntax, and model transformation levels of a DSL's definition Finally, we contribute a software framework to support our approach, and we illustrate the paper with a case study to demonstrate its practical applicability
Citations
More filters
Journal ArticleDOI
TL;DR: This paper investigates the synchronization mechanism between architecture configurations and system states for maintaining the causal connections, and designs an algorithm based on it, which addresses issues such as conflicts between architecture and system changes, and exceptions of system manipulations.

82 citations


Cites methods from "A Model-Based Approach to Families ..."

  • ...We assume the architecture models already conform to MOF standard, because more and more people choose MOF-based languages, like UML, to describe architecture models, and there are tools to convert architecture models in other languages into MOF-compliant ones (Cuadrado and Molina, 2009)....

    [...]

Journal ArticleDOI
TL;DR: An in-depth comparison of reuse mechanisms in model-to-model transformation languages and categorizes them along their intended scope of application is provided.
Abstract: In the area of model-driven engineering, model transformations are proposed as the technique to systematically manipulate models. For increasing development productivity as well as quality of model transformations, reuse mechanisms are indispensable. Although numerous mechanisms have been proposed, no systematic comparison exists, making it unclear, which reuse mechanisms may be best employed in a certain situation. Thus, this paper provides an in-depth comparison of reuse mechanisms in model-to-model transformation languages and categorizes them along their intended scope of application. Finally, current barriers and facilitators to model transformation reuse are discussed.

76 citations


Cites background or methods from "A Model-Based Approach to Families ..."

  • ...ETL allows to import rules from a different transformation definition and so does RubyTL....

    [...]

  • ..., RubyTL [20] (based on Ruby) or an ATL dialect implemented in Scala [28]....

    [...]

  • ...Because the merging of rules in RubyTL is a purely dynamic approach based on refining already available traces, static semantic checks are not applicable....

    [...]

  • ...With the exception of QVT-R, rules of the base transformation are implicitly redefined, if the imported transformation exhibits equally named transformation rules or as in RubyTL, traces for the source and target elements of a match are already available from the execution of the imported module....

    [...]

  • ...In RubyTL, rules are not composed, but refining rules are executed after the refined rules....

    [...]

Journal ArticleDOI
TL;DR: A definition for the life-cycle of language product lines is proposed and used to analyze the capabilities of current approaches, and a mapping between each approach and the technological space it supports is provided.

53 citations


Cites background from "A Model-Based Approach to Families ..."

  • ...[50], dealing with issues on language product lines of internal DSLs....

    [...]

Book ChapterDOI
28 May 2012
TL;DR: This paper defines executable semantics for EMFMigrate, a model transformation language specifically designed for managing the coupled evolution in model-driven development, and considers EMFTVM as the runtime engine targeted by the proposed semantic mappings.
Abstract: Model-to-model transformations are often employed to establish translational semantics of Domain-Specific Languages (DSLs) by mapping high-level models into more concrete ones. Such semantics are also executable when there exists a target platform able to execute the target models. Conceiving a transformation that targets a low-level language still remains arduous due to the large semantic gap between the DSL and the corresponding target language. In this respect, depending on the domain of the DSL, this task can be made easier by reusing an existing platform and bytecode language for that domain, as for instance the EMF Transformation Virtual Machine (EMFTVM) for the domain of model transformation. This paper defines executable semantics for EMFMigrate, a model transformation language specifically designed for managing the coupled evolution in model-driven development. To this end, the approach considers EMFTVM as the runtime engine targeted by the proposed semantic mappings.

48 citations


Cites background from "A Model-Based Approach to Families ..."

  • ...A DSL essentially consists of an abstract syntax, the set of language concepts and their relationships usually given in terms of a metamodel; a concrete syntax, the (textual or graphical) notation that the end user will use to specify programs conforming to the abstract syntax; and a semantics, the meaning of the language constructs by means of corresponding semantic mappings [2]....

    [...]

Proceedings ArticleDOI
01 May 2010
TL;DR: In this article, the authors present a framework, called byADL -Build Your ADL, for developing a new generation of ADLs, which exploits model-driven techniques that provide the needed technologies to allow a software architect to define its own new generation ADL by adding domain specificities, new architectural views, or analysis aspects.
Abstract: Despite the flourishing of languages to describe software architectures, existing Architecture Description Languages (ADLs) are still far away from what it is actually needed. In fact, while they support a traditional perception of a Software Architecture (SA) as a set of constituting elements (such as components, connectors and interfaces), they mostly fail to capture multiple stakeholders concerns and their design decisions that represent a broader view of SA being accepted today. Next generation ADLs must cope with various and ever evolving stakeholder concerns by employing semantic extension mechanisms. In this paper we present a framework, called byADL - Build Your ADL, for developing a new generation of ADLs. byADL exploits model-driven techniques that provide the needed technologies to allow a software architect, starting from existing ADLs, to define its own new generation ADL by: i) adding domain specificities, new architectural views, or analysis aspects, ii) integrating ADLs with development processes and methodologies, and iii) customizing ADLs by fine tuning them. The framework is put in practice in different scenarios showing the incremental extension and customization of the Darwin ADL.

39 citations

References
More filters
Book
01 Jan 1994
TL;DR: The book is an introduction to the idea of design patterns in software engineering, and a catalog of twenty-three common patterns, which most experienced OOP designers will find out they've known about patterns all along.
Abstract: The book is an introduction to the idea of design patterns in software engineering, and a catalog of twenty-three common patterns. The nice thing is, most experienced OOP designers will find out they've known about patterns all along. It's just that they've never considered them as such, or tried to centralize the idea behind a given pattern so that it will be easily reusable.

22,762 citations

Book
01 Aug 2003
TL;DR: The authoritative guide to the Eclipse Modeling Framework (EMF)--written by the lead EMF designers! shows how EMF unifies three important technologies: Java, XML, and UML.
Abstract: The authoritative guide to the Eclipse Modeling Framework (EMF)--written by the lead EMF designers! Shows how EMF unifies three important technologies: Java, XML, and UML @BULLET= Provides a comprehensive overview of the EMF classes including a complete quick reference for all the classes and methods in the EMF 1.1 API. Includes examples of many common framework customizations and programming techniques.

1,996 citations

Journal ArticleDOI
TL;DR: In this article, the authors identify patterns in the decision, analysis, design, and implementation phases of DSL development and discuss domain analysis tools and language development systems that may help to speed up DSL development.
Abstract: Domain-specific languages (DSLs) are languages tailored to a specific application domain. They offer substantial gains in expressiveness and ease of use compared with general-purpose programming languages in their domain of application. DSL development is hard, requiring both domain knowledge and language development expertise. Few people have both. Not surprisingly, the decision to develop a DSL is often postponed indefinitely, if considered at all, and most DSLs never get beyond the application library stage.Although many articles have been written on the development of particular DSLs, there is very limited literature on DSL development methodologies and many questions remain regarding when and how to develop a DSL. To aid the DSL developer, we identify patterns in the decision, analysis, design, and implementation phases of DSL development. Our patterns improve and extend earlier work on DSL design patterns. We also discuss domain analysis tools and language development systems that may help to speed up DSL development. Finally, we present a number of open problems.

1,778 citations

Journal ArticleDOI
TL;DR: Model-integrated computing (MIC), an approach to model-based engineering that helps compose domain-specific design environments rapidly and cost effectively, is particularly relevant for specialized computer-based systems domains-perhaps even single projects.
Abstract: Domain-specific integrated development environments can help capture specifications in the form of domain models. These tools support the design process by automating analysis and simulating essential system behavior. In addition, they can automatically generate, configure, and integrate target application components. The high cost of developing domain-specific, integrated modeling, analysis, and application-generation environments prevents their penetration into narrower engineering fields that have limited user bases. Model-integrated computing (MIC), an approach to model-based engineering that helps compose domain-specific design environments rapidly and cost effectively, is particularly relevant for specialized computer-based systems domains-perhaps even single projects. The authors describe how MIC provides a way to compose such environments cost effectively and rapidly by using a metalevel architecture to specify the domain-specific modeling language and integrity constraints. They also discuss the toolset that implements MIC and describe a practical application in which using the technology in a tool environment for the process industry led to significant reductions in development and maintenance costs.

1,394 citations


"A Model-Based Approach to Families ..." refers background in this paper

  • ...GME is a generic modeling environment which supports composition of metamodels [ 5 ], [34]....

    [...]

  • ...Several approaches have been proposed to define DSLs [1], [2], [3], and a number of studies report successful cases of DSL usage [4], [ 5 ], [6]....

    [...]

Book
07 Mar 2008
TL;DR: This chapter discusses modeling with a general-purpose language and with a domain-specific language, and defines the DSM solution as a continuous process in the real world.
Abstract: Foreword. Preface . PART 1: BACKGROUND AND MOTIVATION. 1. Introduction. 1.1 Seeking the better level of abstraction. 1.2 Code-driven and model-driven development. 1.3 An example: modeling with a general-purpose language and with a domain-specific language. 1.4 What is DSM? 1.5 When to use DSM? 1.6 Summary. 2. Business value. 2.1 Productivity. 2.2 Quality. 2.3 Leverage expertise. 2.4 The economics of DSM. 2.5 Summary. PART 2: FUNDAMENTALS. 3. DSM defined. 3.1 DSM characteristics. 3.2 Implications of DSM for users. 3.3 Difference to other modeling approaches. 3.4 Tooling for DSM. 3.5 Summary. 4. Architecture of DSM. 4.1 Introduction. 4.2 Language. 4.3 Models. 4.4 Code generator. 4.5 Domain framework and target environment. 4.6 DSM organization and process. 4.7 Summary. PART 3: DSM EXAMPLES. 5. IP telephony and call processing. 5.1 Introduction and objectives. 5.2 Development process. 5.3 Language for modeling call processing services. 5.4 Modeling IP telephony service. 5.5 Generator for XML. 5.6 Framework support. 5.7 Main results. 5.8 Summary. 6. Insurance products. 6.1 Introduction and objectives. 6.2 Development process. 6.3 Language for modeling insurances. 6.4 Modeling insurance products. 6.5 Generator for Java. 6.6 Framework support. 6.7 Main results. 6.8 Summary. 7. Home Automation. 7.1 Introduction and objectives. 7.2 Development process. 7.3 Home automation modeling language. 7.4 Home automation modeling language in use. 7.5 Generator. 7.6 Main results. 7.7 Summary. 8. Mobile phone applications using Python framework. 8.1 Introduction and objectives. 8.2 Development process. 8.3 Language for application modeling. 8.4 Modeling phone applications. 8.5 Generator for Python. 8.6 Framework support. 8.7 Main results. 8.8 Extending the solution to native S60 C++. 8.9 Summary. 9. Digital Wristwatch. 9.1 Introduction and Objectives. 9.2 Development Process. 9.3 Modeling Language. 9.4 Models. 9.5 Code Generation for Watch Models. 9.6 The Domain Framework. 9.7 Main Results. 9.8 Summary. PART 4: CREATING DSM SOLUTIONS. 10 DSM language definition. 10.1 Introduction and objectives. 10.2 Identifying and defining modeling concepts. 10.3 Formalizing languages with metamodeling. 10.4 Defining language rules. 10.5 Integrating multiple languages. 10.6 Notation for the language. 10.7 Testing the languages. 10.8 Maintaining the languages. 10.9 Summary. 11. Generator definition. 11.1 "Here's one I made earlier". 11.2 Types of generator facilities. 11.3 Generator output patterns. 11.4 Generator structure. 11.5 Process. 11.6 Summary. 12. Domain Framework. 12.1 Removing duplication from generated code. 12.2 Hiding platform details. 12.3 Providing an interface for the generator. 12.4 Summary. 13. DSM definition process. 13.1 Choosing among possible candidate domains. 13.2 Organizing for DSM. 13.3 Proof of concept. 13.4 Defining the DSM solution. 13.5 Pilot project. 13.6 DSM deployment. 13.7 DSM as a continuous process in the real world. 13.8 Summary. 14. Tools for DSM. 14.1 Different approaches to building tool support. 14.2 A Brief History of Tools. 14.3 What is needed in a DSM environment. 14.4 Current tools. 14.5 Summary. 15. DSM in use. 15.1 Model reuse. 15.2 Model sharing and splitting. 15.3 Model versioning. 15.4 Summary. 16. Conclusion. 16.1 No sweat shops--But no Fritz Lang's Metropolis either. 16.2 The onward march of DSM. Appendix A: Metamodeling Language. References. Index.

825 citations


"A Model-Based Approach to Families ..." refers background or methods in this paper

  • ...Finally, we contribute a software framework to support our approach, and we illustrate the paper with a case study to demonstrate its practical applicability....

    [...]

  • ...DSLs allow programs to be written at an abstraction level closer to the problem domain than general-purpose programming languages....

    [...]