Cost Estimation: - Computing and Information Sciences

advertisement
Cost Estimation:
1. Introduction
To estimate the effort needed for the software project, Function Point Analysis (FPA)
and COCOMO model are used to predict the size and cost of developing the ESTMD
system.
2. Function Points Analysis
In order to measure the software functionality, function points are derived using an
empirical relationship based on countable measures of software’s information domain
and assessments of software complexity.
The general approach of FPA is:
 Determine and count five information domain characteristics: inputs, outputs,
inquiries, files, and external interfaces.
 Compute the Function Points following the formula:
FP =  UFP  [0.65 + 0.01  (Fi)], which Fi are “complexity adjustment
values” based on responses to some questions.
 Calculate the Source Lines of Code with the help of the AFP and the
Language Factor (LF).
2.1 Determine and count information domain characteristics
The weights are based on the complexity of the characteristics being counted.
(Table 1)
Function type
Inputs
Outputs
Inquires
Files
External interfaces
Simple
3
4
3
7
5
Average
4
5
4
10
7
Complex
6
7
6
15
10
Table 1. Domain characteristics with weights
User Inputs
User Inputs are items of application data that is supplied to the system. The logical
input is usually considered one item and individual fields are not usually counted
separately. For example, the input of personal data of a student might be considered
one input.
I summarized the user inputs in the following items:
-
New students' information (Simple)
Students' grade (Simple)
Teacher Recommendations (Simple)
Teacher login (Simple)
Crate New Groups (Simple)
User Outputs
User outputs are displays of application data. In this context output refers to reports,
analysis screens, error messages, and so on. Individual fields are usually not
considered separate outputs.
I summarized the user outputs in the following items:
- Students' EPT results and recommendation report. (Average)
- Success importing students ELP scores message (Simple)
- Highlight line for missing students’ EPT scores (Simple)
- Generate failed message when student is missed in the system that has ELP Scores
(Average)
- Generate successfully placement message. (Simple)
- Success adding new students’ information (Simple)
- Success create groups message.(Simple)
- Place students in the propel levels (Complex)
- Success teacher login message (Simple)
User Inquiries
These are request responses that do not change the internal data. Example, a request
for the level of a specified student is an inquiry. The whole sequence of asking,
supplying the test number and getting the level and group would count as one inquiry.
I summarized the user inquiries in the following items:
-
View list of levels and groups (Simple)
View specific student information (Simple)
View Teachers classes and groups (Average)
External Interfaces
There are no external interfaces for the ELP Helper.
Internal Files
Each major logical group of user data or control information related to application.
For this system No File processing is required.
Item
Inputs
Outputs
Inquiries
Files
Interfaces
Total
Simple
3*(5)
4*(6)
3*(2)
7*(0)
5*(0)
Average
4*(0)
5 *(2)
4*(1)
10 *(0)
7*(0)
Complex
6*(0)
7*(1)
6* (0)
15*(0)
10*(0)
Total
15
41
10
0
0
66
Table 2. Unadjusted Function Points count
From the table above, I have concluded the value of FP unadjusted is (UFP) = 66
2.2 Compute the Function Points
To calculate the complexity adjustment value, several factors have to be considered,
such as Back up and recovery, code design for reuse, etc. All the factors and their
estimated value in the project are shown in the following table.
The adjusted function point denoted by FP is given by the formula:
FP =  UFP  [0.65 + 0.01  (Fi)], which Fi are “complexity adjustment values”
based on responses to questions called complexity weighting factors in the table
below. Each complexity weighting factor is assigned a value that ranges between 0
(not important) to 5 (absolutely essential).
Complexity Weighting Factor
Backup and recovery
Data communications
Distributed processing
Performance critical
Existing operating environment
On-line data entry
Input transaction over multiple screens
Master files updated online
Information domain values complex
Internal processing complex
Code designed for reuse
Conversion/installation in design
Multiple installations
Application designed for change
Total complexity adjustment value
Value (0-5)
0
2
4
5
0
3
3
3
5
5
5
3
0
4
42
Table 3. Adjustment value count



Total Unadjusted Function Points (UFP) = 66
Product Complexity Adjustment (PC) = 0.65 + (0.01 × 42) = 1.07
Total Adjusted Function Points (FP) = UFP × PC = 70.62
2.3 Calculate the Source Lines of Code (SLOC)
 Language Factor (LF) for C#.Net based in my project is 25 as lines of code for
each FP.
 Source Lines of Code (SLOC) = FP × LF = 1765.5 = 1765.5 = 1.7655 K
3. COCOMO
COCOMO, Constructive Cost Model, is a good measure for estimating the
number of person-months required to develop software. ELP Helper is an
application program. The table below presents the COCOMO formulae for
different type of programs.
Project complexity
Programmer Effort
Application Programs PM = 2.4*(KDSI) 1.05
Utility Programs
PM = 3.0*(KDSI) 1.12
System Programs
PM = 3.6*(KDSI) 1.20
Development Time (Months)
TDEV = 2.5*(PM) 0.38
TDEV = 2.5*(PM) 0.35
TDEV = 2.5*(PM) 0.32
Table 4. Formulas for different programs in COCOMO
This project is an application program. The formulas of the first row in the upper
table are used.
Delivered Source Instructions (KDSI) = 1.7655 K
Programmer Effort (PM) = 2.4 × (KDSI) 1.05 = 4.4 programmer-month
Development Time in month (TDEV) = 2.5 × (PM) 0.38 = 4.4 months
Download