About

Learn more about the project and its contributors.

Background

Domain-specific modeling

Domain-specific modeling (DSM) makes software more accessible and inclusive by leveraging the expertise and knowledge of domain experts from various backgrounds, such as insurance or healthcare, instead of relying solely on programmers and software engineers. This modeling practice allows the solution to be specified directly using problem domain concepts. Ref. In the activity of DSM, models are the primary artifact manipulated and produced using domain-specific languages (DSL) Info DSL overview . Contrary to general-purpose programming languages (GPLs) E.g. Java, Python , DSLs are languages tailored to a specific application domain. The domain may be restricted to a device (embedded system), a specific project E.g. meeting scheduler application or it may be common to a larger group of experts and practitioners, such as the hardware description language VHDL or the web languages CSS and HTML. They offer substantial gains in expressiveness and ease of use compared with GPLs in their domain of application. Ref.

Language workbench

Those modeling and language activities are supported by language workbenches. They support the efficient definition, reuse, and composition of DSLs and their IDEs Ref.. One key aspect of their differences lies in their modeling editors, which can be classified as parser-based and projectional.
Most language workbench editors use a parser-based approach, with a textual or graphical syntax E.g. Xtext, Spoofax, MetaEdit+ . A parser-based editing approach relies on a parser to continuously scan the input to build the an abstract syntax tree (AST), validated with a grammar. However, this approach limits the evolution of DSLs and is prone to syntactic errors.
With a projectional editing approach E.g. Jetbrains MPS, Whole, Scratch the AST is modified directly as the user edits a program, thus preventing syntactic errors. The approach enables the support of notations that cannot be easily parsed, such as tables, forms or diagrams, and the composition of any language without introducing syntactic ambiguities.

Motivation

Although promising, DSM is still lacking in adoption due to a lack of proper tools and modeling languages Ref..

Interoperability and Usability

Presently, the most promising projectional editor in the MDE community is Jetbrains MPS. However, MPS cannot be easily integrated with other tools and suffers from usability issues Ref..

UML and OOP

The Unified Modeling Language (UML) is currently the main modeling language used in the practice of MDE. However, as it is is rooted in object-oriented programming (OOP), UML hinders the modeling process and restricts the expression of a concept to the scope and principles of OOP. Its inadequacy was also noted by Petre Ref.. who concluded from a survey that software developers either did not use UML at all or used it only selectively and informally.

Web solution

A much-requested feature by practitioners, according to Agner and Lethbridge Ref. is to have web-based solutions. Although some language workbenches provide a web-based solution E.g. AToMPM, WebGME currently, no web-based modeling tool natively supports projectional editing.

Gentleman

We aim to provide better support for DSM and make modeling more accessible to domain experts and practitioners. Our approach is implemented in Gentleman, a lightweight web-based projectional editor. With Gentleman, users can create models with structures unrelated to a programming paradigm, called concepts. The projections, which provide a visual to manipulate the model, leverage web technologies E.g. HTML5, CSS to offer users easy-to-use languages. Gentleman is built with Javascript and delivered as a library that can be integrated into any modern web application.

Team and contributors

Louis-Edouard LAFONTANT photo

Louis-Edouard LAFONTANT

Creator & Developer

Louis-Edouard is a Computer Science graduate specialized in software engineering. He is an active member of the GEODES Software Engineering Research Group.

Eugene SYRIANI photo

Eugene SYRIANI

Supervisor

Eugene is an Associate Professor in Computer Science at the University of Montreal. He is one of the leaders of the GEODES Software Engineering Research Group.

Contributors

Aurélien DUCOIN photo

Aurélien DUCOIN

Developer

Aurélien is adding support for graphical (svg-based) projections, as part of his master's degree at the GEODES Software Engineering Research Group.