Programming development environments support a code, compile and test cycle of work. Good tests make it clear when a program unit is complete and work can proceed to the next stage. When developing UML models, the situation is not so clear. Confusion in models can be detected well into the implementation phase, resulting in expensive and time-consuming rework. The complementary danger is â€œparalysis by analysisâ€, which is also time consuming and expensive. This project aims to make it clear when the model is complete. Since 2009, the Graf project has been implementing a UML animator based on the formal graph transformation semantics for UML proposed in Greg Oâ€™Keefeâ€™s PhD thesis The Meaning of UML Models [Oâ€™K08]. Using this formalisation reduces the myriad of confusing ideas in UML to a few simple and well defined ideas from mathematical graph theory. It also allows us to build the animator on top of well established graph transformation engines.
The main tasks are likely to include: familiarisation with Eclipse Modelling Framework, the current Graf implementation and the graph transformation engine AGG4 wrapping the animator and its interface as an Eclipse plug-in writing or choosing a metamodel for graphs and writing model transformations from UML to this graph metamodel implementation of a compiler for concrete action language syntax implementing a definition for satisfaction of a sequence diagram by a UML system trace developing and testing graph transformation rules to implement more UML actions
At the end of this project you will be perfectly placed to enter either industry or a PhD project.
UML, modelling, software engineering