Vision and Outlook for System Evolution and Diversity

report
High-tech cyber-physical systems (CPS) are becoming increasingly diverse: they may have many variations and configurations, might be part of product families, and may be highly customizable. Additionally, CPSs tend to continuously evolve—have variation in time—for example due to technology updates, changing demands, or changing requirements. However, CPSs are typically not designed in a way to easily deal with all aspects of diversity and evolvability. The growing diversity of CPSs, and the need to continously evolve all system variations and configurations, make it more and more challenging to develop CPSs, especially since the demands on system quality are also increasing. This document describes a research agenda that addresses the evolution and diversity of systems, aimed to improve the efficiency and effectiveness of system engineers by means of models and digital assistants that operate on these models1. We see models as representations of common languages, formalisms, and ways of working that enable interdisciplinary
teams to work together fluently. This document highlights three research areas that together form the approach for managing evolution and diversity:
1. To efficiently and effectively make changes to a diverse system without risk, it is crucial to first understand the system in its current state. Such an understanding can be created by consolidating available system knowledge in models, which together form a consistent single source of truth. Not all knowledge of a system may be readily available. For example, there might be important knowledge hidden in (legacy) code implementations, test cases, design documents, archived repositories, etc. Any such ‘lost knowledge’ should be regained by means of automated tooling, and the models should be enriched with that. Design and
implementation artifacts can then be generated from these models, like documentation and tests, which are up-to-date and consistent by construction. Moreover, models and development artifacts should be queryable, for example, using AI/LLM-based assistants, to get quick insights into systems and their changes.
2. To manage system evolution it is important for engineers to get quick feedback on the quality and correctness of systems and any (envisioned) changes to them, to find potential problems and regressions early in a cost-effective way. This is done by enabling early V&V (verification and validation) on the models (i.e., consolidated system knowledge), to be able to reason about the quality of envisioned changes to the system before their implementation, leading to short feedback cycles and significantly reduced cost.
3. Engineers must be able to change the system with confidence. To effectively change the (legacy) implementations of existing software systems, (semi-)automatic massive code transformations should be used. Furthermore, change impact analysis techniques should be used to further reduce the risk of regression. Finally, automatic design/model synthesis should be employed to automatically (re)compute the parts of the design related to (changes to) requirements, leading to correct-by-construction designs and later implementations.
TNO Identifier
995102
Publisher
TNO
Collation
19 p.