Project 1
Software Engineering, CS 561
10 Points, Due Sept. 23, 2013
You must work in teams of two on this project.
Assume a client has asked to you to develop software to handle
the sensor input and display for the instrument panel of a
car. The client wants the handling to be software-based and
wants the software developed using an object-oriented tool.
You may assume that the client is open to different types of
displays, but wants to have the ability to handle at least ten
different sensors in the instrument panel.
Watch a video on an automotive instrument cluster, read about
one, or review your own from your vehicle or a friend's. Two
videos displaying instrument panels are provided below.
LFA
Customizable Instrument Panel
RSIM
E36 SimCockpit
You may need to watch a video several times, review the
components of an instrument cluster multiple times, and read about
sensors to complete this assignment. Your primary goals for
this assignment are to learn about domain analysis, requirements
gathering, and design of a program. The secondary goals, in
order of importance, are to test and program your design.
Keep in mind you will be performing domain analysis, assessing
requirements, creating a specification, designing and prototyping
for an automotive instrument panel. This assignment is
open-ended, so you may choose the type of instrument panel you
wish to investigate (e.g. analog display, digital display, GUI
display, etc.).
I. Domain Analysis and Requirements Assessment
Analyze the instrument panel of an automobile and the sensors
connected to it. Since this assignment is open-ended, you
must, in your own words, write a paragraph describing the goals of
your project. Be sure to include a description of the
project itself, possible customers and users, the environment in
which the system will be used, and a brief (two to three sentence)
description of at least one piece of similar software.
Next, using a word processing tool like MS Word or Open Office
Writer, list and describe the components you are planning to
implement as part of your design. Your instrument panel must
include at least ten different connected sensors and related
indicator components to display the results of these sensors
within the instrument cluster. Therefore, you should have a
description of the instrument panel itself, its components, and
each sensor you plan to have attached to it. You may include
images of the panel and sensors. Be sure to include, at
minimum, a web link and, at most, a full reference for each of
your descriptions. These descriptions should be short -- two
or three sentences, at most. Some examples of instrument
panel indicators include:
Speedometer
Tachometer
Odometer
Check
Engine Notification
Temperature
Indicator
Tire
Pressure Indicator
Examples of sensors include the following:
Speed
Sensor
Coolant
Temperature Sensor
Tire
Pressure Sensor
Exhaust
Gas Oxygen (O2 or Lambda) Sensor
II. Requirements Specification
Write a short requirements document, explaining in complete
sentences how your instrument panel and sensors will interact with
each other. This document must explain how each part of the
system should work, what data must be sent from sensors to the
instrument panel, and how the components of the panel will
react. Note that a requirements document explains the
required operations of a software system, but does not typically
include code. It is recommended that this document be
divided into two parts. The first part could explain, using
bullet points, how each component of the instrument cluster reacts
to data received. The second part could explain, again using
bullet points, how each sensor acts, what data it might produce,
and any possible error codes that might be produced. An
example of part of a specification is included in the next section
and is italicized.
III. Partial Design, Implementation, and Testing
Provide simple UML diagrams for the sensors, instrument panel,
instrument panel components, and any pertinent communication
components. Note that there is likely an inheritance relationship
many of the sensors. There is also a composition relationship
between the instrument panel components and the instrument panel
itself. You might want to define a base Sensor class and
define the other specialized Sensor classes as generalizations of
the the Sensor class. Note that many Sensors have similar
properties including the ability to transmit a value, transmit an
error code, and perform a self-test. These sensors also often have
minimum and maximum valid values and have a current value.
Specific sensors might transmit data using different
methods. For example, the tire pressure monitoring
system often uses a sensor contained within a tire. This
sensor transmits that data to a receiver, which then notifies
the instrument panel of any tires with low pressure. The
vehicle speed sensor typically transmits speed data via wire to
other systems such as the anti-lock braking system, the engine
control unit, speedometer, etc. Thus, an class
representing the tire pressure monitoring sensor might include
one tire pressure attribute and functionality to transmit this
data to a receiver. It might also include a warning
transmission function and a sensor failure function.
There might be a class representing the entire tire pressure
monitoring system as part of the console that has the ability to
receive and store data from four sensors (one for each tire of a
car) and might include a function allowing for display of all
four tire pressures. Notice that from the description,
many sensors should have behaviors and attributes that will be
displayed within class diagrams.
After creating your class diagrams, create stub methods
and a driver program, to test your classes and their
methods. Note that stub methods are not fully functional
methods, instead, they test your code using simple, valid, data
values.
It is recommended that you use a tool such as ObjectAid (an Eclipse
plugin) to create class diagrams directly from your code. It is
important that you be creative in your design, especially in
describing functionality.
IV. Submission
Only one team member is required to submit the assignment; however, both team member's names must be on the assignment. Submit your project as a zip file to the eCompanion dropbox for Project 1. You are expected to submit several items as part of this assignment:
1. A document, perhaps 2-3 pages, containing the Domain Analysis
of the project (i.e. project description and sensor, instrument
component, and instrument panel descriptions).
2. A specification document - several pages describing in plain
English how your software system will function.
3. A partial design for the software system using UML diagrams.
4. Source code for the driver program, classes, and stub methods.