• satisfies its domain's requirements and
• streamlines development by restricting user input to parameters within the domain while providing easy access to artifacts (for example, files, plots, and generated code) that help users design or implement these systems.
• The domain is well defined.
• The domain has repetitive elements or patterns, such as multiple products, features, or targets.
• The developer community is growing (which usually means a maturing business area and the need for domain-specific notations).
• A clear path exists from requirements analysis and specification to execution.
• Accuracy; expert involvement; and flexibility of the specification, verification, and validation of design are important.
• An intuitive or well-accepted representation is already defined.
• The implementation or specification must serve as documentation.
• The implementation details might be subject to change, but the specification semantics is clear.
• Use by a domain expert (not necessarily a software expert) is intended.
• Amortization of effort justifies investment in DSL&M creation.
• the effort to create and maintain the language and related code generators,
• the effort and cost to obtain and maintain tool support for the language, and
• the effort for domain experts to learn the language.
• productivity increase compared to general-purpose solutions,
• quality improvement compared to general-purpose solutions, and
• the number of expected users or imple-men-tations.
• GME (Generic Modeling Environment), www.isis.vanderbilt.edu/projects/gme;
• GMF (Graphical Modeling Framework), www.eclipse.org/gmf;
• LISA ( Language Implementation System Based on Attribute Grammars), marcel.uni-mb.si/lisa;
• MetaEdit+, www.metacase.com;
• the Meta-Environment (ASF + SDF [algebraic specification formalism and syntax definition formalism]), www.meta-environment.org; and
• Microsoft DSL tools, code.msdn.microsoft.com/DSLToolsLab.
Jonathan Sprinkle is an assistant professor of electrical and computer engineering at the University of Arizona. In 2009, he received the university's Ed and Joan Biggers Faculty Support Grant for work in autonomous systems. He previously was the executive director of the Center for Hybrid and Embedded Software Systems at the University of California, Berkeley. His research interests and experience are in systems control and engineering, through modeling and metamodeling. Sprinkle has a PhD in electrical engineering from Vanderbilt University and is a member of the IEEE, ACM, and American Institute of Aeronautics and Astronautics. Contact him at firstname.lastname@example.org.
Marjan Mernik is a professor in the University of Maribor's Department of Computer Science, where he leads the Programming Methodologies Group. His research interests include programming languages, compilers, grammar-based systems, grammatical inference, and evolutionary computation. Mernik has a PhD in computer science from the University of Maribor and is a member of the IEEE and ACM. Contact him at email@example.com.
Juha-Pekka Tolvanen is the CEO of MetaCase. He has been involved in domain-specific approaches, notably metamodeling and modeling tools, since 1991. He has acted as a consultant worldwide for modeling-language and code generation development and coauthored Domain-Specific Modeling: Enabling Full Code Generation (John Wiley & Sons, 2008). Tolvanen has a PhD in computer science from the University of Jyväskylä. Contact him at firstname.lastname@example.org.
Diomidis Spinellis is an associate professor in the Athens University of Economics and Business's Department of Management Science and Technology. His research interests include software engineering tools, programming languages, and computer security. He's the author of Code Reading: The Open Source Perspective (Addison-Wesley, 2003) and editor of IEEE Software's Tools of the Trade column. Spinellis has a PhD in computer science from Imperial College, University of London. Contact him at email@example.com.