<?xml version="1.0"?>
<UseCase>
  <Template>
    <Version>1.70</Version>
    <CopyRight>(c) 2010 Naz-Tek Services, Inc.</CopyRight>
    <ProviderUri>http://www.naz-tek.net</ProviderUri>
    <License>
      Permission is hereby granted, free of charge, to any person obtaining a copy of this document and its
      associated documentation, to use the document on their projects for any commercial or non-commercial purpose.
      However you may not publish, distribute, sublicense, and/or sell copies of this document.
    </License>
    <Agreement>
      THE DOCUMENT IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 
      LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 
      IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 
      OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF 
      OR IN CONNECTION WITH THE DOCUMENT OR THE USE OR OTHER DEALINGS IN THE DOCUMENT. 
      TECHNOSOLUTIONS CORPORATION MAKES NO REPRESENTATIONS ABOUT THE SUITABILITY OF THIS DOCUMENT FOR ANY PURPOSE
    </Agreement>
  </Template>
  <RevisionHistory>
    <Revision>
      <VersionNumber></VersionNumber>
      <VersionDate></VersionDate>
      <Author></Author>
    </Revision>
  </RevisionHistory>
  <Id>
    Enter a unique numeric identifier for the Use Case. e.g. UC-113
  </Id>
  <Name>
    Enter a short name for the Use Case using an active verb phrase, e.g., withdraw Cash, Register Customer, Rent Video, Calculate Sales Tax, etc.
  </Name>
  <Description>
    Briefly describe this use case, e.g., customer brings selected video(s) to the sales counter for the purpose of renting them. 
    Store clerk processes the rental payment, records the rented video(s) against customer’s account, and hands over the video(s) to the customer.
  </Description>
  <Level>
    Enter the goal level of this Use Case. Specify whether the Use Case level is - High Level Summary,  Summary, User Goal, Sub-Function, Low Level.
  </Level>
  <PrimaryActor>
    List the Actor who’s goal is being satisfied by this Use Case and has the primary interest in the outcome of this Use Case, e.g., Store Clerk.
  </PrimaryActor>
  <SupportingActors>
    List the Actors who have a supporting role in helping the Primary Actor achieve his or her goal, e.g., customer, Store Manager.
  </SupportingActors>
  <StakeholdersAndInterests>
    List the various entities who may not directly interact with the system but they may have an interest in the outcome of the use case. 
    Identifying stakeholders and interests often helps in discovering hidden requirements which are not readily apparent or mentioned 
    directly by the users during discussions, e.g., in a Use Case ‘Generate Salary Stub’, the entity Internal Revenue Service(IRS) has no 
    direct interaction, however, it sure has interest in ensuring that the proper tax deduction has been made from the employee’s salary. 
    This can be written as follows:
    
    Internal Revenue Service – Has interest in ensuring that the tax deduction is made from each employee’s salary as per the tax table.
  </StakeholdersAndInterests>
  <PreConditions>
    List the system state/conditions which must be true before this Use Case can be executed, e.g., store Clerk must be logged in to system.
  </PreConditions>
  <PostConditions>
    <SuccessEndCondition>
      Enter the successful end condition of the Use Case where the Primary Actor’s goal is satisfied, 
      e.g., video is rented to the customer and customer is charged for the rental. Rental store’s inventory is updated to reflect the rented video.
    </SuccessEndCondition>
    <FailureEndCondition>
      Enter the failure end condition of the Use Case if the Primary Actor’s goal has not been achieved,
      e.g., customer is unable to rent the video. Rental Store’s video inventory remains unchanged.
    </FailureEndCondition>
    <MinimalGuarantee>
      The guarantee or assurance that this Use Case provides to all Actors and Stakeholders to protect their interest regardless of 
      whether the Use Case ends with success or failure, e.g., for Withdraw Cash (ATM Use Case), minimal guarantee could be, 
      Customer is logged out of the ATM system.  This minimum guarantee ensures that the system will ensure that no unauthorized 
      withdrawals can be made from the ATM thus protecting the interest of the Bank Customer as well as the Bank’s stakeholders.
    </MinimalGuarantee>
  </PostConditions>
  <Trigger>
    The event that starts this Use Case, e.g., 
    For Rent Video Use Case - Customer brings the Video to the sales counter.
    For Withdraw Cash Use Case - Customer inserts the bank card into the ATM machine.
  </Trigger>
  <MainSuccessScenario>
    Enter the Main flow of events. i.e. The steps narrating/illustrating the interaction between Actors and the System. 
    Describe Actor's actions/stimuli and how the system responds to those stimuli. Describe the 'happy path/day' scenario, 
    meaning the straight and simple path where everything goes ‘right’ and enables the primary actor to accomplish his or her goal. 
    Main flow/path should always end with a success end condition.
  </MainSuccessScenario>
  <Extensions>
    Enter any extensions here. Extensions are branches from the main flow to handle special conditions. 
    They also known as Alternate flows or Exception flows. For each extension reference the branching step number of the 
    Main flow and the condition which must be true in order for this extension to be executed.
    Example of an Extension in Rent Video Use Case:

    4a. In step 4, if the customer has accumulated late returns fee greater than ten dollars
    1. System will prompt for payment of the dues
    2. Customer pays the dues
    3. Store clerk adds the amount to the total
    4. Use Case resumes on step 4
  </Extensions>
  <Variations>
    Enter any data entry or technology variations such as – different methods of data input, screen/module invocation, etc., e.g., 3'.
    In step 3, instead of reading Video Id using a bar code scanner, the store clerk may enter it directly using the keyboard.
    <Frequency>
      How often will this Use Case be executed. This information is primarily useful for designers,
      e.g., enter values such as 50 per hour, 200 per day,  once a week, once a year, etc.
    </Frequency>
    <Assumptions>
      Enter any assumptions, if any, that have been made while writing this Use Case.
      e.g. For Withdraw Cash Use Case(ATM system) an assumption could be: The Bank Customer understands either English or Spanish language.
    </Assumptions>
  </Variations>
  <SpecialRequirements>
    Enter any special requirements such as Performance requirements, Security requirements, User interface requirements, etc. Examples:

    Performance
    1. The ATM shall dispense cash within 15 seconds of user request.

    User Interface
    1. The ATM shall display all options and messages in English and Spanish languages.

    2. The height of letters displayed on the display console shall not be smaller than 0.5 inches. (Reference - Americans with Disabilities Act, Document xxx, para xxx).

    Security
    1. The system shall display the letters of PIN numbers in a masked format when they are entered by the customer.
       i.e., mask the PIN with characters such as ****. Rationale – This is to ensure that a bystander will not be able to read 
       the PIN being entered by the customer.
    2. The ATM system will allow user to Cancel the transaction at any point and eject the ATM card within 3 seconds. 
       Rationale – In case the customer in duress/in fear of own security he/she needs to quickly get away.
    3. The ATM system shall not print the customer’s account number on the receipt of the transaction.
  </SpecialRequirements>
  <Issues>
    List any issues related to the definition of the use case.  Example:
    1. What is the maximum size of the PIN that a use can have?
  </Issues>
  <ToDo>
    List any work or follow-ups that remain to be done on this use case.  Example:
    1. Obtain the sales tax table for computation of tax on video rentals from user.
    2. Need to ensure that we have covered all parties under the ‘Stakeholders and Interests’ heading.
  </ToDo>
</UseCase>