Programming and Validation Techniques for Reliable Goal-driven Autonomic Software

  • Damian DechevEmail author
  • Nicolas Rouquette
  • Peter Pirkelbauer
  • Bjarne Stroustrup


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.


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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    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)Google Scholar
  2. 2.
    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)Google Scholar
  3. 3.
    Columbia Accident Investigation Board: Columbia Accident Investigation Board Report Volume 1,
  4. 4.
    Cormen, T. and Leiserson, C. and Rivest, R. and Stein, C.: Introduction to algorithms. ISBN 0-262-03293-7, MIT Press (2001)Google Scholar
  5. 5.
    Dechev, D. and Pirkelbauer, P. and Stroustrup, B.: Lock-Free Dynamically Resizable Arrays. OPODIS 2006, Lecture Notes in Computer Science, Volume 4305 (2006)Google Scholar
  6. 6.
    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)Google Scholar
  7. 7.
    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)Google Scholar
  8. 8.
    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)Google Scholar
  9. 9.
    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)Google Scholar
  10. 10.
    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)Google Scholar
  11. 11.
    Fraser, K.: Practical lock-freedom. Technical Report UCAM-CL-TR-579, University of Cambridge, Computer Laboratory (2004)Google Scholar
  12. 12.
    Gluck, R. and Holzmann, G.: Using SPIN Model Checker for Flight Software Verification. In Proceedings of the 2002 IEEE Aerospace Conference (2002)Google Scholar
  13. 13.
    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)Google Scholar
  14. 14.
    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)Google Scholar
  15. 15.
    Intel: Reference for Intel Threading Building Blocks, Version 1.0 (2006)Google Scholar
  16. 16.
    Jackson, D.: Software Abstractions: Logic, Language and Analysis. The MIT Press (2006)Google Scholar
  17. 17.
    Lamport, L.: How to make a multiprocessor computer that correctly executes programs. IEEE Trans. Comput. (1979)Google Scholar
  18. 18.
    Lee, E. and Neuendorffer, S.: Concurrent Models of computation for Embedded Software. IEEE Proceedings on Computers and Digital Techniques (2005)Google Scholar
  19. 19.
    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)Google Scholar
  20. 20.
    Lowry, M.: Software Construction and Analysis Tools for Future Space Missions. TACAS 2002: Lecture Notes in Computer Science, Volume 2280 (2002)Google Scholar
  21. 21.
    Perrow, C.: Normal Accidents. Princeton University Press (1999)Google Scholar
  22. 22.
    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)Google Scholar
  23. 23.
    Dos Reis, G. and Stroustrup, B.: Specifying C++ Concepts. ISO WG21 N1886 (2005)Google Scholar
  24. 24.
    Rouquette, N.: Analyzing and verifying UML models with OCL and Alloy. EclipseCon (2008)Google Scholar
  25. 25.
    RTCA: Software Considerations in Airborne Systems and Equipment Certification DO-178B (1992)Google Scholar
  26. 26.
    Schumann, J. and Visser, W.: Autonomy Software: V & V Challenges and Characteristics. In Proceedings of the 2006 IEEE Aerospace Conference (2006)Google Scholar
  27. 27.
    Stroustrup, B.: The C++ Programming Language. Addison-Wesley Longman Publishing (2000)Google Scholar
  28. 28.
    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).Google Scholar
  29. 29.
    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)Google Scholar

Copyright information

© Springer Science+Business Media, LLC 2009

Authors and Affiliations

  • Damian Dechev
    • 1
    Email author
  • Nicolas Rouquette
    • 2
  • Peter Pirkelbauer
    • 1
  • Bjarne Stroustrup
    • 1
  1. 1.Texas A&M University, College StationCollege StationUSA
  2. 2.Jet Propulsion LaboratoryNASA/California Institute of TechnologyPasadenaUSA

Personalised recommendations