Skip to content

Instantly share code, notes, and snippets.

@weitsang
Last active December 21, 2015 13:59
Show Gist options
  • Save weitsang/6316535 to your computer and use it in GitHub Desktop.
Save weitsang/6316535 to your computer and use it in GitHub Desktop.
Notes for Guest Lecture, CS3281/CS3283 AY 1314, Lecture 3

Requirement Analysis

Notes CS3281/CS3283 Guest Lecture

Semester 1, AY 2013/14

30 August 2013

Introduction

  • Specify what your end-product can do / what the customer wants
  • Functional / non-functional requirements
  • Many tools for requirement analysis
  • Use whatever tools that you want

Why is Requirement Important?

  • Serve as a contract (but can change later)
  • Helps to determine test cases and evaluation criteria
  • Helps to define goals, plan projects, prioritize features, etc.

Properties of Good Requirements

  • Adapted from Scott Sehlhorst’s Top Ten Rules
    1. Valuable — put in requirements that are of good values to the users.
    2. Concise — easy to understand for people with diff background.
    3. Design free — focus on what, not how
    4. Attainable - don't put in things you can't attain
    5. Complete - doesn't leave out anything
    6. Consistent — don’t put in impossible requirements
    7. Unambiguous - cannot be interpreted differently by different people
    8. Verifiable - can be verified within your means
    9. Atomic — cannot say “half of this requirement is implemented”
    10. Correct

Requirements for Discussion

Dilbert on Requirements

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment