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.
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