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:
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