Module 2 Requirements Workflow 1b
Module 2 Requirements Workflow 1b
Design
1
The Unified Process (UP)
7/9/2018 3
2
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.
• A requirement is a statement about an intended product
that specifies what it should do or how it should perform.
•A collection of requirements is a requirements
document.
7/9/2018 5
7/9/2018 6
3
Requirements Engineering
Requirements Engineering
Requirements Requirements
Development Management
Requirements management
• What is it?
• a systematic approach to eliciting, organizing, and
documenting the requirements of the system,
• a process that establishes and maintains changing
requirements.
• Important and helpful for real projects
• Common problems
• No.1: Can’t track change
• No.2: Difficult to write
• More…
4
About the steps…
•Requirements elicitation
• Requirements discovered through consultation with stakeholders
•Requirements analysis and negotiation
• Requirements are analyzed and conflicts resolved through
negotiation
•Requirements specification
• A precise requirements document is produced
•Requirements validation
• The requirements document is checked for consistency
and completeness
Types of Requirements
•Functional requirements
• Describe what the system should do
•Non-functional requirements
• Quality requirements
• Constraints on the design to meet specified levels of quality
such as availability, performance, usability, etc
•Pseudo requirements
• Platform requirements
• Constraints on the environment and technology of the
system
• Process requirements
• Constraints on the project plan and development methods
7/8/2018 10
5
Functional Requirements
7/8/2018 11
7/9/2018 12
6
Quality Requirements
7/8/2018 13
Cont..
• Requirement elicitation
• Is about a communication b/n developers and user in
defining a new system
• Failure to do so will lead to “unwanted” system
• Focus on describing the purpose of the system
• Results in system specification
7/8/2018 14
7
Cont..
7/8/2018 15
How to conduct?
7/8/2018 16
8
Domain Analysis
•The process by which a software engineer learns
about the domain to better understand the
problem:
• The domain is the general field of business or
technology in which the clients will use the software,
e.g. Finance, personnel, marketing, etc
• A domain expert is a person who has a deep
knowledge of the domain e.g. accountant for finance
system
•Benefits of performing domain analysis:
• Faster development
• Better system
• Anticipation of extensions
7/8/2018 17
7/8/2018 18
9
Defining the Scope
7/8/2018 19
Cont…
7/8/2018 20
10
Example: Library System
• Idea: A Library Management System should be
designed. Information on books, CDs, DVDs,
Journals, etc. can be stored and retrieved
• Possible Requirements
• Searching by Title, Author, and/or ISDN should be possible
• User Interface should be web-based (accessible via WWW Browser)
• At least 20 transactions per seconds should be possible
• All services should be available within 10 minutes
• Users have no access to personal data of other users
7/8/2018 21
• Identify stakeholders
• (any one who could be affected by the implementation of the
system)- customers, end-users.
• Choose best Subject matter expert (SME)
• (who knows the business, think logically, communicate well, willing to
invest time on the software development)
• Choose good facilitator or scriber (with good communication
skill)
7/8/2018 22
11
Remarks on the process
7/8/2018 23
Reviewing Requirements
• Each individual requirement should
• Have benefits that outweigh the costs of development
• Be important for the solution of the current problem
• Be expressed using a clear and consistent notation
• Be unambiguous
• Be logically consistent
• Lead to a system of sufficient quality
• Be realistic with available resources
• Be verifiable
• Be uniquely identifiable
• Does not over-constrain the design of the system
7/8/2018 24
12
Requirements documents...
• Traceability:
Requirements
document
rationale Design
1.1 XXXX
document
.... bec ause
1.2 YYYY
....due to
requirement 1.2
7/8/2018 25
7/8/2018 26
13
How to Elicit (collect) Requirements
• Research/Document Analysis
• The document Analysis is a method by which the system analyst go
through each documents used and relevant to all the processes
covered by the system.
• The documents will give information about the data to be captured
and the presentation of the data to the users of the system.
7/8/2018 27
14
Data Gathering Techniques (continued)
• Interviews:
• Forum for talking to people
• Structured, unstructured or semi-structured
• Props, e.g. sample scenarios of use,
prototypes, can be used in interviews
• Good for exploring issues
• But are time consuming and may be
infeasible to visit everyone
Data-gathering techniques
• Focus groups and workshops: Interviews tend to be
one on one, and elicit only one person’s
perspective. It can be very revealing to get a group
of stakeholders together to discuss issues and
requirements.
15
Data-gathering Techniques (continued)
• Naturalistic observation:
• Spend time with stakeholders in their day-to-day tasks,
observing work as it happens
• Gain insights into stakeholders’ tasks
• Good for understanding the nature and
context of the tasks
• But, it requires time and commitment
from a member of the design team, and
it can result in a huge amount of data
• Ethnography is one form : entire class devoted to this.
Cont…
•Direct Observation
• Direct observation is a method used to verify the
already gathered information and to add on to
requirement.
• The method will help to see how users behave and
do things in their day to day activity.
•Questionnaires and Surveys
• The Survey Method is an electronic or paper based
method of soliciting needs or requirements from
stakeholders.
• The survey method is a list of questions, directed at
identifying stakeholder needs or requirements.
7/8/2018 32
16
Cont…
•Interviews
• An interview is a conversation with stakeholders to
elicit or validate needs and requirements.
• An interview may include one or more stakeholders.
• The interview may also involve a question and
answer session used to discover other potential
stakeholders and any discrepancies between needs;
the high-level requirements derived from those
needs; and the resulting detailed requirements.
• Interviews facilitate obtaining approval from
stakeholders on their needs, requirements, and any
changes to them.
7/8/2018 33
Data-gathering techniques
17
Gathering and Analysing Requirements
• On Observation
• Read documents and discuss requirements with users
• Shadowing important potential users as they do their
work
• ask the user to explain everything he or she is doing
• Session videotaping
• On Interviewing
• Conduct a series of interviews
• Ask about specific details
• Ask about the stakeholder’s vision for the future
• Ask if they have alternative ideas
• Ask for other sources of information
• Ask them to draw diagrams
7/8/2018 35
Cont…
7/8/2018 36
18
Cont...
• On Brainstorming
• Appoint an experienced moderator
• Arrange the attendees around a table
• Decide on a ‘trigger question’
• Ask each participant to write an answer and pass
the paper to its neighbour
! !
! !
!
7/8/2018 37
7/8/2018 38
19
Requirement Elicitation tasks (using use case)
7/8/2018 39
Cont…
7/8/2018 40
20
Cont…
• Identify relationships
• To reduce complexity and increase understandability
• Communication(association), include (use), extend, and generalization
• Questions to be asked
• Is there any relationship that needs to be factored out among use cases? If yes
‘include’ will solve it
• Is there any exceptional or optional cases? If yes “extend” will solve it
• Is there two or more possibilities for accomplishing a case? If yes “generalization”
will solve it
7/8/2018 41
So…
7/8/2018 42
21
System Modeling will continue
7/8/2018 43
22