GUI Development Assignment
The GUI development assignment of the course consists
of the design, development, testing
and evaluation of a graphical (computer) user-interface
for a (room) thermostat.
This GUI should be developed with the aid of a GUI builder
(such as Symantec Café,
Borland's JBuilder or
Sun's Java Workshop).
Required features of the thermostat are:
- There are two temperatures: day and night,
which the user can set.
- There is one week-program. Each day may have different times for
switching between day and night temperature.
The week-program should be easy to specify and to review and update.
- Each day may have up to five changes from day to night and five
changes from night to day. Midnight is always an extra switch to the
night temperature (unless this is the start of a day period).
- It must be easy to override the current temperature temporarily,
until the next programmed switch. The temperature can be controlled
by increments and decrements of 0.1 degrees.
- It must be easy to override the current temperature "permanently",
that is until the user switches back to the week program.
- It must also be easy to set the day and time.
The prototype should operate about 300 times faster than real time.
(This means one second corresponds to 5 minutes.)
- The application should interface to a House object,
which must run in a separate thread.
The House thread keeps track of the temperature changes,
and provides an int getTemperature() call which returns
10 times the temperature in degrees centigrade.
The House also offers a setTemperature(int) method to
set the desired temperature (in 1/10 degrees).
Setting the temperature does not immediately result in reaching that
temperature. There is some delay, which simulates that the heater must
come on and needs some time to effectively heat up the room.
When the desired temperature is lowered it also takes some time before
the room cools down.
- The thermostat is intended for "normal" people, who are smart enough
to use the timer on a VCR or microwave, but who are not computer specialists.
This project goes as follows:
- You must hold a brainstorming session and report on the result.
- You must perform a formal and back of the envelope analysis of
the task of programming the thermostat for an entire week (with different
temperatures on weekdays than on the weekend, and with exceptions on
wednesday night and sunday night).
- You must create a prototype as a Java 1.1 applet.
- You must hand in the brainstorming and analysis reports together with
a DOS-formatted floppy disk containing a complete prototype
that must work when installed on a Unix World Wide Web server.
The floppy must contain one single ZIP archive or a gzipped tar archive.
The floppy and paper documents must carry the student id's and email
addresses of all group members.
The delivery address and deadline for this part will
be announced during the lectures.
- A secretary will set up a meeting for evaluating your prototype.
Two other groups need to work together during the evaluation
of your assignment: one will carry out an experiment, while the other
observes the experiment. (You are present to offer help in case the
experiment goes terribly wrong.)
Note: if you miss the deadline, your next opportunity to hand in this
assignment and take part in the experiment will be in July or August 1999.