0% found this document useful (0 votes)
10 views4 pages

Software Project Estimation Methods

The document explains two methods for software project estimation: Function Point (FP) and Lines of Code (LOC). FP analysis measures software functionality from the user's perspective, while LOC estimation uses the Basic COCOMO model to calculate effort and cost based on project complexity. For a project of 33,200 LOC, the estimated effort is 143.7 person-months and the total cost is approximately $1,149,600.
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)
10 views4 pages

Software Project Estimation Methods

The document explains two methods for software project estimation: Function Point (FP) and Lines of Code (LOC). FP analysis measures software functionality from the user's perspective, while LOC estimation uses the Basic COCOMO model to calculate effort and cost based on project complexity. For a project of 33,200 LOC, the estimated effort is 143.7 person-months and the total cost is approximately $1,149,600.
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

Software Project Management (3171609) 221260116012

Of course. Here are the explanations and calculations for both Function Point (FP) and Lines
of Code (LOC) based project estimation.

Function Point (FP) Based Project Estimation


Function Point (FP) analysis is a method used to measure the functionality of a software
system from the user's point of view. It is independent of the programming language,
technology, or development methodology used. The core idea is to break down the system
into smaller, functional units and then assign points to each based on its complexity.

Here's a general process for calculating Function Points:

Step 1: Determine the Unadjusted Function Points (UFP)

First, you identify and categorize the system's functions into five types:
1.​ External Inputs (EI): Data that comes from outside the application to inside the
application (e.g., a user filling out a form).
2.​ External Outputs (EO): Data that goes from the application to the outside (e.g.,
reports, confirmation screens).
3.​ External Inquiries (EQ): A combination of an input and an output that retrieves data
from the system but does not alter any internal data (e.g., a search query).
4.​ Internal Logical Files (ILF): A logical group of data maintained within the application
(e.g., a database table of employees).
5.​ External Interface Files (EIF): A logical group of data that is used by the application
but maintained by another system (e.g., using an external API to get tax rate data).

For each of these function types, you count how many there are and classify them as Low,
Average, or High complexity. Each complexity level has a corresponding weight:

Function Type Low Average High

EI 3 4 6

EO 4 5 7

EQ 3 4 6

ILF 7 10 15
Software Project Management (3171609) 221260116012

EIF 5 7 10

The Unadjusted Function Points (UFP) are calculated by multiplying the count of each
function type by its complexity weight and summing the results.

Step 2: Determine the Value Adjustment Factor (VAF)

The VAF adjusts the UFP based on 14 General System Characteristics (GSCs) that rate the
overall complexity of the project. Each characteristic is assigned a degree of influence from 0
(not present) to 5 (strong influence).

The 14 GSCs are:


1.​ Data Communications
2.​ Distributed Data 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

The Total Degree of Influence (TDI) is the sum of the scores for all 14 GSCs.

The VAF is then calculated using the formula:

VAF = 0.65 + (0.01 * TDI)

Step 3: Calculate the Final Function Points (FP)

The final Function Point count is calculated as:

FP = UFP * VAF

Once you have the final FP count, you can use historical data from your organization (e.g.,
effort per FP, cost per FP) to estimate the project's cost and duration.

LOC Based Estimation (Using Basic COCOMO)


For the second part of your request, we will use the Basic COCOMO (Constructive Cost
Model) to estimate the effort and cost for a project of 33,200 Lines of Code (LOC).
Software Project Management (3171609) 221260116012

The COCOMO model has three modes based on project complexity:


●​ Organic: Small teams, familiar projects, flexible requirements.
●​ Semi-Detached: A mix of experienced and inexperienced staff, medium-sized
projects.
●​ Embedded: Tight constraints (hardware, software), complex projects.

Since we don't have details about the project, we'll use the Semi-Detached model, which is
a common choice for average projects.

1. Calculate Estimated Effort

The formula for effort is:

Effort = a * (KLOC)^b

Where:

●​ KLOC is the size of the project in Kilo-Lines of Code (33,200 LOC = 33.2 KLOC).
●​ a and b are constants that depend on the project mode. For a Semi-Detached
project, a = 3.0 and b = 1.12.

Calculation:

Effort = 3.0 * (33.2)^1.12

Effort = 3.0 * 47.90

Effort ≈ 143.7

●​ The estimated effort is 143.7 person-months.

2. Calculate Estimated Project Cost

To calculate the cost, we need to assume an average cost per person-month. This cost
varies greatly depending on location, team experience, and overhead. For this example, let's
assume an average loaded cost of $8,000 per person-month.

Calculation:

Total Cost = Effort * Cost per Person-Month

Total Cost = 143.7 * $8,000

Total Cost = $1,149,600

●​ The total estimated project cost is $1,149,600.

Summary of LOC-Based Estimation:


Software Project Management (3171609) 221260116012

●​ Estimated Effort: 143.7 person-months


●​ Total Estimated Project Cost: $1,149,600 (based on an assumed cost of $8,000
per person-month)

Common questions

Powered by AI

The combination of Function Point Analysis and COCOMO can enhance project estimation accuracy by integrating their different focuses: Function Point Analysis provides a user-oriented view of software complexity based on functionalities, while COCOMO utilizes project size in LOC and defined modes (Organic, Semi-Detached, Embedded) to calculate effort. The functional decomposition of Function Points captures user needs irrespective of technical implementations, which is complemented by COCOMO's attention to code volume and project constraints. Together, they offer a holistic view by addressing both functional and technical dimensions, allowing for refined estimation adjustments to the project's unique characteristics .

The calculation of effort in Basic COCOMO primarily relies on the size of the project measured in Kilo-Lines of Code (KLOC) and utilizes a mathematical formula with mode-specific constants, demonstrated as Effort = a * (KLOC)^b. For example, in Semi-Detached mode, a = 3.0 and b = 1.12, indicating effort scales based on project size and mode-determined factors. In contrast, Function Point Analysis bases effort calculation on function points adjusted by system characteristics, reflecting user-centric functional aspects rather than raw code size alone .

The 14 General System Characteristics influence the Value Adjustment Factor in Function Point Analysis by providing a nuanced adjustment to the Unadjusted Function Points through their respective degrees of influence on a scale of 0 to 5. These characteristics, which include aspects like data communication and operational ease, cumulatively determine the Total Degree of Influence (TDI) that modifies the UFP. The influence scores are aggregated, and the VAF is calculated using the formula VAF = 0.65 + (0.01 * TDI), thus translating these general system features into a tangible impact on the function point estimation .

Function Point Analysis is advantageous over Lines of Code (LOC) based estimation in diverse project environments because it is independent of programming languages, technologies, or development methodologies, thus making it more applicable across varied contexts. It measures software size based on user-visible functionality and complexity factors, capturing the user-centric aspects of the system and not just the dimensions of technical implementation. This method accommodates variations in coding practices and promotes clearer communication of software functionality, making it more adaptable for projects involving multiple teams or varying domains .

Using historical data for cost and effort estimation in Function Point Analysis is effective because it allows organizations to calibrate their estimates based on past experiences, leading to more accurate predictions. This method leverages previous project results to establish benchmarks like effort per function point or cost per function point, enabling improved planning and allocation. However, the approach may have limitations if past projects do not reflect the current project's technological or contextual circumstances, potentially misleading without continual revision and update of historical data .

The cost estimation process in the Basic COCOMO model assumes a constant average cost per person-month, which varies significantly based on location, team experience, and overhead. For instance, the example estimation assumes $8,000 per person-month, which provides a standardized base for calculating total project cost by multiplying it with the estimated effort in person-months. This process inherently assumes stability in cost variables and does not explicitly account for on-the-fly changes in team dynamics or external economic factors that may alter the real cost .

The steps in Function Point Analysis begin with determining the Unadjusted Function Points (UFP) by identifying and categorizing system functions into five types: External Inputs, External Outputs, External Inquiries, Internal Logical Files, and External Interface Files, each classified by complexity levels with assigned weights. Once UFP is calculated, the Value Adjustment Factor (VAF) is determined by assessing 14 General System Characteristics using influence scores ranging from 0 to 5. This TDI results in VAF = 0.65 + (0.01 * TDI). Finally, the Final Function Points (FP) are calculated as FP = UFP * VAF, offering a comprehensive, adjusted functional size of the software project .

The Complexity Adjustment Factor (CAF) in Function Point Analysis differentiates various function types by assigning different weights based on their complexity levels—Low, Average, and High. For example, External Inputs (EI) have weights of 3, 4, and 6 for Low, Average, and High complexities, respectively, while Internal Logical Files (ILF) have corresponding weights of 7, 10, and 15. This system ensures that the importance and effort required by each functional type is appropriately captured whether it's an input, output, or internal file .

Choosing a Semi-Detached mode in the COCOMO model implies a project with moderate complexity involving a mix of experienced and inexperienced staff, typically medium-sized and with familiar objectives—striking a balance between the flexibility of organic projects and the rigidity of embedded ones. This choice affects the constants used in effort estimation equations, as Semi-Detached projects utilize a = 3.0 and b = 1.12, while different coefficients apply for Organic or Embedded modes. This choice can lead to a more adaptable and moderate estimation reflecting the balance between strict requirements and flexible settings .

The Value Adjustment Factor (VAF) in calculating Final Function Points plays a critical role in fine-tuning the unadjusted function point count (UFP) by considering the specific technical and environmental factors of the project. It accounts for 14 General System Characteristics like data communications, performance, and end-user efficiency by assigning influence scores, which are summed to calculate the Total Degree of Influence (TDI). This sum adjusts the UFP through the formula VAF = 0.65 + (0.01 * TDI), thus reflecting complexities that standard function count might overlook .

You might also like