Session S1C
0-7803-7961-6/03/$17.00 © 2003 IEEE November 5-8, 2003, Boulder, CO
33
rd
ASEE/IEEE Frontiers in Education Conference
S1C-1
INCORPORATING SOFTWARE ENGINEERING PRINCIPLES INTO REAL
TIME ENGINEERING COURSES
Ted Sarma
1
, Massood Atashbar
2
, and Hossien Mousavinezhad
3
1
Ted Sarma, Department of Electrical and Computer Engineering, Western Michigan University, ted.sarma@wmich.edu
2
Massood Atashbar, Department of Electrical and Co mputer Engineering, Western Michigan University, massood.atashbar@wmich.edu
3
Hossein Mousavinezhad, Department of Electrical and Computer Engineering, Western Michigan University, h.mousavinezhad@wmich.edu
Abstract – One common industrially pertinent area between
Electrical Engineering and Computer Science encompasses
digital data acquisition, signal processing, communication
and control. Students need to be exposed to high-level
software engineering practices that are engineering based.
An already crowded Computer Engineering program
curriculum cannot accommodate each of these courses
separately. At Western Michigan University (WMU) a junior
level course was created that teaches high-level software
engineering best practices using Visual Basic that is applied
to these areas. The students were required to maintain
assignment logs, which provided a closed-loop feedback
mechanism for continuous course quality improvement. This
course is highly successful in that the students learn a great
deal of information as well as gaining experience in
applications that is useful in subsequent course work and
careers.
Index Terms – engineering education, real-time systems,
software engineering
INTRODUCTION
Traditional Electrical Engineering (EE) and Computer
Engineering (CE) courses such as digital logic, and digital
design, microcontrollers, computer interfacing and computer
architecture are mainstays, but there continues to be many
holes to fill. CE is still considered to be an interface
between EE and Computer Science (CS). EE embraces the
notion that computer hardware is fundamental to the
discipline, whereas, CS views software as the defining
entity. Both views are correct and CE students need to
understand both disciplines equally well. They must also go
beyond and be able to apply the principles of high-level
system analysis and design techniques to electrical
engineering applications.
The course described in the abstract was first
documented by Atashbar [1]. “Engineering of Real-Time
Systems” was introduced as a new junior level engineering
course in the Fall of 1999 at Western Michigan University.
This course addressed the education of EE and CE in the
areas of digital data acquisition, signal processing,
communications and controls. Student feedback in the form
of standardized student surveys and reviews indicated
significant satisfaction with the course structure and
materials.
The course was designed so that the students could use
Visual Basic to create virtual instruments and subsequently
be able to implement concepts such as data acquisition
(including sampling, Nyquist criteria, Fourier Transforms
and feature extraction), signal conditioning, sensors, serial
and parallel asynchronous communications and control.
Each topic was demonstrated at the hardware level and
formed the basis of a software assignment. Assignments are
listed along with a short description as follows:
1. Demonstration Program: A Visual Basic version of the
"Hello World" program in which a variety of VB
components are demonstrated.
2. Ohm's Law: A program emphasizing error trapping and
conditional results.
3. Descriptive Statistics: Reading/writing files, creating
statistical tables, histograms and traditional statistics.
4. Oscilloscope: Sampling a signal using software
interrupts and displaying the results graphically as a
virtual oscilloscope in real time.
5. Spectral Analyzer: Incorporating an FFT module with
the Oscilloscope program to create Bode plots in real
time.
6. Data Acquisition: Use of a third party (National
Instruments) ActiveX oscilloscope component along
with a DAQ card for data acquisition and display.
7. Serial Communication: Creation of an asynchronous
serial communication protocol to acquire data from the
serial port.
In the Fall 2002, the course included additional
methodologies designed to address Software Engineering
issues and to provide more immediate student feedback. This
was accomplished by introducing an initial student
knowledge assessment questionnaire and an assignment log
sheet. The assessment questionnaire provided valuable
feedback to the instructor as to the students’ level of
knowledge in computer programming concepts and with
basic Software Engineering (SWE) practices. The SWE
practices were reinforced by requiring the students to
document their software development process and associated
metrics. The log also provided the students’ assessment of
the assignments. Both the questioner and the log gave the
instructor timely feedback which resulted in the appropriate
adjustments being made to the course materials during the