The ModPro experience
In January I started at the ModPro Summer School, which consisted of many speakers of whom are experts in the field of modelling. Below I sum up the experience, excluding the great food provided.
Feature Variability
Ina Schaefer was the first speaker and one of my favourites by far. She introduced the concept of feature variability in software product lines. This comes into play for anyone who provides multiple of the same product to clients with minor changes which may be influenced by cost or needs. My immediate go-to was web design as you will often find that you use a lot of the same frameworks and components throughout all projects. Using feature-oriented programming you are able to create what is a called a 150% product containing all the possible moving parts. You are then able to switch them off and on depending on your needs. This is a simple example as using a FODA feature model you are able to create constraints and choices to ensure correctness and minimize issues.
This was by far my favourite topic as it has real application and can simplify a company’s development system greatly. There is also a lot of interesting mathematics in the background that allows us to check the correctness of the selected variant.
Models to code
Tiziana Margaria led a talk about using a model to create a software system that required no access to code. It was an amazing demonstration of the power we are able harness through using models. Using blocks called SIBs she showed us how one can generate an entire webpage and backend system by simply dragging and dropping. And one of the greatest highlights was seeing how clean and manageable the code can become when using code generators.
Meta-modelling and flexible meta-modelling
Meta-modelling was a very interesting aspect for me. It was discussed by a variety of the speakers, but the real kicker was presented by Richard Paige‘s PhD student Thanos who presented flexible meta-modelling. Standard meta-modelling allows you to design a domain-specific modelling language that domain experts are able to use that can be further processed, for instance into code. The typical process here is to create a meta-model, allow the experts to create example models and then refine the meta-model a bunch to fit the needs of the experts. However, in flexible meta-modelling we are able to, without an existing meta-model, to let domain experts create example models and then derive a meta-models from the examples. The methods used behind the scenes are mind blowing. This system allows such flexibility and allows a smooth development starting with the user’s needs.
Conclusion
Clearly modelling has many forms, but in all aspects it provides great approaches to solving many modern problems. The summer school was an amazing experience and I am so grateful for the collaboration of Willem Visser, Judith Bishop, the Royal Society and others for making it happen.
Visit the ModPro website for more information.