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 summer school – Jonathan Botha https://jonathanbotha.info Just another developer Sat, 09 Dec 2023 07:52:36 +0000 en-US hourly 1 https://wordpress.org/?v=6.4.11 The ModPro experience https://jonathanbotha.info/2020/01/24/the-modpro-experience/ Fri, 24 Jan 2020 12:29:43 +0000 https://jonathanbotha.info/?p=462 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.

]]>