Automatically Generated Runtime Checks for Design-Level Constraints

Staff - Faculty of Informatics

Start date: 22 March 2010

End date: 23 March 2010

On Monday March 22nd, 2010 at 14h00 in the Informatics Building (room SI-003), Mr. Jochen WUTTKE will defend his Ph.D. dissertation titled:

“Automatically Generated Runtime Checks for Design-Level Constraints”

The dissertation committee is composed of:

  • Prof. Mauro Pezzè, Università della Svizzera Italiana, Lugano, Switzerland (research advisor)
  • Prof. Antonio Carzaniga, Università della Svizzera Italiana, Lugano, Switzerland (internal member)
  • Prof. Holger Giese, Hasso Plattner Institute, Postdam, Germany (external member)
  • Dr. Onn Shehory, IBM – Haifa Research Labs, Israel (external member)
  • Prof. Michal Young, University of Oregon, Eugene, USA (external member)

ABSTRACT:

In recent years, component- and service-based software engineering has gained importance as the new paradigm in software engineering, and it has introduced the challenge of dynamic component look-up and binding into the validation and verification process. This introduces a new class of inherently dynamic properties that have to be verified when the system is running in its deployed environment rather than at development time.
Additionally, the separation of interface specification and the implementation combined with uses of APIs in contexts not envisioned by their developers often lead to subtle faults and consequent failures that are hard to diagnose. This problem is exacerbated when components or services are bound dynamically during deployment, and hence are not known during development and testing.
One important implication of this is that it significantly limits the assurance of quality and reliability that testing at development time can give. Consequently, more of quality assurance, in particular verification, has to take place during the deployment of systems at runtime.

Most runtime verification techniques rely on monitoring state and behavior of systems and reasoning over the measured data to verify whether or not pre-defined properties are maintained.
This dissertation is about runtime monitoring for structural design- level properties of component-based software systems. Such properties arise for example when a framework imposes requirements that must be met by all components, including components developed by third parties, connected within the framework. The working hypothesis is that there are useful design-level properties, violations of which lead to failures that exhibit enough commonalities to distinguish them from failures caused by other defects, and that these clusters of failures can be exploited to define reusable runtime monitoring mechanisms.

Based on this hypothesis, this dissertation contributes (1) a set of design-level properties that can be identified by clearly distinct classes of failures, (2) templates for runtime monitors based on these classes, and (3) a specification language to express the identified properties in design models, and a tool processing such models to automatically generate effective runtime monitors for the specified properties.
These property templates are similar in spirit to design patterns, even though their implementation is solving a monitoring, rather than a software design problem.