A model-oriented framework for runtime monitoring of nonfunctional properties

  • Authors:
  • Kenneth Chan;Iman Poernomo;Heinz Schmidt;Jane Jayaputera

  • Affiliations:
  • Department of Computer Science, King’s College London, Strand, London, United Kingdom;Department of Computer Science, King’s College London, Strand, London, United Kingdom;School of Computer Science and Software Engineering, Monash University, Caulfield East, Victoria, Australia;School of Computer Science and Software Engineering, Monash University, Caulfield East, Victoria, Australia

  • Venue:
  • QoSA'05 Proceedings of the First international conference on Quality of Software Architectures and Software Quality, and Proceedings of the Second International conference on Software Quality
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

It is now recognized that nonfunctional properties are important to practical software development and maintenance. Many of these properties involve involving time and probabilities – for example, reliability and availability. One approach to ensuring conformance to nonfunctional requirements is the use of runtime monitoring. Currently, such monitoring is done in one of two ways: 1) monitoring through use of a generic tool or 2) by adding instrumentation code within system software and writing a tool to manage resulting datasets. The first approach is often not flexible while the second approach can lead to a higher development cost. In this paper, we present a flexible framework for runtime verification of timed and probabilistic nonfunctional properties of component-based architectures. We describe a Microsoft .NET-based implementation of our framework built upon the Windows Management Instrumentation (WMI) infrastructure and the Distributed Management Task Force’s Common Information Model standard. We use a language for contracts based on Probabilistic Computational Tree Logic (PCTL). We provide a formal semantics for this language based on possible application execution traces. The semantics is generic over the aspects of an application that are represented by states and transitions of traces. This enables us to use the language to define a wide range of nonfunctional properties.