Empirical Studies into Modelling in Software Development in the Age of Big Data and AI
The slides shown during the lecture are available as a PDF file under the download tab.
Modeling is a common part of modern day many engineering practices.
However, little evidence exists in Software Engineering about how models are made, how models are used and how they help in producing better software. In this talk, I will present highlights from my last 15+ years of research in the area of software modelling, model-driven development and UML.
Topics that will be addressed:
- How are models used in software development? Including how the use and purposes of models evolve over time.
- Dispelling 'fake news' about UML (discussing arguments in favour and against software modelling)
- Do UML models actually help in creating better software?
- To this end, I will overview some of the ongoing work which is based on a dataset of almost 100.000 UML models (and can be found at http://oss.models-db.com/ ). This dataset opens up many possibilities for 'big data science'-approaches to researching software design.
- I will present several steps in the construction and analyis of this dataset focussing on steps where we used machine learning. These steps include: the automated extraction, recognition and classification of UML-diagrams and Software Architecture Design Documents from GitHub, the analysis of graph-patterns (motiv's) in reverse engineered software designs, the use of machine learning in abstracting reverse engineered diagrams into 'forward designed' design diagrams.
- I will present a prototype of a software design environment for smartboards which enables user interaction via touch and voice.