Homework Assignment #2: Develop an Analog Clock in Visual Basic
Description of the Analog Clock Inteface using Norman's Concepts
The analog clock program displays the face of a clock, complete with hour labels, an hour hand, a minute hand, a second hand, and an alarm hand. The clock itself is displayed in a window with the ability to minimize, maximize, close the window, move the window, and resize the window. In addition, the user may set the alarm of the analog clock by clicking and dragging the alarm hand to the desired time for the alarm. The mouse pointer will change in response to setting the alarm. Finally, there is a button below the clock face that will turn on or turn off the alarm.
NOTE: The window can be resized, but the clock and it's components cannot due to a poor initial design decision. Please refer to the source code comments for additional information.
Analysis Using Norman's Concepts:
I. Affordance: Perceived Properties of the Interface
On the software side, there are the windows buttons at the top right corner of the screen for minimizing, maximizing, and closing the window. There is a menu for selecting (only option is to exit the program). There is an alarm button which toggles the alarm on and off. The alarm hand can be clicked and dragged in order to set the alarm time.
On the hardware side, the mouse is primarily used. The left mouse button can click on the menu, buttons, and alarm hand. The left mouse button can be held down and the mouse moved which will move the alarm hand to a new position. Also, the accelerator keys Alt-F and Alt-X can be used to select the menu options. The enter key on the keyboard will turn the alarm on or off.
II. Constraints: Factors that encourage proper interaction with the interface
The alarm button's caption indicates whether or not the alarm has been turned on. The alarm hand can only be rotated within the clock's circle. Therefore, if the user moves the mouse cursor outside the circle, the alarm hand will stay within the circle and continue to follow the path made by the cursor. In addition, when the mouse button is held down, the mouse cursor changes to a different icon, indicating a different type of interaction. When the mouse button is released, the mouse cursor returns to it's default icon.
III. Conceptual Model: Mental model of the system
The source code takes a reading of the internal clock and converts the hours, minutes, and seconds into an analog equivalent by moving the corresponding "hand". The "hand" is anchored to the radius of the circle at one end and moves to another x and y coordinate with the other end based on the trigonometric functions in the source code. To the user, it would appear similar to an analog alarm clock the user may have at home. In addition, the user can turn the alarm hand and set the alarm just like he/she would on a standard clock.
The major limitation of the model is that it follows the analog clock model very closely and inherits some of it's problems. For example, if the user wants to set his/her alarm clock to go off at 9:01:30 am, some problems will arise. First of all, the user must set the clock within the 12 hours window. Therefore, if the clock is set prior to 9:01:30 pm, the alarm will not go off at the right time. Secondly, there is no way of setting the clock to go off at a precise second. Therefore, the best the user could hope for would be 9:01. Finally, there is a certain amount of guesswork involved in setting an alarm. The user can't be exactly sure which time is selected in between the "tick" marks. Therefore, the user would probably be best served by setting the clock for 9:00 am as long as it was set after 9:00 pm the previous evening.
IV. Mappings: Relationship between controls and their effects on the system
The alarm button on the clock functions as a switch for on or off. The windows buttons (minimize, maximize, close) in the upper right hand corner are standard for the windows environment. The File menu is standard for windows based environments complete with accelerator keys for selecting the menu and exiting, ALT-F and ALT-X respectively. Clicking and holding the left mouse button will change the mouse cursor icon and move the alarm hand. Releasing the left mouse button will change the mouse icon back to it's default and stop the movement of the alarm hand.
V. Visibility: Makes apparent to the users the conceptual model and the actions available
The clock runs by itself the minute the program executes. There is no visible indication that the alarm hand will move other than by clicking and holding the mouse button. Once this is done, the mouse icon changes to indicate that a different form of interaction is available. Exiting the program is standard by either clicking on File and Exit, or clicking the X button in the upper right hand corner of the window.
Immediately upon executing the program, the user will see the clock face display the current time. The second hand moves 1 "tick" each second, so it's movement indicates the clock is running. When moving the alarm hand, the program responds by first changing the mouse cursor icon and then showing the alarm hand move around the clock face as directed by the user. Also, when clicking on the alarm button, the caption will immediately notify the user whether or not the alarm has been activated.