Minimum Requirements Label: LOAD Name: Load program, render GUI Goal: Start up program Actors: User Initiator: User Description: Initialize all systems so user can start using system Pre-conditions: System not set up Post-conditions: System set up Extensions: None Label: ADD Name: Add object to circuit Goal: Add a new object to the circuit user is currently working on Actors: User Initiator: User Description: User selects the create object tool from palette by clicking on the particular object type to add, and then clicks on the work space to place the new object. The user can add more than one object by clicking on empty spots in the work space repeatedly. Pre-conditions: None Post-conditions: None Extensions: None Label: MOVE Name: Move object Goal: Move object in work space Actors: User Initiator: User Description:Move object (gate or input) in work space. To do this the user will click on a move tool, and then click and drag the object to the new desired location. All connections will then follow the gate to the new location. Pre-conditions: Object exists Post-conditions: None Extensions: None Label: REMOVE Name: Remove an object or connection from the workspace Goal: To remove an unecessary object or connection from the workspace Actors: User Initiator: User Description: User clicks on the remove tool in the palette, and then clicks on the object or connection to be removed. More than one object connection can be removed this way, by clicking separately on each object or connection to be removed, after the remove tool has been selected. If an object being removed has connections to or from it, then those connections are also removed. Pre-conditions: Object exists Post-conditions: Object doesnt exist Extensions: None Label: CONNECT Name: Make a Connection Between Two Objects Goal: To connect the output of one object to the input of another, logically. Actors: User Initiator: User Description:User selects the connection tool by clicking on it in the palette, and then clicks on one object and then another. A connection is formed from the output of the first object to the input of the second object. Connections can be made such that one output connects to two or more inputs, but an input can only be connected to one output. If this condition is not met, nothing happens. Pre-conditions: None Post-conditions: Two objects are now connected. Extensions: None Label: INPUT Name: Specify Input Goal: Specify input to input object Actors: User Initiator: User Description: A user can specify the input they wish to give to a perticular input object by selecting the input tool, and clicking on an existing input object. The user will also be given the chance to select an input when they first place the input object. Pre-conditions: None Post-conditions: None Extensions: None Label: CALCULATE Name: Calculate output Goal: To calculate the correct output. Actors: User Initiator: User Description: Clicking a calculate button will run the specified input through the logic gates and put it into an output object. This output object will be created at the output of any gate that is not connected to any further gates. If there is a gate with too few inputs an error messge will be displayed when calculate is clicked. Pre-conditions: None Post-conditions: None Extensions: None LABEL: STEP Name: Step input Goal: To calculate the next step in the logic gates Actors: User Initiator: User Description: User clicks the step button, which runs the specified input through one level of logic gates. Each subsequent click on step moves the input through the next level of gates, until none are left. The evaluation restarts at the input everytime something is changed. Pre-Conditions: None Post-Conditions: Execution is suspended in mid circuit Extensions: None Label: COPY COMPLEX Name: Copy and place a complex object Goal: To easily create a duplicate of a complex object from the workspace Actors: User Initiator: User Description: User selects the complex object tool by clicking on it, and then selects a group of objects in the workspace by clicking and dragging a rectangle around them. Then, the user clicks on open space in the workspace to place a new copy of the selected objects (with connections) at that spot. Pre-conditions: None Post-conditions: None Extensions: None Label: SAVE Name: Save workspace to a file Goal: To create a file that specifies the state of the workspace for future use Actors: User Initiator: User Description: User clicks on the save button, and then specifies a file path in a pop-up dialog box, where the file should be saved. If the file already exists, the user is asked to overwrite or specify a different file path. Pre-conditions: None Post-conditions: Object file created Extensions: None Label: OPEN Name: Open a file Goal: To open a file of a saved work space state, and restore that state to the work space Actors: User Initiator: User Description: User clicks on the load button, and then specifies a file path in a pop-up dialog box, where the file should be loaded from. This state is then restored to the work space. Pre-conditions: None Post-conditions: Work space now reflects saved state. Extensions: None Extra Features Label: SAVE COMPLEX Name: Save a complex object to a file Goal: To create an external file that contains a complex object definition Actors: User Initiator: User Description: User clicks on the workspace and drags to select a number of logic gates and their connections, and then selects Save Object from the menu. The path where the file should be saved is specified in the resulting dialog box. Pre-conditions: None Post-conditions: Object file created Extensions: None Label: PLACE COMPLEX Name: Read in a complex object file for placement Goal: To read in an external object file and place it in the workspace Actors: User Initiator: User Description: User selects Place Object from the menu, and specifies the path to a complex object file. The object is then read from the file and when the User clicks on the workspace, a copy of that complex object is placed there. The user may click multiple times to place multiple copies of the complex object. Pre-conditions: Object file exists Post-conditions: None Extensions: None Label: PRINT Name: Print the workspace Goal: To get a paper copy of the logic circuit diagram Actors: User Initiator: User Description: User selects Print from the print menu, and then specifies a standard set of printing options. Pre-conditions: None Post-conditions: None Extensions: None Label: SCROLL Name: Scroll the workspace Goal: To view a different section of the workspace Actors: User Initiator: User Description: User clicks on a scroll bar, causing the window pane to move the view of the workspace in a particular direction, displaying another section of the workspace. Pre-conditions: None Post-conditions: None Extensions: None