Cost Estimation

advertisement
Laxminarayan Muktinutalapati
Performance-Study of Message Passing in an Event Service:
Java RMI Vs. TCP Sockets
Cost Estimation
The cost estimation process for this project is performed based on the Function Point
Analysis (FPA) as outlined by the International Function Point Users Group (IFPUG).
The analysis measures software in terms of user-level functionality and is independent of
the technology used. It breaks down a software system into smaller components so they
can be better understood and analyzed. This technique is widely used in several software
applications.
Size Estimation Using FPA
FPA has been proven to be a reliable metric in estimating size, cost, and effort involved
in developing software. Of the different methods available to count function points, we
follow the one developed by Alan Albrecht1 and later revised by IFPUG.
Size estimation using FPA essentially consists of the following steps:
1. Determining the unadjusted function point (UFP) count
a. Identifying the function point components
b. Determining complexity of each of the components– categorizing them
into low, average, or high complexity
c. Calculating the final UFP value
2. Determining the value adjustment factor (VAF) based on the general system
characteristics (GSCs)
3. Compute final function point count (FPC)
4. Estimate total SLOC using the FPC and language factor for Java, the
programming language
Determining the unadjusted function point (UFP) count
1.a Identifying the function point components
There are five major components required to determine the function point count. They
are:

External Inputs (EI): These are elementary processes in which derived data passes
across the boundary from outside to inside. In this system, the number of
consumers, producers and ENSs are the inputs.

External Outputs (EO): These are elementary processes in which derived data
passes across the boundary from inside to outside. The time taken for message
passing from producer to ENS, from ENS to consumers, and the total time
therefore from producer to consumer are the three outputs identified.

External Queries (EQ): These are elementary processes with both input and
output components that result in data retrieval from one or more internal logical
files and external interface files. Each run of the system is set to a specific number
of messages, producers and consumers. We assume there will be three different
queries on the corresponding numbers.

Internal Logical Files (ILF): These are user identifiable groups of logically related
data that resides entirely within the applications boundary that are maintained
through external inputs. The list of subscribers for a particular event, and the
details of time elapsed for message passing from producer to ENS, and ENS to
consumers are three such logical files identified in the system.

External Interface Files (EIF): These are user identifiable groups of logically
related data that are used for reference purposes only, and which reside entirely
outside the system. No such files have been identified that interact with our
system in the said manner.
1.b Complexity of the components
The EI, EO, and EQ are rated based on the number of file types referenced (FTR) which
are the files listed above and the corresponding date elements (DET) that they are made
of. From the available references2 we may classify all these to be of low complexity.
Similarly, the files- ILFs and EIFs are rated based on the record elements and data
elements. Again, from available references the 3 ILFs are classified as having low
complexity.
1.c. Calculating UFP
Based on the complexity, each of the components is given certain weight. The table
below lists the number of components in each category alongside the corresponding
weights:
Rating
Values
EO
EQ
EI
ILF
ELF
Low
4 (3)
3 (3)
3 (3)
7 (3)
5 (0)
Average
5 (0)
4 (0)
4 (0)
10 (0)
7 (0)
High
6 (0)
5 (0)
6 (0)
15 (0)
10 (0)
TOTAL
12
9
9
21
0
Total UFP = 12 + 9 + 9 + 21 + 0 = 51
Determining the value adjustment factor (VAF)
The value adjustment factor (VAF) is based on 14 general system characteristics (GSC’s)
that rate the general functionality of the application being counted. Each characteristic
has associated descriptions that help determine the degrees of influence of the
characteristics. The degrees of influence range on a scale of zero to five, from no
influence to strong influence. ([2] – Section 11)
The table below gives the summary rating:
General System Characteristic
1.
Data communications
2.
Distributed data processing
3.
Performance
4.
Heavily used configuration
5.
Transaction rate
6.
On-Line data entry
7.
End-user efficiency
8.
On-Line update
9.
Complex processing
10. Reusability
11. Installation ease
12. Operational ease
13. Multiple sites
14. Facilitate change
TOTAL
Degree of influence
2
3
1
5
5
0
1
0
2
3
1
5
4
3
35
The VAF is given by the following equation –
14
where: Ci = degree of influence for each General System Characteristic
VAF = 0.65 + (  Ci ) / 100
i = from 1 to 14 representing each GSC.
i =1
 = summation of all 14 GSC’s.
VAF = 0.65 + 35/100 = 1
Computing the final function point count (FPC)
The final Function Point Count is obtained by multiplying the Value Adjustment Factor
(VAF) times the Unadjusted Function Point (UFP).
The standard function point
equation is:
FPC = UAF * VAF
= 51 * 1
= 51
Estimating lines of code (SLOC)
To arrive at the number of source lines of code we multiply the number of adjusted
function points (FPC) with the language factor, which is an empirical measure of the
number of SLOC per function point.
The language factor for Java is assumed to be 53 (from various articles available on the
web). Hence we have, SLOC = 51 * 53 = 2703
[1]
Albrecht, A. J. 1979. Measuring Applications Development Productivity. Proceedings of IBM
Application Development Joint Share Guide Symposium, Monterey, CA, 1979, pp. 83-92.
[2]
Longstreet, D. 2001. Function Point Training and Analysis Manual. Longstreet Consulting Inc, Revision
Dates: Feb. 2001, 30 Aug. 2001, and 1 March 2002. <http://www.SoftwareMetrics.Com/freemanual.htm>.
Download