Cost Estimation

 

In order to achieve efficient and effective management of software projects, it is important to estimate the size and cost of the project.  For the size and cost estimation of my MSE project, I will use Function Point Analysis (FPA) and COCOMO model to predict the development effort of the statistical analysis package. Function point analysis and the COCOMO model are an accepted standard for the measurement of software size in software engineering.

 

Function Points Analysis

The FPA is a reliable method for measuring the size of computer software. It essentially measures functionality that the user requests and receives. It also measures the software development and maintenance cost and size independently of the technology used for implementation

The general approach that FPA follows is

·        Count the number of inputs, outputs, inquiries, master files, and interfaces required, then calculate the Unadjusted Function Points (UFP)

·        Calculate the Source Lines of Code (SLOC) with the help of the AFP and the Language Factor (LF)

 

 

1. Calculation of the unadjusted function points (UFP):

The FPA measures functionality that the user requires. The specific user functionality is a measurement of the functionality delivered by the application as for user request. The 5 function types identified are

For each function identified above the function is further classified as simple, average or complex and a weight is given to each. The sum of the weights quantifies the size of information processing and is referred to as the Unadjusted Function points.

The table below shows the function types and the weighting factors for the varying complexities.

 

 

 

Function type

Simple

Average

Complex

Internal Logical File

7

10

15

External Interface File

5

7

10

External Input

3

4

6

External Output

4

5

7

External Inquiry

3

4

6

 

 

 

Using these definitions above, the files types in my project can be counted as follows:

 

 

 

 

 

Weighting Factor

Count

Simple

Average

Complex

Inputs

Member Login

3

 

 

27

Member Registration

 

4

 

Select  research question for regression analysis

 

4

 

Select  research question for correlation analysis

 

4

 

Select  research question for hypothesis test analysis

 

4

 

Select  research question for Chi Square test analysis

 

4

 

Outputs

Member login confirmation

3

 

 

15

Member Registration confirmation

3

 

 

Graph/Table of regression analysis

 

 

 

Graph/Table of correlation analysis

3

 

 

Graph/Table of hypothesis test analysis

3

 

 

Graph/Table of Chi square test analysis

3

 

 

Inquiries

Validate member information

 

4

 

8

View alumni list

 

 4

 

Files

Linear regression

 

10

 

40

correlation

 

10

 

Hypothesis test

 

10

 

Chi square test

 

10

 

Interfaces

Application server to database

 

 

10

20

 User to application server

 

 

10

Total UFP

 

 

 

 

110 

 

 

 

2. Calculate Adjusted Function Point

To calculate the Complexity adjustment value, several factors have to be considered, such as Backup and recovery, code design for reuse, etc.  All the factors and their estimated values in this project are shown in the following table.

The adjusted function point denoted by FP is given by the formula:

 

FP = total UFP * (0.65 + (0.01 * Total complexity adjustment value)) or

FP = total UFP * (Complexity adjustment factor)

Total complexity adjustment value is counted based on responses to questions called complexity weighting factors in the table below.  Each complexity weighting factor is assigned a value (complexity adjustment value) that ranges between 0 (not important) to 5 (absolutely essential). 

Table Adjusted Function Points

Number

Complexity Weighting Factor

Value

1

Backup and recovery

1

2

Data communications

2

3

Distributed processing

2

4

Performance critical

5

5

Existing operating environment

3

6

On-line data entry

3

7

Input transaction over multiple screens

1

8

Master files updated online

3

9

Information domain values complex

5

10

Internal processing complex

4

11

Code designed for reuse

5

12

Conversion/installation in design

4

13

Multiple installations

4

14

Application designed for change

4

 

Total complexity adjustment value

 46

 

 

3.     Calculate the Source Lines of Code (SLOC) and the formulas used

 

·       Total Unadjusted Function Points (UFP)        = 110

·       Product Complexity Adjustment (PC) = 0.65 + (0.01 *46) = 1.11

·       Total Adjusted Function Points (FP) = UFP * PC = 122

·       Language Factor (LF) for Java assumed as = 38

·       Source Lines of Code (SLOC) = FP * LF = 4636

 

 

 

COCOMO Model

The COCOMO model is a good measure for estimating the number of person-months required to develop software. My project, the Statistical analysis package is an application program. The table below presents the COCOMO formulae for different types of programs:

TDEV

Programmer Productivity

Development Time

(Month)

Application Programs

Utility Programs

System Programs

PM = 2.4 * (KDSI) 1.05

PM = 3.0 * (KDSI) 1.12

PM = 3.6 * (KDSI) 1.20

PM = 2.5 * (PM) 0.38

PM = 2.5 * (PM) 0.35

PM = 2.5 * (PM) 0.32

Using the above formula for the application programs,

The programmer productivity and the development time are as follows:

·         KDSI = 4.63 KLOC

·         PM = 2.4 * (4.63) 1.05 = 11 person-month

·         TDEV = 2.5 * (11) 0.38 =   month