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.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.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
Gosling J, Joy B, Steele G and Bracha G (2000). JavaTM language specification. 2nd edn, Addison Wesley, Boston
Harel D (2001). From play-in scenarios to code: an achievable dream. IEEE Computer 34(1): 53–60
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
Hinchey MG and Jarvis SA (1995). Concurrent systems: Formal development in CSP, International series in software engineering. McGraw-Hill International, London, UK
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
Hoare CAR (1985). Communicating sequential processes, Prentice Hall International Series in Computer Science. Prentice Hall International, Englewood Cliffs, NJ
Kleppe A, Warmer J and Bast W (2003). MDA explained: the model driven architecture: practice and promise. Addison-Wesley, Boston
Lea D (2000). Concurrent programming in JavaTM: design principles and patterns, The JavaTM Series, 2nd edn. Addison-Wesley Professional, Reading, Massachusetts
Parr TJ and Quong RW (1995). ANTLR: A Predicated-LLk Parser Generator. Software practice and experience 25(7): 789–810
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
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
Author information
Authors and Affiliations
Corresponding author
Rights 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
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10462-007-9029-2