GS Use-Cases Standard

From BRL-CAD
Revision as of 10:58, 28 May 2008 by Sean (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Design icon.png This page contains the design document for an enhancement or feature. The design should be considered a work in progress and may not represent the final design. As this is a collaborative design, contributions and participation from other developers and users is encouraged. Use the discussion page for providing comments and suggestions.



Notes on Use Cases

  • A use case is a sequence of interactions that describes one clear goal for the user.
  • One or many Use Cases may make up the functionality described in a single Requirement.




Sample Use Cases

  • Identified Actors for the GS Network Library:
    • Network
    • GS Application that uses GSNetLib



1. List all Use Cases for an Actor

The Actor 'Network' has the following use-cases:

  • Transport message to GSNetLib
  • Transport message from GSNetLib


The Actor 'GS Application' has the following use-cases:

  • Open new connection
  • Close connection
  • Listen for new connections
  • Place Message into SendQueue
  • Retrieve Message from ReceiveQueue


2.Detail Each Use-Case (Pseudo-Formally)

  • Usually written somewhat vaguely, so as to describe a process, but not detail how to implement code.
  • This can be difficult for describing complex Use Cases. In this event, use of a form of pseudo code is acceptable.



Ex 1: OpenNewOutBoundConnection

Use Case: OpenNewOutBoundConnection
Initiating Actor: GS Application
Participating Actors: (none)
Preconditions: (none)
Primary Flow:
1 Initiating Actior (IA) requests a new connection object, providing hostname and port.
2 The connection object attempts to connect to hostname on port.
3 If connection is successful, GSNetLib returns a connected connection object
Alternative Flows
Extention Point: During step #3.
Precondition: The connection is not successful.
3.1 GSNetLib returns a null object.
Remerge Point: None. Alternative end to use case.





Ex 2: OpenNewInBoundConnection

Use Case: OpenNewInBoundConnection
Initiating Actor: GSNetLib Listener
Participating Actors: (none)
Preconditions: (none)
Primary Flow:
1 Initiating Actior (IA) requests a new connection object.
2 If connection is successful, GSNetLib returns a connected connection object
Alternative Flows
Extention Point: During step #2.
Precondition: The connection is not successful.
2.1 GSNetLib refuses the incoming connection.
Remerge Point: None. Alternative end to use case.