Embedded systems may offer the most challenging problems in software testing and understanding that software engineers face. They usually present a combination of real time constraints, multi-tasking design, and an embedded environment with limited access to code and data. Accordingly, experienced engineers have developed techniques for instrumenting such systems to facilitate testing and comprehension. Unfortunately each engineer seems to have his own bag of tricks, so developed systems show little consistency in the level or type of instrumentation that they contain.
This paper reports on an interview survey of embedded systems
software engineers working in several different companies. The
study has attempted to identify instrumentation techniques that
the engineers have used and found to be effective, and that seem
to be applicable in other similar systems. A case study is presented
to illustrate each technique.
The study's goal is to accumulate experience in instrumenting embedded systems for program comprehension, as a step towards more systematic use of such techniques in new systems. The techniques presented are, of course, a preliminary list, and we would welcome a chance to extend our interviews to other systems known to the reader.
Download a copy of the report in
Postscript format or in the Rich Text (rtf) format readable by most word processors.
For further information contact
This report may be cited as SERC-TR-85-F, Software Engineering Research Center, Purdue University, 1398 Dept. of Computer Science, West Lafayette, IN 47906, February 1999.
This research was supported, in part, by grant EEC-9418762 from
the National Science Foundation to the Software Engineering Research
Center, an NSF Industry/University Cooperative Research Center
with sites at Purdue University, the University of Florida, the
University of Oregon, and the University of West Virginia.