Requirements

advertisement
Requirements
CS121
Fall 2011
mae
Administrivia
•
•
•
•
Teams chosen, glics assigned, mail lists made
Tracs created
svns created
2nd floor access in place
– 2nd floor needs work....
• elicitation schedule coming...
Panic: Due in next 7 days
• Bunch of Phase 1 stuff
• .
Requirements
“What does the customer actually wants?”
can requirements be created, analyzed,
evaluated, etc
Types of Requirements: FURPS+
•
•
•
•
Functional: features, capabilities
Usability: human factors, aesthetics, consistency, documentation
Reliability: frequency of failure, recoverability, predictability
Performance: response times, throughput, accuracy, availability,
resource usage
• Supportability: adaptability, maintainability, configurability
• +: others
Why are requirements so important?
• We need to know what we are supposed to
build before we can build it.
dhu
• Failures at this stage are costly.
Cost
to Fix
is introduced
when problem is requirements
found
design
construction
requirements
1x
design
3x
1x
construction
5-10x
10x
1x
system test
10x
15x
10x
post ship
10-100x
25-100x
10-25x
Case 1:
A friend was on review RED team for a Norwegian air defense
contract. The customer generated an ops (operations)
concept document that was about 100 pages long from which
a flat requirements document containing about 2000
requirements was generated. The problem with this contract
was that the 2000 requirements were not definite enough,
thus the result was a floating set of slightly different
requirements every 6 months or so. The project was a 3 year
project in it's 6th year with 100% overrun on a fixed price
contract (reason for the red team review).
Why are requirements so important?
• We need to know what we are supposed to
build before we can build it.
duh
• Failures at this stage are costly.
• Failures at this stage are common.
Why are requirements so difficult to
specify?
• Customer’s can’t tell you what they want
– they don’t know
– they don’t clearly articulate their needs
Why are requirements so difficult to
specify?
• Customer’s can’t tell you what they want
Case2:
There were two ops concept documents, each about 2-4 pages long, one from
developer view and one from a customer view.
This resulted in a 50 page top level system requirements document from
which about 5 or 6 lower level requirements documents were written e.g., spacecraft requirements document, network requirements
document, set-top box requirements document; operations requirements
document, air-link requirements document, etc.
A document was then written showing the linkage/relations between all the
various requirements.
Why are requirements so difficult to
specify?
• Customer’s can’t tell you what they need
– they don’t know
– they don’t clearly articulate their needs
• Customer’s have conflicting needs
You must control at least one parameter!
Customer: I want to pay $500 for its development
Cost
Quality
Customer: I want the best RPG ever
Time
Developer: It will be finished
when hell freezes over.
Why are requirements so difficult to
specify?
• Customer’s can’t tell you what they need
– they don’t know
– they don’t clearly articulate their needs
• Customer’s have conflicting needs
• Customer’s needs change or there
understanding of their needs
during project life
% increase in requirements
Growth in requirements
Source: Applied Software Measurement, Capers Jones, 1997. Based on 6,700 systems.
Why are requirements so difficult to
specify?
• Customer’s can’t tell you what they need
– they don’t know
– they don’t clearly articulate their needs
• Customer’s have conflicting needs
• Customer’s needs change
• Technology changes, along with price
– Monitors – 10 years ago paid $2k for a 600x800,
today $300 for a much better display + can run 2
displays
Developing requirements: Best
Practices
• Still a developing area
Developing Requirements
• Inception:
– define initial concept
– identify stakeholders
Developing requirements
Management
…
Marketing
Users
stakeholders
all of the above
Software Engineer
Developing requirements for games
Management
Marketing
…
Game Designer
Users
Software engineers
Developing Requirements
• Inception:
– define initial concept
– identify stakeholders
– gather background information: competitive
analysis, technology review, etc.
– identify “perceived requirements“
Developing Requirements
• Inception
• Elicitation: Ask the customer what they want
Requirements Elicitation
I want you
to build a
game ...
customer/stakeholder
software engineer
Requirements Elicitation
I want an RPG
better than
anything seen
before!
customer/stakeholder
software engineer
Requirements Elicitation
Ok ... off you go!
Call me when its
done.
customer/stakeholder
software engineer
Requirements
• Inception
• Elicitation: What do customer say they want?
• Analysis: What does the customer really
want?
Requirements Analysis
OK here is my
idea for the
game. What do
you think?
customer/stakeholder
software engineer
The exchange begins... and must continue
Requirement Solicitation
• Specify what not how – hard to do
Having some sort of sorting game with pictures of chemical reactions and physical
Requirements Analysis
Great! Can I have
it next week?
customer/stakeholder
software engineer
Requirements
• Inception
• Elicitation: What does the customer say they
want?
• Analysis: What does the customer really
want? What can you realistically provide? Do
you really understand.
Feasibility: Can we meet the constraints?
Cost
Quality
Time
Feasibility
• Understand the proposed system
• Understand the capabilities of your team and
tools
• Explore gaps in requirements (or risks)
Requirements
• Inception
• Elicitation: What does the customer say they
want?
• Analysis: What does the customer really
want? What can you realistically provide?
Software Requirements Specification (SRS)
Requirement Quality
• Specify what not how – hard to do
Having some sort of sorting game with pictures of chemical reactions and physical
reactions Chemical reactions: Baking soda/vinegar, baking, cooking, toasting, burning ect
Physical reactions: Cutting, ripping, mixing, melting Another idea is a little more
complex Having students sort the chemical elements into correct place on the periodic table
based are their properties. My idea is that an alien periodic table has been found and the
students need to place the alien elements into the correct spot based on the elements and
properties. The elements would be very similar to the earth periodic table. Students would
need to know about the number of protons neutrons electrons I attached an example of the
alien periodic table activity
• Unambiguous – English is designed for
ambuiguity
Waterfall Model
with feedback
Requirements
SRS
Design
Implementation
Test
Agile requirements
Project inception: move from requirements to goals
• Identify high level scope
• Key requirements
• Initial “goal stack”
highest priority, best modeled
goals
Well modeled means we understand what to do
and how long it will take.
lowest priority, least modeled goals
Agile requirements
At the start of each iteration:
•
Incorporate new goals (often produced by last iteration)
•
Remove items no longer needed
•
Reprioritize
•
Clarify requirements for goals at top of stack
•
Plan iteration
highest priority, best modeled
goal
Who prioritizes?
Customer driven
Risk driven
lowest priority, least modeled goal
Requirement Quality, cont
•
•
•
•
•
Testable
Feasible
Consistent – analysis critical
Prioritized
Traceable – number of systems to build a table
matching requirements (numbers) to specific
code
• Agreed upon by customer
Next time: elicitation demonstration
• Meet the customer
• At least 1 team will do an in-class elicitation
• other teams will do their elicitation Tuesday
evening 5-8. after class (or if need be Wed
morning)
Prior to Elicitation
• Prepare short (2-4 slide) concept presentation
• List of “perceived” requirements and
questions to clarify them
• Open ended questions to better understand
needs
• You may be doing this on Skype or just the
phone, so be prepared to ‘present’ your slides
without viewing
Elicitation format
• Introduce yourselves and provide agenda
• Give your (2-4 slide) concept presentation
• Start with open-ended information gathering
This is where you’ll discover
issues you haven’t thought of
on your own.
Elicitation format
•
•
•
•
•
Introduce yourselves and provide agenda
Give your (2-4 slide) concept presentation
Start with open-ended information gathering
Follow up on new issues raised
Discuss “perceived” requirements
Based on your background research
you should have some reqs in mind
before the meeting starts.
Elicitation format
•
•
•
•
•
•
•
Introduce yourselves and provide agenda
Give your (2-4 slide) concept presentation
Start with open-ended information gathering
Follow up on new issues raised
Discuss “perceived” requirements
Discuss priorities
Present a summary of key points and give the
teacher an opportunity to confirm/correct
• Thank the teacher
Elicitation roles
• Moderator: Leads the meeting, discussion
• Scribe: Takes notes
• Others
– Distill discussion for final summary
– Keep track of points that need clarification
– Keep track of pre-determined requirements that
need validation
– Watch clock, agenda
Elicitation Report
•
•
•
•
•
•
When, where, and who
Summarize discussion
New requirements
Validation of prior requirements
Priority of requirements
Any other interesting information
Lecture Sample questions
•
•
•
•
•
•
•
•
•
Why are requirements so important?
Why are they so difficult to specify?
What are the various types of requirements?
What are the first steps of requirements gathering?
What is a customer elicitation?
What is involved in requirements analysis?
What is an SRS?
What constitutes quality in requirements?
How are requirements managed in agile processes?
Summary
• what are requirements
• types
• difficulties in getting ‘good’ equirements
• process of acquiring requirements
• cycle of elicitation - evaluate/analysis - refine
Assignment for next time
• Prep for elicitation
– concept presentation
– open ended questions
– perceived reqs and questions to clarify
– roles assigned to team members
Scheduling of elicitations
• In-class
• After-class
• email has been sent, waiting for responses
from teachers.....
The End
Most errors found by users in software are
the result of
A. coding errors
B. errors in requirements
C. system integration errors
D. errors in the design of the solution
Answer: B
“Software’s Chronic Crisis”
Download