Chapter_4
Chapter_4
1
Chapter
Outline
Fundamental requirements gathering techniques
2 2
Fundamental requirements gathering
techniques
Individually interview people informed about the operation and issues of the
current
system and future systems needs.
Interview groups of people with diverse needs to fid interactions and contrasts
among system requirements
Observe workers at selected times to see how data are handled and what
information
people need to do their jobs.
Study business documents/document analysis to discover reported issues, policies,
rules, and directions as well as concrete examples of the use of data and information
in the org.
What can the analysis of documents tell you about the requirements for a7 new
Cntd…
In documents you can find information about the following:
Problems with existing systems (e.g., missing information or redundant steps
Opportunities to meet new needs if only certain information or information
processing were available (e.g., analysis of sales based on customer type)
Organizational direction that can influence information system requirements (e.g.,
trying
to link customers and suppliers more closely to the organization)
Titles and names of key individuals who have an interest in relevant existing systems
(e.g., the name of a sales manager who led a study of the buying behavior of key
customers)
Values of the organization or individuals who can help determine priorities for
different capabilities desired by different users (e.g., maintaining market share even
if it means lower short-term profits
7
An Overview of Requirements
Elicitation
Requirements elicitation focuses on describing the purpose of the system.
The client, the developers, and the users identify a problem area and define a
system
that addresses the problem.
Such a definition is called a requirements specification and serves as a
contract
between the client and the developers.
The requirements specification is structured and formalized during analysis to
produce an analysis model.
Both requirements specification and analysis model represent the same information.
They differ only in the language and notation they use;
the requirements specification is written in natural language,
7
Cntd
…
The requirements specification supports the communication with the client and users.
The analysis model supports the communication among developers.
Both models represent the same aspects of the system, requirements elicitation and
analysis occur concurrently and iteratively.
Requirements elicitation and analysis focus only on the user’s view of the system.
For example, the system functionality, the interaction between the user and the
system, the errors that the system can detect and handle, and the environmental
conditions in which the system functions are part of the requirements.
The system structure, the implementation technology selected to build the system, the
system design, the development methodology, and other aspects not directly visible
to user are not part of the
the
requirements. 7
Cntd
…
Requirements elicitation includes the following activities:
Identifying actors. During this activity, developers identify the different types of
users
the future system will support.
Identifying scenarios. During this activity, developers observe users and develop a set
of
detailed scenarios for typical functionality provided by the future system. Scenarios
are
concrete examples of the future system in use. Developers use these
scenarios to communicate with the user and deepen their understanding of the
application domain.
Identifying use cases. Once developers and users agree on a set of scenarios,
When describing use cases, developers determine the scope of the
developers derive from the scenarios a set of use cases that completely represent the
7
system.
Cntd
Refining use cases. … developers ensure that the requirements
During this activity,
specification is complete by detailing each use case and describing the behavior of the
system in the presence of errors and exceptional conditions.
Identifying relationships among use cases. During this activity, developers identify
dependencies among use cases. They also combine the use case model by factoring
out
common functionality.
This ensures that the requirements specification is consistent.
Identifying nonfunctional requirements. During this activity, developers, users, and
clients agree on aspects that are visible to the user, but not directly related to
functionality.
These include constraints on the performance of the system, its documentation,
7
the
Cntd
During requirements elicitation, …
developers access many different sources of
information, including client-supplied documents about the application domain,
manuals and technical documentation of legacy systems that the future system will
replace, and most important, the users and clients themselves.
Developers interact the most with users and clients during requirements elicitation.
We focus on two methods for eliciting information, making with users
and
decisions clients, and managing dependencies among requirements and other
Joint Application Design (JAD) focuses on building consensus among developers, users,
artifacts:
and
clients by jointly developing the requirements specification.
Traceability focuses on recording, structuring, linking, grouping, and
maintaining dependencies among requirements and between requirements and other
7
Cntd
…
In particular, we describe
Functional Requirements
Nonfunctional Requirements
Functional Requirements
Functional requirements describe the interactions between the and
its
system environment independent of its implementation.
The environment includes the user and any other external system with which
the system interacts.
7
Cntd…
Nonfunctional Requirements describe aspects of the system that are not directly related
to
the functional behavior of the system.
It include a broad variety of requirements that apply to many different aspects
of the system, from usability to performance.
The following are categories of nonfunctional requirements:
Usability is the ease with which a user can learn to operate, prepare inputs for,
and interpret outputs of a system or component.
Usability requirements include, for example, conventions adopted by the user
interface,
the scope of online help, and the level of user documentation.
Often, clients address usability issues by requiring the developer to follow user
7
interface
Cntd
…
Reliability is the ability of a system or component to perform its required
functions
under stated conditions for a specified period of time. Reliability requirements
include,
for example, an acceptable mean time to failure and the ability to detect specified faults
or to withstand specified security attacks.
Dependability includes reliability, robustness (the degree to which a system or
component can function correctly in the presence of invalid inputs or stressful
environment conditions), and safety (a measure of the absence of catastrophic
consequences to the environment).
Performance requirements are concerned with quantifiable attributes of the system,
work the system can accomplish within a specified amount of 7
such as response time (how quickly the system reacts to a user input), throughput
time),
Cntd
…
Availability (the degree to which a system or component is operational and
accessible
Supportability requirements are concerned with the ease of changes to the system after
deployment, including for example, adaptability (the ability to change the system to
change the system to deal with new technology or to fix defects), and
7
Developing a supplementary
Specification
The Supplementary Specification provides an overview of the entire document.
7
Identifying Change Cases
Change cases are used to describe new potential requirements for a system
or
modifications to existing requirements.
Change cases are modeled in a simple manner.
You describe the potential change to your existing requirements, indicate the
likeliness
of that change occurring, and indicate the potential impact of that change.
Figure 1 presents two change cases, one potential change that is motivated by technical
innovation-in this case the use of the Internet-and a second by a change in your
business environment. Notice how both change cases are short and to the point, making
them easy-to-understand.
7
The name of a change case should describe the potential change itself.
Cntd…
figure: change
7
case
Cntd…
Change cases can be identified throughout the course of your overall development
effort.
Change cases are often the result of brainstormingwith your stakeholders.
Good
questions to consider include:
How can the business change?
What is the long-term vision for our organization?
What technology can change?
What legislation can change?
What is your competition doing?
What systems will we need to interact with?
7
Ensuring Your Requirements Are
correct: Requirement validation
Techniques
1
Chapter
Outline
Testing Early and Often
2 2
Requirements Validation
Validation denotes checking whether inputs, performed activities, and created outputs
(requirements artifacts) of the requirements engineering core activities fulfill defined
quality criteria.
Validation is performed by involving relevant stakeholders, other requirement
sources
(standards, laws, etc.) as well as external reviewers, if necessary.
Quality Criteria
Completeness: The requirement must contain all relevant information (template).
Consistency: The requirements must be compatible with each other.
Adequacy: The requirements must address the actual needs of the system.
Unambiguity: Every requirement must be described in a way that precludes
different interpretations. . 3
Comprehensibility: The requirements must be understandable by the stakeholders
Cntd
…
Importance: Each requirement must indicate how essential it is for the success of the project.
3
0
Validation
Validation Techniques
Techniques
Inspections
Desk-Checks
Walkthroughs
Prototypes
7
Cntd
Desk-Checks …
The author of a requirement artifact distributes the artifact to
a set of
stakeholders.
The stakeholders check the artifact individually.
7
Cntd
Walkthrough …
A walkthrough does not have formally defined procedure and does not
require a
differentiated role assignment.
Checking early whether an idea is feasible or not.
33
Prototype
A prototype allows the s
stakeholders to try out the requirements for the system
and
experience
them thereby.
Collect issues
34
What is Early Testing: Test Early, Test Often BUT
How?
What is E arly Testing?
Software testing should start early in the Software Development Life Cycle.
This helps to capture and eliminate defects in the early stages of SDLC i.e
requirement gathering and design phases.
An early start to testing helps to reduce the number of defects and ultimately the
rework cost in the end.
The various aspects of Early Testing which would help the Managers and Leads
while developing or devising the Testing Strategy document in SDLC.
Adoption of Early Test will immensely result in the successful delivery of a Quality
Product.
35
Principles of
Testing
36
Cntd…
For a given Software or System or Product release in SDLC, there are various
well-
defined methodologies or strategies for most of the following Principles of Testing.
So, the following questions should answer?
What is Testing?
Why Testing?
What to Test?
How to Test?
For easy understanding of the audience, we have included all the ‘grey area’
under one umbrella called E arly
questions
13
Cntd… .
Why Testing Early in SDLC?
Some events and activities which are a part of testing.
The Program Management Team assigns a Program Manager (PM) to a given Software
Release or a Project.
The PM in collaboration with all the stakeholders including Marketing,
Development,
QA (Quality Assurance )and Support teams comes up with a Release
Schedule Software Release Testing Schedule
Most of the organizations still follow the traditional Time Based Release (TBR) models
where the Software or Product releases are planned for quarterly or half-yearly or
yearly delivery.
Predominantly, the Waterfall model is used for executing such Software releases.38
Cntd…
(TTM) model, there is a need to break the typical mindset to unearth maximum
defects early in a Release cycle, especially identification of critical and high severity
defects.
Any or all of the above will have a negative impact on the Organization’s business.
In this context, adopting ‘Early Testing’ as a separate Test activity will be beneficial
The Scope of Early Testing Effort: Testing Early as a new activity to be tracked exclusively
effort as explained 19
Cntd…
Assumption:
The entire Project or Software Release schedule is approved and made available to all
the
stakeholders.
Overall Test Strategy document is developed, reviewed, and approved by all
the
stakeholders.
High, Medium, Low priority features to be tested are well documented.
Test Plans and Test cases for all the Features are developed, reviewed, and approved by
all the stakeholders.
All Test Plans and Test Cases are uploaded to a central repository for tracking testing
execution.
testbed(s) and executing Test
All human resources, infrastructure equipment, and tools are available for setting20 up
Cntd…
7
Cntd…
Conclusion
Customers or end-users buy or adopt serviceability products or a system or solutions.
Validating a software that is running on such system or products for its serviceability
is the primary requirement.
Key components of Principles of Testing like Why to Test? What is Testing? What
to
Test? How to Test? are mostly well defined and understood.
However, there are some lasting questions that keep supporting up in the mind of the
Readers, Testers, Leads, and Managers on concepts like Early Testing.
Adoption of Early Testing as an integral activity of the overall Testing Schedule for
any given Software Project or a Release immensely benefits the Organization to
deliver a robust qualified Product or a System.
The importance of Early Testing in your career? Feel free to share your thoughts
22
and
Use Case Scenario
Testing
Generating Test Cases from Use Cases
The verification of the correct implementation of use eases is a vital task in
software
development and quality assurance.
Nowadays, use cases are a widely used technique to define the functional requirements
of
software systems.
There are two main gaps in the generation of test cases from use cases: lack of automatism
and absence of empirical evaluation.
The automatism of scenarios analysis written in natural language (first gap) has been
resolved using language patterns and regular expressions for extracting information from
use case templates.
studies to measure and evaluate the effectiveness of scenario analysis 23
The main goal of empirical evaluation and its original contribution is the execution of
Cntd
…
The scenario analysis technique is a common technique for generating test cases from
use
cases.
It identifies the scenarios from a use case and generates test cases from them.
A use case is mainly defined by natural language and it is mainly composed
of steps.
In Thus, the first task is to translate the behavior of a use case into a more
formal
model.
An UML Activity diagram has been chosen to define the behavior of a use case.
An Activity diagram allows indicating if an action is performed by the system or by
an
external action; it includes different execution flows. 24
Cntd
…
7
Cntd
…
7
Cntd
…
Then, use case scenarios are derived from the activity diagram.
If the activity diagram has not got any loops, as in figure 1, the all-scenarios criterion
selects the paths that go through all output object-flow edges from decision nodes at
least once.
If the activity diagram has got some loops, the all-scenarios criterion selects the paths
that go through all output object flow edges from decision nodes and all combinations
The numbers in each test case indicates the activities and decisions traversed from
the
activity 27
Cntd
…
52
Cntd
…
Test case generation, Test cases were generated over the activity diagram generated
from
each use case Scenario.
Any question???
25