Nowadays Graphical User Interfaces (GUI) are very popular in computer systems and many users expect that they exist when using some software, especially less experienced users. From the user's point of view, they are the entry point of the system, upon which users communicate with the underlying software.
Domain-Specific Languages (DSL) are programming languages developed to solve problems in a specific domain, in contrast to General-Purpose Languages (GPL). However, there are some issues and challenges in the development and use of DSLs, respectively for the DSL designers and DSL users. One possible solution is specifying a DSL with integrated ontologies, which allows this specified DSL to be used to build different domain-specific models.
With this in mind, an ontology-enriched DSL will be developed to automate the design of modular projects. In this way, it is essential to create a metamodeling environment that allows the construct of models that reflects the syntax and the semantics of the DSL and guides the designer to prevent errors, when a syntactic or semantic inconsistency or incompleteness is found. This Graphical Integrated Development Environment (IDE) abstracts the designer from the DSL infrastructure making it easier to use, improving design complexity management. This platform also discriminates between system developers and application developers.
This Master Thesis describes the ontology-enriched DSL co-developed to automate the design of modular projects and the metamodeling environment created that uses this DSL infrastructure to build different domain-specific models.
1. Theoretical Study about ontology-enriched DSL’s and metamodeling;
2. Study and Analysis of different tools that enable to create the elements of a DSL and create a Metamodeling environment;
3. Co-development of the ontology-enriched DSL infrastructure aimed at hypervisor design automation;
4. Design and Implementation of a graphical user interface for metamodeling;
4.1 Diagram with nodes and relationships of DSL;
4.2 Java validation to ensure model integrity;
4.3 Reasoning Service integration to verify semantic restrictions;
4.4 Code generation for developed models.
5. Evaluation of the final solution;
6. Writing and Production of the dissertation.