Skip to main content
Log in

A requirements-based programming approach to developing a NASA autonomous ground control system

  • Published:
Artificial Intelligence Review Aims and scope Submit manuscript

Abstract

A new requirements-based programming approach to the engineering of computer-based systems offers not only an underlying formalism, but also full formal development from requirements capture through to the automatic generation of provably-correct code. The method, Requirements-to-Design-to-Code (R2D2C), is directly applicable to the development of autonomous systems and systems having autonomic properties. We describe both the R2D2C method and a prototype tool that embodies the method, and illustrate the applicability of the method by describing how the prototype tool could be used in the development of LOGOS, a NASA autonomous ground control system that exhibits autonomic behavior. Finally, we briefly discuss other possible areas of application of the approach.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  • Bauer FL (1980) A trend for the next ten years of software engineering. In: Freeman H, Lewis PM (eds) Software Engineering. Academic Press, pp 1–23

  • Bowen JP and Hinchey MG (1995). Seven more myths of formal methods. IEEE Software 12(4): 34–41

    Article  Google Scholar 

  • Gosling J, Joy B, Steele G and Bracha G (2000). JavaTM language specification. 2nd edn, Addison Wesley, Boston

    Google Scholar 

  • Harel D (2001). From play-in scenarios to code: an achievable dream. IEEE Computer 34(1): 53–60

    MathSciNet  Google Scholar 

  • Harel D (2004) Comments made during presentation at “Formal Approaches to Complex Software Systems” panel session. ISoLA-04 First International Conference on Leveraging Applications of Formal Methods

  • Hinchey MG, Bowen JP (eds) (1999). Industrial-strength formal methods in practice, FACIT Series. Springer-Verlag, London, UK

    Google Scholar 

  • Hinchey MG and Jarvis SA (1995). Concurrent systems: Formal development in CSP, International series in software engineering. McGraw-Hill International, London, UK

    Google Scholar 

  • Hinchey MG, Rash JL, Rouff CA (2004) Requirements to design to code: towards a fully formal approach to automatic code generation. Technical Report TM-2005-212774, NASA Goddard Space Flight Center, Greenbelt, MD, USA

  • Hinchey MG, Rash JL, Rouff CA (2005a) A Formal Approach to Requirements-Based Programming. In: Proc. IEEE International Conference and Workshop on the Engineering of Computer Based Systems (ECBS 2005). IEEE Computer Society Press, Los Alamitos, Calif

  • Hinchey MG, Rash JL, Rouff CA (2005b) Towards an automated development methodology for dependable systems with application to sensor networks. In: Proc. IEEE Workshop on Information Assurance in Wireless Sensor Networks (WSNIA 2005), Proc. International Performance Computing and Communications Conference (IPCCC-05). Phoenix, Arizona, IEEE Computer Society Press, Los Alamitos, Calif

  • Hoare CAR (1978). Communicating sequential processes. Commun ACM 21(8): 666–677

    Article  MATH  MathSciNet  Google Scholar 

  • Hoare CAR (1985). Communicating sequential processes, Prentice Hall International Series in Computer Science. Prentice Hall International, Englewood Cliffs, NJ

    Google Scholar 

  • Kleppe A, Warmer J and Bast W (2003). MDA explained: the model driven architecture: practice and promise. Addison-Wesley, Boston

    Google Scholar 

  • Lea D (2000). Concurrent programming in JavaTM: design principles and patterns, The JavaTM Series, 2nd edn. Addison-Wesley Professional, Reading, Massachusetts

    Google Scholar 

  • Parr TJ and Quong RW (1995). ANTLR: A Predicated-LLk Parser Generator. Software practice and experience 25(7): 789–810

    Article  Google Scholar 

  • Rash JL, Hinchey MG, Rouff CA, Gračanin D, Erickson JD (2005) Experiences with a requirements-based programming approach to the development of a NASA autonomous ground control system. In: Proc. IEEE Workshop on Engineering of Autonomic Systems (EASe 2005) held at the IEEE International Conference and Workshop on the Engineering of Computer Based Systems (ECBS 2005). IEEE Computer Society Press, Los Alamitos, Calif

  • Rouff CA, Rash JL, Hinchey MG (2000) Experience using formal methods for specifying a multi-agent system. In: Proc. Sixth IEEE International Conference on Engineering of Complex Computer Systems (ICECCS 2000). Tokyo, Japan, IEEE Computer Society Press, Los Alamitos, Calif

  • Rouff CA, Truszkowski WF, Hinchey MG, Rash JL (2004) Verification of emergent behaviors in swarm based systems. In: Proc. 11th IEEE International Conference on Engineering Computer-Based Systems (ECBS), Workshop on Engineering Autonomic Systems (EASe). Brno, Czech Republic, IEEE Computer Society Press, Los Alamitos, Calif, pp 443–448

  • Schneider S, Davies J, Jackson DM, Reed GM, Reed J, Roscoe AW (1991) Timed CSP: theory and practice. In: Proc. REX, Real-Time: Theory in Practice Workshop, Vol. 600 of LNCS. Springer-Verlag, pp 640–675

  • Smaragdakis Y, Huang SS, Zook D (2004) Program generators and the tools to make them. In: PEPM ’04: Proceedings of the 2004 ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation. ACM Press, pp 92–100

  • Sterritt R, Hinchey MG (2005) Why computer based systems should be autonomic. In: Proc. 12th IEEE International Conference on Engineering of Computer Based Systems (ECBS 2005). Greenbelt, MD, pp 406–414

  • Truszkowski WF, Hinchey MG, Rash JL, Rouff CA (2006) Autonomous and autonomic systems: a paradigm for future space exploration missions. IEEE transactions on systems, man and cybernetics, part C (to appear)

  • Truszkowski WF, Rash JL, Rouff CA, Hinchey MG (2004) Some autonomic properties of two legacy multi-agent systems—LOGOS and ACT. In: Proc. 11th IEEE international conference on engineering computer-based systems (ECBS), workshop on engineering autonomic systems (EASe). Brno, Czech Republic, Calif, IEEE Computer Society Press, Los Alamitos, pp 490–498

  • Walrath K, Campione M, Huml A and Zakhour S (2004). JFC swing tutorial, the: a guide to constructing GUIs. 2nd edn, Addison Wesley, Boston

    Google Scholar 

  • Welch PH, Aldous JR, Foster J (2002) CSP Networking for Java (JCSP.net). In: proceedings of the global and collaborative computing workshop (ICCS 2002), vol. 2330 of Lecture Notes in Computer Science. Springer-Verlag, pp 695–708

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to James L. Rash.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Rash, J.L., Hinchey, M.G., Rouff, C.A. et al. A requirements-based programming approach to developing a NASA autonomous ground control system. Artif Intell Rev 25, 285–297 (2006). https://doi.org/10.1007/s10462-007-9029-2

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10462-007-9029-2

Keywords

Navigation