DynaMICs: Comprehensive Support for Run-Time Monitoring

Abstract Software engineering strives to enable the economic construction of software systems that behave reliably, predictably, and safely. In other engineering disciplines, safety is assured in part by detailed monitoring of processes. In software, we may achieve some level of confidence in the operation of programs by monitoring their execution. DynaMICs is a software tool that facilitates the collection and use of constraints for software systems. In addition, it supports traceability by mapping constraints to system artifacts. Constraint specifications are stored separately from code; constraint-monitoring code is automatically generated from the specifications and inserted into the program at appropriate places; and constraints are verified at execution time. These constraint checks are triggered by changes made to variable values. We describe the architecture of DynaMICs, discuss alternative verification techniques, and outline research directions for the DynaMICs project.

[1]  Beth A. Schroeder On-Line Monitoring: A Tutorial , 1995, Computer.

[2]  Staffan Bonnier,et al.  COMPASS: A Comprehensible Assertion Method , 1997, TAPSOFT.

[3]  Hanêne Ben-Abdallah,et al.  MaC: A Framework for Run-Time Correctness Assurance of Real-Time Systems , 1998 .

[4]  Gerard J. Holzmann,et al.  The Model Checker SPIN , 1997, IEEE Trans. Software Eng..

[5]  Stephen Fickas,et al.  Goal-Directed Requirements Acquisition , 1993, Sci. Comput. Program..

[6]  Joseph A. Goguen,et al.  An Object-Oriented Tool for Tracing Requirements , 1996, IEEE Softw..

[7]  Ann Q. Gates,et al.  On Defining a Class of Integrity Constraints , 1996, International Conference on Software Engineering and Knowledge Engineering.

[8]  Ann Q. Gates,et al.  An Integrated Development of a Dynamic Software-Fault Monitoring System , 2000, Trans. SDPS.

[9]  Robert E. Tarjan,et al.  Fast Algorithms for Solving Path Problems , 1981, JACM.

[10]  Kenneth D. Shere High Assurance Systems Engineering - Position Paper , 1996, COMPSAC.

[11]  W. Visser,et al.  Second Generation of a Java Model Checker , 2000 .

[12]  Ann Q. Gates,et al.  DynaMICs: an automated and independent software-fault detection approach , 1999, Proceedings 4th IEEE International Symposium on High-Assurance Systems Engineering.

[13]  Zohar Manna,et al.  A Deductive Approach to Program Synthesis , 1979, TOPL.

[14]  Gerald M. Weinberg,et al.  Handbook of Walkthroughs, Inspections, and Technical Reviews: Evaluating Programs, Projects, and Products , 1990 .

[15]  Hanêne Ben-Abdallah,et al.  Formally specified monitoring of temporal properties , 1999, Proceedings of 11th Euromicro Conference on Real-Time Systems. Euromicro RTS'99.

[16]  A. Bertolino,et al.  Deriving path expressions recursively , 1993, [1993] IEEE Second Workshop on Program Comprehension.

[17]  David S. Rosenblum A Practical Approach to Programming With Assertions , 1995, IEEE Trans. Software Eng..

[18]  Ann Q. Gates,et al.  FasTLInC: a constraint-based tracing approach , 2002, J. Syst. Softw..

[19]  M. H. van Emden Structured Inspections of Code , 1992, Softw. Test. Verification Reliab..

[20]  Nancy G. Leveson,et al.  Safeware: System Safety and Computers , 1995 .

[21]  Francisco Gerardo Fernandez A compiler-driven approach to monitoring integrity constraints , 1998 .

[22]  Ellis Horowitz,et al.  SODOS: A software documentation support environment — Its use , 1985, IEEE Transactions on Software Engineering.

[23]  John M. Rushby,et al.  Theorem Proving for Verification , 2000, MOVEP.

[24]  Dieter Haban,et al.  A Hybrid Monitor for Behavior and Performance Analysis of Distributed Systems , 1990, IEEE Trans. Software Eng..

[25]  Hanêne Ben-Abdallah,et al.  A Monitoring and Checking Framework for Run-time Correctness Assurance , 1998 .

[26]  Gerard J. Holzmann,et al.  The SPIN Model Checker , 2003 .

[27]  Klaus Havelund,et al.  Using Runtime Analysis to Guide Model Checking of Java Programs , 2013, SPIN.

[28]  Rok Sosic,et al.  Dynascope: a tool for program directing , 1992, PLDI '92.

[29]  Edmund M. Clarke,et al.  Formal Methods: State of the Art and Future Directions Working Group Members , 1996 .

[30]  Mahesh Viswanathan,et al.  Runtime Assurance Based On Formal Specifications , 1999, PDPTA.

[31]  Ann Q. Gates,et al.  Towards the design of a snoopy coprocessor for dynamic software-fault detection , 1999, 1999 IEEE International Performance, Computing and Communications Conference (Cat. No.99CH36305).

[32]  Mohamed G. Gouda,et al.  Implementation of the sentry system , 1995, Softw. Pract. Exp..

[33]  Clinton L. Jeffery,et al.  A lightweight architecture for program execution monitoring , 1998, PASTE '98.

[34]  Pierre Flener Logic program synthesis from incomplete information , 1995, The Kluwer international series in engineering and computer science.

[35]  Bin Luo,et al.  A framework for dynamic program analyzers , 1993, OOPSLA '93.

[36]  Sriram Sankar,et al.  Monitoring of Formally Specified Programs , 1993 .

[37]  M.-E.C. Kidd Ensuring critical event sequences in high consequence computer based systems as inspired by path expressions , 1997, Proceedings International Conference and Workshop on Engineering of Computer-Based Systems.

[38]  Jeffrey J. P. Tsai,et al.  A Noninterference Monitoring and Replay Mechanism for Real-Time Software Testing and Debugging , 1990, IEEE Trans. Software Eng..

[39]  Sérgio Vale Aguiar Campos,et al.  Analysis and verification of real-time systems using quantitative symbolic algorithms , 1999, International Journal on Software Tools for Technology Transfer.