Journal of Software, Vol 6, No 3 (2011), 395-403, Mar 2011
doi:10.4304/jsw.6.3.395-403

A Generic Software Monitoring Model and Features Analysis

Chang-Guo Guo, Jun Zhu, Xiao-Ling Li

Abstract


Software runtime monitoring has been used to increase the dependability of software. This paper focuses on software runtime monitoring techniques and tools. A generic software runtime monitoring model is presented, which consists of five basic elements, i.e., Monitored Object Features, Monitoring Access Methods, Execution Relationships, Runtime Monitor and Platform Dependencies. This model is an innovation in software monitoring fields. This paper gives some features of each element. Based on these features, researchers can use the model to comprehend and analyze runtime monitoring techniques and tools. The objective of this paper is to help researchers and users to identify the difference and the basic principles of software runtime monitoring techniques and tools. This paper also shows a result of relationship between techniques and features, through the result, we can understand the development trends of the techniques and tools, such as, what features are concerned more, and what features are concerned less.


Keywords


software runtime monitoring; dependability; monitoring access methods; monitored object features; runtime monitor

References


[1] Inquiry Board, “Ariane 5 Flight 105 Inquiry Board Report,” tech. rep., European Space Agency Press, July 1996.

[2] “http://space.kursknet.ru/cosmos/english/machines/stma1.sht.”

[3] W. Hasselbring and R. Reussner, “Toward Trustworthy Software Systems,” Computer, vol. 39, no. 4, pp. 91–92, 2006.
doi:10.1109/MC.2006.142

[4] “EX-13: Annual or Quarterly Report to Security Holders,” tech. rep., Intel Corp, 1996.

[5] NIST, “Software Errors Cost U.S. Economy $59.5 Billion Annually: NIST Assesses Technical Needs of Industry to Improve Software-Testing,” 2002.

[6] H.wang CHEN, J.WANG, W. Dong. High Confidence Software Engineering Technologies. ACTA ELECTRONICA SINICA, 31(12A), December 2003.

[7] M. Kim, S. Kannan, I. Lee, O. Sokolsky. Java-MaC: A run-time assurance tool for Java. In First International Workshop on Run-time Verification. Paris, France. 2001.

[8] I. Lee, H. Ben-Abdallah. A Monitoring and Checking Framework for Run-Time Correctness Assurance. Proc. 1998 Korea-U.S. Technical Conf. Strategic Technologies, 1998.

[9] N. Delgado, A. Q. Gates, and S. Roach, “A Taxonomy and Catalog of Runtime Software-Fault Monitoring Tools,” IEEE Transactions on Software Engineering, vol. 30, Decemer 2004.

[10] D. Peters, “Automated Testing of Real-Time Systems,” Technical Report, Memorial University of Newfoundland, Nov. 1999.

[11] C. Jeffery, W. Zhou, K. Templer, and M. Brazell, “A Lightweight Architecture for Program Execution Monitoring,” ACM SIGPLAN Notices, vol. 33, no. 7, pp. 67–74, 1998.
doi:10.1145/277633.277644

[12] H. Barringer, A. Goldberg, K. Havelund, and K. Sen, “Program Monitoring with LTL in EAGLE,” in Proceedings of 18th International Conference on Parallel and Distributed Processing Symposium, 2004.
doi:10.1109/IPDPS.2004.1303336

[13] D. S. Rosenblum, “A Practical Approach to Programming with Assertions,” IEEE Transactions on Software Engineering, 1995.

[14] L. Fei, K. Lee, F. Li, and S. P. Midkiff, “Argus: Online Statistical Bug Detection,” in Proceedings of Fundamental Approaches to Software Engineering 2006 (FASE’06), pp. 308–323, Springer-Verlag, 2006.

[15] L. Fei and S. P. Midkiff, “Artemis: Practical Runtime Monitoring of Applications for Execution Anomalies,” in The ACM SIGPLAN 2006 Conference on Programming Language Design and Implementation (PLDI’06), (Ottawa, Ontario, Canada), June 2006.

[16] F. Barbon, P. Traverso, M. Pistore, and M. Trainotti, “Run-Time Monitoring of Instances and Classes ofWeb Service Compositions,” in IEEE International Conference on Web Services (ICWS’06), 2006.
doi:10.1109/ICWS.2006.113

[17] B. Bruegge, T. Gottschalk, and B. Luo, “A Framework for Dynamic Program Analyzers,” ACM SIGPLAN Notices, vol. 28, no. 10, pp. 65–82, 1993.
doi:10.1145/167962.165870

[18] B. Liblit, M. Naik, A. Zheng, A. Aiken, and M. Jordan, “Scalable Statistical Bug Isolation,” in Proceedings of the 2005 ACM SIGPLAN conference on Programming Language Design and Implementation, pp. 15–26, ACM Press New York, NY, USA, 2005.
doi:10.1145/1065010.1065014

[19] M. Zulkernine and R. E. Seviora, “A Compositional Approach to Monitoring Distributed Systems,” in Proceedings of the International Conference on Dependable Systems and Networks (DSN’02), 2002.
doi:10.1109/DSN.2002.1029022

[20] M. Diaz, G. Juanole, and J. Courtiat, “Observer– A Concept for Formal On-Line Validation of Distributed Systems,” IEEE Transactions on Software Engineering, vol. 20, no. 12, pp. 900–913, 1994.
doi:10.1109/32.368136

[21] M. James and L. Dubon, “An Autonomous Diagnostic and Prognostic Monitoring System for NASA’s Deep Space Network,” 2000.

[22] A. Q. Gates and P. J. Teller, “DynaMICs: An Automated and Independent Software-Fault Detection Approach,” in Proceedings of the Fourth International High-Assurance Systems Engineering Symposium, 1999.
doi:10.1109/HASE.1999.809470

[23] G. T. Leavens, A. L. Baker, and C. Ruby, “Preliminary Design of JML: A Behavioral Interface Specification Language for Java,” in ACM SIGSOFT Software Engineering Notes, vol. 31, March 2006.

[24] H. Barringer and D. Rydeheard, “Modelling Evolvable Systems: A Temporal Logic View,” in We will Show them: Essays in Honour of Dov Gabbay, vol. 2, pp. 195–228, College Publications, 2005.

[25] W. Gu, G. Eisenhauer, K. Schwan, and J. Vetter, “Falcon: On-Line Monitoring for Steering Parallel Programs,” Concurrency: Pract. Exper, vol. 10, no. 9, pp. 699–736, 1998.
doi:10.1002/(SICI)1096-9128(19980810)10:9<699::AID-CPE367>3.0.CO;2-7

[26] J. Bowring, A. Orso, and M. Harrold, “Monitoring Deployed Software Using Software Tomography,” in Proceedings of the 2002 ACM SIGPLAN-SIGSOFT Workshop on Program Analysis For Software Tools and Engineering (PASTE’02), pp. 2–9, 2002.
doi:10.1145/586094.586099

[27] E. S. Al-Shaer, Hierarchical Filtering-Based Monitoring Architecture For Large-Scale Distributed Systems. PhD thesis, Old Dominion University, 1998.

[28] M. Consens, M. Hasan, and A. Mendelzon, “Using Hy+ for Network Management and Distributed Debugging,” in Proceedings of the 1993 conference of the Centre for Advanced Studies on Collaborative research: software engineering, vol. 1, pp. 450–471, IBM Press, 1993.

[29] D. Olge, K. Schwan, and R. Snodgrass, “Application-Dependent Dynamic Monitoring of Distributed Systems,” IEEE Transactions on Parallel and Distributed Systems, vol. 21, no. 4, pp. 593–622, 1989.

[30] E. Bodden, “J-LO A Tool for Runtime-Checking Temporal Assertions,” Master’s thesis, RWTH Aachen University, 2005.

[31] M. Kim, S. Kannan, I. Lee, O. Sokolsky, and M. Viswanathan, “Java-MaC: A Run-time Assurance Tool for Java Programs,” Electronic Notes in Theoretical Computer Science, vol. 55, no. 2, pp. 218–235, 2001.
doi:10.1016/S1571-0661(04)00254-3

[32] D. Peters, “Automated Testing of Real-Time Systems,” tech. rep., Memorial University of Newfoundland, November 1999.

[33] B. Meyer, Object Oriented Software Construction. Prentice-Hall, 1998.

[34] F. Chen and G. Rosu, “MOP: An Efficient and Generic Runtime Verification Framework,” in the 22nd Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA’07), 2007.

[35] K. Havelund and G. Rosu, “Java PathExplorer – A Runtime Verification Tool,” in the 6th International Symposium on Artificial Intelligence, Robotics and Automation in Space: A New Space Odyssey, pp. 18–21, June 2001.

[36] D. Bartetzko, C. Fischer, M. M¨oller, and H. Wehrheim, “Jass – Java with Assertions,” Electronic Notes in Theoretical Computer Science, vol. 55, no. 2, pp. 103–117, 2001.
doi:10.1016/S1571-0661(04)00247-6

[37] M. Karaorman and J. Freeman, “jMonitor: Java Runtime Event Specification and Monitoring Library,” in Runtime Verification 2004 (RV’04), 2004.

[38] K. Marzullo, R. Cooper, M. D. Wood, and K. P. Birman, “Tools for Distributed Application Management,” IEEE Computer, vol. 24, pp. 42–51, August 1991.

[39] Z. Li, Y. Jin, and J. Han, “A Runtime Monitoring and Validation Framework for Web Service Interactions,” in Proceedings of the 2006 Australian Software Engineering Conference (ASWEC’06), vol. 6, pp. 70–79, 2006.

[40] Q.Wang, Y. Liu, M. Li, and H. Mei, “An Online Monitoring Approach for Web services,” in Proceedings of the 31st Annual International Computer Software and Applications Conference (COMPSAC’07), vol. 1, pp. 335–342, IEEE Computer Society Washington, DC, USA, 2007.
doi:10.1109/COMPSAC.2007.70

[41] F. Barbon, P. Traverso, M. Pistore, and M. Trainotti, “Run-Time Monitoring of Instances and Classes ofWeb Service Compositions,” in IEEE International Conference on Web Services (ICWS’06), 2006.
doi:10.1109/ICWS.2006.113

[42] D. Luckham, S. Sankar, and S. Takahashi, “Two-Dimensional Pinpointing: Debugging with Formal Specifications,” IEEE Software, vol. 8, no. 1, pp. 74–84, 1991.
doi:10.1109/52.62935

[43] N. Nethercote and J. Seward, “Valgrind: A Framework for Heavyweight Dynamic Binary Instrumentation,” in The ACM SIGPLAN 2007 Conference on Programming Language Design and Implementation (PLDI’07), (San Diego, California, USA), June 2007.

[44] K. Chan, I. Poernomo, H. Schmidt, and J. Jayaputera, “A Model-Oriented Framework for Runtime Monitoring of Nonfunctional Properties,” in the 1st International Conference on the Quality Of Software Architectures (QOSA’05), 2005.

[45] J. Ahluwalia, I. H. Kr¨uger, W. Phillips, and M. Meisinger, “Model-Based Run-Time Monitoring of End-to-End Deadlines,” in International Conference on Embedded Software 2005 (EMSOFT’05), (Jersey City, New Jersey, USA), September 2005.

[46] C. Liu, X. Yan, L. Fei, J. Han, and S. P. Midkiff, “SOBER: Statistical Model-based Bug Localization,” SIGSOFT Software Engineering Notes, vol. 30, no. 5, pp. 286–295, 2005.
doi:10.1145/1095430.1081753


Full Text: PDF


Journal of Software (JSW, ISSN 1796-217X)

Copyright @ 2006-2012 by ACADEMY PUBLISHER – All rights reserved.