Skip To Content

Athabasca University

Section 2

Section Goals

  • To describe the principles of domain-specific software development languages.
  • To define model-driven engineering.

Learning Objectives

Learning Objective 1

  • Describe domain-specific languages (DSLs).

Objective Leading Questions

  • Why are DSLs designed?
  • Provide examples of DSLs.
  • Why were some organizations disappointed with the productivity of DSLs?
  • Would you recommend your company or clients develop DSLs? Why?
  • Are DSLs the future of software engineering?
  • What are the main research challenges in the design of DSLs?
  • What skills should languages engineers possess?
  • What technologies enable the design of DSLs?

Objective Readings

Required Readings

Mernik, M., J. Heering and A.M. Sloane (2005), "When and How to Develop Domain-Specific Languages," ACM Computing Surveys 37, 4, 316-344. https://doi.org/10.1145/1118890.1118892

Supplemental Readings

Fowler, M. (2005, June), "Language Workbenches: The Killer-App for Domain Specific Languages?" Retrieved November 5, 2007, from https://martinfowler.com/articles/languageWorkbench.html

Spinellis, D. (2001), "Notable Design Patterns for Domain-Specific Languages," Journal of Systems and Software 56, 1, 91-99. https://doi.org/10.1016/S0164-1212(00)00089-3

Visser, E. (2007), "Domain-Specific Language Engineering. A Case Study in Agile DSL Development (Mark I) (Tech. Rep. No. TUD-SERG-2007-017)," Delft University of Technology, Software Engineering Research Group, Delft, The Netherlands. https://repository.tudelft.nl/islandora/object/uuid:92f244ff-f30d-4ae6-bc68-c70b2e207d72?collection=research

van Deursen, A., P. Klint and J. Visser (2000), "Domain-Specific Languages: An Annotated Bibliography," ACM SIGPLAN Notices 35, 6, 26-36. https://doi.org/10.1145/352029.352035

Microsoft Visual Studio Domain-Specific Language Tools

Objective Activities

Relevant Conferences/Publications

Learning Objective 2

  • Identify the main goals of model-driven engineering (MDE).
  • Describe the main software standards used in MDE.
  • Describe how MDE is used to develop applications.

Objective Leading Questions

  • What is model-driven engineering?
  • Define model, metamodel, modeling language, and model transformation.
  • Describe MOF, Ecore, and GME.
  • Is UML the main MDE language? Are any other languages used?
  • How does the MDE approach contribute to the problems of portability and reusability?
  • How do MDE and DSL overlap?
  • How would you describe the current state of the art in MDE?
  • Would you recommend that your company or clients use MDE? Why?
  • To what stages of software development is MDE the most suited?
  • How would you estimate the potential gap between the state of the art and the state of the practice in MDE? How would you improve that gap?
  • What kind of software development tasks are best addressed by MDE?
  • What applications benefit the most from MDE?
  • What standards, languages, and tools of MDE would you choose to use in your practice?

Objective Readings

Required Readings

Schmidt, D.C. (2006a), "Model-Driven Engineering," Computer 39, 2, 25-31. https://doi.org/10.1109/MC.2006.58

Gasevic, D., D. Djuric and V. Devedzic (2006), "The Model Driven Architecture (MDA)," In Model Driven Architecture and Ontology Development, Springer, Berlin, Germany, pp.109-126. https://doi.org/10.1007/3-540-32182-9_4

Supplemental Readings

Balasubramanian, K., A. Gokhale, A. Karsai, J. Sztipanovits and S. Neema (2006), "Developing Applications using Model-Driven Design Environments," Computer 39, 2, 33-40. https://doi.org/10.1109/MC.2006.54

Pastor, O. and J.C. Molina (2007), Model-Driven Architecture in Practice: A Software Production Environment Based on Conceptual Modeling, Springer, Berlin, Germany. https://doi.org/10.1007/978-3-540-71868-0

Mellor, S.J., A.N. Clark and T. Futagami (2003a), "Model-Driven Development," IEEE Software 20, 5, 14-18. https://doi.org/10.1109/MS.2003.1231145

Tolvanen, J.P. (2005), "Domain-Specific Modeling for Full Code Generation," Methods & Tools 13, 3, 14-23. https://www.methodsandtools.com/PDF/mt200503.pdf

Tolvanen, J.P. (2006), "Creating a Domain-Specific Modeling Language for an Existing Framework," Methods & Tools 14, 4, 18-28. https://www.methodsandtools.com/PDF/mt200604.pdf

Bézivin, J. (2004), "In Search of a Basic Principle for Model Driven Engineering," Upgrade 5, 2, 21-24. https://www.researchgate.net/publication/243771569_In_Search_of_a_Basic_Principle_for_Model_Driven_Engineering

Bézivin, J. (2005), "On the Unification Power of Models," Software and Systems Modeling 4, 2, 171-188. https://doi.org/10.1007/s10270-005-0079-0

MDA Guide (Version 2.0) (2014), OMG Document from https://www.omg.org/cgi-bin/doc?ormsc/14-06-01

Trask, B., D. Paniscotti, A. Roman and V. Bhanot (2006), "Using Model-Driven Engineering to Complement Software Product Line Engineering in Developing Software Defined Radio Components and Applications," In Companion to the 21st International Conference on Object-Oriented Programming, Systems, Languages, and Applications, Association for Computing Machinery, New York, pp. 846-853. https://doi.org/10.1145/1176617.1176733

Objective Activities

Relevant Conferences/Publications

Updated August 28 2023 by FST Course Production Staff