Types of Requirements

  • Functional: Input-Output behavior
  • Non-functional: Performance, privacy, reliability, etc.
  • Constraint: Hardware resource, infra, etc.

Requirements Engineering

  • Eliciting: Gathering (and helping users to define) requirements
  • Analyzing: Formularizing the requirements gathered
  • Documenting: Formal or semiformal documentation

Eliciting Strategies

  • Interview
  • Observation
  • Workshop
  • Prototyping

Eliciting Challenges

  • Scope: Maybe out of scope
  • Understanding: Users do not know their requirements
  • Volatility: Requirements may change

Analyzing Techniques

  • User Story
  • Use Case
  • Software Requirements Specification (SRS)

User Story

  • Purpose & Value of functional requirements
  • Who, What, Why (role, capability, benefit)

User Story Evaluation

  • Independent: independent to others
  • Negotiable
  • Valuable: valuable to someone
  • Estimable: cost must be estimable
  • Small: cover single thing
  • Testable: able to set acceptance criteria

User Acceptance Criteria

  • Behavior-Driven Development (BDD) approach
  • Given, When, Then (pre-condition, event, outcome)

Use Case

  • Interaction between actor and system
  • Actor’s point of view
  • More detailed than user story
  • To understand interaction sequence

Creating Use Case

  • Identify Actor & Goal
  • Main Success Scenario (steps)
  • List Failure Extensions (Failure cases & how to handle)
  • List Variants of main scenario (branching)

Wireframe

  • Skeleton UIs and interaction
    • content hierarchy
    • space distribution
    • possible app user actions
    • app features
    • transition between app pages

Specifications

  • Explicit set of requirements to be satisfied
  • Documenting requirements & system

Good Specifications

  • Adequate: properly state the requirements
  • Consistent: no conflict
  • Complete: implementation must be available
  • Unambiguous
  • Minimal: include only related requirements
  • Communicable: readable

Type of Specifications

  • Informal: natural language
    • Ambiguity & Contradiction Issue
  • Semi-formal: graph / diagram
  • Formal: mathematics based

Unified Modeling Language (UML)

  • Standard of visualizing the design
  • structural(static) & behavioral(dynamic)

Class Diagram

  • Class
  • Attributes
  • Methods
  • Relationships
    • Association
    • Aggregation
    • Composition
    • Inheritance
    • Realization
    • Dependency

Visibility

  • +: public
  • -: private
  • #: protected
  • ~: package (default)


Back

Categories: ,

Updated: