Here in this document are listed each of the individual use cases, their diagram references, and their pre and post conditions.

C1: Start

Precondition:

Start Here.

Postcondition:

The user invokes the application by entering a URL address into their HTML compatible browser.

C2: User Invokes Application

Precondition:

The user invokes the application by entering a URL address into their HTML compatible browser.

Postcondition:

"The Puzzler - 3D Style" Welcome and Configuration Screen has appeared in the user's client computer browser.

C3: User Configures Puzzle

Precondition:

"The Puzzler - 3D Style" Welcome and Configuration screen has appeared.

Postcondition:

The user has set the size of the generated puzzle cube, the size of the generated dictionary to use, the base dictionary, and the minimum size that each hidden word will be (not less than three), and has pressed the submit button.

C4: User Reviews Configuration

Precondition:

The user has pressed the submit button on the conformation screen.

Postcondition:

The user has reviewed the configuration, and pressed either no to go back to the confirmation screen or yes to display the "Generating Puzzle" page.

C5: RUN

Generating Puzzle Page is Displayed:

Precondition:

The user has selected "yes" on the Configuration Confirmation screen.

Postcondition:

a) The "Generate Dictionary" use case is invoked from a pre-selected           "base dictionary" with help form a custom algorithm with red/black tree            data structure.

b) The "Generate Puzzle" use case is invoked with help from a custom           algorithm with red/black tree data structure.

c) The "Puzzle Interaction" Screen is Displayed

C6: Create Dictionary

Precondition:

The system is still displaying the "Generating Puzzle" screen also concurrently attempting to execute the "System Generates Puzzle Cube" use case.

Postcondition:

The system is still displaying the "Generating Puzzle" screen also concurrently still attempting to execute the "System Generates Puzzle Cube" use case.

C7: Create Puzzle

Precondition:

The system is still displaying the "Generating Puzzle" screen also concurrently attempting to execute the "System Generates Dictionary" use case.

Postcondition:

The system displays the puzzle interaction screen.

C8: Display User Interface

Precondition:

a)     The system has displayed the puzzle interaction screen.

b)    The generated dictionary is displayed in the "Dictionary" list box.

c)     The generated puzzle is displayed in its text area control.

d)    The puzzle has NOT been solved yet.

e)     The puzzle display control(s) are grayed out (not usable), and the "Solve Puzzle" button is enabled.

Postcondition:

The user clicks the "Solve Puzzle" button.

C9: Solve Puzzle

Precondition:

The user has clicked the "Solve Puzzle" button.

Postcondition:

a)     The display control(s) are now enabled.

b)    The first cross-sectional 2D plane or "layer" of the puzzle is selected.

c)     The "Word that Matched" for the current selected cross-sectional "layer" is displayed in the "Words that Matched" list box.

d)    System displays the "Time Taken to Solve Puzzle" as well as the dictionary and puzzle generation results in "Time Taken" text area control.

e)     System enables the "Show Statistics" button.

f)      The "Regenerate Puzzle?" button is enabled.

g)     The "Exit?" button is enabled.

C10: Select Different Layer

Precondition:

a)     The post condition for "System Solves Puzzle" use case has completed successfully.

b)    User select a different puzzle layer.

Postcondition:

The system displays the selected puzzle layer in the puzzle layer display area and concurrently displays the words that matched for that puzzle layer in the "Word that Matched" list box.

C11: Collect Words That Matched

Precondition:

The puzzle has been solved based on words in the dictionary that matched in the puzzle.

Postcondition:

The hidden words that were found are displayed in the "Words That Matched" list item control.

C12: Collect Statistics

Precondition:

The postcondition for the "System Solved Puzzle" has completed successfully.

Postcondition:

a)     The timing statistics for generating the dictionary, timing statistics for generating the puzzle, and the timing statistics are written to a log file as well as the configuration.

b)    The results for the previous postcondition is displayed in the "Time Taken" text area for everything.

C13: Create Database

Precondition:

a)     The dictionary is created and needs to store the data.

b)    The puzzle is created and needs to store the data.

c)     The "Words That Matched" are found and need to store their data.

d)    The "Collected Statistics" are found and need to store their data.

Postcondition:

The appropriate data operations are performed to complete the needed transaction.

C14: Help / Documentation

Precondition:

The user selects the "Help / Documentation" Button.

Postcondition:

The "Help / Documentation" page is displayed with a back button that shows:

a)     How to deploy and undeploy the wed application.

b)    The Glossary of Terms.

c)     More information on the underlying algorithms for the red-black tree and the "brute force array indexing" for the puzzle.

C15: "Regenerate Puzzle?"

Precondition:

The " Regenerate Puzzle?" button is enabled and the user presses the " Regenerate Puzzle?" button.

Postcondition:

The "Welcome and Puzzle Configuration" screen is displayed.

C16: Exit?

Precondition:

The "Exit?" button is pressed.

Postcondition:

The "Thanks for Visiting!" screen is displayed with no back button.

C17: End

Precondition:

The "Thanks for Visiting!" screen is displayed with no back button.

Postcondition:

Stop Here.