Since the beginning of computer science, developing high-quality software at low cost has been a continuous vision. With the increase of powerful computers entwined in many vital parts of society, however, there is a need for better approaches to designing and developing reliable software. In my field of Formal Specifications, we use the language of mathematics to provide such approaches: The field presents various techniques to describe and reason about software in a formal and rigorous way.
The latest trend in software engineering regards models as first-class entities of the development process. This has led to a branch which promotes modelling as the main activity of software development and pursues the shift of paradigm from code-centric to model-centric. The different kinds of models, exploited in software engineering, appear as different kinds of diagrams, i.e., graph-based structures.
In the last decade the Diagram Predicate Framework (DPF) has been developed in Bergen to describe the different kinds of diagrams in a uniform way, thus providing a formal ground to relate and integrate different diagrammatic modelling techniques and to define and implement meta-modelling and model transformations, for example.
My doctoral project is to build upon this, adding a strong mathematical foundation. This will be done with the recently introduced concepts of graph algebras and graph term algebras which generalises concepts well-known in Universal Algebra. By analysing the practical needs in Diagrammatic Modelling, the appropriate constructions and results should be generalised and further developed in this new setting of graph algebras.