Full description [Brief description]:

Use cases are at the core of a powerful technique for gathering, organizing and verifying users’ business-systems requirements. They burst on to the software-development scene in the mid-1990s amid the usual boisterous marketplace excitement and extravagant publicity. Since then, many shops have successfully managed to tap into the power of use cases for requirements gathering, architecture, design, programming, and testing. Other shops, however, haven’t mastered use cases and have failed to achieve much benefit from them.

In this course you will learn what use cases are and how to use them to understand, model and validate user requirements quickly but precisely. The course covers not only use cases but also the little-known technique of business-event modeling. It shows how a through understanding of business events leads quickly to a clear, useful set of use cases. It continues by showing you how best to organize your use cases for validation and how to define use cases both distinctly and succinctly.

Finally, the course covers the benefits of use cases beyond the requirements gathering phase, in user-interface prototyping and design, system-architecture design, detailed software design, programming and testing.

Not forgetting project managers and team leaders, the course also shows how use cases form the backbone of the project-matrix technique for clearly planning and tracking projects.

During the course you will practice designing and developing use cases and will have opportunities to discuss your specific use-case questions with the course instructor.

Important note: In recent years, use cases have been equated with object-oriented system development. Since this course shows how use cases can assist any kind of system development, it’s definitely not restricted to object-oriented developers. Everyone is welcome!

Detailed contents:

In this course you will learn:
Introduction
  • What is a use case?
  • Simplified example
  • Use case model deliverables
  • Why use cases?
  • Who produces use cases — and from what?
  • Who consumes use cases?
  • Use cases and events
The context model
  • The context model: Purpose and example
  • Context model symbols: system, actors, flows
  • People, jobs and roles
  • Role maps
Modeling events
  • The event model
  • Definition of an event
  • Roles and events
  • Event types and occurrences
  • Event preconditions and postconditions
  • The event thread
  • Kinds of events
  • Organizing events: flat, by actor, leveled, by scenario
From events to use cases
  • Definition of use case
  • The event-reporting chain
  • "Who" are the actors?
  • Properties of the various actors
  • Event recognition revisited
  • Relationships among roles, events, use cases
Use cases
  • UML representation
  • Use case dictionary
  • Whose reality?
  • Types of goals for a use case:
    Informative, interrogative, imperative
  • Use-case narrative
  • Use-case specification
  • State diagrams
  • Specializes, includes, extends
  • Use-case map
Use cases and the user interface
  • GUI characteristics
  • What should be in an interface specification?
  • Navigation diagram
  • Window specification
  • Window description, layout, behavior
  • Field specification
  • Is there such a thing as Quality?
  • Roles, use cases and the user interface
Use cases and architecture
  • The event thread revisited
  • Software domains
  • Packages and their UML representation
  • Hardware tiers and software domains
  • Response time
  • Use-case matrices
  • Using use-case statistics
Use cases and object-oriented design
  • Collaboration diagrams
  • Sequence diagrams
  • Allocating features to classes
  • Responsibility-driven and obligation-driven design
Use Cases and Project Management
  • The unitary-development matrix
  • Project strategies:
    Radical, conservative, moderate
  • Issues related to use cases