Documente Academic
Documente Profesional
Documente Cultură
LECTURE NOTES 4
SOFTWARE ESTIMATION
Software Project Management begins with a set of activities
that are collectively called Project Planning.
1. Project Estimation
2. Project Scheduling
3. Risk Analysis
4. Quality management Planning
5. Change Management Planning
ESTIMATION
- Experience,
- Access to good historical information (Project Metrics)
- Courage to commit to Quantitative predictions
(when Quantitative information is all that exists).
SCOPE CONSIDERATION
SCOPE CONSIDERATION
- Technology
- Finance
- Time
- Resources
SOFTWARE ESTIMATION
SOFTWARE SCOPE AND FEASIBILITY
Once the Software Scope and Feasibility have been identified the second
task is Estimation of the “RESOURCES” required to accomplish the Soft-
ware Development Effort.
RESOURCES
- People
- Reusable software components.
- Development environment (H/W, S/W Tools)
- Human Factor
- Technical Variable Factors
- Environmental Factors
- Political Factors
SOFTWARE ESTIMATION
OPTIONS FOR RELIABLE ESTIMATES
c) Use one or more Empirical Models for Software cost and Effort
Estimation.
Each of the viable Software Cost Estimation options are only as good as the His-
torical data used to seed the estimation.
Estimation uses one or both form of the two different partitioning point of
views:-
Before an Estimate can be made , the Project Planner must understand the
Scope of the Software to be built and generate an Estimate according to
the ‘’Size of Software’’.
SOFTWARE ESTIMATION
SOFTWARE PROJECT SIZING:
Accuracy of a Software Project Estimate is predicted on a number of things:
1. The degree to which the Planner has properly Estimated the Size of
the Product to be built.
2. The ability to translate the Size Estimate into Human-effort (Calendar
Time and Money)
3. The degree to which the Project Plan reflects the abilities of Software
team.
4. The stability of Product requirement s and the environment that
supports the Software Engineering effort.
• Combine the Value Sizes using the following Equation to determine the
Expected Value Estimation S =[(Sopt + (4 * Sm) + Spess)] / 6
- Once the Expected Value for the Estimation variable has been
determined, Historical (LOC) or (FP) Productivity data are applied.
SOFTWARE ESTIMATION
• LOC and FP data are used in two ways during Software Esti-
mation.
Optimistic Value,
Most Likely Value
Pessimistic Value
S = [Opt value + (4 * Most Likely) + Pess value] / 6
Once the Expected Value has been determined, Historical (LOC)
and (FP) Productivity data are applied.
SOFTWARE ESTIMATION
PROBLEM – BASED ESTIMATION TECHNIQUES
AN EXAMPLE OF (LOC) BASED ESTIMATION
Total Estimated Project Cost and Project Effort can be calculated as: follows-
Considering that the Total LOC ( ∑ LOC) for the System is 33,200 :-
Total Estimated Project Cost = (33200 * 13 ) = $431,600
• Each of the Complexity Weighting Factor is estimated and the Complexity Adjustment Factor is
computed using the Complexity Factor Table as shown on the next page
FACTOR VALUE
(Fi)
------------------------------------------------------------------
1. Back-up and Recovery ? 4
2. Data Communication ? 2
3. Distributed Processing ? 0
4. Performance Critical ? 4
5. Existing Operational Environment ? 3
6. On-line Data Entry ? 4
7. Input transactions over multiple Screens? 5
8. Online Updates ? 3
9. Information Domain Values Complex ? 5
10. Internal Processing Complex? 5
11 Code Designed for reuse? 4
12. Conversion / installation in Design? 3
13. Multiple Installations? 5
14. Application Designed for change ? 5
===========================================
∑ (Fi) 52
Historical data obtained from the Metrics indicates the following Organizational Av-
erages:-
Total Estimated Project Cost and Project Effort can be calculated as:-
Code Test
TASK Analysis Design
FUNCTIONS
However, Use-cases can be used for Estimation, but only if they are consid-
ered within the context of the ‘’Structured Hierarch’’ that the Use- cases are
described.
SOFTWARE ESTIMATION
ESTIMATION WITH USE-CASES
Once these characteristics are established, Emperical Data may be used to establish
the Estimated number of LOC or FP per Use-case (for each level of hierarchy).
The Structured Hierarchical data then used to compute the Effort required to de-
velop the System.
SOFTWARE ESTIMATION
ESTIMATION WITH USE-CASES
LOC estimates = N * LOCavg + [(Sa / Sh - 1) + (Pa / Ph - 1)] * LOCadjust
The above expression is used to develop a rough Estimation of the Number of LOC,
based on the Actual number of Use-cases Adjusted by the number of Scenarios and Page
length of the Use-cases.
TOTAL
LOC ESTIMATES 42,568
SOFTWARE ESTIMATION
USE CASE BASED ESTIMATION
Let us consider the calculations for User Interface Subsystem based on 30% difference between
this project and Actual Project (n = 30%)
Historical data obtained from Metrics indicates that User Interface Software requires:-
An Average (LOC avg) of 800 LOC per Use-case when the Use-case has no more than 12 Sce-
narios and described in less than 5 Pages.
Using the formulae below we can calculate LOC Estimates for each Subsystem group
The Problem Based Estimation Techniques dicussed so far each gave different
Cost and Effort Estimate results which must be reconciled to produce a single
Estimate of Effort, Project Duration or Cost.
The variation from Average estimate is approximately 18% on the low side
and 21% on the high side.
SOFTWARE ESTIMATION
RECONCILING ESTIMATES
The answer to this question requires a re-evoluation of information used to make the
Estimates.
Wedely divergent Estimate can often be traced to one of the two causes.
Productivity Data is either obsolute (no longer accurately reflects the Software
Engineering Organization) , or has been misapplied.
The Project Planner must determine the cause of divergence and then reconcile the
Estimates.
SOFTWARE ESTIMATION
EMPIRICAL ESTIMATION MODELS
Values for LOC and FP are estimated using LOC based Estimations and FP Based
Estimations.
The resultant Values out of these Estimation are plugged into the Estimation Model.
The Empirical data that support most Estimation Models are derived from a
limited sample of Projects. For this reason, no Estimation Model is appropriate for all
Classes of Software and in all Development Environments.
Therefore, the results obtained from such Models must be used judiciously.
The Estimation Model should be tested by applying data collected from completed
projects, plugging the data into model, and then comparing Actual to Predicted results.
If aggrement is poor the Estimation Model must be tuned and reflected before it can be used.
SOFTWARE ESTIMATION
THE STRUCTURE OF ESTIMATION MODEL
0.91
WALSTON-FELIX MODEL E = 5.2 * (KLOC)
1.16
BAILEY-BASILI MODEL E = 5.5 + 0.73 (KLOC)
1.05
BOEHM SIMPLE MODEL E = 3.2* (KLOC)
1.047
DOTY MODEL FOR E = 5.288 * (KLOC)
----------------------------------------------------------------------------------------------------------
PROPOSED FP MODELS
Each of these Models indicates that each will yield a different result for the
same value of LOC or FP.
The implication is clear- Estimation Models must be calibrated for local
needs.
SOFTWARE ESTIMATION
THE COCOMO II MODEL (COnstructive COst MOdel)
COCOMO is most widely used and discussed Software Cost Estimation Model in the
Software Industry. The latest COCOMO Model II is a Hıerarch of Estımatıon
Models that address the following areas:.
Used once Requirement have been stabilized and basic Software Arcchitecture
has been established.
Three different Sizing Options are audilable as part of the COCOMO Model Hierarchy:
The COCOMO II Application Composition Model uses Object Points (OP) - an Indi-
rect Software measure that is computed using Counts of of :
In essece Complexity is a Function of the Number of Source of the Client and Server
Data tables that are required to generate the Screen or Report and the number of
Views or Sections presented as part of the Screen or Report.
The Object Point Count is them determined by multiplying the Original number of
Objects instances by the Weighting Factor in the figure and then summing to obtain
a Total Object Point Count.
SOFTWARE ESTIMATION
When Component-based development or General Software Reuse is to be applied
the percent of Reuse (%Reuse) is estimated and Object Point Count is adjusted:
PROD RATE 4 7 13 25 50
Once the Productivity Rate has been determine an Estimate of Project Effort can be derived
as:
SOFTWARE ESTIMATION
THE SOFTWARE EQUATION
The Model has been derived from Productivity Data collected for over
400 contemporary Software Projects.
The Productivity Parameters can be derived for local conditions using Historical
Data collected from past Development Efforts.
It is important to note that the Software Equation has two independent Parameters:
1. Develop Estimates using effort decomposition, FP Analysis and any other Method
that is applicable for conventional applications.
2. Using O-O Analysis modeling, develop Use-case and determine a count Recognize that the
number of Use-cases may change as the project progresses.
3. From the Analysis model, determine the number of Key Classes.
4. Catagorize the type of Interface for the application and develop a Multiplier for Support
Class.
5. Multiply the Total Number of Classes (Key + Support) by the AverageN num-
ber
of Work-Unit per Class (Suggestion 15-20 Person-day per Class).
. ===============================================================
Since the Project Development Duration required for the development of a Soft-
ware Increment is quite short (typically 3 to 6 weeks for each version);
THE FOLLOWING INFORMATION DOMAINS ARE SUGGESTED FOR WEB APPLICATION ESTIMATION
INPUTS: Are each Input Screen or Form,each Maintenance Screen and each Tab ( If you use a
Tab not a book methaphore any where).
OUTPUTS: Are each Static Web page, each Dynamic Web Page Script (e.g. ASP, DHTML script)
and each report.
TABLES: Each Logical Table in the Database plus (If you are using XML to store data in a file),
each XML objects.
INTERFACES: Retain their Definition as Logical files units or out-of the System boundaries.
However, further work remains to be done, before such Estimation Model can be used
with confidence.
THE MAKE / BUY DECISION
.
THE MAKE / BUY DECISION
In small PC based software, Cost is not a great concern but for more expensive
Software Products the following Guidliness can be applied.
1. Will the Software Product be no available sooner than that for internally
developed Software?
2. Will the Cost of Acqusation plus the Cost of Custimazation be less than that
of Cost of the developing Software Internally?
3. Will the Cost of Outside Support (e.g. Maintenance Contract) be less than the
Cost of internal support?
.Based on the above Decision Tree The Software Engineerting Organization can
The Expected Cost Value will be computed for each branch of Decision Tree as:
EXPECTED COST = ∑ (Path Probability) * (Estimated Path Cost)
i
Where (i) is Decision Tree path
Cost for Reuse = 0.40 (275,000) + 0.60 [0.20 (310000) + 0.80 * (490,000)] = $328,000
Based on the Probability and Projected Costs the Lowest Expected Cost is BUY option .
DECISION TREE FOR MAKE / BUY OPTION
- Availability
- Experience of Developer / Vvendor /Contractor
- Conformance to requirements
- Local Politics (Internal Politics)
- Likely hood of change
OUTSOURCING
One positive side of Outsourcing is Cost saving, which can usually be achieved
by reducing the number of Software People and the facilities (e.g Computers,
Infrastructure) that support them.
On the negative side a Company loses some control over the Software that it
needs.
Since Software is one of the technology that differentiates the Systems, Services
and Products, a Company runs the risk of putting the fate of its competiveness