This repository hosts a DSL (grammar) and an obsolescence evaluator (implemented in Python) to identify model obsolescence.
Our model-based approach is described in the following figure: at design-time, you can specify how sensitive to obsolescence are the models (using our grammar) and periodically validate (in the lifespan model monitoring stage) the obsolescence of that models and their internal elements.
You can consult our mobility case example, including:
- The mobility domain model: this domain model was implemented using BESSER platform. The implementation of the model is here.
- The obsolescence rules definition (using our grammar) applied to the domain model
- An obsolescence report generated by the obsolescence evaluator.
To get started with the mobility example, make sure you're using Python 3.9 or higher. Here's a quick guide to set things up:
- Create a virtual environment: It's a good idea to use a virtual environment like
venv
orconda
to keep things tidy. - Clone or download this repo: Grab the code from this repository.
- Install the requirements: Run
pip install -r requirements.txt
to get all the dependencies. - Run the example: Navigate to the mobility case directory
cd mobility_case
and run the example scriptpython mobility.py
- Check the report: You should find the obsolescence report as a PDF file in the
report
folder.
- Alfonso, I., Sottet, J.S., Brimont, P. and Cabot, J., (2024). Modeling the obsolescence of models. Software and Systems Modeling, pp.1-15. https://doi.org/10.1007/s10270-024-01236-3
This project is licensed under the MIT license.