Model repository.

Repositories of modeling artifacts have recently gained increasing attention for the enforcement of reuse in software engineering[3,4]. Repository-centric development processes are adopted in software/system development, such as architecture- or pattern-centric development processes. The proposed framework for building a reuse repository is based on metamodeling techniques that enable the specification of the repository structure and interfaces on content in the form of modeling artifacts and model transformation techniques for the purpose of generation [1,2]. We begin by specifying a conceptual model of the desired reuse repository and proceed by designing modeling languages that are appropriate for the content. The results of these efforts are used to specify and build the repository. The next step is devoted to populating the repository by defining appropriate modeling artifacts. We have proposed an operational architecture for the implementation of a reuse repository. In addition, the tool suite promotes the separation of concerns during the development process by distinguishing the roles of different stakeholders. Access to the repository is customized regarding the development phases, the stakeholder’s domain and his system knowledge. The approach for developing a repository of models is generic; however, the discussion and implementation in the context of our experiment is based on the Eclipse platform, Ecore and a CDO-based repository. We have implemented a prototype named SemcoMDT to support the approach as an Eclipse plug-in.

During the implementation and deployment experience, we encounter several technical problems and limitations due to the CDO-based implementation. We plan to study the usage of other infrastructures to support a reuse model repository and their integration with other MDE tools, primarily the access tool, with regard to the development phases and the stakeholders’ domain and system knowledge. Additionally, more sophisticated techniques to derive artifacts relationships can be implemented, possibly using different domains, to reduce the complexity to design systems of modeling artifacts. We seek new technologies combined with modeling. Therefore, we will investigate implementation based on an FCA (Formal Concept Analysis) [5]. Each level of abstraction is structured with a lattice, and each lattice is linked. These lattices provide the architect or developer with intelligible classifications for model features. Thus, they enable the search of a model to be indexed, which verifies certain types of properties at a desired level of abstraction. This approach has three advantages: (1) Usability: possibility to dynamically and easily insert a new model; extracting a model can be simply and rapidly realized; (2) Implementation: the space that is required to implement this structure can be optimized; and (3) Visualization: the obtained lattices can be used not only as a component index to ease a search but also as a way for visualizing the content of a reuse repository using a graphical interface.

Bibliography.

[1] Hamid, B., 2016b. A Model Repository Description Language - MRDL. In: International Conference on Software Reuse (ICSR). Vol. 9679 of LNCS. Springer.

[2] Hamid, B., 2016a. A Model-Driven Approach for Developing a Model Repository: Methodology and Tool Support. Future Generation Computer Systems, Elsevier.

[3] Burégio, V., de Almeida, E., Ludrédio, D., Meira, S., 2008. A Reuse Repository System: From Specification to Deployment. In: Mei, H. (Ed.), High Confidence Software Reuse in Large Systems. Vol. 5030 of Lecture Notes in Computer Science. Springer Berlin Heidelberg, pp. 88–99.

[4] France, R. B., Bieman, J. M., Cheng, B. H. C., 2006. Repository for Model Driven Development (ReMoDD). In: MoDELS Workshops’06. pp. 311–317.

[5] Ganter, B., Stumme, G., Wille, R., 2005. Formal Concept Analysis. Foundations and Applications. Springer.

To apply, please send your CV at: hamid at irit dot fr

Remarques. The internship will be remunerated. It can be extended to a PhD grant on the same project.