Model-Based software engineering (MBE) is progressively maturing and starting to be recognized by the industry as a serious alternative for the development of software applications with high quality and lower costs than other traditional methods. However, in order to become a mature discipline, MBE needs to incorporate some of the building blocks that any professional discipline requires: Competences, Body of Knowledge, Education & Training, and Ethics .
One of these four pillars is having a Body of Knowledge (BoK). A BoK is a fundamental part of any professional discipline because it captures the knowledge that is inherent, sometimes tacit, and often explicit in a professional domain. More precisely, a BoK provides the set of concepts, terminology, and tasks that constitute the professional domain, with the goals of promoting a consistent and global view of the discipline, clarifying its scope with regard to other related disciplines, and defining a foundation for the development of educational curricula for it. Examples of BoKs in the IT domain include the Software Engineering BoK (SWEBOK), the Enterprise Architecture BoK (EABOK), the Systems Engineering BoK (SEBOK), the Project Management BoK (PMBOK), or the forthcoming Software Language Engineering BoK (SLEBOK), among others.
Despite the expanding adoption of MBE in industry and academia, no widely agreed-upon core set of concepts, elements, and practices encompassed by MBE has been described anywhere yet. This is why in 2018, a group of researchers (Loli Burgueño, Federico Ciccozzi, Michalis Famelis, Gerti Kappel, Leen Lambers, Sébastien Mosser, Richard F. Paige, Alfonso Pierantonio, Arend Rensink, Rick Salay, Gabriele Taentzer, Antonio Vallecillo, Manuel Wimmer) started working on the basic contents of a BoK for MBE, called the MBEBOK.
This post summarizes the current results of this effort, as well as the next steps. It is a condensed version of a recently published paper at the SoSyM journal .
Contents for the MBEBOK
The first step to developing a BoK for MBE is to identify the core set of concepts that any MBE engineer should know. This core set provides a common and consistent reference terminology for MBE practitioners, as well as a structured list of the main Knowledge Areas, skills and accepted practices of the discipline. This would also help universities and other institutions that provide teaching courses on SE to develop their MBE curricula.
For this, an initial set of topics was identified and presented at the MODELS 2018 Educators’ Symposium , where we received useful feedback not only about the topics themselves but also on how to potentially implement the MBEBOK.
After the symposium, we decided to validate the revised list of topics with the MBE community by means of conducting a survey to obtain a clear picture about the importance that the community gives to each topic in education and certification of model-based software engineers, the coverage of these topics in current SE/MBE curricula, at both Bachelor’s and Master’s levels. The results of the questionnaire were presented in the SOSYM paper “Contents for a Model-Based Software Engineering Body of Knowledge” and its outcomes are summarized below.
Survey Organization. The survey was conducted in December 2018. A total of 101 responses were recorded, from 23 different countries, distributed across continents as follows: Europe 85%, America 11%, Oceania 2%, Asia 1%, and Africa 1%.
Survey Results. The results of the surveys are summarized below. In the first place, figures 1 and 2 contain the list of topics that were considered to be relevant for the MBEBOK, i.e., that should be part of the knowledge that any MBE practitioner should possess. Each row represents a specific topic, with the average score and standard deviation of the assigned importance, and its coverage at BSc and MSc levels. The last two columns show the difference between the importance assigned to a topic and how it is covered in the curricula of the institution, in order to identify possible decompensations. Cells shaded in green color highlight the highest scores, while red-shaded cells identify the lowest. The highest standard deviations are highlighted in yellow; they identify the topics with less consensus.
Figure 3 shows the results of the survey graphically. The X-axis lists the topics (they are the same as those listed in Figs. 2 and 3, respectively), while the Y-axis plots the resulting scores of the answers: topic importance and topic coverage at MSc and BSc levels.
Survey findings. Although the survey results mainly supported our initial assumptions and the list of concepts initially proposed for the MBEBOK, they also uncovered some interesting issues:
- Some of the suggested topics received little support for inclusion in the MBEBOK. For example, Animation (5.5), Streaming Transformations (9.2.1), Incremental Transformations (9.2.2), Physics of notations (5.2), Further topics (9.2), or Uncertainty (9.2.3) were marked as Not Important. We can consider them as clear candidates for exclusion from the basic contents of the MBEBOK.
- We found a clear correlation between importance and coverage. In general, more important topics show higher coverage in existing curricula. There are significant exceptions, such as Model Maintenance and Evolution (6) and Model Execution (7); despite being considered somewhat important, their current coverage is rather low.
- Interestingly, there are some topics classified as Basic due to their importance. Still, the selected subtopics are, however, classified as Intermediate or even Advanced — namely, Structural model analysis (3.1), Model transformation languages (8.1), and MBE application domains (9.1). This means that the topic as a whole is considered essential, but the subtopics themselves are slightly less relevant.
- Teaching metamodels and grammars. There seems to be a discrepancy in the community about when to teach metamodels and grammars, whether at BSc or MSc levels. This issue would require further analysis.
Having a starting list of concepts for the contents of the MBEBOK, we are now working on a “Guide to the MBE Body of Knowledge,” which further develops these concepts and the practices that support the discipline. It is intended to supplement the contents of the SWEBOK (probably as an Annex) and to be aligned with the current efforts to create the SLEBOK and other engineering BoKs.
Additionally, we are working on the development of a glossary of terms for the MBEBOK, with the terminology that defines the set of central concepts of the discipline, and constitutes the accepted ontology for the MBE domain (e.g. this would avoid eternal discussions as the distinction between MDE vs MBE vs MDA,…).
Once the complete drafts of the Guide and the Glossary are ready, we will circulate them to the MBE and SLE communities who will have the opportunity to revise them and provide suggestions. Eventually, we will circulate them to the broader SE community.
The MBEBOK aims to characterize the contents and known practices of the MBE discipline and to identify the core concepts that any MBE engineer should know. We believe that this will significantly help to consolidate the field of MBE, provide interoperability between different MBE stakeholders, clarify its scope concerning other SE disciplines, and improve the way it is currently taught.
We understand the MBEBOK as a collective project where all interested parties are welcome to participate. Thus we appreciate this opportunity to invite all readers of the Modeling Languages blog that want to join to write to us, indicating how they want and can help, to the following mail address: [email protected] or by leaving a comment in this post. Let us know what you think about this initiative!
 IT Professionalism Europe (ITPE). “What is IT Professionalism,” https://itprofessionalism.org/about-it-professionalism/
 Loli Burgueño, Federico Ciccozzi, Michalis Famelis, Gerti Kappel, Leen Lambers, Sébastien Mosser, Richard F. Paige, Alfonso Pierantonio, Arend Rensink, Rick Salay, Gabriele Taentzer, Antonio Vallecillo, Manuel Wimmer. “Contents for a Model-Based Software Engineering Body of Knowledge,” Software and Systems Modeling 18(6):3193-3205, 2019. https://doi.org/10.1007/s10270-019-00746-9
 Federico Ciccozzi, Michalis Famelis, Gerti Kappel, Leen Lambers, Sébastien Mosser, Richard F. Paige, Alfonso Pierantonio, Arend Rensink, Rick Salay, Gabriele Taentzer, Antonio Vallecillo, Manuel Wimmer. “Towards a body of knowledge for model-based software engineering.” In Proceedings of Edusymp’[email protected], pp. 82–89. ACM, 2018. https://doi.org/10.1145/3270112.3270121