Binah: Use Cases

 
A List of Use Cases for the Binah Project
Title Status SSDs IDs Iter
Begin Execution of Target Program fully dressed Main Elab 1
End Display of Target Program casual
Select Intersting Classes fully dressed Main Elab 1
Log Acquisition or Release of Locks on Objects of Interesting Classes fully dressed Main Elab 1
View Acquisition or Release of Locks on Objects of Interesting Classes fully dressed Main Elab 2
View Blocked Threads fully dressed
Follow Thread casual
Locate Corresponding Object Source casual
Locate Corresponding Method Source casual
Navigate Execution Display fully dressed Main Elab 2

Begin Execution of Target Program

Primary actor

User

Preconditions

The Target Program is an active project in Eclipse and is in a runnable state.

Postconditions

The System has an active display of the newly-run Target Program.

Main Success Scenario

  1. User indicates a desire to begin visualization of the Target Program.
  2. User specifies command-line parameters.
  3. User may [Select Interesting Classes].
  4. System starts the specified application with the provided command-line parameters and the new application becomes the visualization target.

Extensions

    1a. The Target Program is non-runnable.
    1. Notify the User that the program cannot be run.
    2. The System exits to allow the user to fix the problem.

Special Requirements

None.

Technology and Data Variations List

None.

Frequency of Occurrence

Once on start-up.

Open Issues

None.

Return to Top

End Display of Target Program

Main Success Scenario

The User tells the System to stop the visualization of the Target Program. The System stops the visualization.

Alternate Scenarios

If the System is not currently displaying the execution of any target programs. The System indicates that no current display is active.

Return to Top

Select Interesting Classes

Primary actor

User

Postconditions

In subsequent display, the System displays instances of the specified Classes in an emphasized manner.

Main Success Scenario

The User provides the systems with a subset of classes from the Target Application that are of interest.
The System remembers the user's interest.

Return to Top

View Blocked Threads

Primary actor

User

Stakeholders and Interests

  • User: The User's interest my be time-critical, and so wants the request to be fulfilled as quickly as possible.

Preconditions

The target application is executing and the display is available.

Postconditions

The display incorporates all blocked threads and the locks on which the threads wait.

Main Success Scenario

  1. The User indicates an interest in viewing all currently blocking threads.
  2. The System distinguishes the display of threads that are currently blocked from running or runnable threads.
  3. The System indicates the lock on which the thread waits.

Extensions

    1a. No threads are currently blocked.
    1. Notify the User that there are currently no blocked threads.

    3a. The System cannot determine the lock on which the thread is waiting.
    1. Notify the user in a non-obtrusive manner that the thread waits on an unknown or unidentifiable lock.

Special Requirements

None.

Technology and Data Variations List

None.

Frequency of Occurrence

Frequently. Blocked threads are a key aspect of problems with multi-threaded code, and so will be frequently of interest to the User.

Open Issues

None.

Return to Top

Log Lock Acquisition or Release for Objects of Interesting Classes

Primary actor

User

Stakeholders and Interests

  • User:  Wants a log of the lock acquisitions and releases to help debug a java application.

Preconditions

A target program has already been selected and is ready for execution. The user has also selected at least one class of interest.

Main Success Scenario

  1. The User begins execution of the Target program.
  2. The System logs all lock acquisitions and releases of objects of Interesting classes.

Special Requirements

A working Java application is required for this use case. A writable store is required for the log messages.

Technology and Data Variations List

None are known at this time.

Frequency of Occurrence

Frequently. This use case is at the heart of the system's purpose, to detect possible deadlocks by viewing lock acquisitions.

Open Issues

None.

Return to Top

View Lock Acquisition or Release for Objects of Interesting Classes

Primary actor

User

Stakeholders and Interests

  • User:  Wants a graphical visual aid to help debug a java application by selecting interesting classes 

Preconditions

A target program has already been selected and is ready for execution. The user has also selected at least one class of interest.

Postconditions

In subsequent display, the system shall display any locks a selected class instance has obtained. The system shall also display any possible releases that same class instantiation allows. 

Main Success Scenario

  1. The user informs the system to graphically display the selected classes from the selected java application.
  2. The system shall display all lock, and possible release, instances the selected class acquires.

Special Requirements

A working Java application is required for this use case.

Technology and Data Variations List

None are known at this time.

Frequency of Occurrence

Frequently. This use case is at the heart of the system’s purpose, to detect possible deadlocks by viewing lock acquisitions.

Open Issues

None are perceptible within contemporary juncture.

Return to Top

View Blocked Threads

Primary actor

User

Stakeholders and Interests

  • User: The User's interest my be time-critical, and so wants the request to be fulfilled as quickly as possible.

Preconditions

The target application is executing and the display is available.

Postconditions

The display incorporates all blocked threads and the locks on which the threads wait.

Main Success Scenario

  1. The User indicates an interest in viewing all currently blocking threads.
  2. The System distinguishes the display of threads that are currently blocked from running or runnable threads.
  3. The System indicates the lock on which the thread waits.

Extensions

    1a. No threads are currently blocked.
    1. Notify the User that there are currently no blocked threads.

    3a. The System cannot determine the lock on which the thread is waiting.
    1. Notify the user in a non-obtrusive manner that the thread waits on an unknown or unidentifiable lock.

Special Requirements

None.

Technology and Data Variations List

None.

Frequency of Occurrence

Frequently. Blocked threads are a key aspect of problems with multi-threaded code, and so will be frequently of interest to the User.

Open Issues

None.

Return to Top

Follow Thread

The User selects a thread.
The System provides a visual means to distinguish the selected thread.
System provides a visual means to distinguish locks acquired or released by the selected thread.
The System changes the perspective of the display to view the thread and continues to update the perspective of the display to show the selected thread until superceded by another User action.

Return to Top

Locate Corresponding Object Source

Primary actor

User

Preconditions

The user knows which object that they are interested in.

Postconditions

The user can look through the source code for the given object's class.

Main Success Scenario

The User selects an object instance.
The System displays the source code of the Class of the indicated object.

Return to Top

Locate Corresponding Method Source

Primary actor

User

Preconditions

The user wants to view the current method of a given thread.

Postconditions

The user can look through the source code for the given thread's current method.

Main Success Scenario

The User selects a thread.
The System displays the source code of the method the thread is currently in.

Return to Top

Navigate Execution Display

Primary actor

User

Stackholders and Interests

  • User: The User is interested in viewing some aspect of the execution of the target application that is too arbitrary or vague to be viewed by other means. The User's interest my be time-critical, and so wants his request to be fulfilled immediately.

Preconditions

The target application is executing and the display is available.

Postconditions

The System displays the user-indicated subset of the execution, possibly overriding previous requests of the display.

Main Success Scenario

  1. The User specifies an arbitrary subset of the execution entities to display.
  2. The System updates the display to show the subset of the execution entities indicated by the User's request.

Extensions

    1a. The User specifies an nonsensical subset of entities to display.
    1. The System notifies the User that the request is nonsensical.
    2. The System leaves the display unmodified.

    2a. The System is unable to display the requested subset of execution entities.
    1. The System displays as much of the subset as possible.
    2. The System indicates to the User that there was a problem fulfilling the display request in a manner that does not distract from the User's viewing of the display.

Special Requirements

None.

Technology and Data Variations List

None.

Frequency of Occurrence

Frequently to Occasionally. Used when the user is either "browsing" the execution for potential problems, or when the User has a particular display need that is unfulfilled by the other Use Cases.

Open Issues

None.

Last modified Monday April 28, 2003.

Copyright 2003.