Search code examples
umldslsysml

What to consider when create custom domain language in SysML


SysML is a general modelling language for system engineering. For a specific domain, we need to create profile to abstract the domain concepts, like the MARTE profile and SoCP profile.

When create the metamodel, how do we decide which concepts should be placed into the metalayer? Is there some principles to follow when build domain specific language in SysML?


Solution

  • I’ve been involved in many cases building a custom language (domain-specific modeling language) and wrote with a colleague a book on the matter (www.dsmbook.com). The chapter 10 addresses the issue “how to decide what concepts should be places into the metalayer” with examples from practice. There is also review of industry cases on what to avoid (IEEE Software article) that I found helpful as it reviews almost 100 custom language creation cases.

    Please note that when having access to the metamodel you may freely modify the languages – including remove unnecessary things. With profiles that is not possible as you may only extend the existing language. For that reason for example in automotive industry modeling languages like AUTOSAR, EAST-ADL and AADL are all created as native metamodels rather than use profiles to extend an existing language (e.g. UML or SysML).