SE Unit2 1
SE Unit2 1
Requirement Analysis
Project Estimation and Planning
Focuses on
The manager and software team must estimate the work to be done,
and the time that will elapse from start to finish.
1
Requirement Analysis
At the start of every software project, the project team must understand,
finalize, and document the features and functionalities required of the end
product. These required features and functionalities are often called functional
specifications, and the process of determining and understanding them is
called requirements gathering and analysis.
3
Requirements analysis in software engineering does
the following:
4
5
Requirements analysis process :
Requirements analysis is a multistage process that involves the
following steps.
1. Understand the key stakeholders and end users
2. Understand the project goal
3. Capture requirements
4. Categorize requirements
• Functional requirements.
• Technical requirements.
• Transitional requirements.
• Operational requirements.
Technical Requirements:
•Focus on the "how" of the system implementation.
•Examples: "The application will be developed using Java," "The database must be
able to handle 1 million concurrent users."
Transitional Requirements:
•Address the process of moving from the old system to the new one.
•Examples: "Data migration plan from the legacy system," "User training program
for the new interface"
Operational Requirements:
•Define the conditions under which the system will function.
•Examples: "The system must be available 24/7," "The response time should be
under 2 seconds," "The system must be able to operate in a network with limited
bandwidth."
7
Software Requirement Specification (SRS) document
• Software Requirement Specification (SRS)
document, is a complete specification and
description of requirements of the software that
need to be fulfilled.
1. Introduction
2. General description
3. Functional Requirements
4. Interface Requirements
5. Performance Requirements
6. Design Constraints
7. Non-Functional Attributes
8. Preliminary Schedule and Budget
9. Appendices
10
1. Introduction
• Purpose of this Document – At first, the main aim of why this
document is necessary and what purpose of the document is
explained and described.
3. Functional Requirements
• In this, the possible outcome of the software system which includes effects due to the
operation of the program is fully explained. All functional requirements which may
include calculations, data processing, etc. are placed in a ranked order.
• Functional requirements specify the expected behavior of the system outputs that
should be produced from the given inputs. They describe the relationship between the
input and output of the system. For each functional requirement, a detailed
description of all the data inputs and their source, the units of measure, and the range
of valid inputs must be specified.
12
4. Interface Requirements
In this, software interfaces which mean how software program communicates
with each other or users either in the form of any language, code, or message are
fully described and explained. Examples can be shared memory, data streams, etc.
5. Performance Requirements
In this, how a software system performs desired functions under specific
conditions is explained. It also explains required time, required memory,
maximum error rate, etc.
The performance requirements part of an SRS specifies the performance
constraints on the software system. All the requirements relating to the
performance characteristics of the system must be clearly specified. There are
two types of performance requirements: static and dynamic. Static requirements
are those that do not impose constraints on the execution characteristics of the
system. Dynamic requirements specify constraints on the execution behavior of
the system.
13
6. Design Constraints
In this, constraints which simply means limitation or restriction are specified and
explained for design team. Examples may include use of a particular algorithm, hardware
and software limitations, etc. There are a number of factors in the client’s environment
that may restrict the choices of a designer leading to design constraints such factors
include standards that must be followed resource limits, operating environment,
reliability and security requirements, and policies that may have an impact on the design
of the system. An SRS should identify and specify all such constraints.
7. Non-Functional Attributes
In this, non-functional attributes are explained that are required by software system for
better performance. An example may include Security, Portability, Reliability, Reusability,
Application compatibility, Data integrity, Scalability capacity, etc.
9. Appendices
In this, additional information like references from where information is gathered, and
definitions of some specific terms, acronyms, abbreviations, etc. are given and explained.
Functional vs. Non Functional Requirements
Functional Requirements:
• These are the requirements that the end user specifically demands as
basic facilities that the system should offer. All these functionalities
need to be necessarily incorporated into the system as a part of the
contract.
• These are represented or stated in the form of input to be given to the
system, the operation performed and the output expected.
• They are the requirements stated by the user which one can see
directly in the final product, unlike the non-functional requirements.
Examples:
• What are the features that we need to design for this system?
• What are the edge cases we need to consider, if any, in our design?
16
Non-Functional Requirements:
These are the quality constraints that the system must satisfy according to the project
contract. The priority or extent to which these factors are implemented varies from
one project to another. They are also called non-behavioral requirements. They deal
with issues like:
Portability, Security, Maintainability, Reliability, Scalability, Performance
Reusability, Flexibility
Examples:
• Each request should be processed with the minimum latency
• The system should be highly valuable
17
Examples of Functional and Non-functional Requirements
1. Online Banking System
1. Functional Requirements:
• Users should be able to log in with their username and password.
• Users should be able to check their account balance.
• Users should receive notifications after making a transaction.
2. Non-functional Requirements:
• The system should respond to user actions in less than 2 seconds.
• All transactions must be encrypted and comply with industry security standards.
• The system should be able to handle 100 million users with minimal downtime.
1. Functional Requirements:
2. Non-functional Requirements:
19
Differences between Functional Requirements and Non-Functional Requirements:
Describes what the system should do, Describes how the system should perform, i.e.,
Definition
i.e., specific functionality or tasks. system attributes or quality.
Focuses on the behavior and features Focuses on the performance, usability, and other
Purpose
of the system. quality attributes.
Defines the actions and operations of Defines constraints or conditions under which
Scope
the system. the system must operate.
User authentication, data Scalability, security, response time, reliability,
Examples
input/output, transaction processing. maintainability.
Easy to measure in terms of outputs or More difficult to measure, often assessed using
Measurement
results. benchmarks or SLAs.
Drives the core design and Affects the architecture and overall performance
Impact on Development
functionality of the system. of the system.
Directly related to user and business Focuses on user experience and system
Focus on User Needs
requirements. performance.
Typically documented in use cases, Documented through performance criteria,
Documentation
functional specifications, etc. technical specifications, etc.
Can be tested through functional Evaluated through performance testing, security
Evaluation
testing (e.g., unit or integration tests). testing, and usability testing.
Determines what the system must do Depends on how well the system performs the
Dependency
to meet user needs. required tasks.
20
Project
Planning and Estimation
21
Your attempt to determine
How much money
How much effort
How much resources
How much time
it will take to build a specific software-based system
or product
Project Size
Project Complexity
Environmental resources
1. If off-the-shelf components meet project
requirements, acquire them because they are
less expensive and also have low risks.
32
Software Measurement Principles :
The software measurement process can be characterized by five
activities-
• Formulation: The derivation of software measures and
metrics appropriate for the representation of the software
that is being considered.
• Collection: The mechanism used to accumulate data required
to derive the formulated metrics.
• Analysis: The computation of metrics and the application of
mathematical tools.
• Interpretation: The evaluation of metrics results in insight into
the quality of the representation.
• Feedback: Recommendation derived from the interpretation
of product metrics transmitted to the software team.
Need for Software Measurement:
Software is measured to:
➢ Create the quality of the current product or process.
➢ Anticipate future qualities of the product or process.
➢ Enhance the quality of a product or process.
➢ Regulate the state of the project concerning budget and
schedule.
➢ Enable data-driven decision-making in project planning and
control.
➢ Identify bottlenecks and areas for improvement to drive
process improvement activities.
➢ Ensure that industry standards and regulations are followed.
➢ Give software products and processes a quantitative basis for
evaluation.
➢ Enable the ongoing improvement of software development
practices.
34
Classification of Software Measurement
There are 2 types of software measurement:
Direct Measurement:
• In direct measurement, the product, process, or thing is
measured directly using a standard scale.
• Example it includes cost & efforts applied and also includes
lines of codes (LOC), execution speed, and memory size.
Indirect Measurement:
• In Indirect measurement, the quantity or quality is to be
measured using related parameters i.e. by use of reference.
• Example it includes functionality, quality, complexity,
efficiency, reliability, & maintainability.
35
Software Metric:
36
Characteristics of software Metrics
➢ Quantitative: Metrics must possess a quantitative nature. It
means metrics can be expressed in numerical values.
➢ Understandable: Metric computation should be easily
understood, and the method of computing metrics should be
clearly defined.
➢ Applicability: Metrics should be applicable in the initial phases
of the development of the software.
➢ Repeatable: When measured repeatedly, the metric values
should be the same and consistent in nature.
➢ Economical: The computation of metrics should be economical.
➢ Language Independent: Metrics should not depend on any
programming language.
37
Classification of Software Metrics:
There are 3 types of software metrics: Product, Process, Project
Product Metrics:
These are the measures of various characteristics of the software product.
The two important software characteristics are:
• Size and complexity of software.
• Quality and reliability of software.
Process Metrics:
• Process metrics pay particular attention to enhancing the long-term process
of the team or organization. These metrics are used to optimize the
development process and maintenance activities of software.
• Examples include effort variance, schedule variance, defect injection rate,
and lead time.
38
Project Metrics:
The project metrics describe the characteristics and execution of a
project.
39
Size-Oriented Metrics
Size-oriented metrics are derived by normalizing quality and
productivity measures by considering the size of the software
that has been produced.
A simple set of size measures :
40
• Problem based estimation technique
Types of risk :
Project risk
Technical risk
Business risk
Risk avoidance(Mitigation)
Risk monitoring
Risk management and contingency planning
Requirement Analysis is a software engineering task that
bridges the gap between System level requirement
engineering and software design
Requirement analysis provide the software designer
with representation of Information, function and
behavior that can be translated to data
,architectural ,interfaces and component level
design
Software requirement analysis may be divided into
five areas of efforts
1. Problem recognition
2. Evaluation and synthesis
3. Modeling
4. Specification and review
1. Initiating the process
2. Facilitated Application Specification
Technique ( FAST)
3. Quality Function Deployment
Software prototyping
Specification
Specification Principles
Representation
Software Requirement Specification(SRS)
For a size oriented metrics, software organization maintains records in tabular form.
The typical table entries are: Project Name, LOC, Efforts, Pages of documents, Errors,
Defects, Total number of people working on it.
Project Name LOC Effort Cost ($) Doc. (pages) Errors Defects People
61
Are size-oriented metrics universally accepted in the software industry?
62
Function-Oriented Metrics
➢ Function-Oriented Metrics are also known
as Function Point Model.
➢ This model generally focuses on the functionality of
the software application being delivered.
➢ These methods are actually independent of the
programming language that is being used in software
applications and based on calculating the Function
Point (FP).
➢ A function point is a unit of measurement that
measures the business functionality provided by the
business product.
63
64
The software complexity can be computed by answering
the following questions :
➢ Does the system need reliable backup and recovery?
➢ Are data communications required?
➢ Are there distribute processing functions?
➢ Is the performance of the system critical?
➢ Can the system be able to run in an existing, heavily, and largely utilized operational
environment?
➢ Does the system require on-line data entry?
➢ Does the input transaction is required by the on-line data entry to be built over
multiple screens or operations?
➢ Are the master files updated on-line?
➢ Are the inputs, outputs, files, or inquiries complex?
➢ Is the internal processing complex?
➢ Is the code which is designed to be reusable?
➢ Are conversion and installation included in the design?
➢ Is the system designed for multiple installations in various organizations whenever
required?
➢ Is the application designed to facilitate or make the change and provide effective
ease of use by the user?
65
Each of the questions is answered using a scale that ranges from o to 5 (not important or
applicable to absolutely essential).
This scale is shown below :
66
Lines of Code per
Language
Function Point
ADA 83 71
C 128
C++ 49
CLOS 27
COBOL 85 91
Eiffel 21
C++ 21
Smalltalk 21
Visual Basic 32
FP=Count_total*[0.65+0.01*Sum(fi)]
= 606*[0.65+0.01*36]
=612.06
It is given that the complexity weighting factors for I, O, E, F and N are 5, 4, 2, 9 and 8,
respectively. It is also given that, out of fourteen value adjustment factors that
influence the development effort, two factors are not applicable, each of the other
three factors have value 3, and each of the remaining factors have value 5. The
computed value of function point metric is ____________
Q2. Consider a software program that is artificially seeded with 100 faults. While
testing this program, 159 faults are detected, out of which 75 faults are from those
artificially seeded faults. Assuming that both real and seeded faults are of same nature
and have same distribution, the estimated number of undetected real faults is
____________.
79
Sol1 ₹ 2750000
Sol2 28
⚫ Once the expected value for the estimation has been determined,
historical LOC or FP productivity data are applied
Functions S Values
User interface and control facilities (UICF) 8600 5500 8000
Two-dimensional geometric analysis (2DGA) 3450 6700 6450
Three-dimensional geometric analysis 8250 4000 9250
(3DGA)
Database management (DBM) 8600 7540 9600
Computer graphics display facilities (CGDF) 6820 2400 6820
Peripheral control function (PCF) 5420 4000 3420
Design analysis modules (DAM) 4540 4000 6450
Σ (Fi) = 53.17
Prof. Rohini Joshi 89
Final estimation of cost & efforts
For one of the method for CAD system FP’S are given
Number of inputs 24 20 30
Number of outputs 30 34 25
Number of enquiries 15 20 24
Number of files 30 25 20
Number of external 20 25 24
Interfaces
Estimate the size of each function in FP. Assuming that your organization
produces 44 FP/pm with a burdened labor rate of $12000 per person-month,
estimate the effort and cost required to build the software using FP-based
estimation technique. Assume that all complexity adjustment value is
maximum and weighting factors are average.
Functions FP’s
User interface and control 60 66 50
facilities (UICF)
Two-dimensional geometric 55 40 60
analysis (2DGA)
Three-dimensional geometric 21 14 20
analysis (3DGA)
Database management (DBM) 10 15 20
Computer graphics display 29 24 28
facilities (CGDF)
Peripheral control function (PCF) 20 22 16
⚫ Human resources
⚫ Environmental resources
Types of risk :
⚫ Project risk
⚫ Technical risk
⚫ Business risk
⚫ Known or predictable risk
⚫ Unpredictable risk
• Once the first four columns of the risk table have been
completed, the table is sorted by probability and by impact.
• High-probability, high-impact risks percolate to the top of the
table, and low-probability risks drop to the bottom.
RE = P x C
P→prob of occ of a
risk
C→Cost to the proj
⚫ Risk avoidance(Mitigation)
⚫ Risk monitoring
⚫ Risk management and contingency planning
•Meet with current staff to determine causes for turnover (e.g., poor
working conditions, low pay, competitive job market).
• Mitigate those causes that are under our control before the project starts.
•Once the project commences, assume turnover will occur and develop
techniques to ensure continuity when people leave.
•Conduct peer reviews of all work (so that more than one person is "up to
speed”).
• Assign a backup staff member for every critical technologist.
Prof. Rohini Joshi 112
SAFETYRISKS AND HAZARDS
/ Analysis
⚫ Application Complexity.(Complex)
1. Interviewing
2. Questionnaires
3. Documentation Review
4. Observation
5. Pictures
⚫Functional Requirements.
Consist of requirements that perform the activities that run the
business.(updating master files, enq. data against file..)
⚫Non-functional requirements.
business function to be supported(Online response time,
security issues)
⚫Quantification of requirements.
Refers to the need for a measure of quality if benefits are to be
properly evaluated.(inc sales by 25%, red cust complaints by
75%)
⚫Tocreate a use-case, the analyst must first identify the different types of
people (or devices) that use the system or product.
⚫These actors actually represent roles that people (or devices) play as the
system operates.
⚫Specification α Quality(solution).
1. Specification Principles
2. Representation
⚫ 2.Develop a model of the desired behavior of a system that encompasses data and the
functional responses of a system to various stimuli from the environment.
⚫ 3. Establish the
context in which software operates by specifying the manner in which
other system components interact with software.
⚫ 4. Define the environment in which the system operates and indicate how “a highly
intertwined collection of agents react to stimuli in the environment (changes to
objects) produced by those agents” .
⚫ 5. Create a cognitive model rather than a design or implementation model. The cognitive model
describes a system as perceived by its user community.
the problem.
be nested.
⚫ Why?
⚫ We live in the rapidly changing world.
Forward inventory
engineering analysis
Data document
restructuring restructuring
code reverse
restructuring engineering
restructure
code
final specification