Module 2 - Requirement Modelling
Module 2 - Requirement Modelling
Prof.Jigar Dave
SOE
R K University
8469766496
The process to gather the software
requirements from client, analyze, and
document them is known as requirement
engineering.
The process of collecting the software
requirement from the client then understand,
evaluate and document it is called as
requirement engineering.
Requirement engineering makes a bridge for
design and construction
Requirement engineering consists of seven
different tasks as follow:
1. Inception
2. Elicitation
3. Elaboration
4. Negotiation
5. Specification
6. Validation
7. Requirement management
Inception is a task where the requirement
engineering asks a set of questions to
establish a software process.
In this task, it understands the problem and
evaluates with the proper solution.
It collaborates with the relationship between
the customer and the developer.
The developer and customer decide the
overall scope and the nature of the Project.
Elicitation means to find the requirements from
anybody.
The requirements are difficult because the following
problems occur in elicitation.
system
description Everyone knew exactly
what had to be done
analysis until someone wrote it
down!
model
design
model
18
Broadly software requirements should be
categorized in these categories:
1. Functional Requirements
2. Non-Functional Requirements .
3. User Interface requirements .
Requirements, which are related to functional
aspect of software fall into this category.
They define functions and functionality within
and from the software system.
EXAMPLES -
◦ Search option given to user to search from various
invoices.
◦ User should be able to mail any report to management.
◦ Users can be divided into groups and groups can be
given separate rights.
◦ Should comply business rules and administrative
functions.
◦ Software is developed keeping downward compatibility
intact.
Requirements, which are not related to
functional aspect of software, fall into this
category.
Non-functional requirements include –
Security
Logging
Storage
Configuration
Performance
Cost
Interoperability
Flexibility
Disaster recovery
Accessibility
Requirements are categorized logically as:
Must Have : Software cannot be said operational
without them. (Core Features)
Should have : Enhancing the functionality of
software. (For better system)
Could have : Software can still properly function
with these requirements.
Wish list : These requirements do not map to
any objectives of software.
While developing software, „Must have‟ must be
implemented, „Should have‟ is a matter of
debate with stakeholders, whereas „Could have‟
and „Wish list‟ can be kept for software updates
User Interface (UI) is an important part of any
software or hardware . A software is widely
accepted if it is –
easy to operate
quick in response
effectively handling operational errors
providing simple yet consistent user interface
User interface requirements are briefly mentioned below –
Content presentation
Easy Navigation
Simple interface
Responsive
Consistent UI elements
Feedback mechanism
Default settings
Purposeful layout
Strategically use of color and texture.
Provide help information
User centric approach
Group based view settings.
It is a four step process, which includes –
Feasibility Study
Requirement Gathering
Software Requirement Specification(SRS)
Software Requirement Validation (SRV)
When the client approaches the organization for
getting the desired product developed, it comes
up with a rough idea about what all functions the
software must perform and which all features are
expected from the software.
Referencing to this information, the analysts do a
detailed study about whether the desired system
and its functionality are feasible to develop.
This feasibility study is focused towards goal of
the organization.
This study analyzes whether the software
product can be practically Devloped in terms
of implementation, contribution of project to
organization, cost constraints, and as per
values and objectives of the organization.
The output of this phase should be a
feasibility study report that should contain
acceptable comments and recommendations
for management after the project should be
started.
If the feasibility report is positive towards
starting the project, next phase starts with
gathering requirements from the user.
Analysts and engineers communicate with the
client and end-users to know their ideas on
what the software should provide and which
features they want the software to include
SRS is a document created by system analyst
after the requirements are collected from various
investors.
SRS defines how the intended software will
interact with hardware, external devices, speed of
operation, response time of system, portability of
software across various platforms,
maintainability, Security, Quality, Limitations etc.
The requirements received from client are written
in natural language. It is the responsibility of the
system analyst to document the requirements in
technical language so that they can be
understood and used by the software
development team.
SRS should come up with the following features:
56
Each of the data object has a set of attributes.
Many to many(M:M)
Many events of one object are related to many events of
another object.
For example, many customer place order for many
products.
Modality
If an event relationship is an optional then the modality of
relationship is zero.
If an event of relationship is compulsory then modality of
relationship is one.
Functional Modelling gives the process
perspective of the object-oriented analysis
model and an overview of what the system is
supposed to do.
It defines the function of the internal
processes in the system with the aid of Data
Flow Diagrams (DFDs).
The functional model addresses two processing
elements of the WebApp, each
representing a different level of procedural
abstraction: (1) user-observable functionality
that is delivered by the WebApp to end users,
and (2) the operations contained within analysis
classes that implement behaviors associated
with the class.
Functional Modelling is represented through
a hierarchy of DFDs.
The DFD is a graphical representation of a
system that shows the inputs to the system,
the processing upon the inputs, the outputs
of the system as well as the internal data
stores.
DFDs illustrate the series of transformations
or computations performed on the objects or
the system, and the external controls and
objects that affect the transformation.
Processes - Processes are the computational
activities that transform data values. A whole
system can be visualized as a high-level process.
A process may be further divided into smaller
components. The lowest-level process may be a
simple function.
Representation in DFD − A process is
represented as an ellipse with its name written
inside it and contains a fixed number of input
and output data values.
Example − The following figure shows a process
Compute_HCF_LCM that accepts two integers as
inputs and outputs their HCF (highest common
factor) and LCM (least common multiple).
Data Flows - Data flow represents the flow of data
between two processes. It could be between an
actor and a process, or between a data store and a
process. A data flow denotes the value of a data
item at some point of the computation. This value
is not changed by the data flow.
Actors - Actors are the active objects that interact
with the system by either producing data and
inputting them to the system, or consuming data
produced by the system. In other words, actors
serve as the sources and the sinks of data.
Data Stores - Data stores are the passive objects
that act as a repository of data. Unlike actors,
they cannot perform any operations. They are
used to store data and retrieve the stored data.
They represent a data structure, a disk file, or a
table in a database.
Example − Let us consider a software system,
Wholesaler Software, that automates the
transactions of a wholesale shop. The shop sells
in bulks and has a clientele comprising of
merchants and retail shop owners. Each customer
is asked to register with his/her particulars and
is given a unique customer code, C_Code. Once a
sale is done, the shop registers its details and
sends the goods for dispatch. Each year, the
shop distributes Christmas gifts to its customers,
which comprise of a silver coin or a gold coin
depending upon the total sales and the decision
of the proprietor.
The behavioral model indicates how software
will respond to external events. To create the
model, you should perform the following steps:
1. Evaluate all use cases to fully understand the
sequence of interaction within the system.
2. Identify events that drive the interaction
sequence and understand how these events
relate to specific objects.
3. Create a sequence for each use case.
4. Build a state diagram for the system.
5. Review the behavioral model to verify accuracy
and consistency.
(Design) Sequence Diagrams
Communication Diagrams or collaboration
diagram
State Diagrams or state machine
diagram or state chart
In the context of behavioral modeling, two
different characterizations of states must
be considered: (1) the state of each class as
the system performs its function and
(2) the state of the system as observed from
the outside as the system performs its
function
The state of a class takes on both passive and
active characteristics .
A passive state is simply the current status of all
of an object‟s attributes.(eg : a Player is Playing
Video Game . would include the current position
and orientation attributes of Player as well as
other features of that are relevant to the game).
The active state of an object indicates the current
status of the object as it undergoes a continuing
transformation or processing.(eg :- Player might
have the following active states: moving, at rest,
injured, being smoked;trapped, lost, and so
onwards. An event (sometimes called a trigger)
must occur to force an object to make a
transition from one active state to another.