Model view approaches are fundamental when dealing with complex software systems. Specifying complex systems require a set of heterogeneous models, conforming to different modeling languages, in order to be able to describe these systems from various perspectives.
This is even more prevalent for Systems of Systems and Cyber-Physical Systems, because of multi-disciplinary co-engineering processes. Such situations often lead to information scattering across many heterogeneous and interconnected models. This can also lead to overlaps and redundancies that may create inconsistencies in system descriptions. Thus, engineers may have difficulties to efficiently comprehend the whole studied systems. This is a challenge of primary importance in the MegaM@Rt2 context, cf. our already released Deliverable D4.1 for instance.
View-based approaches in general mostly follow a strategy of proposing a fixed set of predefined viewpoints . These viewpoints are then used in different application domains or scenarios. This offers several advantages such as improved understanding, or more integrated and comprehensive tool support. However, these approaches lack the flexibility required in many scenarios. For instance, when the useful model views go beyond a limited set of viewpoints, and may change over time.
Recent advances in model-based engineering fostered the possibility for more flexible view-based approaches. For example, they can rely on metamodeling and model transformation techniques. These model view approaches typically support the creation of custom views over heterogeneous models. However, they differ in their mechanisms to create such views, the expressivity of the view definition language, the support for view updates, etc. It is difficult to know how each approach compares to the others and what are their respective trade-offs. Thus, how could you identify which one(s) are better suited for your given needs?
Our Model Views Proposition
In this paper we published in the Springer SoSyM journal during the first year of MegaM@Rt2 (and who won a SoSyM 2018 Best Paper Award), we provide orientation for the best model view mechanism to suit your needs via an extended study of the state-of-the-art in the area of model viewpoints/views.
We believe this research line is becoming more and more crucial for both the modeling and software/system engineering communities. Thus, we motivate why many future applications could depend on mechanisms for dealing with viewpoints/views on models. Furthermore, we describe the solutions available at the time of writing and how they compare to each other. To this intent, we categorize all existing model view approaches according to a detailed feature model shedding more light on this topic.
Finally, this paper proposes a research agenda highlighting related challenges we have identified as important to tackle in the future (some of them being currently addressed in the context of MegaM@Rt2). In addition to overall scalability issues, such challenges include:
- Dealing with terminology problems that quite often hamper the combination and reuse of existing initiatives.
- Addressing the well-know but still complex view updating problem(s).
- Better supporting incremental view maintenance in the general case.
- Improving the generation of adapted view concrete syntaxes.
- Working on security-related aspects (e.g., view access control).
This paper acts as an entry point for both academic researchers and industrial practitioners, and intends to trigger a broader discussion within the community. This should allow enriching our current feature model and extending the approach comparison in the future. Most importantly, we hope this work will raise the awareness on research challenges around viewpoints/views on models and their practical usages.
I am an engineer doing research and managing innovative projects on software engineering for the NaoMod team (formerly AtlanMod team) with particular focuses on 1) the design and application/adaptation of model-based techniques and architectures to real industrial problems (reverse engineering, tool/language interoperability and evolution, model management and traceability, Cloud Computing, etc.) and 2) the dissemination and/or industrialization of corresponding research results and prototypes (e.g. knowledge and technology transfer to companies).