Requirements
1. Define the services that a system shall provide
2. Set out of the constraints on the development process
3. Describe a system property or attributes
- Statements descibing what a system should do not how it should do it
- If requirements include design then the design will be constrained/bound
- analysis paralysis
Requirement Types
1. Business Requirements - high level objectives of the copmany that requests the system. Recorded in a vision and scope document
ex1 - Increase market share by X%
ex2 - Save $X per year in maintenance costs that are consumed by legacy system
- not technical requirements
- business need of client
- establish quickly to improve process
2. User Requirements - user goals or tasks that the users must be able to perform with the product. Represented by use-cases sceanrios, event-response tables
ex1 - I need to make an airline reservation
ex2 - I need to print mailing label for a package
- current state -> next state
- scenarios - natural language, easiest method to allow user to explain their needs and tasks
3. Functional Requirements - what the developer needs to implement to enable users to accomplish their tasks an satisfy the sbusiness requirements. Documented in a software requirements specifications (SRS) document
ex1 - The system shall ad the selected item to the shopping cart
ex2 - The system must be able to sort the project list in forward and reverse alphabetical order
4. Non-functional requirements - performance goals, quality attributes, constraints on the development process (the how)
Product: safety, reliability, usability, performance, efficiency, capacity, etc.
Process: standards (industry, government, etc), language, delivery
Out of $500B
- $200B (40%) never used
- $150B (30%) projects canceled prior to completion
- 58% of original requirements change
Cost of Requirements Engineering
- Complex systems - 15% of total budget
- Small systems - 10% of total budget
Cost of fixing requirements errors:
- up to 100x the cost of fixing a simple programming error
Stakeholders
People or organizations who will be affected by the system and will directly or indriectly influence the system requirements
- Customers, users, requirement analysts, developers, testers, documentation writers, project managers, legal staff, manufacturing people, sales, marketing, etc.
- interview 2-3 of each type
System Requirements (aka System Software Requirements) - requirements of a system as a whole, ie h/w, s/w, and operational processes
Software Requirements - component of a system requirements
Types of systems
- information systems db (standard h/w, commercial OS) [s/w]
- embedded systems (special purpose h/w) [s/w + h/w]
- command and control systems - combination of information and embedded systems [s/w + h/w + op procs]
Requirements Engineering
- All the activities involved in discovering, documenting, and maintaining a set of requirements
Domain Information - client vocabularies; could be different between departments, groups, industries
Process (Requirements Management)
Elicitation -> analysis and negotiations -> documentation -> validation
documentation -> requirement documentation and system specifications -> validation
requirement documentation and system specifications -> agreed requirements