Runtime Verification of Interactions: From MSCs to Aspects

Runtime verification is one systematic strategy for analytical quality assurance of complex distributed systems. Model-based development approaches are promising in this context because they provide models of manageable size and complexity describing the systems under development, enabling systematic engineering processes for all development phases on various levels of detail. For runtime verification, executing implementations are monitored continuously for correctness against the specification. This requires the insertion of monitors into the software under test to gather information on system states and their evolution. In this paper we describe how we use aspect-oriented development techniques to enhance existing code with runtime monitors checking the interaction behavior of applications against their specifications. We use Message Sequence Charts (MSCs) to specify the interaction behavior of distributed systems and as basis for automatic runtime monitor generation. This uniquely ties interaction interface specifications with the monitoring infrastructure for their realization.We explain themonitor generation procedure and tool set using a case study from the embedded automotive systems domain, the Central Locking System (CLS).

[1]  Manfred Broy,et al.  The Impact of Models in Software Development , 2005, Mechanizing Mathematical Reasoning.

[2]  Gregor Kiczales,et al.  Aspect-oriented programming , 1996, CSUR.

[3]  Ingolf H. Krüger,et al.  Automating software architecture exploration with M2Aspects , 2006, SCESM '06.

[4]  Peter Fettke,et al.  Model Driven Architecture (MDA) , 2003, Wirtsch..

[5]  Ingolf Krüger,et al.  Distributed system design with message sequence charts , 2000 .

[6]  Ingolf H. Krüger Towards a process and tool-chain for service-oriented automotive software engineering , 2004, ICSE 2004.

[7]  Franz J. Rammig Distributed and Parallel Embedded Systems , 1999 .

[8]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[9]  Sjouke Mauw,et al.  Message Sequence Chart (MSC) , 1996 .

[10]  Alexander Pretschner,et al.  Proceedings of the ICSE 2004 workshop on Software Engineering for Automotive Systems , 2004 .

[11]  Dieter Hutter,et al.  Mechanizing Mathematical Reasoning , 2008 .

[12]  Klaus Havelund,et al.  Verify Your Runs , 2005, VSTTE.

[13]  Manfred Broy,et al.  A formal model of services , 2007, TSEM.

[14]  Ingolf Krüger,et al.  Efficient exploration of service-oriented architectures using aspects , 2006, ICSE.

[15]  Ingolf Krüger,et al.  Model-based run-time monitoring of end-to-end deadlines , 2005, EMSOFT.

[16]  Manfred Broy,et al.  From MSCs to Statecharts , 1998, DIPES.

[17]  Stefan Leue,et al.  Methods and semantics for telecommunications systems engineering , 1994 .