OO techniques applied to a real-time, embedded, spaceborne application

  • Authors:
  • Alexander T. Murray;Mohammad Shahabuddin

  • Affiliations:
  • California Institute of Technology, Pasadena, CA;California Institute of Technology, Pasadena, CA

  • Venue:
  • Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

Though Object-Oriented Analysis, Design, and languages have become the dominant practices in many, or most, domains of software engineering, concerns about complexity, size, and performance in the embedded, real-time software domain have led to a prevalent view that OO technology is not suitable for the domain. We challenge this view through a successful application of OOA, OOD, and C++ (including STL) in the embedded, real-time flight software in an Earth-orbiting science instrument named Aquarius (see [1]). We've found that OOA and OOD with UML actually enhance communication with systems and hardware engineers. We also found that C++, thoughtfully used, need not lead to code bloat, and that its performance is every bit as good as that of C. We begin with an overview of the requirements and describe our overall use of UML modeling, followed by a discussion of the use of UML for Object-Oriented Analysis with use cases. Then the application of UML for high-level and detailed design, the use of frameworks supporting a component architecture and multi-platform execution, and code generation from UML detailed design are described. We also present the use of UML for organizing and designing and documenting our verification and test environment and scenarios, and using HTML, generated by our UML tool, for all documentation and for requirement traceability. Finally, we discuss the use of C++ as the implementation language, and give an overview of status and work metrics.