Model

UML

CoCaLiMo is a model, its defined as UML class diagrams and has documentation for each class and attribute, it has no operations.

We build up model instances, they are stored as CoCaSon files.

CoCoMo focusses on 4 different parts of the model:

  • Requirements
  • Functional design
  • Testing

CoCoMo for SMCubes adds the following parts to the model:

  • Data Structures (defined by SMCubes)
  • Input Data (which matches the dat structures)

Note that the input data can be linked to tests. input data is linked to data structures, requirements are linked to functional design, and functional design is linked to tests.

Note that the UML for data structures is basically the same as the UML of SMCubes .

An example of the UML for SMCubes is here:

A ‘model instance’ is a concrete instance of some classes (e.g. a VARIABLE with the name attribute set to ‘CountryOfResidence’ with an associated Domain Object with a name attribute set to ‘Countries’) .

Instances of the models can be stored as CoCaSon, and can be loaded into memory as in memory objects.

Technology-Independent API

For each UML model we provide an API of useful functions around that model, for example providing the results of queries on that model (e.g. to provide to a UI), or translating from one model to another .

Typically, we split this API into model queries and more advanced manipulations which we call the component API.

Reference Implementation with UI

We provide an implementation of the models , model queries, component API, and models in Java, in particular we use the Eclipse Modelling Framework, which describes models using the Ecore standard.

Ecore is an implementation of the EMOF standard for model driven engineering, provided by the Object Management Group who also manage the UML Standard.

We provide a visual user interface based on Eclipse Sirius model visualization tool. Other user interfaces could be built on top of the technology independent API.