Você está na página 1de 32

Requirements elicitation

Software Engineering
2004-2005
Marco Scotto (Marco.Scotto@unibz.it)

Software Engineering
Content
¾Introduction
¾ Requirements engineering
¾ Requirements elicitation
¾ Requirements gathering
¾ Software requirements specification
¾ “Good” requirements
¾ Requirements validation review
¾ Requirements volatility
¾ Requirements engineering and the three beasts

Software Engineering 2
Introduction
¾Deciding precisely what to build is most
important and most difficult
¾Requirements are often buried under
layers of assumptions, misconceptions,
and politics
¾Thorough understanding and constant
communication with customers are
essential

Software Engineering 3
Content
¾ Introduction
¾Requirements engineering
¾ Requirements elicitation
¾ Requirements gathering
¾ Software requirements specification
¾ “Good” requirements
¾ Requirements validation review
¾ Requirements volatility
¾ Requirements engineering and the three beasts
Software Engineering 4
Requirements engineering
¾ Development, specification, and validation of
requirements
¾ Elicitation and modeling
¾ Elicitation
• Fact-finding, communication, and fact-validation
• Output: requirements document
ƒ Understood by customers unambiguously
¾ Modeling (based on requirements document)
• Representation and organization
• Requirements in a form understood by software
engineers unambiguously

Software Engineering 5
Content
¾ Introduction
¾ Requirements engineering
¾Requirements elicitation
¾ Requirements gathering
¾ Software requirements specification
¾ “Good” requirements
¾ Requirements validation review
¾ Requirements volatility
¾ Requirements engineering and the three beasts
Software Engineering 6
Stakeholder
¾ Key representative of the groups who …
• Have vested interest in the system to be
developed
• Have direct and indirect influence on the
requirements
¾ Examples: customers who pay, users who use,
and technicians who maintain
¾ Each stakeholder has different perspectives and
needs which have to be captured
¾ Involvement:
• Spread throughout development life cycle (agile
process)
• at front-end of life cycle (plan-driven process)

Software Engineering 7
Types of requirements
¾ Functional requirements
• Services provided, reaction to specified inputs, behaviour
in specified circumstances
¾ Non-functional requirements
• User-visible properties relating to system as a whole
• Security, privacy, usability, reliability, availability, and
performance
• Defects are expensive and hard to fix
¾ Constraints
• Imposed by client, restricting implementation
• No direct effect on users’ view of system
e.g. programming language, development platform

Software Engineering 8
Security & privacy
¾ Protection’s focus: what, from whom, and for how long
¾ Examining the security and privacy policies of the
organization
¾ Privacy policy
• Privacy rights of users and information usage
¾ Security policy
• Interaction of internal and external users, computer
architecture topology, location of computer assets
¾ Reasons for engineers to understand the policies
• Able to ask right questions early
• Able to spot inconsistencies between policies and
requirements

Software Engineering 9
10 problems of requirements
elicitation
1. The boundary of the system is ill-defined.
2. Unnecessary design information may be given.
3. Stakeholders have incomplete understanding of their
needs.
4. Stakeholders have poor understanding of computer
capabilities and limitations.
5. Software engineers have poor knowledge of problem
domain.
6. Stakeholder and software engineers speak different
languages.
7. “Obvious” information is omitted.
8. Different stakeholders have conflicting views.
9. Requirements are vague and untestable, such as
“user friendly” and “robust”.
10. Requirements are volatile and change over time.
Software Engineering 10
Content
¾ Introduction
¾ Requirements engineering
¾ Requirements elicitation
¾Requirements gathering
¾ Software requirements specification
¾ “Good” requirements
¾ Requirements validation review
¾ Requirements volatility
¾ Requirements engineering and the three beasts
Software Engineering 11
9 info gathering techniques (1/5)
First 6 techniques: initial requirements capture
¾ Interviews
• Structured interview
ƒ Pre-determined questions and clear planned agenda
ƒ Questions: open-ended (stakeholders say what they want) or closed
ended (multiple choice, ranking, rating)
• Unstructured interview
ƒ No questions prepared (free discussion)
¾ Observation
• Passive
ƒ no interruption to or direct involvement in business activities or via
studies audio/video recordings
• Active
ƒ Participation and/or becoming part of the team

Software Engineering 12
9 info gathering techniques (2/5)
¾ Examining existing documents and artifacts
• Any form, automation, and policies
¾ Joint application design (JAD) sessions
• Guide users and relevant experts through defining
requirements, process, data models, and mock-ups
• 6 roles of the JAD participants in a session:
ƒ Executive sponsor: supports or pays the project
ƒ Facilitator: moderates the meeting
ƒ Project leader: leader of the development team
ƒ Participants: stakeholders and engineers
ƒ Scribe: records and publishes proceedings
ƒ Development team members: “the quiet guys at the back”
Software Engineering 13
9 info gathering techniques (3/5)
¾Groupware
• Software tool for distributed requirements
gathering
• Supports communication through video and
audio conferencing, interactive chat, and
email
¾Questionnaires
• Reaching a wide range of people
• Obtaining honest, anonymous input
• Hard to analyze open-ended questions
• Less control over results
Software Engineering 14
9 info gathering techniques (4/5)
Last 3 techniques:
• During development process
• For collecting feedbacks &
additional requirements

¾Prototypes
• Partially-developed demonstration
system
• For interactions with stakeholders
• Paper prototype or automated
prototype
Software Engineering 15
9 info gathering techniques (5/5)
¾Customer focus groups
• Reviewing interim results
• Obtaining feedback on quality and
effectiveness of the system
• Documentation of requirements changes
• Prioritization on future work
¾On-site customer
• Customer or stakeholder available nearby
• Providing valuable clarification and feedbacks
as soon as the need arises

Software Engineering 16
Content
¾ Introduction
¾ Requirements engineering
¾ Requirements elicitation
¾ Requirements gathering
¾Software requirements specification
¾ “Good” requirements
¾ Requirements validation review
¾ Requirements volatility
¾ Requirements engineering and the three
beasts

Software Engineering 17
SRS
¾ Means for documenting requirements for
relatively large projects with fairly stable
requirements
¾ Templates
• Often adopted by organizations as a standard form to
specify requirements
• Easier for readers to understand
¾ Other forms of requirements documentation
• Based on use cases
• Based on user stories (agile approach)

Software Engineering 18
Content
¾ Introduction
¾ Requirements engineering
¾ Requirements elicitation
¾ Requirements gathering
¾ Software requirements specification
¾“Good” requirements
¾Requirements validation review
¾Requirements volatility
¾Requirements engineering and the three
beasts
Software Engineering 19
Properties of good requirements
(1/4)
¾Understandable
• No confusion and misunderstanding
ƒ domain-specific language and terms confuse
developers
ƒ Technical terms confuse stakeholders
• Using short, declarative statements
• Examples, figures, and tables for clarification
¾Non-prescriptive
• Stating what customer wants, not how
programmer will do it
Software Engineering 20
Properties of good requirements
(2/4)
¾ Concise
• Facilitating customer’s validation of requirements
• Prevents developers from skimming through info
• Use KISS principle
¾ Consistent language
• “Shall” statement Æ a “contract” or mandatory
• “Should”/“may” statement Æ desirable but optional
¾ Consistent
• No contradiction between requirements
¾ Correct and complete
• Exhaustive list of requirements
Software Engineering 21
Properties of good requirements
(3/4)
¾ Unambiguous Æ testable
• Writing test cases during requirements elicitation
ƒ Involve customers early
• Specify a quantitative description for each adverb
and adjective
• Replace pronouns with specific names of entities
• Every noun is defined in exactly one place in the
requirement document
¾ Traceable
• Requirements assigned with unique identifiers
• Easing the future reference to requirements
Software Engineering 22
Properties of good requirements
(4/4)
¾ Ranked for importance and stability
• Should be decided together by team and
stakeholders
• Requirements negotiation process for determining:
ƒ Realistic priorities
ƒ How likely a requirement will change
¾ Feasible
• Infeasible requirements found in elicitation phase
ƒ To be explained by stakeholder immediately
• Infeasible requirements found in analysis phase
ƒ Stakeholder notified and requirements document
updated

Software Engineering 23
Content
¾ Introduction
¾ Requirements engineering
¾ Requirements elicitation
¾ Requirements gathering
¾ Software requirements specification
¾ “Good” requirements
¾Requirements validation review
¾ Requirements volatility
¾ Requirements engineering and the three
beasts
Software Engineering 24
Requirements validation review
¾Neutral and formal meetings
¾Ensuring the document clearly and
accurately reflect actual requirements
¾Validation checklists used as reminder of
what to look for in SRS
¾Realistic about the number of
requirements that can be reviewed in one
meeting before the team gets tired

Software Engineering 25
A sample checklist for a cell phone
; It turns on and off
; It sends and receive emails
; It sends and receives SMSs
; It sends and received MMSs
; It sends and receives calls
; It takes pictures
; It lets you review the pictures
; It traces meeting
; It records contacts
; It reproduces MP3
; It records videos
; It plays video
; It works with UMTS networks
; It connects to the Internet via GPRS
; It connects to the Internet via UMTS
; It supports bluetooth
; It supports infrared
; It receives FM radios
Software Engineering 26
Content
¾ Introduction
¾ Requirements engineering
¾ Requirements elicitation
¾ Requirements gathering
¾ Software requirements specification
¾ “Good” requirements
¾ Requirements validation review
¾Requirements volatility
¾ Requirements engineering and the three beasts
Software Engineering 27
Requirements volatility
¾Describing amount of change
in requirements between the
beginning and end of project
¾Over time …
• Users’ needs may mature due
to increased knowledge about
the system
• Users may shift to new set of
needs due to unforeseen
pressures
Software Engineering 28
Iterative requirements formulation
¾ Re-examining requirements with stakeholders
periodically
¾ Allow requirements to evolve over time
¾ Some efficiency is lost when changes are allowed
¾ Wrong assumptions detected & corrected faster
¾ One-time requirements formulation
• Poor practice
• Getting what stakeholders want initially, but not what
they actually want

Software Engineering 29
Taming requirements volatility
¾ Change control board
• A group of managers, clients, and developers
together to decide the fate of proposed changes
• Trade-off between rejecting changes and possible
dissatisfaction of stakeholders with the product later
¾ Using a defined methodology for requirements
analysis and modeling & frequent
communication with customers
• Requirements less volatile
¾ Scope creep must be controlled
• Don’t give customers complete freedom in redefining
requirements

Software Engineering 30
Content
¾ Introduction
¾ Requirements engineering
¾ Requirements elicitation
¾ Requirements gathering
¾ Software requirements specification
¾ “Good” requirements
¾ Requirements validation review
¾ Requirements volatility
¾Requirements engineering and the
three beasts
Software Engineering 31
Requirements engineering &
the three beasts
¾ Uncertainty
• Difficult to formulate and document accurately and
completely the desired system; volatility
¾ Irreversibility
• Poor requirements are usually deeply embedded in
the system; a lot of rework due to cascading effect
¾ Complexity
• Having to deal with different stakeholders with
different perspectives
¾ The beasts can be tamed by good requirement
engineering practices
Software Engineering 32

Você também pode gostar