Abstract
Future space missions such as theMars Science Laboratory demand the engineering of some of the most complex man-rated autonomous software systems. According to some recent estimates, the certification cost for mission-critical software exceeds its development cost. The current process-oriented methodologies do not reach the level of detail of providing guidelines for the development and validation of concurrent software. Time and concurrency are themost critical notions in an autonomous space system. In thiswork we present the design and implementation of a first concurrency and time centered framework for verification and semantic parallelization of real-time C++ within the JPL Mission Data System Framework (MDS). The end goal of the industrial project that motivated our work is to provide certification artifacts and accelerated testing of the complex software interactions in autonomous flight systems. As a case study we demonstrate the verification and semantic parallelization of the MDS Goal Networks.
Keywords
- Eclipse Modeling Framework
- Mars Science Laboratory
- Priority Inversion
- Goal Network
- Semantic Parallelization
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
This is a preview of subscription content, access via your institution.
Buying options
Preview
Unable to display preview. Download preview PDF.
References
Boehm, B. and Bhuta, J. and Garlan, D. and Gradman, E. and Huang, L. and Lam, A. and Madachy, R. and Medvidovic, N. and Meyer, K. and Meyers, S. and Perez, G. and Reinholtz, K. and Roshandel, R. and Rouquette, N.: Using Empirical Testbeds to Accelerate Technology Maturity and Transition: The SCR over Experience. ISESE ’04: Proceedings of the 2004 International Symposium on Empirical Software Engineering (2004)
Brat, G. and Drusinsky, D. and Giannakopoulou, D. and Goldberg, A. and Havelund, K. and Lowry, M. and Pasareanu, C. and Venet, A. and Washington, R. and Visser, W.: Experimental Evaluation of Verification and Validation Tools on Martian Rover Software. Formal Methods in Systems Design Journal, September (2005)
Columbia Accident Investigation Board: Columbia Accident Investigation Board Report Volume 1, http://caib.nasa.gov/
Cormen, T. and Leiserson, C. and Rivest, R. and Stein, C.: Introduction to algorithms. ISBN 0-262-03293-7, MIT Press (2001)
Dechev, D. and Pirkelbauer, P. and Stroustrup, B.: Lock-Free Dynamically Resizable Arrays. OPODIS 2006, Lecture Notes in Computer Science, Volume 4305 (2006)
Denney, E. and Fischer, B.: Software Certification and Software Certification Management Systems. SoftCement05: In Proceedings of the 2005 ASE Workshop on Software Certificate Management (2005)
Detlefs, D. and Flood, C. and Garthwaite, A. and Martin, P. and Shavit, N. and Steele, G.: Even Better DCAS-Based Concurrent Deques. International Symposium on Distributed Computing (2000)
Dick, R. and Rhodes, D. and Wolf, W.: TGFF: task graphs for free. CODES/CASHE ’98: Proceedings of the 6th international workshop on Hardware/software codesign (1998)
Dvorak, D.: Challenging encapsulation in the design of high-risk control systems. Proceedings of the 17th ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications OOPSLA (2002)
Dvorak, D. and Bollella, G. and Canham, T. and Carson, V. and Champlin, V. and Giovannoni, B. and Indictor, M. and Meyer, K. and Murray, A. and Reiinholtz, K.: Project Golden Gate: Towards Real-Time Java in Space Missions. In the Proceedings of the 7th IEEE International Symposium on Object-Oriented Real-Time Distributed Computing ISORC (2004)
Fraser, K.: Practical lock-freedom. Technical Report UCAM-CL-TR-579, University of Cambridge, Computer Laboratory (2004)
Gluck, R. and Holzmann, G.: Using SPIN Model Checker for Flight Software Verification. In Proceedings of the 2002 IEEE Aerospace Conference (2002)
Harris, T. and Fraser, K. and Pratt, I.: A practical multi-word compare-and-swap operation. Proceedings of the 16th International Symposium on Distributed Computing (2002)
Herlihy, M.: A methodology for implementing highly concurrent data structures. PPOPP ’90: Proceedings of the second ACM SIGPLAN symposium on Principles & practice of parallel programming (1990)
Intel: Reference for Intel Threading Building Blocks, Version 1.0 (2006)
Jackson, D.: Software Abstractions: Logic, Language and Analysis. The MIT Press (2006)
Lamport, L.: How to make a multiprocessor computer that correctly executes programs. IEEE Trans. Comput. (1979)
Lee, E. and Neuendorffer, S.: Concurrent Models of computation for Embedded Software. IEEE Proceedings on Computers and Digital Techniques (2005)
Lou, J.: An Efficient Algorithm for Propagation of Temporal Constraint Networks. NASA Tech Brief Vol. 26 No. 4 from JPL New Technology Report NPO-21098 (2002)
Lowry, M.: Software Construction and Analysis Tools for Future Space Missions. TACAS 2002: Lecture Notes in Computer Science, Volume 2280 (2002)
Perrow, C.: Normal Accidents. Princeton University Press (1999)
Rasmussen, R. and Ingham, M. and Dvorak, D.: Achieving Control and Interoperability Through Unified Model-Based Engineering and Software Engineering. AIAA Infotech at Aerospace Conference (2005)
Dos Reis, G. and Stroustrup, B.: Specifying C++ Concepts. ISO WG21 N1886 (2005)
Rouquette, N.: Analyzing and verifying UML models with OCL and Alloy. EclipseCon (2008)
RTCA: Software Considerations in Airborne Systems and Equipment Certification DO-178B (1992)
Schumann, J. and Visser, W.: Autonomy Software: V & V Challenges and Characteristics. In Proceedings of the 2006 IEEE Aerospace Conference (2006)
Stroustrup, B.: The C++ Programming Language. Addison-Wesley Longman Publishing (2000)
Stroustrup, B. and Dos Reis, G.: Supporting SELL for High-Performance Computing. In Proceedings of the International Workshop on Languages and Compilers for Parallel Computing LCPC (2005).
Volpe, R. and Nesnas, I. and Estlin, T. and Mutz, D. and Petras, R. and Das, H.: The CLARATy Architecture for Robotic Autonomy. IEEE Aerospace Conference (2001)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 Springer Science+Business Media, LLC
About this chapter
Cite this chapter
Dechev, D., Rouquette, N., Pirkelbauer, P., Stroustrup, B. (2009). Programming and Validation Techniques for Reliable Goal-driven Autonomic Software. In: Vasilakos, A., Parashar, M., Karnouskos, S., Pedrycz, W. (eds) Autonomic Communication. Springer, Boston, MA. https://doi.org/10.1007/978-0-387-09753-4_9
Download citation
DOI: https://doi.org/10.1007/978-0-387-09753-4_9
Published:
Publisher Name: Springer, Boston, MA
Print ISBN: 978-0-387-09752-7
Online ISBN: 978-0-387-09753-4
eBook Packages: Computer ScienceComputer Science (R0)