Run-time monitoring of architecturally significant behaviors using behavioral profiles and aspects

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.

[1]  Erkki Mäkinen,et al.  MAS — an interactive synthesizer to support behavioral modelling in UML , 2001, ICSE.

[2]  Thomas Ledoux,et al.  Aspect-Oriented Software Development , 2003 .

[3]  Petri Selonen,et al.  Validating UML models against architectural profiles , 2003, ESEC/FSE-11.

[4]  Johann Schumann,et al.  Generating statechart designs from scenarios , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[5]  Guy L. Steele,et al.  The Java Language Specification , 1996 .

[6]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[7]  Iris Groher,et al.  Generating Aspect Code from UML Models , 2003 .

[8]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[9]  Mika Siikarla,et al.  xUMLi: Towards a Tool-independent UML Processing Platform , 2002 .

[10]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[11]  Jean-Marc Jézéquel,et al.  Revisiting statechart synthesis with an algebraic approach , 2004, Proceedings. 26th International Conference on Software Engineering.

[12]  Petri Selonen,et al.  UML-based reverse engineering and model analysis approaches for software architecture maintenance , 2004, 20th IEEE International Conference on Software Maintenance, 2004. Proceedings..

[13]  Martin Gogolla,et al.  Aspect-Oriented Monitoring of UML and OCL Constraints , 2007 .

[14]  Robert B. France,et al.  A UML-based pattern specification technique , 2004, IEEE Transactions on Software Engineering.

[15]  T. Systa,et al.  MAS - an interactive synthesizer to support behavioral modeling in UML , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[16]  James Gosling,et al.  The Java Language Specification, 3rd Edition , 2005 .

[17]  Carlos José Pereira de Lucena,et al.  26th International Conference on Software Engineering (ICSE 2004). Scotland. Third International Workshop on Software Engineering for Large-Scale Multi-Agent Systems (SELMAS'04), 24th-25th May 2004 , 2004 .

[18]  Sebastián Uchitel,et al.  Synthesis of Behavioral Models from Scenarios , 2003, IEEE Trans. Software Eng..

[19]  Volker Stolz,et al.  Temporal Assertions using AspectJ , 2006, Electron. Notes Theor. Comput. Sci..

[20]  Hong Yan,et al.  DiscoTect: a system for discovering architectures from running systems , 2004, Proceedings. 26th International Conference on Software Engineering.