Brief Introduction to Requirements
Why analysis is important - The Rope Swing
Parable
Mnemonic:
- Requirements are WHAT the software must do (externally
observable behavior)
- Design is HOW the solution will work (underlying
mechanism)
What is a Requirement?
It is a statement describing either
1) an aspect of what the proposed system must do,
or
2) a constraint on the system’s development.
In either case it must contribute in some way towards adequately
solving the customer’s problem;
the set of requirements as a whole represents a negotiated
agreement among the stakeholders.
The requirements document describes all requirements for a
proposed system.
Students accustomed to poor requirements received in class
assignments.
Payroll
example of vague requirements
Better Examples:
Audio
Tape Calculator Distributed
Hangman Encounter
Game Real world example - Veterans
Administration
SRS serves multiple audiences:
- Describing intended solution to customer.
- Serves as the basis for design by developers.
- QA will use it as standard for verifying the final
product.
- Project Managers will use it to refine the project
plan
-
cost and
schedule estimates.
- Testing team uses it to develop test cases.
- Publications department uses it to write
documentation.
- Advertising and promotional efforts by marketing will
be
based
on
it.
- Serves as a legal contract.
How to express requirements? Inherent tension between writing for
Customer
and writing for Developers. Easy to read versus unambiguous,
precise,
well-defined.
Ambiguity of Natural Language Examples:
- "Would you rather have a lion
chase you or a bear?"
- "To purchase a Christmas Tree, tear off the tag and take it to
the register."
- Hernandez’s lawyer, James Sultan, acknowledged for the first time during closing arguments that he was there when Lloyd was killed.
Notations
- plain english "atomic" sentences
- structured english (e.g. Employee Scheduler)
- Decision Table
- Use Cases [examples]
- User Manual
- Data Flow Diagram
- State Transition Diagrams
- Data Dictionary
- Entity Relationship Diagrams
Types of Requirements
The author classifies requirements into Functional (including I/O), Quality, and Platform.
Requirements Exercise