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:
The CMA plugin has the following minimum system requirements:
Considering that CMA is, simply, an Eclipse plugin, it is only necessary to:
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.
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: http://www.essi.upc.edu/~mpi/phds/daguilera/catalog/issues.php.
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:
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 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.
Below we present some ideas to improve the tool in the future: