0% found this document useful (0 votes)
15 views29 pages

Software Project Estimation Guide

The document discusses the importance of estimation and scheduling in software projects, outlining the need for accurate predictions of effort, time, cost, and resources. It details the steps involved in project estimation, planning, defining software scope, and resource management, emphasizing the significance of clear boundaries to prevent scope creep and facilitate effective communication. Various estimation techniques, such as function point sizing and problem-based estimation, are also highlighted to improve accuracy in project planning.

Uploaded by

raniaghav07
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)
15 views29 pages

Software Project Estimation Guide

The document discusses the importance of estimation and scheduling in software projects, outlining the need for accurate predictions of effort, time, cost, and resources. It details the steps involved in project estimation, planning, defining software scope, and resource management, emphasizing the significance of clear boundaries to prevent scope creep and facilitate effective communication. Various estimation techniques, such as function point sizing and problem-based estimation, are also highlighted to improve accuracy in project planning.

Uploaded by

raniaghav07
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

1|Page © Haris Chaus | ALL RIGHTS ARE RESERVED as per copyright act.

Unit – III
Estimation and Scheduling
This PDF is watermarked and traceable. Unauthorized sharing will result in
permanent access ban and legal action.
Su

1. Estimation for Software Projects


dh
an

Estimation in software projects is the process of predicting the effort, time, cost, and
resources required to develop a software product.
sh

It is an essential part of project planning, helping teams make informed decisions, allocate
u

resources effectively, and set realistic deadlines.


De

Why is Estimation Important?


sh

 To plan budget and schedule accurately


m

 To determine team size and resource needs


uk

 To set milestones and monitor progress


h

 To manage customer expectations


-+

Need for Project Estimation:


91

1. Resource Planning: Helps in determining the resources (e.g., developers, tools,


90

infrastructure) needed for the project.


75

2. Budgeting: Provides an estimate of the cost to complete the project, which is vital for
budget allocation and financial planning.
61

3. Scheduling: Helps in setting realistic deadlines and tracking progress throughout the
62

project lifecycle.
64

4. Risk Management: Identifies potential risks early, allowing teams to mitigate them
before they affect the project.

5. Stakeholder Communication: Keeps stakeholders informed and aligned on project


timelines, scope, and costs.
2|Page © Haris Chaus | ALL RIGHTS ARE RESERVED as per copyright act.

6. Scope Management: Prevents scope creep by helping teams understand the effort
required for the project and aligning expectations accordingly.

Steps in Project Estimation:

1. Understand Scope: Gather and analyze project requirements; break into smaller tasks.

2. Select Estimation Method: Choose from expert judgment, analogous, parametric,


Su

Delphi, or story points.


dh

3. Estimate Effort & Time: Calculate how long each task may take considering
an

complexity and risks.


sh

4. Assign Resources: Allocate team members to tasks based on skills.


u

5. Add Buffer Time: Include extra time (10–30%) for uncertainties or delays.
De

6. Estimate Cost: Calculate cost based on time, effort, and resources (if needed).
sh

7. Review Estimates: Validate estimates with the team and stakeholders.


m

8. Track & Revise: Monitor progress and adjust estimates as the project evolves.
uk

1.1 The Project Planning Process


h

Project planning is a vital activity in software engineering where the project manager
-+

estimates resources, cost, and schedule. A project plan is prepared at the beginning and
updated as the project progresses.
91

The planning process involves several steps to ensure the project is well-organized and
90

manageable.
75

Steps in Project Planning


61
62
64
3|Page © Haris Chaus | ALL RIGHTS ARE RESERVED as per copyright act.

1. Scope and Feasibility Determination

 Defines the project’s features and functions for the end-user.

 Feasibility checks if the project can be completed within time, cost, and technical
limits.

2. Risk Identification and Analysis


Su

 Identifies possible risks and analyzes their impact and likelihood.


dh

 Helps in planning risk mitigation strategies.


an

3. Resource Determination
sh

 Identifies needed human, environmental, and software resources.


u

4. Cost and Effort Estimation


De

 Breaks down the project and uses techniques like function points or use cases to
sh

estimate effort and cost.


m

5. Schedule Preparation
uk

 Prepares a timeline using tools like Gantt charts or task networks to manage project
h

flow.
-+

1.2 Defining Software Scope and Checking Feasibility


91

1. Defining Software Scope


90

Software scope defines the boundaries of a software project by specifying what the system will
and will not do. It includes:
75

 Functions & Features: The capabilities and functionalities delivered to end-users.


61

 Input & Output Data: The data that the system will process and produce.
62

 User Content: The information presented to users (e.g., UI elements, reports).


64

 Performance, Constraints, Reliability & Interfaces:

o Performance: Processing speed, response time, and efficiency.

o Constraints: Limitations (e.g., hardware, compatibility with existing systems).


4|Page © Haris Chaus | ALL RIGHTS ARE RESERVED as per copyright act.

o Reliability: Expected uptime and error tolerance.

o Interfaces: How the system interacts with users and other systems.

Methods to Define Scope:

1. Narrative Description: A written document based on stakeholder discussions.


Su

2. Use Cases: Scenarios describing how end-users will interact with the system.
dh

2. Refining Scope for Estimation


an

 Functions are evaluated and detailed before cost and effort estimation.

 Performance requirements (e.g., response time) are analyzed.


sh

 Constraints (e.g., hardware limitations) are identified.


u
De

3. Checking Feasibility

After defining scope, feasibility must be assessed to ensure the project is viable. Four key
sh

dimensions are evaluated:


m

1. Technical Feasibility:
uk

o Can the project be built with current technology?


h

Are there technical risks (e.g., performance, security)?


-+

Can defects be reduced to acceptable levels?


91

2. Financial Feasibility:
90

o Is the development cost within budget?


75

o Will the return on investment (ROI) justify the expense?


61

3. Time Feasibility:
62

o Can the project be completed within the required timeline?


64

o Will the software launch in time to compete in the market?

4. Resource Feasibility:

o Does the organization have enough skilled personnel, tools, and infrastructure?

Key Questions After Scope Definition:


5|Page © Haris Chaus | ALL RIGHTS ARE RESERVED as per copyright act.

 Can we build this software as scoped?

 Is the project feasible in terms of technology, cost, time, and resources?

1.3 Resources Management

Resource management in software development involves identifying, allocating, and


optimizing resources to ensure project success. The diagram categorizes Software Resources
Su

into People, Reusable Software, and Environment, each with subcomponents to manage
dh

effectively.
an
sh
u
De
sh
m
uk
h

Overview of Software Resources


-+

These are divided into three key categories:


91

1. People
90

2. Reusable Software
75

3. Environment
61

Each category includes sub-elements that need to be managed to ensure the project meets its
62

scope, timeline, and feasibility requirements.


64

1. People

The "People" category represents the human resources essential for software development.
Effective management here involves:
6|Page © Haris Chaus | ALL RIGHTS ARE RESERVED as per copyright act.

 Number: Determining the quantity of personnel needed (e.g., 5 developers, 2 testers).


This ties into resource estimation during project planning to avoid understaffing or
overstaffing.

 Skill: Assessing the expertise required (e.g., proficiency in Python, experience with
cloud systems). Matching skills to tasks ensures quality work and reduces delays.
Su

 Location: Considering where team members are based (e.g., onsite, remote, or
dh

distributed across time zones). Location affects coordination, communication, and


potentially costs, so it must be planned to optimize collaboration.
an

2. Reusable Software
sh

The "Reusable Software" category focuses on pre-existing or adaptable software components


u

that can save time and effort. This includes:


De

 OTS Component (Off-The-Shelf Component): Ready-made software or libraries (e.g.,


sh

a prebuilt payment gateway like PayPal SDK) that can be integrated. Managing these
involves selecting reliable vendors and ensuring compatibility.
m

 Full Experience Component: Fully developed reusable modules with extensive


uk

documentation (e.g., a login system from a previous project). Management here means
h

verifying they meet current project needs and are maintained.


-+

 Part Experience Component: Partially developed components that need


91

customization (e.g., a template UI). This requires planning for additional development
time and testing.
90

 New Component: Custom-built software created for this project. Management


75

involves allocating development resources and tracking progress to integrate it


61

seamlessly.
62

3. Environment

The "Environment" category covers the technical infrastructure and tools that support
64

development. Effective management here includes:

 Software Tools: Development tools like IDEs (e.g., Visual Studio), version control
(e.g., Git), or testing frameworks (e.g., Selenium). Management involves ensuring
licenses, training, and updates are handled.
7|Page © Haris Chaus | ALL RIGHTS ARE RESERVED as per copyright act.

 Hardware: Physical resources like servers, computers, or testing devices. This requires
budgeting for purchases or maintenance and ensuring availability.

 Network Resources: Connectivity and bandwidth for collaboration, cloud services, or


data transfer. Management involves monitoring uptime, security, and capacity to handle
project demands.
Su

Need for Defining Software Scope


dh

Defining software scope means clearly identifying what the software will do and not do.
an

Why It’s Important:


sh

1. Prevents Scope Creep – Avoids unexpected changes or additions.


u

2. Sets Clear Boundaries – Defines features, functions, and limits.


De

3. Helps Planning – Supports accurate estimation of time, cost, and resources.


sh

4. Improves Communication – Aligns client and team expectations.


m

5. Guides Development – Acts as a reference throughout the project.


uk

1.4 Software Project Estimation


h

Software project estimation predicts the effort, time, cost, and resources needed to complete a
-+

project, following scope definition and feasibility assessment. It’s key to project planning.
91

 Effort Estimation: Estimates work (e.g., hours) for tasks like coding or testing, using
expert judgment or models like COCOMO.
90

 Time Estimation: Forecasts duration (e.g., weeks) based on effort and team capacity,
75

using tools like Gantt charts.


61

 Cost Estimation: Calculates expenses (e.g., salaries, tools) by multiplying effort by


62

rates and adding overheads.


64

 Resource Estimation: Identifies people, reusable software, and environment needs


(e.g., developers, OTS components, servers).

1.5 Decomposition Techniques

Decomposition techniques are systematic approaches used in software project estimation to


break down complex problems into smaller, more manageable components. By dividing the
8|Page © Haris Chaus | ALL RIGHTS ARE RESERVED as per copyright act.

project into smaller parts, teams can estimate each component more accurately and then
combine the results for an overall estimate. Below is a detailed explanation of each technique
with examples.

1.6 Software Sizing

Software sizing is a crucial step in project estimation. It refers to estimating the size of the
Su

software product to be developed, which acts as a foundation for further calculations related
dh

to effort, time, and cost.

Factors Affecting Estimation Accuracy


an

The accuracy of a software project estimate depends on:


sh

1. How accurately the size of the product is estimated.


u
De

2. The ability to convert size into human effort, calendar time, and budget.

3. How well the plan reflects the team's capabilities.


sh

4. Stability of requirements and the development environment.


m
uk

Putnam and Myers' Four Sizing Techniques

Technique Description
h
-+

1. Fuzzy Logic Sizing Estimates size qualitatively (e.g., small/medium/large), then


refined based on past project data. Requires application type and
91

historical references.
90

2. Function Point Sizing Estimates based on inputs, outputs, files, inquiries, and
75

interfaces — part of the information domain.


61

3. Standard Component Counts standard software components like screens, modules,


Sizing reports, batch programs, files, etc. Uses historical data to
62

calculate total LOC.


64

4. Change Sizing Used when modifying existing software. Size is based on the
amount of reused, added, changed, or deleted code.

Three-Point Estimate (Expected Value)

To improve accuracy, multiple sizing results are statistically combined using this formula:
9|Page © Haris Chaus | ALL RIGHTS ARE RESERVED as per copyright act.

Expected Size = , where:

 O = Optimistic estimate

 M = Most likely estimate

 P = Pessimistic estimate
Su

1.7 Problem-Based Estimation


dh

Breaking down the software problem into functional components and estimating each
an

separately.
sh

Steps in Problem-Based Estimation:


u

1. Understand the requirements of the project.


De

2. Divide the problem into smaller tasks or functions.


sh

3. Estimate effort (in person-hours or days) for each task.


m

4. Add buffer for risk or uncertainty.


uk

5. Calculate total time & resources needed.


h

Example: Suppose you're developing a Student Management System


-+

Feature/Task Estimated Effort


91

Login/Registration 2 days
90

Student Profile Module 3 days


75

Attendance Tracking 4 days


61

Marks Entry & Result 3 days


62

Reports & Export 2 days


64

Total Effort = 14 days

With buffer (10%) = ~15.5 days

1.8 LOC-Based Estimation

Estimating based on the number of lines of code required.


10 | P a g e © Haris Chaus | ALL RIGHTS ARE RESERVED as per copyright act.

Formula:

Effort (person-days) = LOC / Productivity

Time (days) = Effort / Number of Developers

Steps in LOC-Based Estimation:


Su

1. Estimate the total LOC required for the project (based on similar past projects or
experience).
dh

2. Use productivity data (e.g., LOC/person-month) to calculate the required effort.


an

3. Estimate time, cost, and resources based on this effort.


sh

Example:
u

 Historical data shows that a login authentication module typically requires 200-300
De

LOC.
sh

 For a new system requiring 10 such modules, estimate would be 10 × 250 = 2500 LOC.
m

 If productivity is 500 LOC/month, estimated effort = 2500/500 = 5 person-months.


uk

1.9 FP-Based Estimation


h

Measures software size in Function Points (FP), which are based on user-visible
-+

functionality rather than code. Components like inputs, outputs, interfaces, and data files are
91

counted and weighted.


90

Steps in FP-Based Estimation:

1. Identify and count:


75

External Inputs (EI) – data entering the system


61

o External Outputs (EO) – data leaving the system


62

o External Inquiries (EQ) – user queries


64

o Internal Logical Files (ILF) – data stored internally

o External Interface Files (EIF) – data used from outside systems

2. Assign complexity weights (low, average, high) to each based on their complexity.
11 | P a g e © Haris Chaus | ALL RIGHTS ARE RESERVED as per copyright act.

3. Calculate Unadjusted Function Points (UFP): Sum of (count × weight) for all
components.

4. Adjust with complexity factor (based on 14 general system characteristics like


performance, security, etc.)

5. Compute Final Function Points (FP)


Su

FP = UFP × [0.65 + (0.01 × Total Complexity Factor)]


dh

Example:
an

A Customer Relationship Management (CRM) system has:


sh

 5 inputs (customer data, orders, etc.)


u

 8 outputs (reports, dashboards)


De

 3 interfaces (payment gateway, email system)


sh

 2 queries
m

 4 data files
uk

Let’s say after counting and applying weights, the UFP = 100, and complexity factor total is
20.
h
-+

Final FP = 100 × [0.65 + (0.01 × 20)] = 100 × 0.85 = 85 FP


91

Then, based on historical productivity data (e.g., 5 FP/month), you estimate:


90

 Effort = 85 / 5 = 17 person-months

1.10 Object Point (OP)-based estimation


75

Estimates software size based on Object Points (OP), which count screens, reports, and
61

components. Simpler than FP but useful for GUI-based applications.


62

Steps in OP-Based Estimation:


64

1. Count the number of each type of screen, report, and module.

2. Multiply by weights to get Unadjusted Object Points (UOP).

3. Adjust for reuse (if some components are reused or auto-generated):


12 | P a g e © Haris Chaus | ALL RIGHTS ARE RESERVED as per copyright act.

100 − %reuse
OP = UOP ×
100

4. Estimate Effort: Use a productivity rate (OP/month) based on developer experience.

OP
Effort =
Productivity Rate
Su

Example:
dh

Component Type Count Weight Total


an

Screens Medium 5 2 10
sh

Reports Simple 3 2 6
u

Modules Complex 2 10 20
De

UOP = 10 + 6 + 20 = 36
sh

If 20% reuse → OP = 36 × (100−20)/100 = 36 × 0.8 = 28.8 ≈ 29


m

Assume productivity rate = 7 OP/month


uk

Effort = 29/7 ≈ 4.14 person-months


h

1.11 Process-Based Estimation


-+

The entire software development process is broken down into phases (requirements, design,
91

coding, testing, etc.), and effort is estimated for each phase.


90

Steps in Process-Based Estimation:


75

1. Identify all major activities in the software process.


61

o Example: Requirement gathering, Design, Coding, Testing, Maintenance, etc.


62

2. Estimate effort for each activity


64

o Use historical data, experience, or expert judgment.

3. Add up all estimated efforts to get the total.

Example:
For a web application, the breakdown is:
13 | P a g e © Haris Chaus | ALL RIGHTS ARE RESERVED as per copyright act.

Process Step Estimated Effort (Person-Days)

Requirements Gathering 10

Design 15

Coding 30
Su

Testing 20
dh

Deployment 5
an

Total Effort = 10 + 15 + 30 + 20 + 5 = 80 person-days


sh

1.12 Estimation with Use Cases


u

Uses use cases (scenarios of user interactions) to estimate effort. Each use case is assigned an
De

estimated time based on complexity.


sh

Steps Involved:
m

1. Identify all use cases in the system.


uk

2. Classify use cases into:


h

o Simple (few steps, no complex logic)


-+

o Average (moderate number of steps, some logic)


91

o Complex (many steps, includes validations, business rules)


90

3. Assign weight to each use case:


75

o Simple: 5 points
61

o Average: 10 points
62

o Complex: 15 points
64

4. Calculate Unadjusted Use Case Points (UUCP): Add all points for simple, average,
and complex use cases.

5. Apply adjustment factors (based on technical and environmental factors) to get


Adjusted Use Case Points.

6. Estimate effort using a productivity factor:


14 | P a g e © Haris Chaus | ALL RIGHTS ARE RESERVED as per copyright act.

o For example: 1 UCP = 20 person-hours

Example:
A library management system has the following use cases:

 "Check out book": 3 days

 "Return book": 2 days


Su

 "Search catalog": 5 days


dh

 "Pay fine": 4 days


an

Total effort for these 4 use cases = 14 days.


sh

Use-Case–Based Estimation
u

A more structured approach using Use Case Points (UCP), which consider actors, scenarios,
De

and technical/environmental factors.


sh

Steps in Estimation Using Use Case Points:


m

1. Identify and Classify Actors:


uk

o Simple: System interacting via API – 1 point


h

o Average: Interactive system via protocol – 2 points


-+

o Complex: Human interacting via UI – 3 points


91

➤ Calculate Unadjusted Actor Weight (UAW)


90

2. Identify and Classify Use Cases:


75

o Simple: ≤3 transactions – 5 points


61

o Average: 4–7 transactions – 10 points


62

o Complex: ≥7 transactions – 15 points


64

➤ Calculate Unadjusted Use Case Weight (UUCW)

3. Calculate Unadjusted Use Case Points (UUCP):

UUCP = UAW + UUCW


15 | P a g e © Haris Chaus | ALL RIGHTS ARE RESERVED as per copyright act.

4. Determine Technical Complexity Factor (TCF): Rate 13 technical factors (e.g.,


performance, usability) from 0–5, use formula:

TCF = 0.6 + (0.01 × Total Technical Factor Score)

5. Determine Environmental Factor (EF): Rate 8 environmental factors (e.g., team


experience) from 0–5, use formula:
Su

EF = 1.4 + (−0.03 × Total Environmental Factor Score)


dh

6. Calculate Final Use Case Points (UCP):


an

UCP = UUCP × TCF × EF


sh

7. Estimate Effort: Multiply UCP by Productivity Factor (PF) (usually between 20–28
u

hours per UCP).


De

Effort (in person-hours) = UCP × PF


sh

Example: Library Management System


m

Step 1: Identify & Classify Actors


uk

 Librarian (Human - via UI) → Complex → 3 points


h

 Student (Human - via UI) → Complex → 3 points


-+

 Payment Gateway (via API) → Simple → 1 point


91

➤ UAW = 3 + 3 + 1 = 7
90

Step 2: Identify & Classify Use Cases


75

 Issue Book – Average (5 steps) → 10 points


61

 Return Book – Simple (2 steps) → 5 points


62

 Pay Fine – Complex (8 steps) → 15 points


64

➤ UUCW = 10 + 5 + 15 = 30

Step 3: Calculate UUCP

UUCP = UAW + UUCW = 7 + 30 = 37

Step 4: Technical Complexity Factor (TCF)


16 | P a g e © Haris Chaus | ALL RIGHTS ARE RESERVED as per copyright act.

Let’s say we rated technical aspects like performance, reusability, etc., and got a total score of
20

TCF = 0.6 + (0.01×20) = 0.6 + 0.2 = 0.8

Step 5: Environmental Factor (EF)

Suppose our team is experienced and factors like motivation, stability, etc. total to 15
Su

EF = 1.4 + (−0.03×15) = 1.4 − 0.45 = 0.95


dh

Step 6: Calculate Final UCP


an

UCP = UUCP × TCF × EF = 37 × 0.8 × 0.95 = 28.12


sh

Step 7: Estimate Effort


u

Assume Productivity Factor (PF) = 20 hours per UCP


De

Effort = 28.12 × 20 ≈ 562.4 hours


sh

1.13 Reconciling Estimates


m

When multiple estimation techniques give different results, teams reconcile them to reach a
uk

balanced estimate.
h

Example:
-+

 LOC estimate: 6 months


91

 FP estimate: 7.5 months


90

 Process-based estimate: 5 months


75

 Final reconciled estimate: 6.5 months (considering all factors).


61

1.14 Empirical Estimation Models


62

Empirical estimation models rely on experience, observation, and practical judgment rather
64

than strict theoretical formulas. They are commonly used when precise data is unavailable but
a reasonable estimate is still required.

Key Features

 Based on educated guesses and common sense.


17 | P a g e © Haris Chaus | ALL RIGHTS ARE RESERVED as per copyright act.

 Use estimated values of LOC (Lines of Code) or FP (Function Points).

 Apply the Three-Point Estimation or Expected Value Estimation model:

Expected Size = , where:

o O = Optimistic estimate
Su

o M = Most likely estimate


dh

o P = Pessimistic estimate
an

 These estimated sizes are then plugged into the cost/effort estimation formula.
sh

1.15 The Structure of Estimation Models


u

Estimation models provide a systematic way to predict effort, cost, and schedule for software
De

projects. Despite differences in approaches (e.g., LOC-based, FP-based, use-case-based), most


models follow a common structural form.
sh

General Structure of an Estimation Model


m
uk

Most estimation models are represented using the following formula:


h

Effort = a × (Size)b
-+

Where:
91

 Effort = Predicted effort (in person-months)


90

 Size = Software size (e.g., in LOC or FP)


75

 a, b = Constants derived from historical data and organizational experience


61

Optional Extensions

Many models include adjustment factors to improve accuracy:


62

Effort = a × (Size)b × EAF


64

 EAF = Effort Adjustment Factor, based on cost drivers such as:

o Product complexity

o Team experience
18 | P a g e © Haris Chaus | ALL RIGHTS ARE RESERVED as per copyright act.

o Tool usage

o Required reliability

Example: Simple Effort Estimation

Let’s assume:
Su

 Size = 3,000 LOC


dh

 Constants: a = 2.5, b = 1.05

Effort = 2.5 × (3000)1.05 ≈ 2.5 × 3877 = 9692.5 person-hours


an

1.16 The COCOMO II Model


sh

The COCOMO II (Constructive Cost Model II) is a software cost estimation model used to
u

predict the effort, schedule, and cost of a software project. It is an evolution of the
De

original COCOMO (1981) and is better suited for modern software development practices,
sh

including iterative, agile, and component-based development.


m

Key Features of COCOMO II


uk

1. Supports Modern Software Development


h

o Accounts for reuse, prototyping, and incremental development.


-+

o Suitable for object-oriented, web-based, and commercial-off-the-shelf (COTS)


91

software.
90

2. Three Submodels for Different Project Stages

Application Composition Model (prototyping, GUI-based apps)


75

o Early Design Model (high-level architectural decisions)


61

o Post-Architecture Model (detailed development and maintenance)


62

3. Uses Scale Factors and Cost Drivers


64

o Adjusts estimates based on project complexity, team experience, and


technology.

COCOMO II Submodels:

1. Application Composition Model


19 | P a g e © Haris Chaus | ALL RIGHTS ARE RESERVED as per copyright act.

 Used for prototyping and projects with heavy GUI development.

 Estimates based on Object Points (similar to function points but for visual
components).

 Formula:

Effort (Person−Months) = NOP/PROD


Su

o NOP (New Object Points) = Adjusted count of screens, reports, and


dh

components.
an

o PROD (Productivity Rate) = Based on developer experience and tools.


sh

2. Early Design Model


u

 Used when only high-level requirements and architecture are known.


De

 Estimates based on Function Points (FP) or Lines of Code (LOC).


sh

 Formula:
m
uk

Effort = A × Size × 𝐸𝑀
h

o A: Constant (usually 2.94).


-+

o Size: In KLOC (thousands of lines of code) or FP.


91

o E: Scale factor (accounts for economies/diseconomies of scale).


90

o EM: Effort Multipliers (7 cost drivers like team experience, risk resolution).
75

3. Post-Architecture Model
61

 Most detailed, used when full requirements and design are known.
62

 Formula similar to Early Design but with 17 cost drivers (instead of 7).
64

 Formula:

Effort = A × Size × 𝐸𝑀

o Includes factors like reuse, documentation, security, and tool support.


20 | P a g e © Haris Chaus | ALL RIGHTS ARE RESERVED as per copyright act.

Key Parameters in COCOMO II

1. Scale Factors (Exponent E)

o Precedentedness (how similar the project is to past ones)

o Development Flexibility (rigidity of requirements)


Su

o Architecture/Risk Resolution (early risk handling)


dh

o Team Cohesion (team dynamics)


an

o Process Maturity (CMMI level)

2. Effort Multipliers (EM)


sh

Product Factors (reliability, complexity, database size)


u

o
De

o Platform Factors (execution constraints)

Personnel Factors (team capability, experience)


sh

Project Factors (tool use, distributed teams)


m

o
uk

Example Calculation (Post-Architecture Model)


h

Suppose:
-+

 Size (S) = 50 KLOC


91

 Scale Factor (E) = 1.1 (calculated from 5 scale drivers)


90

 Effort Multipliers (EM) = 1.15 (average of 17 cost drivers)


75

 A = 2.94 (constant)
61

Effort = 2.94 × 501.1 × 1.15 ≈ 330 Person-Months

Advantages of COCOMO II
62

 More accurate than the original COCOMO for modern projects.


64

 Flexible across different development methodologies.


 Adjusts for team skill, tools, and project risks.

Limitations

 Requires accurate size estimation (LOC or FP).


21 | P a g e © Haris Chaus | ALL RIGHTS ARE RESERVED as per copyright act.

 Relies on expert judgment for cost drivers.


 Less accurate for very small or extremely large projects.

Difference between COCOMO and COCOMO II Model:

Feature COCOMO (1981) COCOMO II (1997)

Purpose Estimate cost/effort for Estimate cost/effort for modern,


Su

traditional projects complex projects


dh

Development Model Waterfall Iterative, Agile, Object-Oriented


an

Estimation Based KLOC (Thousands of Lines KLOC, Function Points, Object


sh

On of Code) Points
u

Types / Levels Basic, Intermediate, Application Composition, Early


De

Detailed Design, Post-Architecture

Support for Reuse Limited Strong (accounts for reuse and


sh

COTS)
m

Tool & Method Not considered Supports modern tools and


uk

Integration techniques
h

Complexity Simple models with fixed More flexible and detailed estimation
-+

Handling formulas
91

Cost Drivers 15 cost drivers 22 cost drivers and 5 scale factors


90

Modularity Support Not supported Supported


75

Types of COCOMO Model Modes


61

1. Organic Mode
62

 Used For: Small, simple software projects


64

 Team: Small teams with good experience working in a familiar domain

 Example: Simple accounting or inventory system

Characteristics:

 Low complexity
22 | P a g e © Haris Chaus | ALL RIGHTS ARE RESERVED as per copyright act.

 In-house development

 Few constraints

2. Semi-Detached Mode

 Used For: Medium-size, moderately complex projects


Su

 Team: Mixed team of experienced and less-experienced members


dh

 Example: Payroll systems, database applications


an

Characteristics:

 Intermediate complexity
sh

 Balance of familiarity and unfamiliarity


u
De

 More external constraints than organic mode

3. Embedded Mode
sh

Used For: Complex systems with tight hardware, software, and operational constraints
m


uk

 Team: Large teams, often with multidisciplinary collaboration


h

 Example: Real-time systems, defense software, aerospace systems


-+

Characteristics:
91

 High complexity
90

 Rigid standards and tight deadlines


75

 Developed for a specific environment


61

1.17 Preparing Requirement Traceability Matrix

A Requirement Traceability Matrix (RTM) is a document that maps and traces user
62

requirements with test cases to ensure all requirements are covered during testing.
64

It helps track:

 Whether all requirements are implemented,

 Whether each requirement is tested, and

 The status of development or testing.


23 | P a g e © Haris Chaus | ALL RIGHTS ARE RESERVED as per copyright act.

Steps to Prepare an RTM

1. Gather Requirements: Collect all functional and non-functional requirements from the SRS
(Software Requirements Specification).

2. Assign Requirement IDs: Give each requirement a unique ID (e.g., R1, R2...) for tracking.

3. Identify Test Cases: Write test cases corresponding to each requirement.


Su

4. Map Requirements to Test Cases: Create a table that shows which test case verifies which
dh

requirement.
an

5. Add Status Column: Include a column to track the testing status (Pass/Fail/In Progress).
sh

6. Update Continuously: Keep the RTM updated throughout the software development
u

lifecycle.
De

Example RTM Table


sh

Requirement Requirement Description Test Case Test Case Status


ID ID Description
m
uk

R1 User should log in securely TC1 Test valid Pass


login
h

R2 Forgot Password TC2 Test password In Prog.


-+

functionality reset link


91

R3 Display dashboard after TC3 Test dashboard Not Run


90

login visibility
75
61

Benefits of RTM
62

 Ensures complete test coverage


64

 Helps with impact analysis when requirements change

 Makes auditing and validation easier

 Bridges the gap between requirements, development, and testing


24 | P a g e © Haris Chaus | ALL RIGHTS ARE RESERVED as per copyright act.

2. Project Scheduling

2.1 Project Scheduling

Project Scheduling is the process of planning, organizing, and managing time and tasks for
a software project to ensure it is completed within deadlines and allocated resources.
Su

It defines:
dh

 What tasks need to be done

When they need to be done


an

 Who will perform them


sh

 How long each task will take


u
De

Basic Principles of Software Project Scheduling:

1. Compartmentalization
sh

Divide the project into smaller tasks (Work Breakdown Structure – WBS).
m

o
uk

o Helps in better planning and assignment.


h

2. Interdependency
-+

o Identify task dependencies (what must be done before or after other tasks).
91

o Allows better sequencing of tasks.


90

3. Time Allocation
75

o Assign a start and end date to each task.

Ensures time is well-planned and deadlines are realistic.


61

4. Effort Validation
62

o Validate if the time and effort estimated for each task are achievable.
64

o Avoids underestimating work.

5. Defined Responsibilities

o Assign clear responsibility for each task to individuals or teams.


25 | P a g e © Haris Chaus | ALL RIGHTS ARE RESERVED as per copyright act.

o Promotes accountability and ownership.

6. Defined Outcomes

o Each task should have a clear deliverable (document, code, report, etc.)

o Helps track progress easily.


Su

7. Defined Milestones
dh

o Mark major events or checkpoints in the schedule (e.g., design complete, testing
start).
an

o Helps monitor progress and control the project.


sh
u
De
sh
m

Tasks of Project Scheduling


uk

1. Identify Project Tasks


h

o Break down the entire project into smaller workable tasks.


-+

o This is done using Work Breakdown Structure (WBS).


91

2. Establish Task Dependencies


90

o Determine the sequence in which tasks should be performed.


75

o Identify which tasks depend on others.


61

3. Estimate Time and Resources

Calculate the time, effort, and resources (people, hardware, software) needed for
62

each task.
64

o Use historical data or estimation models (like COCOMO) if required.

4. Assign Responsibilities

o Allocate each task to a specific team member or team.

o Ensures accountability and smooth workflow.


26 | P a g e © Haris Chaus | ALL RIGHTS ARE RESERVED as per copyright act.

5. Define Milestones

o Identify key checkpoints in the project where progress is evaluated (e.g., design
complete, testing done).

o Helps in tracking progress.

6. Develop the Schedule


Su

o Use tools like Gantt charts or Timeline charts to visually represent task durations,
dh

dependencies, and milestones.


an

7. Monitor and Revise the Schedule


sh

o Track the actual progress vs. planned progress.


u

o Make adjustments if delays or changes occur.


De

Resources Required for Development


sh

 Human effort (developers, designers, testers, etc.)


m

 Sufficient disk space (especially on servers)


uk

 Specialized hardware (if the project demands)


h

 Software tools and technologies


-+

 Travel allowance or logistics for project staff


91

Advantages of Project Scheduling


90

 Keeps everyone on the same page regarding tasks, dependencies, and deadlines.
75

 Helps identify potential issues early, such as resource shortages.


61

 Shows relationships between tasks and helps monitor project progress.


62

 Supports better budgeting and risk mitigation.


64

2.2 Defining a Task for the Software Project

A Task Set is a collection of software engineering work tasks, milestones, and work products
that need to be completed to deliver a software project successfully.

Purpose of a Task Set:


27 | P a g e © Haris Chaus | ALL RIGHTS ARE RESERVED as per copyright act.

 Helps define and guide the software development process

 Allows teams to plan, track, and support the project systematically

 Ensures high quality software is built by avoiding unnecessary tasks

Key Points:
Su

 Every process model (like Waterfall, Agile, etc.) is made up of one or more task sets.
dh

 There is no universal task set for all projects — task sets must be customized based
on the project type and characteristics.
an

 Effective software processes adapt the task set to match the project's needs and goals.
sh

Types of Software Projects & Their Task Sets:


u

1. Concept Development Projects


De

o Focus: New business ideas or innovative tech applications


sh

o Typical Tasks:
m

 Defining Scope: Set project goals and objectives


uk

 Planning: Estimate time, cost, and human effort


h

Evaluating Technology Risks: Assess risks in using new technologies


-+

 Concept Implementation: Create a model or prototype for end-users


91

2. New Application Development Projects


90

o Designed to fulfill specific customer needs


75

3. Application Upgradation Projects


61

o Modify existing applications for better performance or updated features


62

4. Application Maintenance Projects


64

o Perform bug fixes, adaptations, or feature extensions to current software

5. Reengineering Projects

o Rebuild or modernize legacy systems (partially or completely)

Factors Influencing Task Sets:


28 | P a g e © Haris Chaus | ALL RIGHTS ARE RESERVED as per copyright act.

 Size of the project

 Number of users

 Project team size

 Application lifetime
Su

 Application complexity
dh

 Performance constraints
an

 Technologies used

2.3 Scheduling with a Time Line Chart


sh

Scheduling is the process of planning what tasks need to be done, when, and by whom in a
u

software project. A Time Line Chart helps visualize this schedule in a clear, time-based
De

format.
sh

What is a Time Line Chart?


m

A Time Line Chart (also called a Gantt Chart) is a horizontal bar chart that shows:
uk

 Tasks or activities on the vertical axis


h

 Time (days/weeks/months) on the horizontal axis


-+
91
90
75
61
62
64

Each bar represents a task and spans from its start date to end date.

In time line chart


29 | P a g e © Haris Chaus | ALL RIGHTS ARE RESERVED as per copyright act.

1) All the tasks are listed at the leftmost column.

2) The horizontal bars indicate the time required by the corresponding task.

3) When multiple horizontal bars occur at the same time on the calendar, then that means

concurrency can be applied for performing the tasks.


Su

4) The diamonds indicate the milestones.


dh

Benefits of Time Line Chart


an

 Easy to understand project progress at a glance

 Shows overlapping tasks (parallel execution)


sh

 Helps track delays and dependencies


u
De

 Useful for resource management

Project Table:
sh
m

Tasks Planned Actual start Planned end Actual end Effort


start assignment
uk

Requirement 6th Sept’24 6th Sept’24 20th Sept’24 22nd Sept’24 John, Chris,
h

analysis Mary
-+

Architectural 27th Sept’24 27th Sept’24 3rd Oct’24 7th Oct’24 Bruce, Matt
design
91

Procedural 10th Oct’24 12th Oct’24 24th Oct’24 25th Oct’24 Akash,
90

design Samay, Ravi


. . . . . .
75

. . . . . .
. . . . . .
61

Customer 1st Jan’25 4th Jan’25 22nd Jan’25 25th Jan’25 Gwen, Peter
training
62
64

Common questions

Powered by AI

Scope management prevents scope creep by clearly defining the boundaries of a project, including functions, features, constraints, and interfaces. By evaluating and refining these parameters beforehand, teams can align on effort and expectations, reducing the likelihood of unplanned expansions. This is important because it helps maintain project focus, control costs, and adhere to timelines, ultimately leading to successful project delivery .

Use cases describe user interactions with the system, which can be classified by complexity and assigned a weighted point value. By calculating Unadjusted Use Case Points (UUCP) and adjusting for technical and environmental factors, effort can be estimated using a productivity factor. This approach benefits software estimation by providing a structured framework that focuses on user requirements, facilitating a clearer understanding of project scope and resources needed .

Defining a software project's task set involves outlining work tasks, milestones, and deliverables necessary for project completion. Key considerations include project scope, goals, process models (e.g., Agile, Waterfall), and necessary resources. A well-defined task set supports quality assurance by providing a clear roadmap for development, ensuring that all necessary tasks are planned and monitored. This structured approach helps in preventing omissions, maintaining focus, and enhancing the quality of the final product by adhering to established standards and processes .

Effective project estimation involves understanding and assessing the project's scope, selecting appropriate estimation methods, estimating effort and time, and incorporating buffers for uncertainties. This process helps in resource planning, accurate budgeting, and scheduling, which are essential for setting realistic project deadlines and managing customer expectations. By early identification of potential risks, estimation allows for proactive risk management, thereby enhancing project planning and execution .

Environmental factors include team experience, motivation, and stability, among others. They influence the Environmental Factor (EF) in effort estimation by adjusting the calculated Use Case Points (UCP). A high score in favorable environmental factors reduces the EF, indicating higher efficiency and productivity, which can positively influence project outcomes by improving accuracy in effort estimation, enhancing resource allocation, and supporting timely project completion .

Reconciling different estimation techniques involves comparing various estimates (LOC, FP, process-based) and synthesizing them to derive a balanced forecast. This process is important because it considers multiple perspectives and methodologies, reducing bias inherent in any single approach. Reconciliation helps ensure accuracy in project forecasts by balancing optimism, realism, and pessimism, resulting in more reliable project timelines and resource allocations .

The COCOMO II model estimates software development efforts by taking into account software size in lines of code and applying cost drivers that reflect various project attributes such as product complexity and team capability. This model is beneficial in modern software development because it provides a structured approach to estimating effort and cost, accommodating a wide range of project types and sizes, and supporting adjustments for contemporary practices like reuse and prototyping .

Empirical estimation models are based on experience, observations, and practical judgment, often using past data or expert opinion rather than strict computational methods. Such models are chosen when precise data is unavailable or when projects are novel or innovative, reducing reliance on historical similarity. They allow for more flexibility and adaptability to project-specific conditions, making them valuable for gaining a reasonable estimate under uncertain or ambiguous circumstances .

Establishing task dependencies is crucial for determining the sequence of tasks within a project, identifying which tasks rely on the completion of others. This process benefits project management by ensuring that tasks are executed in a logical order, preventing bottlenecks, and promoting a smoother workflow. It aids in visualizing project timelines, optimizing resource utilization, and facilitating better monitoring and adjustment of project schedules .

In GUI-based software projects, techniques like Function Point (FP) and Object Point (OP) help estimate project size by quantifying functional components and user-interface elements, respectively. These techniques provide a basis for predicting effort and cost, which influence budgeting decisions and help in precise resource allocation. For example, the number of screens, reports, or modules can be directly tied to developer tasks, facilitating the allocation of personnel and tools needed to meet project objectives effectively .

You might also like