University project focused on modeling and simulating network architectures using the Eclipse Modeling Framework (EMF). The model captures key components of a network, such as gateways, routers, switches, VLANs, and WiFi access points, along with their properties and constraints. It includes support for various technologies like NAT, routing protocols, and wireless standards. The project emphasizes the use of formal modeling techniques and OCL constraints to ensure consistency and accuracy in network representations.
Explore all docs »
Table of Contents
The project aims to demonstrate the application of EMF in network modeling and provide a framework for analyzing network design, validating configurations, and generating code or simulations for real-world scenarios.
Developed as part of a university coursework in Model Driven Engineering at University of L'Aquila, this project highlights the use of advanced modeling tools and techniques in the domain of network systems.
Two Homeworks must be completed for the examination (EMF and OCL and Transformations). The requirements for each Homework are listed below
This homework is about the use of the EMF platforms for modeling the domain defined in the previous works. In particular, it requires the realization of a number of tasks by using the following tools/notations:
- Eclipse modeling Framework and plugins development;
- Ecore metamodel and genmodel;
- OCL in ecore.
Have a look at the code developed during the course https://github.com/MDE-Course-23-24/EMF-OCL-example
Define a metamodel in Emfatic or EMF for describing your domain (as illustrated during the course) satisfying the following:
- 9 metaclasses if the group is made of two candidates;
- 12 metaclasses if the group is made of three candidates;
The metamodel must contain
- inheritance;
- relations, i.e., containment, non-containment, opposite (optional);
- enumeration types, attributes;
Each metaclass has at least one attribute or reference; Singleton or isolated metaclasses are not allowed For the evaluation, we will consider:
- Metamodel completeness and coverage;
- Model consistency and homogeneity;
- Coverage of technological assets (containment and bi-directional references, inheritance, enumeration types, custom data types, etc.).
Create the genmodel file, generate Java APIs, and edit and editor plugin projects.
Create a plugin project to interact with the model APIs: Please implement the following functionalities:
- Create,
- Serialiaze,
- Load, and
- Validate
models.
Instantiate the metamodel by two concrete instances and ensure each concept (represented as metaclasses) at the metamodel level can be instantiated in your models.
Define metamodel constraints (and “critiques” in the case of EVL), operation, and derived fields in OCL or EVL/EOL:
- 3 constraints (critique and constraints) to validate models
- 2 operations
- 2 derived fields (only for OCL).
This homework is about the use of model transformations. It requires the realization of several tasks by using the following languages/frameworks: ATL and Acceleo.
Apply different refactory operations on the metamodel defined in the Homework 1 - EMF and OCL to create an updated version. Those refinements should include:
- Deletion and addition of concepts,
- Concept renaming,
- Structural refinements, for instance:
- Adding/removing hierarchies,
- adding/removing structural features (i.e., attributes and references)
- Change attribute
In our vision, the refining steps should make it easy for you to implement task 3. At this stage, we will evaluate the complexity of the refining steps.
Define an M2M transformation that allows the migration of models conforming to the initial metamodel version to the one refined in task 1. For this task, use ATL.
Define an M2T transformation that generates informative HTML pages for a given domain. By resembling the demo implemented during the lectures, the M2T should generate at least an index page summarizing the model elements linked to informative details pages for the modeled concepts.
For this task, use Acceleo.