ENEE 642: Software System Implementation

Course Goals:

This course provides comprehensive insight into the implementation of systems- level software, especially for embedded computers. It concentrates on the methods, software architectures, design strategies, CASE tools, and real-time operating system services that the students will most likely encounter in industry and in their own graduate research laboratories. Students will learn to apply both formal and informal software design techniques to small projects and every-day programming needs.

Course Prerequisite:

ENEE 459S or equivalent course in operating systems.

Topic Prerequisite:

  1. Familiarity with C or C++ programming languages and the UNIX operating system.
  2. Experience with a small software project with at least 1000 lines of code (in any program- ming language.)

Topics:

  1. Software life cycle models and phases: e.g. specifications, design, implementation, etc.
  2. Software experimentation and rapid prototyping.
  3. Software architectures, abstract data types, modularity, reuse, and reconfigurability. into firmware.
  4. Writing device drivers for real-time systems.
  5. Reliable interprocess and multiprocessor communication mechanisms.
  6. Real-time operating systems and scheduling theory.
  7. Monitoring, timing analysis, and code optimization.
  8. Techniques for debugging embedded systems.
  9. Fault avoidance, detection, handling, and tolerance.
  10. Interrupt and exception handling.
  11. Documenting software.
  12. CASE Tool development.

Required Texts:

To be determined.

References:

To be determined.

Computer Usage:

This course will make use of facilities in the new Vitro Computer Engineering Laboratory, scheduled to be built in Fall 97. Students will be expected to write code for an embedded application made available in this laboratory, and use hardware such as a logic analyzer to help debug the code. All work must be done in C, with the possibility of a minor amount of assembly language.

Comments:

  • For some homework assignments, students will be asked to work in small groups.