Conceptual Modeling Assistant (CMA)



Our Conceptual Modeling Assitant (CMA) is a software plugin that executes over an existing modeling tool. Its goal is to assist conceptual modelers in the creation and edition of conceptual schemas. The prototype has been defined as an Eclipse extension. Eclipse is an open source IDE. By installing the UML2Tools plug-in, Eclipse can be used as a UML modeling environment.

Eclipse is, as we have already mentioned, an open source tool launched by Borland, IBM, MERANT, QNX Software Systems, Rational Software, Red Hat, SuSE, TogetherSoft and Webgaint. Its goal is to offer a comprehensive platform for high level development. Basically, it consists of a core which integrates various extensions, or plugins. By using these extensions, Eclipse can change and support different tools, methodologies and development environments. Because Eclipse is written in Java, it is a multiplatform tool with Linux, OSX and Windows implementations.

The previous figure shows Eclipse's architecture. The plugin is the basic element. When a developer wishes to add a new functionality, he simply has to create a plugin that implements it and include it in Eclipse. The running engine (Platform Runtime Engine) is in charge of getting the available plugins and executing them. As expected, a plugin includes everything it needs to work (Java code, images, user interface translations, ...) and a "MANIFEST" file describing the plugin (among others, it indicates its dependencies on other plugins and how it can be extended). What is interesting in this architecture is that plugins can extend one another, facilitating and promoting the creation of powerful tools by reusing other people's work.

The figure above shows the architecture of our prototype. As shown in the figure, CMA is made up of two parts. On the one hand, there is a remote server that hosts the quality issues catalog that we have defined using XML files. On the other hand, there is an Eclipse plugin which is in charge of loading this remote catalog into the tool and evaluating the conceptual schema that is being developed.

The plugin is conceptually divided into these three component:

  • Issue Types manager. It is in charge of downloading the issue types definition hosted in the remote server.
  • Issues processor. It is responsible for evaluating the conceptual schema and detecting its issues, considering the issue types that have been downloaded from the catalog.
  • The viewer. The schema's issues are shown in an Eclipse viewer, so that the modeler can see them and correct them.


Main functionalities of our Conceptual Modeling Assistant (CMA)

  • Based in a real modeling tool. More specifically, it is based on Eclipse, an integrated developement environment (IDE), widely known and used. By using the plugins UML2Tools and the OCL interpreter ecore, CMA can become a very powerful modeling tool.
  • Its architecture facilitates the addition of new quality issues types. Our prototype does not include any quality issues; instead, their definition is downloaded from an external repository. This ensures that the users of CMA always have the latest definition of issues available.
  • Issues can be defined in simple OCL or Java. The easiest way to define new quality issues is by using OCL. However, it is also possible to extend the tool by using other Elcipse plugins that implement issues by using Java code.
  • Relevant information without bother. A variant of CMA (based on MosKITT, a modeling tool that is also based on Eclipse) offers experimental (and incomplete) support to incrementally evaluate quality issues. This evaluation has proven to be very efficient and returns immediate results.




The CMA plugin has the following minimum system requirements:

Installation instructions

Considering that CMA is, simply, an Eclipse plugin, it is only necessary to:

  1. Download the plugin from here.
  2. Unzip the file to directory ${ECLIPSE_INSTALL_DIR}/eclipse/plugins
  3. Restart Eclipse.

And that's it! See the instructions to learn quickly how to use it.


In the following we show the main steps you should follow to use our Conceptual Modeling Assistant in Eclipse.

Disclaimer:Please note that this is a prototype tool, and there are some functionalities that do not work as expected. In particular, you'll have to restart Eclipse every time you want to edit a new conceptual schema. Also, you might encounter other issues when using our tool.


How to Browse our Catalog of Quality Issue Types

The catalog of quality issue types has been published in a public HTML server. Internally, it is defined as a set of XML files. Using XSLT stylesheet transformations, these XML files can be browsed using a web browser in a user-friendly manner. In order to determine the path from which issues will be downloaded, you have to create a file called catalog-location.txt in the following path: $HOME/.config/cma/. By default, the server our plugin will use is:


Showing the CMA views

The CMA plug-in is designed to work as an Eclipse view. Therefore, the first thing to be done is setup Eclipse in a way such that it shows the corresponding views.

To show the CMA views, go to: WindowShow > View > Other and select under CMA - Model Improvements the Issue List view. The Fact List view is used for unchecking (or reconsidering) previously checked (or accepted) issue instances.

Once Eclipse is property setup, and assuming you're currently editing a UML conceptual schema, you should note the following view is now visible: 

Configuring which Issue Types should be loaded

In order to use our plugin, you have to create a file called issues.txt in the following path:$HOME/.config/cma/. The contents of this file are the list of quality issue types you want to load. In particular, it contains a list of IDs such that BEST-PRACTICE-class-identifiable or NAMING-name-class-not-noun-phrase. If you want to temporary disable one issue type, simply comment it using a double slash //. For instance, //BEST-PRACTICE-class-identifiable.


Using the CMA

Using the CMA is completely straightforward. Start editing your conceptual schema normally. Whenever you want to know which issue instances are in your schema, simply press the Detect Issues button and the issues will be presented in the aforementioned Issue List view:

This prototype tool only implements the functionality of detecting quality issue instances. If you want to solve those issue instances, and you don't know how you can do it, you'll have to access the catalog using a web browser and check which issue actions are listed there.

Quant a



Presentation (thesis defense)



For any questions or suggestions, you can send an e-mail to

Treball Futur

Below we present some ideas to improve the tool in the future:

  • Validation with real users. Check if the workflow (i.e. how the users perceive the issues in the Eclipse viewer and how the issues are corrected) flows correctly or it can be improved in any way. Analyze how to include the corrective operations.
  • Extend the catalog of issue types and, if necessary, improve its management when there are many issue types (conflict management?)
  • Create a user-friendly interface that allows adding new issue types to the catalog.
  • Study the integration with other techniques that improve the quality, such as testing.
  • Fully implement an incremental (therefore, efficient) evaluation of issues on top of a platform such as MosKITT or Eclipse.