A Systems Re-engineering Case Study: Programming Robots with occam and Handel-C

This paper introduces a case study exploring some of the legacy issues that may be faced when redeveloping a system. The case study is a robotics system programmed in occam and Handel-C, allowing us to draw comparisons between software and hardware implementations in terms of program architecture, ease of program code verification, and differences in the behaviour of the robot. The two languages used have been selected because of their model of concurrency and their relation to CSP. The case study contributes evidence that re-implementing a system from an abstract model may present implementation specific issues despite maintaining the same underlying program control structure. The paper identifies these problems and suggests a number of steps that could be taken to help mitigate some of the issues.

[1]  Jonathan Simpson,et al.  A Native Transterpreter for the LEGO Mindstorms RCX , 2007, CPA.

[2]  Peter Radford,et al.  Petri Net Theory and the Modeling of Systems , 1982 .

[3]  Peter H. Welch,et al.  Process Oriented Design for Java: Concurrency for All , 2002, International Conference on Computational Science.

[4]  Jan A. Bergstra,et al.  Algebra of Communicating Processes , 1995, Workshops in Computing.

[5]  Michael Leuschel,et al.  Probing the Depths of CSP-M: A New fdr-Compliant Validation Tool , 2008, ICFEM.

[6]  Richard Sharp,et al.  Higher-Level Hardware Synthesis , 2004, Lecture Notes in Computer Science.

[7]  Fred G. Martin Real Robots Don't Drive Straight , 2007, AAAI Spring Symposium: Semantic Scientific Knowledge Integration.

[8]  Emes,et al.  Left-shift vs the time value of money: unravelling the business case for systems engineering , 2007 .

[9]  Rodney A. Brooks,et al.  A Robust Layered Control Syste For A Mobile Robot , 2022 .

[10]  Ricardo Cayssials,et al.  An uRT51 real-time processor evaluation , 2009, 2009 IEEE Conference on Emerging Technologies & Factory Automation.

[11]  Alistair A. McEwan Concurrent program development , 2006 .

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

[13]  Matthew C. Jadud,et al.  The Transterpreter: A Transputer Interpreter , 2004 .

[14]  Ian Page Closing the gap between hardware and software: hardware-software cosynthesis at Oxford , 1996 .

[15]  Wilson Ifill,et al.  PyCSP-Communicating Sequential Processes for Python , 2007 .

[16]  Karen Parnell,et al.  Comparing and Contrasting FPGA and Microprocessor System Design and Development , 2004 .

[17]  Jon M. Kerridge,et al.  JCSPre: the Robot Edition to Control LEGO NXT Robots , 2008, CPA.

[18]  Carl G. Ritson,et al.  Toward Process Architectures for Behavioural Robotics , 2009, CPA.

[19]  Inmos Corp,et al.  Occam Programming Manual , 1984 .

[20]  Joe Armstrong,et al.  Making reliable distributed systems in the presence of software errors , 2003 .

[21]  J. A. Houston,et al.  Formal verification and legacy redesign , 1998, Proceedings of the IEEE 1998 National Aerospace and Electronics Conference. NAECON 1998. Celebrating 50 Years (Cat. No.98CH36185).

[22]  Robin Milner,et al.  A Calculus of Communicating Systems , 1980, Lecture Notes in Computer Science.

[23]  T. Riffle Reverse engineering & re-engineering of avionics legacy components , 2002, Proceedings. The 21st Digital Avionics Systems Conference.