Monitoring and Evolution of Very-Large-Scale Software Systems
Very-large-scale software systems (VLSS) comprise decentralized and heterogeneous systems with operational and managerial independence, different execution environments, globally distributed development as well as emerging behavior and properties.
VLSS are subject to continuous evolution due to ever changing requirements, technologies and markets. Existing VLSS represent a significant investment which needs to be preserved and the functionality and quality of VLSS need to be ensured over long periods of time. Methods supporting the evolution of VLSS based on monitoring and diagnosis techniques. This will help ensuring compliance with requirements after evolving a large-scale component in a VLSS.
To address the challenges of Monitoring large-scale systems, and systems with a System of System (SoS) architecture we have been developing REMINDS, a flexible framework facilitating the development of monitoring support across various systems, for different technologies, and for different monitoring purposes in SoS.
The framework is based on a Requirements Monitoring Model (RMM) providing the conceptual foundation for relating requirements to be monitored, the SoS architecture, and events and data captured by the monitoring infrastructure at runtime.
Based on the REMINDS framework, we have developed a set of tools together with our industry partner. The REMINDS tools are divided into several categories, providing support for the different layers of the framework. The framework components comprise the Aggregation and Distribution Component containing an event broker and an implementation of the RMM, a Persistence Component providing support for different databases, and the Processing and Analysis Component containing event processors, the constraint checking engine, as well as a violation handler. The User Interface Components are divided into a set of different user interfaces, editors, and tools for managing the elements of the RMM, supporting developers in developing probes, managing the monitoring server infrastructure, and performing monitoring and diagnosis.