Deprecated: Creation of dynamic property ACF::$fields is deprecated in /var/www/html/wp-content/plugins/advanced-custom-fields-pro/includes/fields.php on line 138
Deprecated: Creation of dynamic property acf_loop::$loops is deprecated in /var/www/html/wp-content/plugins/advanced-custom-fields-pro/includes/loop.php on line 28
Deprecated: Creation of dynamic property ACF::$loop is deprecated in /var/www/html/wp-content/plugins/advanced-custom-fields-pro/includes/loop.php on line 269
Deprecated: Creation of dynamic property ACF::$revisions is deprecated in /var/www/html/wp-content/plugins/advanced-custom-fields-pro/includes/revisions.php on line 397
Deprecated: Creation of dynamic property acf_validation::$errors is deprecated in /var/www/html/wp-content/plugins/advanced-custom-fields-pro/includes/validation.php on line 28
Deprecated: Creation of dynamic property ACF::$validation is deprecated in /var/www/html/wp-content/plugins/advanced-custom-fields-pro/includes/validation.php on line 214
Deprecated: Creation of dynamic property acf_form_customizer::$preview_values is deprecated in /var/www/html/wp-content/plugins/advanced-custom-fields-pro/includes/forms/form-customizer.php on line 28
Deprecated: Creation of dynamic property acf_form_customizer::$preview_fields is deprecated in /var/www/html/wp-content/plugins/advanced-custom-fields-pro/includes/forms/form-customizer.php on line 29
Deprecated: Creation of dynamic property acf_form_customizer::$preview_errors is deprecated in /var/www/html/wp-content/plugins/advanced-custom-fields-pro/includes/forms/form-customizer.php on line 30
Deprecated: Creation of dynamic property ACF::$form_front is deprecated in /var/www/html/wp-content/plugins/advanced-custom-fields-pro/includes/forms/form-front.php on line 598
Deprecated: Creation of dynamic property acf_form_widget::$preview_values is deprecated in /var/www/html/wp-content/plugins/advanced-custom-fields-pro/includes/forms/form-widget.php on line 34
Deprecated: Creation of dynamic property acf_form_widget::$preview_reference is deprecated in /var/www/html/wp-content/plugins/advanced-custom-fields-pro/includes/forms/form-widget.php on line 35
Deprecated: Creation of dynamic property acf_form_widget::$preview_errors is deprecated in /var/www/html/wp-content/plugins/advanced-custom-fields-pro/includes/forms/form-widget.php on line 36
Deprecated: Creation of dynamic property acf_field_oembed::$width is deprecated in /var/www/html/wp-content/plugins/advanced-custom-fields-pro/includes/fields/class-acf-field-oembed.php on line 31
Deprecated: Creation of dynamic property acf_field_oembed::$height is deprecated in /var/www/html/wp-content/plugins/advanced-custom-fields-pro/includes/fields/class-acf-field-oembed.php on line 32
Deprecated: Creation of dynamic property acf_field_google_map::$default_values is deprecated in /var/www/html/wp-content/plugins/advanced-custom-fields-pro/includes/fields/class-acf-field-google-map.php on line 33
Deprecated: Creation of dynamic property acf_field__group::$have_rows is deprecated in /var/www/html/wp-content/plugins/advanced-custom-fields-pro/includes/fields/class-acf-field-group.php on line 31
Deprecated: Creation of dynamic property acf_field_clone::$cloning is deprecated in /var/www/html/wp-content/plugins/advanced-custom-fields-pro/pro/fields/class-acf-field-clone.php on line 34
Deprecated: Creation of dynamic property acf_field_clone::$have_rows is deprecated in /var/www/html/wp-content/plugins/advanced-custom-fields-pro/pro/fields/class-acf-field-clone.php on line 35
Deprecated: Creation of dynamic property acf_field_font_awesome::$settings is deprecated in /var/www/html/wp-content/plugins/advanced-custom-fields-font-awesome/fields/acf-font-awesome-v5.php on line 21
Deprecated: Creation of dynamic property acf_field_ryancv_ui_google_font::$font is deprecated in /var/www/html/wp-content/plugins/ryancv-plugin/acf-ext/acf-ui-google-font/acf-ui-google-font-v5.php on line 57
Deprecated: Creation of dynamic property acf_field_ryancv_ionicons::$font is deprecated in /var/www/html/wp-content/plugins/ryancv-plugin/acf-ext/acf-ionicons/acf-ionicons-v5.php on line 1502
Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/wp-content/plugins/advanced-custom-fields-pro/includes/fields.php:138) in /var/www/html/wp-includes/feed-rss2.php on line 8
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.

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 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.
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.
]]>