Software Requirement Engineering Guide
Software Requirement Engineering Guide
Requirement
Analysis
PAGE 1
TYPES OF REQUIREMENTS
FEASIBILITY STUDY
PAGE 2
4 step Process
Requirement
Feasibility Study
Requirement Gathering
Engineering
Software Requirement Outline
Specification
Software Requirement validation
PAGE 3
Requirement Engineering
The software requirements are description of features and functionalities of the target system.
Requirements convey the expectations of users from the software product. The requirements can
be obvious or hidden, known or unknown, expected or unexpected from client’s point of view.
Requirement Engineering
The process to gather the software requirements from client, analyze and document them is known as
requirement engineering.
The goal of requirement engineering is to develop and maintain sophisticated and descriptive ‘System
Requirements Specification’ document.
Referencing to this information, the analysts does 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 materialized in terms of implementation, contribution of project to
organization, cost constraints and as per values and objectives of the organization. It explores technical
aspects of the project and product such as usability, maintainability, productivity and integration
ability.
The output of this phase should be a feasibility study report that should contain adequate comments
and recommendations for management about whether or not the project should be undertaken.
SRS defines how the intended software will interact with hardware, external interfaces, speed of
operation, response time of system, portability of software across various platforms, maintainability,
speed of recovery after crashing, Security, Quality, Limitations etc.
The requirements received from client are written in natural language. It is the responsibility of system
analyst to document the requirements in technical language so that they can be comprehended and
useful by the software development team.
PAGE 9
Elicitation Techniques
Interviews
Brainstorming Sessions
Facilitated Application Specification
Technique (FAST) Requirement
Quality Function Deployment (QFD) Elicitation
Use Case Approach Techniques
Surveys
Questionnaires
Task Analysis
Domain Analysis
Observation
PAGE 10
Elicitation Techniques
Brainstorming Sessions:
It is a group technique
It is intended to generate lots of new ideas hence providing a platform to share
views
A highly trained facilitator is required to handle group bias and group conflicts.
Every idea is documented so that everyone can see it.
Finally, a document is prepared which consists of the list of requirements and
their priority if possible.
An informal debate is held among various stakeholders and all their inputs are
recorded for further requirements analysis.
PAGE 12
Elicitation Techniques
PAGE 13
Elicitation Techniques
PAGE 14
Elicitation Techniques
PAGE 15
Elicitation Techniques
PAGE 16
Elicitation Techniques
Use Case Approach:
Actor – It is the external agent that lies outside the system but interacts with it
in some way. An actor maybe a person, machine etc. It is represented as a stick
figure. Actors can be primary actors or secondary actors.
Primary actors – It requires assistance from the system to achieve a goal.
Secondary actor – It is an actor from which the system needs assistance.
Use cases – They describe the sequence of interactions between actors and
the system. They capture who(actors) do what(interaction) with the system. A
complete set of use cases specifies all possible ways to use the system.
Use case diagram – A use case diagram graphically represents what happens
when an actor interacts with a system. It captures the functional aspect of the
system.
A stick figure is used to represent an actor.
An oval is used to represent a use case.
A line is used to represent a relationship between an actor and a use case.
PAGE 17
Elicitation Techniques
PAGE 18
Elicitation Techniques
PAGE 19
Software Design Tools
Software analysis and design includes all activities, which help the
transformation of requirement specification into implementation.
Requirement specifications specify all functional and non-functional
expectations from the software.
These requirement specifications come in the shape of human
readable and understandable documents, to which a computer has
nothing to do.
Software analysis and design is the intermediate stage, which helps
human-readable requirements to be transformed into actual code.
PAGE 20
Data Flow Diagram
Logical DFD - This type of DFD concentrates on the system process, and flow of data in the
[Link] example in a Banking software system, how data is moved between different
entities.
Physical DFD - This type of DFD shows how the data flow is actually implemented in the system.
It is more specific and close to the implementation.
PAGE 21
Data Flow Diagram - Components
DFD can represent Source, destination, storage and flow of data using the following set
of components -
Entities are source and destination of information data.
Entity
Entities are represented by a rectangles with their respective names.
Level 0: Highest abstraction level DFD is known as Level 0 DFD, which depicts the entire
information system as one diagram concealing all the underlying details. Level 0 DFDs
are also known as context level DFDs.
Online Shopping System
Delivery
Order Customer
PAGE 23
Data Flow Diagram - Levels
Level 1: The Level 0 DFD is broken down into more specific, Level 1 DFD. Level 1 DFD depicts basic modules in the
system and flow of data among various modules. Level 1 DFD also mentions basic processes and sources of
information. Accounts
Finance
Verification
Order
Customer Data Processing Sales
Verify Issue
Return
Process Order
Sales
Delivery
Order
Customer PAGE 24
Data Flow Diagram - Levels
Level 2: At this level, DFD shows how data flows inside the modules
mentioned in Level 1.
Higher level DFDs can be transformed into more specific lower level DFDs
with deeper level of understanding unless the desired level of specification
is achieved.
PAGE 25
Structure Chart
Structure chart is a chart derived from Data Flow Diagram. It represents the
system in more detail than DFD. It breaks down the entire system into
lowest functional modules, describes functions and sub-functions of each
module of the system to a greater detail than DFD.
PAGE 26
Structure Chart - Module
PAGE 27
Structure Chart - Condition
Module
Module Module
PAGE 28
Structure Chart - Jump
An arrow is shown pointing inside the module to depict that the control will
jump in the middle of the sub-module.
Module
Module
PAGE 29
Structure Chart - Loop
Module
PAGE 30
Structure Chart – Data flow
A directed arrow with empty circle at the end represents data flow.
Module
Labels
Labels
Module
PAGE 31
Structure Chart – Control flow
A directed arrow with filled circle at the end represents control flow.
Module
Labels
Labels
Module
PAGE 32
HIPO Diagram
Online Sales
Inventory Payment
Authentication Dispatch Item
Check Process
Generate
Issue_Item Item_Missing
Invoice
Deduct
Inventory
PAGE 34
HIPO Diagram
In contrast to IPO (Input Process Output) diagram, which depicts the flow of
control and data in a module, HIPO does not provide any information about
data flow or control flow.
Authentication
PAGE 35
Data Dictionary
PAGE 36
Data Dictionary - Requirement
The data is referenced via data dictionary while designing and implementing
software. Data dictionary removes any chances of ambiguity. It helps
keeping work of programmers and designers synchronized while using same
object reference everywhere in the program.
PAGE 37
Data Dictionary - Contents
Data elements consist of Name and descriptions of Data and Control Items,
Internal or External data stores etc. with the following details:
Primary Name
Secondary Name (Alias)
Use-case (How and where to use)
Content Description (Notation etc. )
Supplementary Information (preset values, constraints etc.)
PAGE 39
Data Dictionary – Store, Processing
It stores the information from where the data enters into the system and
exists out of the system. The Data Store may include :
Files
Internal to software.
External to software but on the same machine.
External to software and system, located on different machine.
Tables
Naming convention
Indexing property
Data Processing
There are two types of Data Processing:
PAGE 40
Entity – Relationship Model
Entity-Relationship model is a type of database model based on the notion of real world entities and
relationship among them. We can map real world scenario onto ER database model. ER Model creates a
set of entities with their attributes, a set of constraints and relation among them.
ER Model is best used for the conceptual design of database. ER Model can be represented as follows :
PAGE 41
Entity – Relationship Model
Entity - An entity in ER Model is a real world being, which has some
properties called attributes. Every attribute is defined by its corresponding
set of values, called domain. For example, Consider a school database.
Here, a student is an entity. Student has various attributes like name, id, age
and class etc.
Relationship - The logical association among entities is called relationship.
Relationships are mapped with entities in various ways. Mapping
cardinalities define the number of associations between two entities.
Mapping cardinalities:
one to one
one to many
many to one
many to many
PAGE 42
Function Point Analysis
PAGE 43
Function Point Analysis - Objectives
The objective of FPA is to measure the functionality that the user requests
and receives.
The objective of FPA is to measure software development and maintenance
independently of the technology used for implementation.
It should be simple enough to minimize the overhead of the measurement
process.
It should be a consistent measure among various projects and
organizations.
PAGE 44
Function Point Analysis - Types
There are basically two types of Functional Point Analysis, that are listed
below.
Transactional Functional Type
Data Functional Type
There are basically two types of Functional Point Analysis, that are listed
below.
Transactional Functional Type
Data Functional Type
PAGE 47
Function Point Analysis - Characteristics
We can calculate the function point with the help of the number of
functions and types of functions used in application. These are classified
into five types:
Measurement Parameters Examples
Number of External Inputs (EI) Input Screen and Tables
Number of External Output (EO) Output Screens and Reports
Number of External Inquiries (EQ) Prompts and Interrupts
Number of Internal Files (ILF) Databases and Directories
Number of External Interfaces (EIF) Shared databases and shared routines
PAGE 50
Function Point Analysis – 14 Questions
PAGE 51
Function Point Analysis – Numerical 1
Given the following values, compute function point when all complexity
adjustment factor (CAF) and weighting factors are average.
User Input = 50
User Output = 40
User Inquiries = 35
User Files = 6
External Interface = 4
Given the following values, compute function point when all complexity
adjustment factor (CAF) and weighting factors are average.
User Input = 50
User Output = 40
User Inquiries = 35
User Files = 6
External Interface = 4
Given the following values, compute function point when all complexity
adjustment factor (CAF) and weighting factors are average.
Given the following values, compute function point when all weighting factors
are High.
User Input = 60
User Output = 50
User Inquiries = 25
User Files = 8
External Interface = 5
Given the following values, compute function point when all complexity
adjustment factor (CAF) and weighting factors are given as follows.
• A line of code (LOC) is any line of text in a code that is not a comment or
blank line, and also header lines, in any case of the number of statements or
fragments of statements on the line.
• LOC clearly consists of all lines containing the declaration of any variable,
and executable and non-executable statements.
• As Lines of Code (LOC) only counts the volume of code, you can only use it
to compare or estimate projects that use the same language and are coded
using the same coding standards.
PAGE 57
LOC – Lines of Code – Features, Advantages, Disadvantages
• Variations such as “source lines of code”, are used to set out a codebase.
• LOC is frequently used in some kinds of arguments.
• They are used in assessing a project’s performance or efficiency.
• Very difficult to estimate the LOC of the final program from the problem
specification.
• It correlates poorly with quality and efficiency of code.
• It doesn’t consider complexity.
PAGE 58
LOC – Lines of Code – Example 1
void main()
{
int fN, sN, tN;
cout << "Enter the 2 integers: ";
cin >> fN >> sN;
// sum of two numbers in stored in variable sum
sum = fN + sN;
// Prints sum
cout << fN << " + " << sN << " = " << sum;
return 0;
}
Calculate the LOC of the above code
PAGE 60
COCOMO
• Cocomo (Constructive Cost Model) is a regression model based on LOC, i.e number of
Lines of Code.
• Cocomo (Constructive Cost Model) is one of the model for cost estimation and project
planning. If you want to do any project planning, you need to know the size of the product
and cost estimation of the product.
• Used to calculate the effort, development time, Average staff size and productivity
• It is a procedural cost estimate model for software projects and is often used as a process
of reliably predicting the various parameters associated with making a project such as
size, effort, cost, time, and quality.
• It was proposed by Barry Boehm in 1981 and is based on the study of 63 projects, which
makes it one of the best-documented models.
PAGE 61
COCOMO
• The key parameters which define the quality of any software products, which are also an
outcome of the Cocomo are primarily Effort & Schedule:
• Effort: Amount of labor that will be required to complete a task. It is measured in person-
months units.
• Schedule: Simply means the amount of time required for the completion of the job, which is,
of course, proportional to the effort put in. It is measured in the units of time such as weeks,
and months.
PAGE 62
COCOMO - Models
PAGE 63
COCOMO - Models
• 1. Organic – A software project is said to be an organic type if the team size required is
adequately small, the problem is well understood and has been solved in the past and
also the team members have a nominal experience regarding the problem.
• 3. Embedded – A software project requiring the highest level of complexity, creativity, and
experience requirement fall under this category. Such software requires a larger team size
than the other two models and also the developers need to be sufficiently experienced
and creative to develop such complex models. PAGE 64
Function Point Analysis – 14 Questions Scale rating
PAGE 66
COCOMO - Models
• Basic COCOMO Model – Formula for Cost Estimation
𝐸 = 𝑎(𝐾𝐿𝑂𝐶)𝑏
E = Effort
𝑡𝑖𝑚𝑒 = 𝑐(𝐸𝑓𝑓𝑜𝑟𝑡)𝑑 a,b,c,d are co - efficients
Software Projects a b c d
Organic 2.4 1.05 2.5 0.38
Semi – detached 3.0 1.12 2.5 0.35
Embedded 3.6 1.20 2.5 0.32
• The effort is measured in Person-Months and as evident from the formula is dependent
on Kilo-Lines of code. The development time is measured in months.
PAGE 67
COCOMO – Numerical 1
Suppose that a project was estimated to be 400 KLOC, Calculate the effort and
development time for each of the three modes/classes i.e. Organic, Semi –
Detached and embedded. Consider the basic COCOMO model.
Mode / Class Effort Development Time
Organic 1295.31 38.07
Semi – Detached 2462.79 38.45
Embedded 4772.81 38
PAGE 68
COCOMO – Numerical 2
PAGE 69
COCOMO – Intermediate
PAGE 70
COCOMO – Intermediate – 15 COST Drivers
• Product Attributes
1. Required Software Reliability (RELY)
2. Database Size (DATA)
3. Product Complexity (CPLX)
• Computer Attributes
1. Execution time Constraints (TIME)
2. Main Storage Constraints (STOR)
3. Virtual Machine volatility (VIRT)
4. Computer turnaround time (TURN)
PAGE 71
COCOMO – Intermediate – 15 COST Drivers
• Personnel Attributes
1. Analyst Capability (ACAP)
2. Application Experience (AEXP)
3. Programmer Capability (PCAP)
4. Virtual Machine Experience (VEXP)
5. Programming Language Experience (LEXP)
• Project Attributes
1. Modern Programming Practices (MODP)
2. Use of Software tools (TOOL)
3. Required development schedule (SCED)
PAGE 72
COCOMO – Intermediate – 15 COST Drivers
• Each Cost driver is divided into 6 categories i.e. Very Low, Low, Nominal, High, Very
High, Extra High. Applied to what extent the Cost driver applies to the project
Product Very Low Low Nominal High Very High Extra High
Attributes
RELY 0.75 0.88 1.00 1.15 1.40 ----
DATA ---- 0.94 1.00 1.05 1.16 ----
CPLX 0.70 0.85 1.00 1.15 1.30 1.65
Computer Very Low Low Nominal High Very High Extra High
Attributes
TIME ---- ---- 1.00 1.11 1.30 1.66
STOR ---- ---- 1.00 1.06 1.21 1.56
VIRT ---- 0.87 1.00 1.15 1.30 ----
TURN ---- 0.87 1.00 1.07 1.15 ----
PAGE 73
COCOMO – Intermediate – 15 COST Drivers
Personnel Very Low Low Nominal High Very High Extra High
Attributes
ACAP 1.46 1.19 1.00 0.86 0.71 ----
AEXP 1.29 1.13 1.00 0.91 0.85 ----
PCAP 1.42 1.17 1.00 0.86 0.70 ----
VEXP 1.21 1.10 1.00 0.90 ---- ----
LEXP 1.14 1.07 1.00 0.95 ---- ----
Project Very Low Low Nominal High Very High Extra High
Attributes
MODP 1.24 1.10 1.00 0.91 0.82 ----
TOOL 1.24 1.10 1.00 0.91 0.83 ----
SCED 1.23 1.08 1.00 1.04 1.10 ----
PAGE 74
COCOMO – Intermediate – EAF
PAGE 76
COCOMO – Detailed Mode
PAGE 77
COCOMO – Detailed Mode
𝐷𝑒𝑣𝑒𝑙𝑜𝑝𝑚𝑒𝑛𝑡 𝑡𝑖𝑚𝑒 = 𝜏𝑝 D
PAGE 78
COCOMO – Detailed Mode
Personnel Attributes Plan & Reqmt System Design Detail Design Code & Test Integration & Test
Life Cycle phase value of μp
Organic Small S = 2 0.06 0.16 0.26 0.42 0.16
Organic Medium S = 32 0.06 0.16 0.24 0.38 0.22
Semi Detached Medium S = 32 0.07 0.17 0.25 0.33 0.25
Semi Detached Large S = 128 0.07 0.17 0.24 0.31 0.28
Embedded Large S = 128 0.08 0.18 0.25 0.26 0.31
Embedded Extra Large S = 320 0.08 0.18 0.24 0.24 0.34
Personnel Attributes Plan & Reqmt System Design Detail Design Code & Test Integration & Test
Life Cycle phase value of Τp
Organic Small S = 2 0.10 0.19 0.24 0.39 0.18
Organic Medium S = 32 0.12 0.19 0.21 0.34 0.26
Semi Detached Medium S = 32 0.20 0.26 0.21 0.27 0.26
Semi Detached Large S = 128 0.22 0.27 0.19 0.25 0.29
Embedded Large S = 128 0.36 0.36 0.18 0.18 0.28
Embedded Extra Large S = 320 0.40 0.38 0.16 0.16 0.30 PAGE 79
COCOMO – Detailed – Numerical 1
Consider a project with the following main components 1) Screen Edit – 4KLOC,
2) CLI – 2 KLOC, 3) File I/p and O/p – 1 KLOC, 4) Cursor Movement – 2 KLOC, 5)
Screen Movement – 3 KLOC. Using COCOMO determine:
a) Overall Cost and Schedule estimates where SW Reliability is High, Language
Experience is low, Product Complexity is High, and Analyst Capability is High
b) Cost and Schedule estimate for different phases
PAGE 80
Here is what we learned
First skill:
Lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum
lorem ipsum lorem ipsum lorem ipsum lorem ipsum
Third skill:
Lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum
lorem ipsum lorem ipsum lorem ipsum lorem ipsum
Conclusion PAGE 81
First Skill Second Skill Third Skill