| Course Overview:   
          Use cases provide a valuable tool for modeling the behavior of systems 
          and businesses.  While they serve several other purposes, use cases 
          are especially effective for describing functional requirements.  
          Requirements in the form of use cases offer a refreshing change from 
          the more typical large, monolithic requirements document. This two-day course explains how to apply uses cases 
          to the task of modeling the functional requirements of a system.  It 
          illustrates how to model use cases with Unified Modeling Language (UML) 
          use case diagrams and, more importantly, how to describe individual 
          use cases with text and diagrams.  It also describes various 
          approaches one can use to identify use cases, and it explains various 
          types of relationships between use cases. This course includes laboratory sessions that afford 
          attendees an opportunity to identify and describe use cases for 
          provided problems.  The course is two days in duration, although it 
          can be expanded to include “workshop days” during which the instructor 
          works with attendees to model the requirements of a system of interest 
          to the attendees. Target Audience:  
          This course is aimed at software developers, requirements engineers, 
          and business analysts who are interested in or charged with modeling 
          functional requirements with use cases.  Because it addresses only 
          requirements modeling (and not software design), it is equally 
          beneficial to developers and non- developers. Prerequisites:  
          None.  No knowledge of use cases, software development, or the Unified 
          Modeling Language is required.   Course Outline: Introduction:  
          Course objectives.  What use cases are (and are not).  A description 
          of the case study to be used throughout the course.  Some references 
          to books on uses cases. Determining System 
          Scope:  “Project blast-off,” including documenting the 
          project’s mission, identifying the root problem, identifying the 
          project stakeholders, and determining system scope. Actors:  
          What an actor is.  Business actors versus system actors.  Different 
          types of actors.  Modeling actors in UML.  Identifying actors.  
          Relationships between actors. Use Cases:  
          What use cases are.  Use cases versus goals.  Keeping use cases at the 
          correct level.  Modeling use cases in UML.  Use case scope. Identifying Use 
          Cases:  Determining the scope of the system or 
          application.  Four distinct approaches for identifying use cases. Describing Use 
          Cases:  Different ways of describing the details of 
          individual use cases, including writing briefs, listing steps, and 
          using activity diagrams.  Alternative paths versus error paths.  
          Writing black-box use cases that avoid design details. Use Case 
          Relationships:  Static (non-temporal) and dynamic 
          (temporal) relationships between use cases.  Describing those 
          relationships. Process:  
          A brief discussion of requirements elicitation and requirements 
          sources.  Running joint requirements planning (JRP) sessions. Transitions:  
          A brief overview of how use cases can guide subsequent project 
          activities such as estimation of development effort, application 
          design, user interface design, and testing. Return to
          Use Case Course Catalog  |