Uploaded by Premaladha Jayaraman

Software Project Estimation-Problems

advertisement
Software Project Estimation
1. LOC – based Estimation
The mechanical CAD software will accept two- and three-dimensional geometric data from
a designer. The designer will interact and control the CAD system through a user interface
that will exhibit characteristics of good human/machine interface design. All geometric
data and other supporting information will be maintained in CAD database. Design analysis
modules will be developed to produce the required output, which will be displayed on a
variety of devices. The software will be designed to control and interact with peripheral
devices that include a mouse, scanner, laser printer, and plotter. Following table gives you
the functionalities and corresponding Lines of Code:
A review of historical data indicates that the organizational average productivity for
systems of this type is 620 LOC/pm. Burdened labour rate is $8,000 per month.
Historical data:
Average productivity : 620 LOC/pm (*pm-person months)
Labour rate
: $8,000 per month
Estimate the total cost and effort for the mechanical CAD software.
Solution:
Cost per LOC =
πΏπ‘Žπ‘π‘œπ‘’π‘Ÿ π‘Ÿπ‘Žπ‘‘π‘’
π΄π‘£π‘’π‘Ÿπ‘Žπ‘”π‘’ π‘π‘Ÿπ‘œπ‘‘π‘’π‘π‘‘π‘–π‘£π‘–π‘‘π‘¦
=
8000
= 12.9 = $ 13
620
Total cost = Estimated LOC x Cost per LOC = 33,200 x 13 = $ 4,31,600
Effort required =
$ 4,31,600
$8,000
= 53.95 = 54 person-months
2. Function point-based estimation
The function point (FP) metric can be used effectively as a means for measuring
the functionality delivered by a system. To compute function points (FP), the following
relationship is used:
Sample problem with 3-point estimate:
A three-point or expected value can then be computed. The expected value for the
estimation variable (size) S can be computed as a weighted average of the optimistic (s opt),
most likely (sm), and pessimistic (spess) estimates.
Value adjustment factor:
The organizational average productivity for systems of this type is 6.5 FP/pm.
Burdened labour rate is $8,000 per month.
Historical data:
Average productivity : 6.5 FP/pm (*pm-person months)
Labour rate
: $8,000 per month
Solution:
Cost per FP =
πΏπ‘Žπ‘π‘œπ‘’π‘Ÿ π‘Ÿπ‘Žπ‘‘π‘’
π΄π‘£π‘’π‘Ÿπ‘Žπ‘”π‘’ π‘π‘Ÿπ‘œπ‘‘π‘’π‘π‘‘π‘–π‘£π‘–π‘‘π‘¦
=
8000
= $ 1230.7 or $ 1230
6.5
Total cost = Estimated FP x Cost per FP = 375 x $ 1230 = $ 4,61,250
Effort required =
$ 4,61,250
$8,000
= 57.6 = 58 person-months
3. Process-based estimation
Based on an average burdened labour rate of $8,000 per month, the total estimated
project cost is $368,000 (8000 x 46) and the estimated effort is 46 person-months.
4. Estimation with use-cases
Assessment of Usecases:
Complexity
levels
Simple
usecase
Average
usecase
Complex
usecase
Elements of usecase
Weight factor
A simple user interface
Single database & 3/few transactions
5/few classes
Complex UI
2 or 3 databases & 4 to 7 transactions
5 to 10 classes
Multiple databases using eight or more
transactions;
11 or more classes
5
10
15
Total unadjusted use case weight (UUCW) = sum of all weighted counts
Assessment of Actors:
Complexity
levels
Simple
actors
Average
actors
Complex
actors
Who are?
Automatons like system or machine or device that
communicate through API
Automatons that communicate through a protocol or a
data store
Humans who communicate through a GUI or other
human interface.
Weight factor
1
2
3
Total unadjusted actor weight (UAW) = sum of all weighted counts of actors
Use case point (UCP) = (UUCW + UAW) x TCF x ECF
Technical complexity factors (TCFs), Environment Complexity Factors (ECFs) – values will
be given in the question.
Example:
The CAD software introduced in Section 33.6.3 is composed of three subsystem groups:
user interface subsystem (includes UICF), engineering subsystem group (includes the
2DGA, 3DGA, and DAM subsystems), and infrastructure subsystem group (includes CGDF
and PCF subsystems). Sixteen complex use cases describe the user interface subsystem.
The engineering subsystem group is described by 14 average use cases and 8 simple use
cases. And the infrastructure subsystem is described with 10 simple use cases.
Solution:
Complex usecases: 16; Average usecases: 14; Simple usecases: 8, 10
Hence, UUCW = (16 x 15) + (14 x 10) + (8 x 5) + (10 x 5) = 470
8 simple actors, 12 average actors, and 4 complex actors.
Hence, UAW = (8 x 1) + (12 x 2) + (4 x 3) = 44
TCF = 1.04; ECF = 0.96
Hence, UCP = (470 + 44) x 1.04 x 0.96 = 513.17 = 513 UCP
Historical data:
Using past project data as a guide, the development group has produced 85 LOC per
UCP.
Estimated LOC for UCP = 513 x 85 = 43, 605
Using 620 LOC/pm as the average productivity for systems of this type and a burdened
labor rate of $8,000 per month.
Cost per LOC = 8000/620 = 12.9 = $ 13
Total project cost = 43,605 x $ 13 = $ 5,66,865
Effort = $ 5,66,865/$ 8000 = 70.8 = 71 person-months
Empirical estimation models:
The software Equation:
where
E = effort in person-months or person-years
t = project duration in months or years
B = “special skills factor”
-For small programs (KLOC = 5 to 15), B = 0.16. For programs greater than 70
KLOC, B = 0.39.
P = “productivity parameter” that reflects: overall process maturity and management
practices, the extent to which good software engineering practices are used, the level of
programming languages used, the stat of the software environment, the skills and
experience of the software team, and the complexity of the application
P = 2,000 for development of real-time embedded software,
P = 10,000 for telecommunication and systems software
P = 28,000 for business systems applications
The productivity parameter can be derived for local conditions using historical data
collected from past development efforts.
Putnam and Myers [Put92] suggest a set of equations derived from the software equation.
Minimum development time is defined as
Estimation of object-oriented projects
1. Develop estimates using effort decomposition, FP analysis, and any other method that
is applicable for conventional applications
2. Using the requirements model, develop use cases and determine a count. Recognize
that the number of use cases may change as the project progresses.
3. From the requirements model, determine the number of key classes (called analysis
classes).
4. Categorize the type of interface for the application and develop a multiplier for support
classes,
Type of Interface
Multiplier
NO GUI
2.0
Text-based GUI
2.25
Conventional GUI
2.5
Complex GUI
3.0
5. Multiply the number of key classes (step 3) by the multiplier to obtain an estimate for
the number of support classes.
6. Multiply the total number of classes (key + support) by the average number of work
units per class. Lorenz and Kidd suggest 15 to 20 person-days per class.
7. Cross-check the class-based estimate by multiplying the average number of work units
per use case.
Example:
20 key classes
Type of Interface
Multiplier
No of classes
No GUI
2.0
7
No. of support
classes
7 x 2.0 = 14
Text-based GUI
2.25
6
6 x 2.25 = 13.5
Conventional GUI
2.5
4
4 x 2.5 = 10
3.0
3
3 x 3.0 = 9.0
Total
20
46
Complex GUI
Key classes + support classes = 20 + 46 = 66
Average no. of work units per class = 15 to 20 person-days /class
Hence, Effort = 66 x 15 = 990 person-days
= 66 X 20 = 1,320 person-days
* 66 classes can be completed by minimum of 990 person-days and maximum of 1320 person-days
Download