The goal of this assignment is to do generate code for two different platforms. The first is PNML, to do analysis on the Petrinet models resulting from the denotational mapping of the previous exercise. There are three steps involved:
- Export the Petrinet model to metaDepth (using the provided exporter).
- Write an exporter using the Epsilon Generation Language (EGL) that exports the Petrinet model from metaDepth to PIPE.
- Perform analysis on the PIPE model.
The second is Python, by generating code that will actually create your modelled RPG world map and all its elements. For this, a Python framework is provided. This task also consists of three steps:
- Export the RPGGame metamodel and your example model(s) to metaDepth (using the provided exporter).
- Write an exporter using the Epsilon Generation Language (EGL) that exports the RPGGame model from metaDepth to Python.
- Run the game!
The task is split up in the following parts:
- Create a realistic example of a RPGame. Additionally, think of at least three invariants for this model. The goal is to check these invariants on your model. You will do this by transforming your model to a Petrinet (using your rule-based transformation from exercise 4), export this to metaDepth and generate the PIPE model, open this model in PIPE and do your checks using that tool.
- On top of this example, create test models that test all requirements of this assignment (for both the PNML and Python generation). Make sure that your test cases maximise your confidence in the correctness of the implementation of these requirements, so keep your test coverage in mind.
- Write a report that:
- explains the particularities of your solution and the difficulties you encountered;
- sums up the desirable results for all your test cases (in the form of text/image).
The deadline for this assignment is November 28, 2014, 14:00. You will have to submit your solution (metaDepth exporters, examples, tests, and report) to Blackboard.