Run-time monitoring of architecturally significant behaviors using behavioral profiles and aspects
Kimmo Kiviluoma, Johannes Koskinen, Tommi Mikkonen · 2006
Although static structures are often advocated as the main ingredient of a software architecture, dynamic program behavior forms an essential part of it. Verifying the behavior is a crucial yet often troublesome part of testing. Hence, it is of great concern to find means to facilitate the testing of dynamic behaviors. This paper studies one approach to such behavioral monitoring. The details of the approach are the following. We have used the concept of behavioral profiles to specify the desired program behavior using UML. Provided with a behavioral profile created with a CASE tool, we are able to automatically generate AspectJ aspects that are woven into Java program code, thus adding a monitoring concern to the system. This results in the opportunity to monitor architecturally significant behaviors defined with architectural profiles at code level. Towards the end of the paper, we study the applicability of the approach in industrial use.