SMILA/Model-Driven Retrieval of Model Repositories
Done by Lorenzo Furrer and Stefano Celentano
See the full thesis at Model-driven Retrieval of Model Repositories
What the environment looks like
Model-Driven Development (MDD) is a software development methodology that focuses on the creation and maintenance of domain models as the primary form of expression in the development cycle. One of the fundamental characteristics of such approach is the reuse of software artifacts through their model representation. However, software reuse is impaired by the fact that current systems lack an efficient way to search through the model repositories as many of the current solutions don’t tackle the relationships between model artifacts. These relationships are instead important to better satisfy the user information need in a model-driven development scenario.
What has to be done
This work aims to define a model-driven methodology for creating model search engines. As opposed to many related works, this methodology is metamodel-independent and exploits the metamodel of the searched project models in order to obtain more precise results. The contributions of the work are as follows: the development of a prototype for such methodology, two case studies, the evaluation of different indexing strategies and test configurations. We adopted well known Information Retrieval measures (precision, recall, DCG) to perform an assessment of our prototype.
Where to start
We used SMILA as basis for our architecture and Apache Solr as search platform. The results are displayed by a simple JSP presentation page. The UML model repositories are provided by the AtlanMod zoos. The WebML repository is a collection of real-life industrial projects provided by WebModels s.r.l.
What has been done
The prototype we developed addresses two case studies that deal with the indexing and the retrieving of models from two different collections of UML and WebML projects respectively. Each case study involves several experiments adopting different indexing strategies. SMILA provided crawler examples, a JMS queue system and a BPEL processor where we defined the business logic for each of the indexing strategies. The SMILA data model allows to easily process each element of interest as well as adding precious annotations to each of them.
What it looks like
The first screenshot (see top of page) shows the result page for the UML case where the results of four different experiments are displayed and compared. There is also a graph snippet that shows the selected model element along with its neighbours and their respective relationships. The second screenshot (below) shows the input page of the WebML case, which is a modified version of the input page example provided by SMILA.