SWE 205 In-Class Exercise
Mental Models

Group, Names:

This is an in-class group exercise. Work with your group. Note that this exercise will help you with the assignment due Thursday.

Consider some interface, describe a (natural???) mental model for that interface, and then describe how that interface is implemented. Note where unnecessary implementation detail bleeds into the interface. Also note where, if anywhere, the interface does a great job of hiding the implementation.

As an example, consider a Garmin watch. The natural mental model is that the watch captures user activities, such as running, cycling, swimming, etc. The interfaces for this involve buttons on the watch, a display on the watch, an app on a phone, and possiby a window in a browser: The user starts the activity, monitors the activity (eg pace, elapsed time), possibly pauses the activity, ends the activity, and eventually reviews the activity.

The implementation for capturing an activity involves GPS (for input) and a file system (for storage). Files may start out on the watch, but eventually, if all goes well, migrate to long term storage with the vendor - probably in a cloud somewhere.

The user sees this implementation at the beginning when waiting for a GPS signal (or possibly when the signal is lost), and at the end, particularly if there is a problem and a .FIT file is corrupted.

One place where the watch does a great job of hiding the implementation is the "pause" feature. While the user can manually pause the watch, it's also possible to allow the watch to notice that it's moving slowly and pause itself.

We'll share examples towards the end of class.