The priority programme comprises thirteen scientific projects with 25 principal investigators from software and automation engineering. We present the individual project goals, project collaborations and project clustering in the following Sects. 5.1, 5.2 and 5.3.
Individual project goals
Footnote 6 addresses the challenge of capturing and evolving design decisions to keep development artefacts synchronised (requirements, documentation, architecture specification, and code). A vetical tool prototype for synchronisation of architectural design and implementation artefacts is available. For evaluation, an empirical study on CoCoME and some real-world case studies from former industry and research projects are planned.
Footnote 7 develops new high-level models for performance specification and modelling of variability and evolution. The work is motivated by the increasing complexity of software in long-living systems, and the resulting number of variants over time. New techniques for efficient performance analysis both at design-time and at run-time are engineered, and evaluated on the PPU case study.
Footnote 8 investigates the co-evolution of quality of service (QoS) models and architectural models. Particularly, the certification of QoS properties of evolving systems, including run-time certification, is introduced and evaluated via model-based safety and reliability evaluations of the evolving PPU (consistent models, model transformations, co-evolution study). The model-based performance evaluation of CoCoME is envisioned.
Footnote 9 supports consistency checking between variability models and artefacts during evolution. Employing the Linux kernel and kconfig files as case studies, EvoLine identifies modifications in a product line that lead to problems in single products.
Footnote 10 develops methods and processes for realising knowledge carrying software for evolving production systems, especially in the context of undocumented changes. This includes the automatic generation and scenario-based evaluation of knowledge models and test cases for the PPU case study on the basis of occurring low-level signal traces within an active component architecture. A semi-automated requirements verification process based on anomaly detection of changes as well as test cases and common usage scenarios has already been developed. Besides the PPU case study, a local laboratory manufacturing plant evolution scenario is under construction and a simulated benchmark plant is planned.
Footnote 11 investigates the co-evolution of software product line (SPL) models and test artefacts, particularly the propagation of changes in SPL models into updates of model-based SPL test artifacts. Via a case study of its associated partner Eckelmann AG and the PPU case study, IMoTEP evaluates quality assurance for (re-)configuration at run-time based on dynamic SPL testing strategies as well as for unforeseen evolution based on regression testing.
Footnote 12 leverages advances in deductive program verification for regression verification (formally proving that software behaviour is sustained through its evolution). IMPROVE develops powerful regression verification methods and tools for regression verification for Java and intends to evaluate these on a collection of micro-benchmarks from literature and on the CoCoMe case study.
Footnote 13 investigates model-based observation, prediction, forecasting and analysis of performance and privacy in dynamic cloud contexts. In particular, new methods and techniques for model-driven instrumentation, creation and update of run-time models for verification of geo-location-constraints are addressed. The techniques are evaluated on the CoCoMe case study, particularly with the scenario of moving a database from one cloud provider to another while complying with data policy requirements.
Footnote 14 develops a methodology and tools for specifying and recognising changes in versions of models. The key idea is to integrate model-driven key technologies for model transformation and model versioning and to evaluate this with managing and planing the evolution of SysML models of the PPU case study.
Footnote 15 investigates evolution challenges in automation engineering in practice. The MoDEMAS project employs simulation and model checking to support evolution of automation systems. The approach is evaluated via simulation of typical evolution scenarios on the PPU case study. The goal is to identify and combine those viewpoints, which are required to model an automation system holistically.
Footnote 16 utilises various sources of information obtained via product line analysis to improve the predictive power of state-of-the-art prediction models for product line engineering. A product line dashboard that aggregates, integrates, and visualises organisational, architectural, and implementation-related information is developed to support decisions such as whether to add a feature, remove a feature, or alter the organisation, architecture, or implementation (refactoring). Pythia is evaluated based on several open-source software systems, several case studies from partners at Fraunhofer IESE, Keba, and Siemens, as well as the source code of the PPU case study.
Footnote 17 addresses the systematic co-evolution of knowledge and software for security. Hereby, SecVolution develops techniques, tools, and processes that support security requirements and design analysis techniques for evolving, long-living systems in order to ensure lifelong compliance to security requirements. The evaluation is planned both on the CoCoME case study with the evolution scenario of migrating the shop to the cloud and the PPU case study for investigating relevant security vulnerabilities.
Footnote 18 has the goal to support the documentation and usage of decision knowledge during software evolution. URES investigates the structures to represent decisions, the resulting effort for developers and how to exploit decision knowledge in order to support the system evolution. End user behaviour is reflected in evolution decisions to identify software improvements through mismatches between expected and observed user behaviour. These techniques are evaluated on the UNICASE tool and both the CoCoME and the PPU case studies.
In order to achieve the intended integration between partners of different fields of software engineering, and hence to reach a focused approach towards a coherent methodology, considerable efforts are necessary. Frequent information exchange and discussion of research results in early stages are absolutely essential. This is achieved on the one hand by organising frequent meetings in suitable forms, not only for information exchange within the priority programme but also with national and international experts. On the other hand, we build networks between related projects, both guided by the joint case studies and by establishing working groups for related research interests.
ADVERT and iObserve collaborate on the development of CoCoME evolution scenarios, the integration of a monitoring probe definition language into synchronised development artefacts to gather and represent run-time deployment information. ADVERT and SecVolution collaborate on capturing relevant security knowledge from architectures and synchronising that knowledge between model and code. DAPS collaborates with FYPA2C on measurements of the PPU. ENSURE collaborates with MOCA on the PPU system architecture and fault tree models, with FYPA2C on probabilistic QoS models, and with iObserve on learning performance attributes based on the CoCoME implementation for model update via dynamic analysis. FYPA2C collaborates with MoDEMAS on run-time verification of production systems on basis of PLC signal traces, with DAPS on the PPU regarding performance verification is planned and with ENSURE on probabilistic models. IMoTEP collaborates with Pythia on SPL test case generation based on symbolic model checking, with MoDEMAS on feature modelling in the automation engineering domain, with MOCA on consistency-preserving evolution of SPL test artefacts by model differencing, and with DAPS on variability modelling in SPL engineering. iObserve collaborates with ADVERT on run-time and data modelling and with ENSURE, SecVolution, URES, and MOCA on model-driven code generation for the CoCoME case study. MOCA collaborates with MoDeMAS on the comparison of SysML models of the PPU, with IMoTEP on the comparison of feature models, with SecVolution on the change recognition of changes in security maintenance models, and with ENSURE on the comparison of system architectures and fault tree models. Pythia collaborates with DAPS on variability-aware performance analysis, with IMoTEP on variability-aware test-case generation and execution and with MOCA on structural differencing and merging to compare tools. URES collaborates with SecVolution on integrating heuristic analyses for requirements with the decision editor in UNICASE as well as with iObserve, ADVERT, and SecVolution on the development of CoCoME evolution scenarios.
In particular the shared case studies promote close collaborations among the individual projects. We observe several research topics that are of common interest, for instance:
Co-evolution of models and implementation code, of models and tests, and among various types of models.
Run-time models to automatically synchronise software systems with their abstract models through continuous system monitoring.
Both, co-evolution and run-time models contribute to our vision of knowledge carrying software which is a requirement for a long life of these software systems.
One of the goals in the first funding period of the priority programme was to evenly cover our guiding themes I and II as well as our application domains. The assignment of projects is depicted in Fig. 6. We find that four projects concentrate solely on information systems, five projects solely on automation engineering. Four projects are working in both domains. The width of each block in the figure illustrates the intensity (one-, two- or three-thirds) of the assignment to a guiding theme. In accordance with the focus in the first funding period, the majority of the projects contribute to guiding theme I and II.
Besides these classifications, we identify seven important themes from software engineering which are covered by our projects, illustrated in Fig. 6.
In the projects concerned with Software Product Lines (SPLs), performance and testability of variant-rich software systems are examined. The projects in Verification & Validation develop sophisticated software approaches for quality assurance in practical application. Also formal methods are part of this field. Meta Modelling covers approaches with strong orientation to model-based/model-driven development and analysis of systems on high level of abstraction. Change Analysis is strongly related to the preservation of knowledge in maintenance phases. Close to that, Monitoring concepts support the integration of human and environmental aspects into the development process. Highly flexible system and software structures are investigated in the field of Architectures. Finally, the field Non-functional Properties focuses on system properties on the level of qualitative ratings beyond functional requirements.