Experiences with a requirements-based programming approach to the development of a NASA autonomous ground control system

Requirements-to-design-to-code (R2D2C) is an approach to the engineering of computer-based systems that embodies the idea of requirements-based programming in system development. It goes further, however, in that the approach offers not only an underlying formalism, but full formal development from requirements capture through to the automatic generation of provably-correct code. As such, the approach has direct application to the development of systems requiring autonomic properties. We describe a prototype tool to support the method, and illustrate its applicability to the development of LOGOS, a NASA autonomous ground control system, which exhibits autonomic behavior. Finally, we briefly discuss other areas where the approach and prototype tool are being considered for application.

[1]  Yannis Smaragdakis,et al.  Program generators and the tools to make them , 2004, PEPM '04.

[2]  J. Giarratano The CLIPS User?s Guide , 1998 .

[3]  Peter H. Welch,et al.  CSP Networking for Java (JCSP.net) , 2002, International Conference on Computational Science.

[4]  Anneke Kleppe,et al.  MDA explained - the Model Driven Architecture: practice and promise , 2003, Addison Wesley object technology series.

[5]  Guy L. Steele,et al.  The Java Language Specification , 1996 .

[6]  K. Rose,et al.  Panel Session , 2005, ICDM.

[7]  M.G. Hinchey,et al.  Autonomous and autonomic systems: a paradigm for future space exploration missions , 2006, IEEE Transactions on Systems, Man, and Cybernetics, Part C (Applications and Reviews).

[8]  Doug Lea,et al.  Concurrent programming in Java - design principles and patterns , 1996, Java series.

[9]  Roy Sterritt,et al.  Why computer-based systems should be autonomic , 2005, 12th IEEE International Conference and Workshops on the Engineering of Computer-Based Systems (ECBS'05).

[10]  Christopher A. Rouff,et al.  A formal approach to requirements-based programming , 2005, 12th IEEE International Conference and Workshops on the Engineering of Computer-Based Systems (ECBS'05).

[11]  David Harel,et al.  From Play-In Scenarios to Code: An Achievable Dream , 2000, Computer.

[12]  Sharon Zakhour,et al.  The JFC Swing Tutorial: A Guide to Constructing GUIs , 1999 .

[13]  Walter Truszkowski,et al.  Some autonomic properties of two legacy multi-agent systems - LOGOS and ACT , 2004, Proceedings. 11th IEEE International Conference and Workshop on the Engineering of Computer-Based Systems, 2004..

[14]  Christopher A. Rouff,et al.  Experience using formal methods for specifying a multi-agent system , 2000, Proceedings Sixth IEEE International Conference on Engineering of Complex Computer Systems. ICECCS 2000.

[15]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[16]  Jonathan P. Bowen,et al.  Seven More Myths of Formal Methods , 1994, FME.

[17]  Stephen A. Jarvis,et al.  Concurrent systems - formal development in CSP , 1995, McGrawhill international series in software engineering.

[18]  Walter Truszkowski,et al.  Verification of emergent behaviors in swarm-based systems , 2004, Proceedings. 11th IEEE International Conference and Workshop on the Engineering of Computer-Based Systems, 2004..

[19]  Christopher A. Rouff,et al.  Towards an automated development methodology for dependable systems with application to sensor networks , 2005, PCCC 2005. 24th IEEE International Performance, Computing, and Communications Conference, 2005..