lecture_4 - MS(Software Engineering

Download Report

Transcript lecture_4 - MS(Software Engineering

REQUIREMENTS ENGINEERING
PROCESS
Lecture 4
Requirements
• A requirement is defined as:
– A condition or capability needed by a user to solve a
problem or achieve an objective;
• A condition or a capability that must be met or possessed by a
system … to satisfy a contract, standard, specification, or other
formally imposed document …” IEEE 830-1993
• The primary measure of success of a software
system is the degree to which it meets the purpose
for which it was intended.
– Broadly speaking, software systems requirements
engineering (RE) is the process of discovering that
purpose, by identifying stakeholders and their needs, and
documenting these in a form that is amenable to analysis,
communication, and subsequent implementation.
» Bashar Nuseibeh
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
2
Requirements Engineering
• The process of establishing the services that the customer
requires from a system and the constraints under which it
operates and is developed.
– The requirements themselves are the descriptions of the system
services and constraints that are generated during the requirements
engineering process.
• Requirements Type:
– User requirements
• Statements in natural language plus diagrams of the services the system
provides and its operational constraints.
• Written for customers.
– System requirements
• A structured document setting out detailed descriptions of the system’s
functions, services and operational constraints.
• Defines what should be implemented so may be part of a contract
between client and contractor.
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
3
Challenges to Requirements
• There are a number of inherent difficulties in RE process:
– Stakeholders may be numerous and distributed.
– Stakholder’s goals may vary and conflicting
• Depending on their perspectives of the environment in which they work
and the tasks they wish to accomplish.
– Stakeholder’s goals may not be explicit or may be difficult to
articulate:
• satisfaction of these goals may be constrained by a variety of factors
outside their control.
– Limitation of natural language
• Ambiguity, consistency, understandability
–
–
–
–
Writing vs reading
Verity of methods
Controlling/ managing/ tracing changes
validation
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
4
Challenges to Requirements
• So Many “Requirements”…
– A goal is an objective or concern used to discover and evaluate
functional and non-functional requirements.
• A goal is not yet a requirement…
– A functional requirement is a requirement defining functions of the
system under development
• Describes what the system should do
– A non-functional requirement is a requirement characterizing a system
property such as expected performance, robustness, usability,
maintainability, etc.
• Constraints that must be adhered to during development
– A user requirement is a desired goal or function that a user and other
stakeholders expect the system to achieve
• Does not become necessarily a system requirement
– A domain requirement is a requirement derived from the application
domain
• Can be functional or non-functional
– Product Requirement
– Process requirement
– Security Requirements
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
5
Challenges to Requirements
• Elicitation Risks and Challenges
– Problems of scope
• System boundaries inadequately defined or defined too soon
• Unnecessary technical details
– Problems of understanding
• Stakeholder not sure of what is needed
• Stakeholder has trouble communicating needs
• Stakeholder does not understand capabilities and limitation of computing
environment
• Stakeholder does not have full understanding of domain
• Stakeholders state conflicting requirements
– Problems of volatility
• Stakeholders will not commit to a set of written requirements
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
6
Challenges to Requirements
• Elicitation Risks and Challenges
– Other typical issues
•
•
•
•
•
Experts seldom available
Finding an adequate level of precision/detail
Common vocabulary often missing
Sometimes hidden
Sometimes too obvious, implicit, ordinary…
– Participants often lack motivation and resist to
change
• We need much efforts and discussion to come up with a common
agreement and understanding
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
7
Software Requirement- SWEBOK
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
8
Requirements Engineering
• “Requirements engineering is the branch of software
engineering concerned with the “REAL-WORLD GOALS” for,
functions of, and constraints on software systems. It is also
concerned with the relationship of these factors to “PRECISE
SPECIFICATIONS” of software behavior, and to their
EVOLUTION OVER TIME AND ACROSS SOFTWARE
FAMILIES.”
– Real world Goals: Motivate the development of a software
system.
• Represent the ‘why’ and ‘what’ of a system.
– Precise Specification: Provide the basis for:
•
•
•
•
Analyzing requirements,
Validating (what stakeholders want),
Defining what designers have to build, and
Verifying that they have done so correctly upon delivery
– Evolution over Time: Emphasizing the reality of a changing world
and the need to reuse partial specifications,
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
9
Software requirements engineering
• Process of determining what is to be produced in a
software system
• An important aspect of any software project, and is
a general term used to encompass all the activities
related to requirements.
– The four specific steps in software requirements
engineering are:
•
•
•
•
Requirements Elicitation
Requirements Analysis
Requirements Specification
Requirements Validation
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
Seems to be separate tasks but
these four processes cannot be
strictly separated and performed
sequentially and repeatedly
10
RE Activities
• 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
• Requirements management
Acknowledgement to the
work of Karl Wiegers,
Software Requirements
– Needs and contexts evolve, and so do requirements!
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
11
Why Focus on Requirements
•NIST (National Institute of Standards and
Distribution of
Technology's)
Distribution of Effort to Fix Defects
Defects
–70 % of the defects are introduced in the specification
phase
Code
–30 % are introduced
later in the technical solution
process.
Code
Other
Design
1%
Requirements
7%
4%
Requirements
Other
–Only56%
5 % of the specification
inadequacies
are corrected13%in
82%
10%
the specification phase
–95 % are detected later in the project or after delivery
where the cost for correction in average is 22 times higher
compared to a correction directly in the specification effort.
• The NIST report concludes
that extensive testing is
Design
27%
essential, however testing
detects the dominating
•(Martin & Leffinwell)
specification errors late in the process.
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
12
Standish CHAOS Report -2010
– “This year’s results show a marked decrease in project
success rates, with 32% of all projects succeeding which
are delivered on time, on budget, with required features
and functions”
– Jim Johnson, chairman of The Standish Group says:
• “44% were challenged which are late, over budget, and/or with
less than the required features and functions and 24% failed
which are cancelled prior to completion or delivered and never
used.”
– Five of the eight main factors for project failure deal with
requirements:
•
•
•
•
•
incomplete requirements,
low customer involvement,
unrealistic expectations,
changes in the requirements,
and useless requirements.
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
13
RE Process and Related Activities
Why?
Identify Business Needs and Goals
What?
Derive User & Functional Requirements
How?
Design Solutions
Who?
•
When?
If-Then
Does It?
Where?
Time
TIME
Whether viewed at the systems level or the software level, RE
Project Management Process
is a multi-disciplinary, human-centred process.
– Risk
The tools
and techniques
used in RE draw upon a variety of
Management
Process
disciplines, and the requirements engineer may be expected to
master skills from a number of different disciplines.
Quality
Management
Process
• RE must
span the gap between
the informal world of stakeholder
needs, and the formal world of software behaviour, the key question
over the use&ofConfiguration
formal methods is Management
not whether to formalise,
but when
Component
Process
to formalise
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
14
Why
• “If you don’t get the requirements right, it doesn’t matter how
well you do anything else.” One can end up doing a perfect
job of building the wrong product.
» Karl Wiegers (2004)
• Issues that can have a negative impact
– Incomplete requirements:
• A software product that does not meet all of the customer and user’s
needs.
– Lack of user involvement:
• if practitioners miss a stakeholder group
– Requirements mix:
• changes in the requirements after initially agreement, missing, poorly
written or ambiguous requirements
– Wasted resources:
• Requirements errors results in 70-85 percent of the rework
– Gold plating:
• Developer adds functionality that was not in the requirements
specification
– Inaccurate estimates:
• Requirement defines the scope, scope help is schedule and cost
estimation
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
15
“What”- Part of the Requirements
• Requirements must be determined and agreed to by the
Why the Software is being developed
customers, users, and suppliers of a software product before
the software can be built.
• The requirements define the “what” of a software product:
– What the software must do to add value for its stakeholders.
• These functional requirements define the capabilities of the software
product.
– What the software must be to add value for its stakeholders.
• These nonfunctional requirements define the characteristics, properties,
or qualities that the software product must possess.
• They define how well the product performs its functions.
– What limitations there are on the choices that developers have when
implementing the software.
• The external interface definitions and other constraints define these
limitations.
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
16
Who
• Stakeholders  who affect or are affected by the
software product and therefore have some level of
influence over the requirements for that software
product.
– The RE process consider all of the various stakeholder’s
interest in context with one another.
– Stakeholders
• Acquirers
– Purchasers & end users
• Suppliers
– Organization & Developers (requirement Analyst, designer,
Developers, Testers & technical writer
• Others
– Legal or contract management, Government or regulator agencies &
Society at large
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
17
Who
• The first step in identifying the stakeholders is to
make sure that one considers all of the potential
stakeholders.
• The following checklist can help in identifying
potential stakeholders:
– What types of people will use the software product?
– What business activities are supported by the software
product and who performs, or manages those activities?
– Whose job will be impacted by the introduction of the new
software product?
– Who will receive the reports, outputs, or other information
from the software product?
– Who will pay for the software product?
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
18
Software Requirement- SWEBOK
•
Requirements Process
– Process Actors
• Stakeholders
•
•
Process Support and Management
– make the link between the process activities and the
issues of cost, human resources, training, and tools.
Requirements Sources
– Goals.
• (sometimes called ‘business concern’ or ‘critical success factor’)
refers to the overall, high-level objectives of the software.
–
–
–
–
–
–
Domain knowledge.
Stakeholders
The operational environment.
The organizational environment.
Similar System
Documents / regulation / SOPs
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
19
How
• Software requirements engineering is a disciplined, processoriented approach to the definition, documentation, and
maintenance of software requirements throughout the
software development life cycle.
– software requirements engineering is made up of two major
processes: requirements development and requirements
management.
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
20
How part of Requirements
•
Requirements Engineering: A Roadmap, Bashar Nuseibeh
– The context in which RE takes place is usually human activity system
and the problem owner are people.
– Techniques for eliciting and modeling, drawn on cognitive and social
sciences:
• Cognitive Psychology
– Provides an understanding of the difficulties people may have in describing
their needs
» domain experts often have large amounts of knowledge their answers to
questions posed by requirements analysts may not match their
behaviour.
• Anthropology
– Provides a methodological approach to observing human activities that helps
to develop a richer understanding
• Sociology
– Provides an understanding of the political and cultural changes caused by
computerization.
• Linguistics
– To avoid ambiguity and to improve understandability.
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
21
Eliciting Requirements
• Elicitation Techniques
– Traditional Techniques
• Questionnaires and Surveys
• Interviews
• Analysis of existing
documentation
– Group Elicitation
• Group brainstorming
sessions
• RAD (Rapid Application
Development)
• JAD (Joint Application
Design)
• Requirements to Elicit
– Boundaries
• Identify the high level boundaries of
the system
• Stakeholders and Use Cases
depend on boundaries
– Goals
• Denote the OBJECTIVES a system
must meet.
• Eliciting High level goals early in
development
– High level goals (business goals) 
refined into lower level goals
(technical goals)  eventually
operationalised in a system
– Prototyping
• Where there is great deal of
uncertainty
• Early feedback from
stakeholders is needed
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
– Tasks
• When it is difficult to articulate user
requirements
– Observe, case studies, scenarios
22
Sources of Requirements
• Various stakeholders
– Clients, customers, users (past and future), managers,
domain experts, developers, marketing and QA people,
lawyers, auditors, anyone who can bring added value!
• Pre-existing systems
– Not necessarily software systems
•
•
•
•
Pre-existing documentation
Competing systems
Documentation about interfacing systems
Standards, policies, collective agreements,
legislation
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
23
Comparison of some techniques
Technique
Good for
Kind of data
Plus
Minus
Answering specific
questions
Quantitative and
qualitative data
Can reach many
people with low
resource
The design is
crucial. Response
rate may be low.
Responses may not
be what you want
Exploring issues
Some quantitative
but mostly
qualitative data
Interviewer can
guide interviewee.
Encourages contact
between developers
and users
Time consuming.
Artificial
environment may
intimidate
interviewee
Collecting multiple
viewpoints
Some quantitative
but mostly
qualitative data
Highlights areas of
consensus and
conflict.
Encourages contact
between developers
and users
Possibility of
dominant
characters
Naturalistic
observation
Understanding
context of user
activity
Qualitative
Observing actual
work gives insight
that other
techniques cannot
give
Very time
consuming. Huge
amounts of data
Studying
documentation
Learning about
procedures,
regulations, and
standards
Quantitative
No time
commitment from
users required
Day-to-day work will
differ from
documented
procedures
Questionnaires
Interviews
Focus groups and
workshops
Preece,
Adv Software Engg, MSCS 19, by Asst Prof Acknowledgment:
Athar Mohsin, MCS-NUST
Rogers, and Sharp “Interaction Design: Beyond human-computer interaction”, p21424
Software Requirement- SWEBOK
• Product Requirements
– Requirements on software to be developed
• The software shall verify that a student meets all prerequisites
before he or she registers for a course
• Process Requirements
– A constraint on the development of the software
• The software shall be written in C#.
– Imposed directly by the development organization, their
customer, or a third party such as a safety regulator
• Functional Requirements
– Describe the functions that the software is to execute –
AKA Capabilities
• Non-Functional Requirements
– The ones that act to constrain the solution AKA Constraints
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
25
Software Requirement- SWEBOK
• Emergent Properties
– Requirements which cannot be addressed by a single
component, but which depend for their satisfaction on how
all the software components interoperate.
• Quantifiable Requirements
– To avoid vague and unverifiable requirements which
depend for their interpretation on subjective judgment
• The software shall be reliable’
• ‘The software shall be user-friendly’
• System Requirements
– An interacting combination of elements to accomplish a
defined objective.
• Software requirements are derived from system
requirements.
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
26
Functional Requirements
– What inputs the system should accept
– What outputs the system should produce
– What data the system should store that other
systems might use
– What computations the system should perform
– The timing and synchronization of the above
– Examples:
• The user shall be able to search either all of the initial set of
databases or select a subset from it.
• The system shall provide appropriate viewers for the user to
read documents in the document store.
• A user shall be able to search the appointments lists for all
clinics.
• The system shall generate each day, for each clinic, a list of
patients who are expected to attend appointments that day.
• Each staff member using the system shall be uniquely
identified by his or her 8-digit employee number.
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
27
Non-functional classifications
•
Product requirements
No n-functio nal
requir ements
–
Requirements which specify that the delivered product must
behave in a particular way
• e.g. execution speed, reliability, etc.
– The userP roduct
interface for LIBSYSOrganis
shall
be implemented as simple
ational
External HTML
without
frames
r equir
ements or Java appletsrequir ements
r equir ements
•
Organisational requirements
–
Requirements which are a consequence of organisational policies
and
procedures
Efficiency
Relia bility
P or ta bility
Inter oper a bility
Ethical
r equir em
ents
requir
ements implementation
requir ements requirements,
r equir ements etc.
• e.g. process
standards
used,
requir ements
– The system development process and deliverable documents shall
conform to the process and deliverables defined in organization’s mission
statement
•
External requirementsDeli very
Us a bility
–
r equir ements
requir ements
Implementa
tion
requir ements
Standar
ds
requir ements
Leg isla tiv e
requir ements
Requirements which arise from factors which are external to the
system and its development process
• e.g. interoperability requirements, legislative requirements, etc.
P er for mance
requir ements
– The
Space system shall not disclose any personal information
P ri vacy about customers
Safety
apart
ofrequir
the ements
r equir
ementsfrom their name and reference number to the
r equir operators
ements
system.
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
28
Metrics for specifying nonfunctional
requirements
Property
Measure
Speed
Processed transactions/second
User/event response time/ Screen refresh time
Size
Mbytes
Number of ROM chips
Ease of use
Training time
Number of help frames
Reliability
Mean time to failure / Availability
Probability of unavailability
Rate of failure occurrence
Robustness
Time to restart after failure
Percentage of events causing failure
Probability of data corruption on failure
Portability
Percentage of target dependent statements
Number of target systems
Domain requirements
• The system’s operational domain imposes requirements on
the system.
– For example, a train control system has to take into account the
braking characteristics in different weather conditions.
• Domain requirements be new functional requirements,
constraints on existing requirements or define specific
computations.
• If domain requirements are not satisfied, the system may be
unworkable.
• Problems
– Understandability
• Requirements are expressed in the language of the application domain;
• This is often not understood by software engineers developing the system.
– Implicitness
• Domain specialists understand the area so well that they do not think of making
the domain requirements explicit.
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
30
Requirements imprecision
• Problems arise when requirements are not precisely
stated.
– Ambiguous requirements may be interpreted in different
ways by developers and users.
• Consider the term ‘search’ in following requirement
– A user shall be able to search the appointments lists for
all clinics.
• User intention:
– search for a patient name across all appointments in all
clinics;
• Developer interpretation:
– search for a patient name in an individual clinic. User chooses
clinic then search.
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
31
Requirements completeness and consistency
• In principle, requirements should be both complete
and consistent.
– Complete
• They should include descriptions of all facilities
required.
– Consistent
• There should be no conflicts or contradictions in the
descriptions of the system facilities.
• In practice, it is impossible to produce a complete
and consistent requirements document.
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
32
The software requirements document
• The software requirements document is the official
statement of what is required of the system
developers.
– Should include both a definition of user requirements and
a specification of the system requirements.
– It is NOT a design document.
– As far as possible, it should set of WHAT the system
should do rather than HOW it should do it.
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
33
Requirements specification
• The process of writing the user and system
requirements in a requirements document.
– User requirements have to be understandable by endusers and customers who do not have a technical
background.
– System requirements are more detailed requirements and
may include more technical information.
• The requirements may be part of a contract for the
system development
– It is therefore important that these are as complete as
possible.
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
34
Ways of writing a system requirements
specification
Notation
Description
Natural language
The requirements are written using numbered sentences in natural language. Each
sentence should express one requirement.
Structured
language
natural The requirements are written in natural language on a standard form or template.
Each field provides information about an aspect of the requirement.
Design
description This approach uses a language like a programming language, but with more
languages
abstract features to specify the requirements by defining an operational model of the
system. This approach is now rarely used although it can be useful for interface
specifications.
Graphical notations
Graphical models, supplemented by text annotations, are used to define the
functional requirements for the system; UML use case and sequence diagrams are
commonly used.
Mathematical
specifications
These notations are based on mathematical concepts such as finite-state machines
or sets. Although these unambiguous specifications can reduce the ambiguity in a
requirements document, most customers don’t understand a formal specification.
They cannot check that it represents what they want and are reluctant to accept it as
a system contract
Structure of a Good Requirement
Defines a subject
Shall or should verb
“The system shall allow the Internet user to access
his current account balance in less than 5 seconds.”
Defines a positive end result
Performance criteria
•This requirement sentence identifies a specific
subject and end result that is wanted within a
specified time that is measurable.
– The challenge is to seek out the subject, end result,
and success measure in every requirement you
define!
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
36
Example of a Bad Requirement
Cannot write a requirement on the user
No identifier for the verb
“The Internet user quickly sees the balance of her
account on the laptop screen .”
Vague quality criterion
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
What versus how
37
Standard for Writing a Requirement
–Each requirement must first form a complete
sentence
• Not a bullet list of buzzwords
–Each requirement contains a subject and predicate
• Subject: a user type or the system under discussion
• Predicate: a condition, action, or intended result.
–Consistent use of the verb:
• “shall,” “will”, or “must” to show mandatory nature
• “should” or “may” to show optionality
• Usually, shall and should are used.
–A requirement contains a success criterion or
other measurable indication of the quality.
–A requirement describes what must be done,
rather than how.
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
38
Writing errors to Avoid
•Never describe how the system is going to
achieve something (over-specification), always
describe what the system is supposed to do
–Refrain from designing the system
• Danger signs: using names of components, materials,
software objects, fields & records in the user or system
requirements
–Designing the system too early may possibly increase
system costs
–Do no mix different kinds of requirements (e.g.,
requirements for users, system, and how the system
should be designed, tested, or installed)
–Do not mix different requirements levels (e.g., the
system and subsystems)
• Danger signs: high level requirements mixed in with
database design, software terms, or very technical terms
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
39
Writing errors to Avoid
•“What versus how” test
The system shall use Microsoft Outlook to send an
email to the customer with the purchase confirmation.
X
The system shall inform the customer
that the purchase is confirmed.
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
40
Writing errors to Avoid
•Never build in let-out or escape clauses
–Requirements with let-outs or escapes are dangerous
because of problems that arise in testing
–Danger signs: if, but, when, except, unless, although
• These terms may however be useful when the
description of a general case with exceptions is much
clearer and complete that an enumeration of specific
cases
•Avoid ambiguity
–Write as clearly and explicitly as possible
–Ambiguities can be caused by:
• The word or to create a compound requirement
• Poor definition (giving only examples or special cases)
• The words etc, …and so on (imprecise definition)
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
41
Writing errors to Avoid
•Do not use vague indefinable terms
–Many words used informally to indicate quality are too vague
to be verified
–Danger signs: user-friendly, highly versatile, flexible, to the
maximum extent, approximately, as much as possible,
minimal impact
X
The Easy Entry System shall be easy to use and require
a minimum of training except for the professional mode.
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
42
Writing errors to Avoid
•Do not make multiple requirements
–Keep each requirement as a single sentence
–Conjunctions (words that join sentences together) are
danger signs: and, or, with, also
•Do not use
–Long sentences with arcane language
–References to unreachable documents
X
The Easy Entry Navigator module shall consist of order
entry and communications, order processing, result
processing, and reporting. The Order Entry module shall be
integrated with the Organization Intranet System and
results are stored in the group’s electronic customer record.
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
43
Writing errors to Avoid
•Do not speculate
– There is no room for “wish lists” – general terms about things that
somebody probably wants
– Danger signs: vague subject type and generalization words such
as usually, generally, often, normally, typically
•Do not express suggestions or possibilities
– Suggestions that are not explicitly stated as requirements are
invariably ignored by developers
– Danger signs: may, might, should, ought, could, perhaps,
probably
•Avoid wishful thinking
– Wishful thinking means asking for the impossible (e.g., 100%
reliable, safe, handle all failures, fully upgradeable, run on all
platforms)
X
The Easy Entry System may be fully adaptable to all
situations and often require no reconfiguration by the user.
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
44
Requirements problem example
• “LIBSYS will be configurable so that it will comply
with the requirements of international copyright
legislation. Minimally, this means that LIBSYS must
provide a form for the user to sign the Copyright
Declaration statement. It also means that LIBSYS
must keep track of Copyright Declaration
statements which have been signed/not-signed.
Under no circumstances must an order be sent to
the supplier if the copyright statement has not been
signed.”
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
Dig out the problems in this
requirement
45
Problems in example requirement
• Incompleteness
–
–
–
–
What international copyright legislation is relevant?
What happens if the copyright declaration is not signed?
If a signature is a digital signature, how is it assigned?
Recommendation:
• Define all copyright legislation as a separate requirement
• Reword requirement as “ copyright declaration must be signed
before order is complete
• Introduce a new requirement for signature assignment
• Ambiguity
– What does signing an electronic form mean? Is this a physical
signature or a digital signature?
• Define what is meant by “signature”
• Standards
– More than 1 requirement. Maintenance of copyright is one
requirement; issue of documents is another
• Split the requirements in two or three separate requirements
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
46
Acknowledgement
• SWEBOK Chapter 4
• Requirements Engineering: A Roadmap
– Bashar Nuseibeh
• Software Requirements Engineering: What, Why,
Who, When and How
– Linda westfall
• Chapter 4 Software Engineering 9th edition – Ian
Sommerville
• Requirements Engineering – Kotonya &
Sommerville
Adv Software Engg, MSCS 19, by Asst Prof Athar Mohsin, MCS-NUST
47