Chapter 3: Requirement Capture - Use Case
1.0 Modelling Concepts
1.1 Models vs Diagrams
Models
- Provide a complete view of a system at a particular stage and perspective
- Used to represent something (real or imaginary)
- Reasons for using models:
- Quicker and easier to build
- Can be used in simulations
- Can evolve as we learn
- Represent things from any domain
Diagrams
- Illustrate or document some aspect of a system
- Use abstract shapes to represent real-world things/actions
- Follow Object Management Group (OMG) standards
- Reasons for using diagrams:
- Communicate ideas
- Generate new ideas and possibilities
- Test ideas and make predictions
- Understand structures and relationships
1.2 Types of Models in System Development
Requirements Model
- Complete view of requirements
- May include Use Case diagrams and Class diagrams
- Includes textual descriptions plus diagram sets
Behavioural Model
- Shows how system responds to external events and time passage
- Initial model may use Communication Diagrams
- Includes:
- Collaboration diagrams
- Sequence diagrams
- State chart diagrams
1.3 UML (Unified Modeling Language)
UML consists of graphical language to represent concepts in object-oriented information system development.
UML 2.x supports 9 diagram types:
- Use case diagram
- Activity diagram
- Sequence diagram
- Collaboration diagram
- Class diagram
- Object diagram
- State chart diagram
- Component diagram
- Deployment diagram
2.0 Current Systems vs Required Systems
2.1 Requirements Definition
Requirements = A condition or capability that must be met by a system to satisfy a contract, standard, or specification
2.2 Current Systems Analysis
Purpose of understanding current systems:
- Understand how existing system works
- Ensure shortcomings/defects aren’t carried to new system
- Identify new system functional and non-functional requirements
Information gathering methods:
- Observations
- JAD (Joint Application Development)
- Document analysis
2.3 Classification of Requirements
Functional Requirements
- Describe what a system should do
- Specify system functions including:
- Processing
- Interfaces (I/O)
- Reports
- Data storage
- Documented in: Use Case Diagrams, Class Diagrams, Interaction Diagrams, State Chart Diagrams
Non-Functional Requirements
- Describe system characteristics not related to functionality
- Define how well the system provides functional requirements
- Categories:
- Operational: Physical/technical environments
- Performance: Speed, capacity, reliability
- Security: Access control and authorization
- Cultural/Political: Legal requirements and policies
Usability Requirements
- Match system to how people work
- Include:
- User characteristics
- User tasks
- Situational factors
- Acceptance criteria
- Focus on Human-Computer Interaction (HCI)
3.0 Use Case Diagrams
3.1 Purpose of Use Case Diagrams
- Document system functionality from users’ perspective
- Document system scope
- Supported by use case descriptions documenting user-system interaction
3.2 Types of Use Cases
Overview Use Case
- Used for high-level requirements agreement
- Less detailed
Detail Use Cases
- Document all detailed information needed
- More comprehensive
3.3 Use Case Development Process
Iteration 1
- Identify obvious use cases
- Create simple use case descriptions
Iteration 2
- Add additional use cases
- Maintain simple descriptions
- Develop prototypes
Iteration 3
- Structure use cases
- Create structured descriptions
- Refine prototypes
4.0 Use Case Diagram Notation
4.1 Actors
Primary Actor
- Has goals fulfilled through system services
- Notation: Stick figure with name
- One actor may represent multiple people
Supporting Actor
- Provides service/information to system
- Often a computer system, organization, or person
- Notation: Rectangle with
<<actor>>stereotype
4.2 Use Cases
- Notation: Oval/ellipse with name inside
- Naming convention: Active verb + noun phrase
- Represent sequence of actions providing value to actor
- Should be prioritized based on:
- Business process importance
- Revenue generation support
- Cost reduction potential
- Technology risk/novelty
4.3 Relationships
Communication Associations
- Lines between actors and use cases
- Arrow shows communication initiator (points away from initiator)
- Represents communication link between instances
Include Relationship <<include>>
- One use case always includes another’s functionality
- Can separate common sequences used in many use cases
- Base use case is incomplete without included use case
- Included use case is required
Extend Relationship <<extend>>
- Provides optional/additional functionality
- Base use case is complete by itself
- Extending use case is optional/supplementary
- Extension points show where extension occurs
- Can have conditions for extension
Generalization
- Shows inheritance between use cases or actors
- Child inherits from parent and may override behavior
- Base use case can be abstract (incomplete) or concrete (complete)
- Specialized use case required if base is abstract
4.4 System Boundary
- Rectangle around related use cases
- Shows sub-system grouping
- In CASE tools, often redundant as use cases are in separate diagrams
5.0 Use Case Descriptions/Specifications
5.1 Key Principles
A use case must:
- Deliver value to an actor
- Represent major functionality complete from beginning to end
- Represent the goal of actor-system interaction
- Be a meaningful and measurable objective
5.2 Use Case Description Format
Essential Components:
- Name of use case
- Brief description
- Actors (primary and supporting)
- Preconditions (optional) - conditions before use case starts
- Main flow of events
- Actor actions
- System responses
- Alternative flows (exceptions/variations)
- Postconditions (optional) - conditions after completion
5.3 Main Flow Formats
Option 1: Simple Paragraph
- Narrative description of interaction
Option 2: Two-Column Table
- Actor Action | System Response
- Step-by-step breakdown
- Numbered steps for clarity
6.0 Drawing Use Case Diagrams - Process
- Identify actors and use cases
- Prioritize use cases based on business value
- Develop each use case starting with high-priority ones
- Add structure using relationships:
- Generalization
- Include relationships
- Extend relationships
- Sub-systems
7.0 Prototyping
7.1 Purpose of Prototyping
- Working model of system part
- Program with limited functionality
- Tests how system will work
- Supports use case modeling
7.2 Uses of Prototypes
- Elicit requirements from users
- Test system architectures against non-functional requirements
- UI prototypes can use different languages than final system
7.3 Prototyping Tools
- Visual Studio
- PowerPoint
- HTML
- Word processors
8.0 Summary - Key Exam Points
Important Concepts to Remember:
- Use Case Diagram = View of Use Case Model in Requirements Model
- Two types of use cases: Overview and Detail
- Three requirement types: Functional, Non-functional, Usability
- Two actor types: Primary (users) and Supporting (systems/services)
- Three main relationships:
- Include (required functionality)
- Extend (optional functionality)
- Generalization (inheritance)
Common Mistakes to Avoid:
- Don’t define use cases at too low level (single steps)
- Don’t use Include to create hierarchical decomposition
- Remember: Extend = optional, Include = required
- System boundary is rectangle, not oval
- Use case names should be verb + noun
Use Case Description Must-Haves:
- Actor identification
- Clear main flow
- Alternative scenarios
- Pre/post conditions where relevant
- Value delivery to actor