ModelScript

ModelScript is a lightweight modeling environment based on:

  • a dozen of small textual languages called model scripts
  • an underlying (yet truely optional) modeling methodology.

The image below shows the dependency graph between the different ModelScript languages:

_images/language-graph.png

Objectives

ModelScript is intented to be used in classrooms.

ModelScript is currently developed to support courses at the University of Grenoble Alpes. Course topics include:

  • software engineering,
  • database design,
  • user interface design,
  • model driven engineering,
  • information systems.

ModelScript1, first prototype

The current version of ModelScript, referred as ModelScript1, is a very first prototype. ModelScript1 is limited to syntaX checking *apart for three languages that are based on the USE OCL tool.

The next version, under development, will:

  • implement the full language semantics of all languages,
  • replace USE OCL languages by custom ones,
  • add additional features such as automated document generation.

The languages ClassScript, ObjectScript and ScenarioScript are actually implemented using USE OCL. These languages are named ClassScript1, ObjectScript1, ScenarioScript1. Each of these languages are based on a few annotations embedded on USE OCL comments.

Note also that TaskScript is just a convenient alias here for the language underlying the Kmade environment from university of Nancy. TaskScript is the only language with no textual syntax.

ModelScript ecosystem

ModelScript languages are listed below. All languages exist in the form of a textual syntax (some of them having a graphical syntax as well), apart for tasks diagrams that have only a graphical syntax.

language main concepts
GlossaryScript entries, packages, synonyms, translations…
ClassScript1 [1] classes, attributes, inheritance, associations, invariants…
ObjectScript1 [1] objects, slots, links, link objects
RelationScript relations, columns, keys, constraints, dependencies…
ParticipantScript actors, personas, persons, roles, stakeholder
UsecaseScript actors, usecases, interactions
TaskScript [2] tasks, task decomposition, task decorations…
AUIScript spaces, links, concept references
PermissionScript subjects, resources, permissions, actions
ScenarioScript1 scenarios, contexts, usecase instances, persona, step…
[1](1, 2) ClassScript1, ObjectScript1 and ScenarioScript1 are currently annotated versions of the USE OCL language.
[2]The Kmade modeling environment is used for task models. There is no textual syntax. “TaskScript” is just used here for the sake of consistency.

Language graph

TODO