Mandelbrot Magic

Use Case Model

Use cases under development for current iteration

The user downloads and installs the application.

The application is packaged in a single jar file. The user points his/her browser to the download web page. That page instructs the user how to save the jar file. These instructions may be browser-specific.

Precondition

None.

Postcondition

The jar file is saved in the user's file system.

Test

Verify that the file exists in the user's file system.

The user launches the application.

The user launches the application from the command line:

java -jar MandelbrotOrchestrator.jar

When the system comes up, it displays a default region of the complex plane, with a default resolution, iteration limit, and color map. The navigation mode (see below) is zoom in.

Precondition

The jar file is saved in the user's file system.

Postcondition

The region model is constructed with default values, and its view, an image, is displayed.

Test

Visually verify that the displayed image matches the image in the User Guide section titled "Launch application."

The user navigates the complex plane.

The clicks on the point in the image that he/she wants to be the new center. If the application is in zoom in mode (the default), it shortens the region edge length by a factor of 1/2. If the application is in zoom out mode, it lengthens the region edge length by a factor of 1/3. If the application is in pan mode, it leaves the edge length unchanged.

Precondition

The region model is not null, and its view, an image, is displayed.

Postcondition

The region model is updated:

Test

Visually verify each operation: Pan, zoom in, zoom out.

The user saves an image.

The clicks the save buttom, which prompts the user for a name to associate with the image.

Precondition

The region model is not null, and its view, an image, is displayed.

Postcondition

A JPEG file, named by the user with a .jpeg suffix, exists in the user's file system.

Test

Save the default image (the image that is displated when the application launches). Use the use case to view a saved image to verify that the image was saved correctly.

The user views a saved image.

The user browses a directory of image files, and "opens" the image file of interest. (Use case, version 2: To aid browsing, a thumbnail image is displayed for each image file.)

Precondition

A JPEG file, named by the user (with a .jpeg suffix), exists in the user's file system.

Postcondition

The .jpeg file, named by the user, is displayed. (We should save and restore the associated model information as meta-data.)

Test

Save the default image (the image that is displated when the application launches). Visually verify that the displayed image matches the image in the User Guide section titled "Launch application."

The user creates an image model sequence file.

  1. The user creates an image sequence, actually a sequence of image models, indexed starting from 0, that is empty originally.
  2. While navigating, the user has the option to add the current image model to the sequence.
  3. The user saves the sequence as a sequence file (.seq suffix).

Precondition

The region model is not null, and its view, an image, is displayed.

Postcondition

A .seq file, named by the user, exists in the user's file system.

Test

Create an image sequence file with 2 image models, starting with the default image model. View this image model sequence file, ensuring that the images in the sequence file are the images that were tagged, in the proper order.

The user creates an animation from an image sequence

  1. The user selects a sequence ofs image models from his/her sequence library.
  2. When the user clicks "animate", the system produces an animation from this sequence.

Precondition

A .seq file, named by the user, exists in the user's file system.

Postcondition

A Quicktime movie is launched, displaying the animation. (The user should be able to save the movie as a file.)

Test

Create an image sequence file with 2 image models, starting with the default image model. Animate this image sequence file. View this animation, ensuring that the animation starts with the first images in the sequence, and ends with the second image in the sequence file.

Use cases for subsequent development

The user downloads and installs an older version of the application.

As development progresses to more mature versions, the availability of a small set of older versions is maintained.

The user selects the navigation mode.

There are 3 navigation modes:

The user set the image resolution.

The user selects a resolution from a menu that has only powers of 2.

The user set the iteration limit.

The user selects a iteration limit from a menu that has only powers of 2.

The user moves backward and forward through the history of images.

There are back and forward buttons for this purpose.

The user annotates the image sequence with animation parameters

The user can associate a time with each image in the sequence. For each image index, n > 0, the time associated with imagen which indicates the amount of time that elapses in the animation from the imagen - 1 to imagen.

The default time between adjacent images is 3 seconds.

I believe that sequence annotation will develop into a very complex use case. To start, the animation will be merely a linear interpolation of points in 3D space, with each parameter (to be determined, for example, frames per second) at some default value.

The user chooses the format for saving an image.

The user chooses between a thumbnail image or a full image in any of several formats (e.g., JPEG, PNG).

The user modifies a sequence of tagged images.

  1. The user opens an image sequence.
  2. The current insertion point, defaults to the end of the sequence.
  3. By pointing and clicking, the user can change the current insertion point.
  4. The user adds tags the current image, which is added at the current insertion point.
  5. The user optionally can select an image for deletion from the image sequence.
  6. The user saves the image sequence.

Completed Use cases

None.