PhD defence of Hyacinth Ali - Perspectives to promote modularity, reusability, and consistency in multi-language systems
In modern software systems, software modellers often use different modelling languages and views to describe the characteristics of a complex system. This multi-language system allows modellers to express a specific system characteristic with the most appropriate modelling languages and notations. With the proliferation of independently developed and continually evolving modelling languages, it becomes more challenging to reuse or combine multiple languages in a multi-language modelling environment. Also, language models are collectively used to develop a system; hence, it is essential to keep the models consistent. However, it is still a difficult task to maintain the consistencies across the language models and, as well, to support the independent evolution of the modelling languages. Moreover, a modeller needs to navigate model elements that describe a system to understand and modify the system under development. However, generic navigation of model elements is a daunting task without dedicated support from the modelling environment.
In this doctoral thesis, we present a framework for the specification and development of multi-language systems based on perspectives to promote modularity in language reuse, inter-language consistency, combination of languages, and generic navigation of model artefacts. A perspective groups different languages for a modelling purpose; defines the role of each participating language; and specifies a generic navigation mechanism to traverse different model elements. Furthermore, a perspective defines composite actions for building a consistent multi-model system and maintaining the links between different model elements.
The aim of this framework is to streamline the combination of multiple languages in a system and allow the perspective designer to focus only on specifying relationships between different languages. A generative approach then ensures appropriate language registration, model consistencies, and generic navigation of model elements. Hence, a designer is freed from the error-prone implementation of consistency and navigation mechanisms.
We evaluate our approach with a perspective (Fondue Requirement) aimed at requirement elicitation and specification that combines five different languages. This perspective illustrates how a perspective designer can leverage our framework to register languages, specify perspectives, and then generate the implementation of the perspective. In addition, we analyse language actions for the five languages to demonstrate the benefits of perspective actions. To ensure the completeness and correctness of our approach, we further evaluate our framework with two notable multi-language modelling environments: User Requirements Notation and Palladio Component Model. Here, we focus on the relationships between different languages in each perspective and show how our approach handles them.