Run-Time Monitoring and Real-Time Visualization of Software Architectures

Software architecture stands at the backbone of any software system. An up-to-date description of the architecture greatly contributes to its understanding, evaluation and evolution. Despite its importance, the architecture is typically described only in the preliminary development phases and later becomes subject of continuous degradation. Therefore, methods and corresponding tool support for reconstructing the current views of a system's architecture have been developed and proposed. Current state of the art addresses the reconstruction of static and dynamic views separately. The reconstruction is typically conducted post-mortem using heavy weight infrastructures. We have conceptually defined and built a light-weight run-time monitoring infrastructure that produces meaningful real-time visualizations of object-level interactions. We consider that the possibility to observe the behavior of a system in real-time positively impacts the documentation of the software architecture, its understandability, communication and trace ability to usage scenarios. We have evaluated the monitoring infrastructure on a software project in different development stages. The evaluation has shown very promising results.

[1]  Kamran Sartipi Alborz: a query-based tool for software architecture recovery , 2001, Proceedings 9th International Workshop on Program Comprehension. IWPC 2001.

[2]  Richard N. Taylor Software architecture: many faces, many places, yet a central discipline , 2009, ESEC/FSE '09.

[3]  Wilhelm Hasselbring,et al.  Kieker: a framework for application performance monitoring and dynamic software analysis , 2012, ICPE '12.

[4]  Wouter Joosen,et al.  Aspect-Oriented Software Development in Practice: Tales from AOSD-Europe , 2010, Computer.

[5]  Stéphane Ducasse,et al.  Software Architecture Reconstruction: A Process-Oriented Taxonomy , 2009, IEEE Transactions on Software Engineering.

[6]  Richard Monson-Haefel,et al.  Java message service , 2000 .

[7]  John C. Grundy,et al.  High-level static and dynamic visualisation of software architectures , 2000, Proceeding 2000 IEEE International Symposium on Visual Languages.

[8]  Pierre America,et al.  A top-down strategy to reverse architecting execution views for a large and complex software-intensive system: An experience report , 2011, Sci. Comput. Program..

[9]  Hong Yan,et al.  DiscoTect: A System for Discovering the Architectures of Running Programs using Colored Petri Nets , 2006 .

[10]  Rainer Weinreich,et al.  Connecting Architecture and Implementation , 2009, OTM Workshops.

[11]  Richard N. Taylor,et al.  Software architecture: foundations, theory, and practice , 2009, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[12]  Darren Duc Dao,et al.  Live debugging of distributed systems , 2009, CC.

[13]  Matthias Hauswirth,et al.  Evaluating the accuracy of Java profilers , 2010, PLDI '10.

[14]  Stéphane Ducasse,et al.  Multiple viewpoints architecture extraction , 2009, 2009 Joint Working IEEE/IFIP Conference on Software Architecture & European Conference on Software Architecture.

[15]  Horst Lichter,et al.  Towards an Integration of Multiple Process Improvement Reference Models Based on Automated Concept Extraction , 2012, EuroSPI.

[16]  Horst Lichter,et al.  Model-Based Software Architecture Evolution and Evaluation , 2012, 2012 19th Asia-Pacific Software Engineering Conference.

[17]  Rick Kazman,et al.  Playing Detective: Reconstructing Software Architecture from Available Evidence , 1999, Automated Software Engineering.

[18]  Dirk Muthig,et al.  Bridging the Software Architecture Gap , 2008, Computer.