Practical and Verifiable C++ Dynamic Cast for Hard Real-Time Systems

The dynamic cast operation allows flexibility in the design and use of data management facilities in object-oriented programs. Dynamic cast has an important role in the implementation of the Data Management Services (DMS) of the Mission Data System Project (MDS), the Jet Propulsion Laboratory’s experimental work for providing a state-based and goal-oriented unified architecture for testing and development of mission software. DMS is responsible for the storage and transport of control and scientific data in a remote autonomous spacecraft. Like similar operators in other languages, the C++ dynamic cast operator does not provide the timing guarantees needed for hard real-time embedded systems. In a recent study, Gibbs and Stroustrup (G&S) devised a dynamic cast implementation strategy that guarantees fast constant-time performance. This paper presents the definition and application of a cosimulation framework to formally verify and evaluate the G&S fast dynamic casting scheme and its applicability in the Mission Data System DMS application. We describe the systematic process of model-based simulation and analysis that has led to performance improvement of the G&S algorithm’s heuristics by about a factor of 2. In this work we introduce and apply a library for extracting semantic information from C++ source code that helps us deliver a practical and verifiable implementation of the fast dynamic casting algorithm.

[1]  David Abrahams,et al.  C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond (C++ In-Depth Series) , 2004 .

[2]  David A. Wagner Data management in the mission data system , 2005, 2005 IEEE International Conference on Systems, Man and Cybernetics.

[3]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[4]  D. Mccormick Normal Accidents , 1991, Bio/Technology.

[5]  Todd L. Veldhuizen,et al.  Expression templates , 1996 .

[6]  Michael R. Lowry,et al.  Software Construction and Analysis Tools for Future Space Missions , 2013, TACAS.

[7]  Michel D. Ingham,et al.  Engineering Complex Embedded Systems with State Analysis and the Mission Data System , 2004, J. Aerosp. Comput. Inf. Commun..

[8]  Theo C. Ruys,et al.  Optimal Scheduling Using Branch and Bound with SPIN 4.0 , 2003, SPIN.

[9]  Ansgar Fehnker,et al.  Verification and optimization of a PLC control schedule , 2000, International Journal on Software Tools for Technology Transfer.

[10]  Richard Volpe Rover technology development and mission infusion , 2005 .

[11]  Bjarne Stroustrup,et al.  Fast dynamic casting , 2006, Softw. Pract. Exp..

[12]  서정연,et al.  Journal of Computing Science and Engineering(JCSE)의 국제화 작업 , 2010 .

[13]  G.J. Holzmann,et al.  Using SPIN model checking for flight software verification , 2002, Proceedings, IEEE Aerospace Conference.

[14]  Sorin Lerner,et al.  Automatically proving the correctness of compiler optimizations , 2003, PLDI '03.

[15]  Bjarne Stroustrup,et al.  Abstraction and the C++ Machine Model , 2004, ICESS.

[16]  Hoyt Lougee,et al.  SOFTWARE CONSIDERATIONS IN AIRBORNE SYSTEMS AND EQUIPMENT CERTIFICATION , 2001 .

[17]  Gerard J. Holzmann,et al.  The SPIN Model Checker - primer and reference manual , 2003 .

[18]  Johann Schumann,et al.  Autonomy Software : V & V Challenges and Characteris tics , 2006 .

[19]  John Penix,et al.  Proceedings of the 7th International SPIN Workshop on SPIN Model Checking and Software Verification , 2000 .

[20]  Vu Van Tan,et al.  New Control System Aspects for Supporting Complex Data and High Performance System , 2008, J. Comput. Sci. Eng..

[21]  Adrian Stoica,et al.  Humanoids for lunar and planetary surface operations , 2005, 5th IEEE-RAS International Conference on Humanoid Robots, 2005..

[22]  Wayne H. Wolf,et al.  TGFF: task graphs for free , 1998, Proceedings of the Sixth International Workshop on Hardware/Software Codesign. (CODES/CASHE'98).

[23]  Dawson R. Engler,et al.  Model Checking Large Network Protocol Implementations , 2004, NSDI.

[24]  Bjarne Stroustrup,et al.  Supporting SELL for High-Performance Computing , 2005, LCPC.