0% found this document useful (0 votes)
3 views69 pages

Module 2

Spm module 2

Uploaded by

danikal208
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views69 pages

Module 2

Spm module 2

Uploaded by

danikal208
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Cost Estimation

Problems in Software Estimation


Software estimation is the process of predicting effort, cost, time, resources, and size
required for a software project. Because software projects involve uncertainty and changing
requirements, estimation often faces many problems.

Major Problems in Software Estimation


1. Unclear or Incomplete Requirements

 Requirements may not be fully defined at the start.


 Clients may not clearly express their needs.
 Missing requirements lead to incorrect estimates.

Problem:
If scope is unclear, effort and cost estimates become unreliable.

2. Frequent Requirement Changes (Scope Creep)

 Requirements often change during development.


 New features may be added after estimation.

Effect:

 Cost overruns
 Schedule delays
 Re-estimation becomes necessary

3. Difficulty in Measuring Software Size


Estimating software size is difficult using:

 LOC (Lines of Code)


 Function Points
 Use Case Points

Problems:

 Early stages may not provide enough detail.


 Size estimates may be inaccurate.

Since effort depends heavily on size, errors propagate.

4. Lack of Historical Data

Good estimates often need past project data.

Problem:

 New organizations may have no historical metrics.


 Past data may be inconsistent or unavailable.

Result:

 Estimates rely on guesswork.

5. Human Judgment Errors

Expert-based estimates may suffer from:

 Optimism bias
 Overconfidence
 Underestimation
 Subjective judgment

This often causes unrealistic commitments.

6. Inaccurate Productivity Assumptions

Estimations often assume a certain productivity level.

Problem:
 Actual developer productivity varies.
 Team skill differences affect effort.

This can distort estimates.

7. Technical Uncertainty

New technology, tools, or unfamiliar domains create uncertainty.

Examples:

 New programming language


 New framework
 Research-oriented projects

Problem:
Difficult to predict effort accurately.

8. Risk and Uncertainty

Unexpected risks affect estimates:

 Technical risks
 Resource risks
 Schedule risks

Failure to consider risk causes estimation errors.

9. Ignoring Non-Development Activities

Estimates sometimes omit:

 Testing
 Reviews
 Documentation
 Maintenance
 Meetings
 Rework

Result:
Underestimation.
10. Poor Cost Driver Assessment

Models like COCOMO depend on cost drivers.

Incorrect rating of factors like:

 Complexity
 Reliability
 Personnel capability

leads to wrong estimates.

11. People-Related Factors

Human factors are hard to estimate:

 Skill levels
 Experience
 Team turnover
 Communication issues

These strongly affect effort.

12. Novelty of Project

If project is unprecedented:

 No reference data
 Unknown complexity
 Harder prediction

Estimation becomes risky.

13. Pressure for Unrealistic Estimates

Sometimes management or clients force:

 Lower budgets
 Shorter deadlines

This causes politically driven estimates instead of realistic ones.


14. Changing Productivity During Project

Productivity may vary because of:

 Learning curves
 Fatigue
 Team changes
 Tool issues

Static estimates may become invalid.

15. Complexity of Software

Large systems have:

 Many modules
 Interdependencies
 Integration challenges

Complexity is difficult to estimate precisely.

Common Estimation Errors


a) Underestimation

Estimated values are too low.

Causes:

 Optimism
 Ignored risks
 Missing tasks

Effect:

 Budget overrun
 Delays

b) Overestimation

Estimate too high.

Effects:
 Resource waste
 Higher costs
 Reduced competitiveness

Fundamental Problems in Software Estimation


Three classic problems:

1. Size Estimation Problem


How large is the software?
2. Effort Estimation Problem
How much work is required?
3. Schedule Estimation Problem
How long will it take?

Errors in one affect the others.

Why Software Estimation is Difficult


Software is:

 Intangible
 Complex
 Dynamic
 People-intensive
 Uncertain

Unlike physical engineering, software often changes during construction.

Ways to Reduce Estimation Problems


 Better requirement analysis
 Use historical data
 Apply models (COCOMO, FPA)
 Include risk buffers
 Use expert judgment + models together
 Re-estimate periodically
 Use decomposition (WBS)
 Review assumptions regularly
Algorithmic Cost Estimation
Function Points
Function Point Estimation Analysis
Notes(For Exam Points)
Function Point Analysis (FPA) Model
Function Point Analysis (FPA) is a software size estimation technique used to measure
the functionality delivered by a software system from the user’s point of view. It estimates
the size, effort, cost, and productivity of software independent of programming language.

It was developed by Allan Albrecht (IBM).


Definition
Function Point Analysis is a technique for measuring software size by quantifying the
functions the system performs for users based on:

 Inputs
 Outputs
 Inquiries
 Files
 Interfaces

Unlike LOC (Lines of Code), FPA measures what software does, not how it is coded.

Objectives of FPA
It is used for:

 Software size estimation


 Cost estimation
 Effort estimation
 Productivity measurement
 Project planning
 Comparing projects

Basic Idea
Software is viewed as a collection of functions provided to users.

Size is measured in Function Points (FP).

Two major steps:

1. Calculate Unadjusted Function Points (UFP)


2. Adjust them using complexity factors to get Adjusted Function Points (AFP)

Step 1: Unadjusted Function Points (UFP)


Five components are counted.

1. External Inputs (EI)


User inputs entering the system.

Examples:

 Login forms
 Data entry screens
 Registration forms

2. External Outputs (EO)


Reports or outputs produced.

Examples:

 Salary slips
 Reports
 Invoices

3. External Inquiries (EQ)


Interactive queries involving input and output.

Examples:

 Search operations
 Account balance inquiry

4. Internal Logical Files (ILF)


Logical data maintained inside the system.

Examples:

 Employee database
 Customer records

5. External Interface Files (EIF)


Files used but maintained by other systems.
Examples:

 Third-party databases
 External inventory files

Standard Weights
Each component has weights based on complexity.

Component Simple Average Complex


EI 3 4 6
EO 4 5 7
EQ 3 4 6
ILF 7 10 15
EIF 5 7 10

Formula for UFP

UFP = ∑ (Count × Weight)

Compute weighted sum of all components.

Example of UFP Calculation


Suppose:
 10 Inputs (Average) → 10×4 = 40
 8 Outputs (Complex) → 8×7 = 56
 5 Queries (Simple) → 5×3 =15
 4 ILFs (Average) → 4×10=40
 2 EIFs (Simple) → 2×5=10
UFP:
40 + 56 + 15 + 40 + 10 = 161
Step 2: Value Adjustment Factor (VAF)
There are 14 General System Characteristics (GSCs).

Each rated 0–5.

GSC Factors
1. Data communications
2. Distributed processing
3. Performance
4. Heavily used configuration
5. Transaction rate
6. Online data entry
7. End-user efficiency
8. Online update
9. Complex processing
10. Reusability
11. Installation ease
12. Operational ease
13. Multiple sites
14. Facilitate change

Total Degree of Influence

TDI=∑GSC
Range:

Minimum = 0
Maximum = 70

Value Adjustment Factor

VAF= 0.65 + 0.01(TDI)

Adjusted Function Points (AFP) or Function Points (FP)

FP = UFP × VAF
Example

Suppose:
UFP = 161
DI = 35
Then:
VAF=0.65+0.01(35)=1.00
Adjusted FP:
FP = 161 × 1 = 161

Effort Estimation using FP


Once FP is known:
Effort = FP × Productivity Factor

Example:
If 1 FP = 5 person-hours

Effort:
161 × 5 = 805 person-hours

Conversion to LOC

Function points can be converted to lines of code:

LOC= FP × Language Factor

Example:
For Java
1 FP ≈ 50 LOC

161 × 50 = 8050 LOC


COCOMO Models (Basic, Intermediate
and Complete COCOMO)
Note: COCOMO Model is not mentioned in your Syllabus. Study it for
understanding of COCOMO II

COCOMO (Constructive Cost Model) was developed by Barry Boehm (1981) for
estimating software effort, development time, staffing, and cost.

COCOMO has three major models:

1. Basic COCOMO
2. Intermediate COCOMO
3. Complete (Detailed) COCOMO

1. Basic COCOMO Model


Definition
Basic COCOMO estimates software effort and development time based only on:

 Size of software (KLOC)


 Nature of project

It is a simple, preliminary estimation model.

Project Categories in Basic COCOMO


(a) Organic Mode

Small, simple projects with experienced teams.

Examples:

 Payroll system
 Inventory management

Characteristics:
 Familiar problem
 Flexible requirements
 Small team

(b) Semi-Detached Mode

Medium-size projects with mixed complexity.

Examples:

 Database systems
 Compilers

Characteristics:

 Moderate complexity
 Mixed experience team

(c) Embedded Mode

Large and complex projects with strict constraints.

Examples:

 Air traffic control


 Real-time operating systems

Characteristics:

 Tight hardware/software constraints


 High complexity
Effort Estimation Formula
Effort = a (KLOC) b
Effort in Person-Months.

Mode a b
Organic 2.4 1.05
Semi-Detached 3.0 1.12
Embedded 3.6 1.20

Development Time Formula


TDEV = c (Effort) d
Mode c d
Organic 2.5 0.38
Semi-Detached 2.5 0.35
Embedded 2.5 0.32

Personnel Required
People = TDEV / Effort

Example (Basic COCOMO)


Suppose: 50 KLOC and Organic project

Effort=2.4(50)1.05
Estimated effort ≈ 145 Person-Months

Limitations
Basic COCOMO only considers size and ignores many real factors.
2. Intermediate COCOMO
Definition
Intermediate COCOMO improves Basic COCOMO by considering:

 Software size
 Project type
 Cost drivers (Effort Adjustment Factor)

Effort Formula
b
Effort= a (KLOC) × EAF

Where:

 EAF = Effort Adjustment Factor

Mode a b
Organic 3.2 1.05
Semi-Detached 3.0 1.12
Embedded 2.8 1.20

Cost Drivers (15 Drivers)


Product Attributes

 Required reliability
 Database size
 Product complexity

Hardware Attributes

 Runtime constraints
 Memory constraints
 Platform volatility
Personnel Attributes

 Analyst capability
 Programmer capability
 Experience

Project Attributes

 Software tools
 Schedule constraints

Effort Adjustment Factor (EAF)

EAF = ∏ EMi
Product of all effort multipliers.

Development Time
Same schedule formula:

TDEV = c (Effort) d
Features
 More realistic than Basic model
 Includes environmental factors
 Better estimation accuracy

3. Complete (Detailed) COCOMO Model


Definition
Complete COCOMO is the most advanced version.

It extends Intermediate COCOMO by:

 Using all cost drivers


 Considering each development phase separately
 Phase-wise effort distribution

Phases Considered
Effort estimated separately for:

1. Requirements analysis
2. System design
3. Detailed design
4. Coding
5. Testing
6. Integration

Formula
Overall effort:

Effort= a (KLOC) b × EAF


But effort is distributed phase-wise.

Phase-wise Allocation Example


Effort may be distributed as:

 Requirements → 10%
 Design → 20%
 Coding → 35%
 Testing → 25%
 Integration →10%

Features
 Most detailed
 Highest accuracy
 Phase-sensitive estimation
 Suitable for large critical projects
COCOMO II
Sub Models of COCOMO II
Note: You can skip Reuse Model
COCMO II Concise Notes (for Exam
Points)
COCOMO II (Constructive Cost Model II) is a software cost estimation model used to
estimate the effort (person-months), development time, staffing, and cost required to
develop software systems. It was developed by Barry Boehm as an improved version of
COCOMO (1981) to suit modern software development practices like reuse, prototyping,
object-oriented development, and iterative models.

Definition
COCOMO II is an algorithmic model that estimates software development effort and
schedule based on:

 Size of software (usually in KLOC or Function Points)


 Cost drivers (product, platform, personnel, project factors)
 Scale factors (factors affecting economies/diseconomies of scale)

Objectives of COCOMO II
It helps in:

 Estimating development effort


 Predicting schedule (time)
 Estimating project cost
 Resource planning
 Risk analysis
 Project management and control

Basic Effort Estimation Formula


COCOMO II estimates effort using:

PM = A × (Size) E × ∏ EMi
Where

 PM = Effort in Person-Months
 A = Constant (usually 2.94)
 Size = Software size in KLOC (Thousands of Lines of Code)
 E = Exponent reflecting scale factors
 EMᵢ = Effort Multipliers (cost drivers)
Exponent Formula

E = B + 0.01 ∑ SFi
Where:

 B = 0.91
 SFᵢ = Five Scale Factors

Scale Factors (SF)


These determine whether a project has economies or diseconomies of scale.

1. PREC (Precedentedness)
o Similarity with past projects.
2. FLEX (Development Flexibility)
o Degree of process flexibility.
3. RESL (Architecture / Risk Resolution)
o Risk analysis and architecture maturity.
4. TEAM (Team Cohesion)
o Communication and cooperation among team.
5. PMAT (Process Maturity)
o Organizational process maturity.

Higher scale factors generally increase effort.

Effort Multipliers (Cost Drivers)


These adjust effort based on project conditions.

1. Product Factors
 Required reliability (RELY)
 Database size (DATA)
 Product complexity (CPLX)
 Required reusability (RUSE)
 Documentation needs (DOCU)

2. Platform Factors
 Execution time constraints (TIME)
 Storage constraints (STOR)
 Platform volatility (PVOL)

3. Personnel Factors
 Analyst capability (ACAP)
 Programmer capability (PCAP)
 Experience (AEXP, PEXP)
 Language/tool experience (LTEX)
 Personnel continuity (PCON)

4. Project Factors
 Use of tools (TOOL)
 Multisite development (SITE)
 Schedule compression (SCED)

Schedule Estimation Formula


Development time:

TDEV = C × (PM) F
Where:

 TDEV = Development time in months


 C = 3.67
 PM = Person-months
 F = 0.28 + 0.2(E-0.91)

Cost Estimation
Project Cost:

Cost = Effort × Cost per Person-Month

Example:
If effort = 100 PM
Cost per PM = ₹50,000

Cost = 100 × 50,000 = ₹50,00,000


Three Sub-Models of COCOMO II
1. Application Composition Model
Used for:

 Prototyping
 GUI-based applications
 Rapid application development

Uses Object Points instead of LOC

Formula:

Productivity
Effort =
Object Points

Object points include:

 Screens
 Reports
 3GL components

2. Early Design Model


Used in early stages when requirements are rough.

Uses:

 Unadjusted Function Points or KLOC


 7 aggregated cost drivers

Effort formula same as general COCOMO II:

PM = A × (Size) E × ∏ EMi
Suitable for:

 Feasibility studies
 Initial planning
 Architecture selection
3. Post-Architecture Model
Used after architecture is defined.

Most detailed model.

Uses:

 Full 17 effort multipliers


 5 scale factors
 Detailed schedule estimation

Suitable for:

 Detailed project planning


 Accurate cost estimation

Steps in Using COCOMO II


1. Estimate software size
2. Select scale factors
3. Determine effort multipliers
4. Compute effort
5. Estimate schedule
6. Estimate staffing and cost

Advantages of COCOMO II
 Realistic and systematic
 Suitable for modern software development
 Supports reuse and prototyping
 Helps budgeting and scheduling
 Useful for risk management
 Widely accepted in software engineering

Limitations
 Accuracy depends on size estimation
 Difficult for very small agile projects
 Requires proper cost driver assessment
 Can be complex to apply
Example (Simple)
Suppose:

 Size = 50 KLOC
 A = 2.94
 E = 1.1
 Product of EM = 1.2

Effort:

PM=2.94 (50)1.1 (1.2)


Estimated effort ≈ 218 Person-Months.

SLIM (Software Life Cycle Management)


Model for Cost Estimation
SLIM (Software Life Cycle Management) is a software cost estimation model developed
by Larry Putnam. It is also known as the Putnam Model.

It is used to estimate:

 Software development effort


 Development time
 Staffing levels
 Cost of software projects

SLIM is based on mathematical modeling and the Rayleigh manpower distribution curve.

Definition
SLIM is an algorithmic software estimation model that predicts effort, schedule, and cost
based on the relationship among:

 Software size
 Productivity
 Effort
 Development time

It models how manpower changes over the software life cycle.


Basic Idea of SLIM
SLIM assumes staffing follows a Rayleigh curve:

 Few people at project start


 Team grows during development
 Peaks in middle
 Decreases during testing and completion

This reflects real project behavior.

Rayleigh Curve Concept


Manpower usage:

 Requirements → low staffing


 Design/Coding → peak staffing
 Testing/Deployment → declining staffing

This manpower pattern forms the Rayleigh curve.


3. Cost Estimation
Project Cost:

Cost = Effort × Cost per Person-Year

Technology Constant (Ck)


Ck reflects development capability.

Depends on:

 Tools used
 Team skills
 Methods
 Environment
 Process maturity

Higher Ck → Higher productivity.

Typical ranges:

 Poor environment → low Ck


 Good environment → high Ck

Inputs to SLIM
SLIM uses:

 Estimated software size


 Productivity index
 Development time constraints
 Staffing patterns

Outputs of SLIM
It estimates:

 Total effort
 Development schedule
 Staffing profile
 Total cost
 Productivity

Important Principle of SLIM


Trade-off Between Time and Effort
Reducing schedule often increases effort sharply.

SLIM shows:

Small reduction in schedule


→ Large increase in effort

This is a key management insight.


Steps in Using SLIM
1. Estimate software size
2. Determine technology constant
3. Apply software equation
4. Estimate effort
5. Estimate schedule
6. Compute cost

Features of SLIM Model


 Macro-level estimation model
 Based on empirical data
 Uses Rayleigh staffing curve
 Captures effort-schedule tradeoff
 Suitable for large projects
Advantages
1. Realistic Staffing Pattern
Models actual manpower behavior.

2. Good for Large Projects


Works well for large systems.

3. Considers Productivity
Includes technology constant.

4. Supports Cost and Schedule Trade-offs


Useful for management decisions.

5. Scientific Model
Uses mathematical relationships.

Limitations
1. Difficult for Small Projects
Less suitable for small projects.

2. Requires Accurate Size Estimate


Errors in LOC affect results.

3. Complex to Apply
More difficult than COCOMO.

4. Needs Historical Data


Technology constant may be hard to determine.
Applications of SLIM
Used for:

 Large software project estimation


 Defense projects
 System software
 Project planning
 Resource allocation
Estimating of Web Application
Development
Web application estimation is the process of predicting the size, effort, time, resources,
and cost required to develop a web application.

Because web applications often involve rapidly changing requirements, user interfaces,
databases, integrations, and performance concerns, estimation is an important but challenging
activity.

Factors Affecting Web Application Estimation


Web application effort depends on many factors:

1. Scope and Requirements

Estimate based on:

 Number of features
 Functional requirements
 Non-functional requirements
 Complexity of business logic

Examples:

 Simple informational website → Low effort


 E-commerce platform → High effort

2. Application Size
Size may be estimated using:

 Function Points (FP)


 Use Case Points (UCP)
 Lines of Code (LOC)
 Story Points (Agile)

Larger size generally means higher effort.


3. Front-End Complexity
Depends on:

 Number of pages/screens
 UI/UX complexity
 Responsive design
 Dynamic interfaces
 JavaScript frameworks (React, Angular, etc.)

More complex interfaces increase effort.

4. Back-End Complexity
Includes:

 Business logic
 APIs
 Authentication
 Database operations
 Server-side processing

Complex back-end means more development time.

5. Database Complexity
Estimation depends on:

 Number of tables
 Relationships
 Data volume
 Transactions
 Query complexity

6. Integration Requirements
Effort increases with integration of:

 Payment gateways
 Third-party APIs
 Cloud services
 Social login
 External systems

7. Non-Functional Requirements
Includes:

 Security
 Performance
 Scalability
 Reliability
 Availability

These often add significant effort.

Methods for Estimating Web Applications


1. Expert Judgment
Estimation based on experienced developers.

Uses:

 Experience
 Similar projects
 Historical data

Simple but subjective.

2. Function Point Analysis


Estimate system functionality through:

 Inputs
 Outputs
 Files
 Interfaces

Can be used for web projects.


3. Use Case Point Method
Based on:

 Number of use cases


 Actors
 Technical complexity

Popular for web systems.


Effort Components in Web Development
Estimation
Estimate effort for each activity:

Development Effort
 Front-end coding
 Back-end coding
 Database development

Testing Effort
 Unit testing
 Integration testing
 Security testing
 Performance testing

Design Effort
 UI/UX design
 Wireframes
 Prototyping

Deployment Effort
 Hosting setup
 Configuration
 DevOps activities

Maintenance Effort
 Bug fixing
 Updates
 Enhancements
Web Application Cost Estimation Formula
Effort
Effort = Size × Productivity

Cost
Cost:

Cost = Effort × Cost per Person-Month

Example Estimation Approach


Suppose web project includes:

 20 web pages
 User authentication
 Product catalog
 Payment gateway
 Admin dashboard

Estimated efforts: Given as Follows

Task Person-Months
UI Design 2
Frontend 4
Backend 5
Database 2
Testing 3
Total Effort:
2 + 4 + 5 + 2 + 3 = 16 PM
If cost per PM = ₹60,000
Cost:
16 × 60,000 = ₹9,60,000
Common Parameters Used in Web
Estimation
Consider:

 Number of pages
 Number of forms
 APIs required
 Database entities
 Security requirements
 Performance requirements
 User roles
 Integrations
 Reusable component

Challenges in Web Application Estimation


1. Changing Requirements
Web projects often evolve rapidly.

2. Technology Changes
Frameworks and tools change.

3. UI Uncertainty
Front-end effort often underestimated.

4. Integration Complexity
Third-party dependencies add uncertainty.

5. Scope Creep
Common in web projects.

Techniques to Improve Accuracy


 Break project into modules (WBS)
 Use historical data
 Use prototype-based estimation
 Include risk buffers
 Re-estimate iteratively
 Combine expert judgment with models

Special Models for Web Estimation


Some web-specific approaches include:

 WebMo model
 OO estimation models
 Use Case Point models
 Agile velocity estimation

You might also like