Title: Cost Estimation Using AI Techniques
1Cost Estimation Using AI Techniques
Arab Academy For Science, Technology Maritime
Transport
College Of Computing Information Technology
Supervisor Prof. Dr. Meer Hamza Speaker
Ahmed S. ALSUM Teaching Assistant in FCIS,
Mansoura University
MASTER
2004
2OutLine
- Cost Estimation Techniques Overview.
- Software Cost Estimation with Case Based
Reasoning. - Software Cost Estimation with Neural Networks.
- Software Cost Estimation with Fuzzy Models.
3Importance of Cost Estimation!
- Budgeting
- Tradeoff and risk analysis.
- Project planning and control.
- Software improvement investment analysis.
4Generic Vs. Bespoke
- With products developed for the mass markets the
cost of development is not visible in the price
of the product. - With custom or bespoke development, the
development cost influences the price. - It is of strategic importance for an
organisation, whether as a customer or a
developer
5From surveys of organizations
- only 25 of projects come within their originally
predicted cost and schedule, - But 66 of companies significantly underestimate
the time and cost and that the costs for similar
projects can vary by up to 200.
6Software Estimation Techniques
Expert judgement is still the most dominant
method of estimation. (1991)
7Why we use AI techniques in Cost Estimation?
- Software project cost estimation is difficult
because of problems of quantifying project size
and because of the continual emergence of new
technology.
8Software Cost Estimation with Case Based
Reasoning CBR
9What is CBR?
- Case-based reasoning (CBR) may function as a
corporate memory where experience is stored as
cases and may be drawn upon when new problems
arise.
10Should we use CBR?
- Software project cost estimation is difficult to
derive accurate size and cost figures from the
features of a project that are known early. - This is characteristic of weak theory domains
where CBR has potential as a solution.
11CBR Techniques?
- CBR involves matching the current problem against
similar problems that have occurred in the past. - It uses past experiences to solve new problems
which corresponds to how experts operate.
12How To Apply CBR?
- The current research focuses on problem domains
that are - similar in nature,
- similar types of applications
- from similar organizations
13How to say its similar?
- Examination of the features or attributes that
contribute to the case representation used in the
current research imply that - Using attributes such as numbers of inputs,
outputs, internal and external files to a
identify similar cases.
14Early Estimation
We are here
15Early Estimation Problem
- The main problem is the availability of enough
predictive features that can give an accurate
estimate of effort. - To be SUCCESSFUL in applying CBR to early cost
estimation will involve identifying more abstract
features than metrics such as size or specific
detailed design features to represent a case.
16CBR in early estimation How to find a measure of
the system size.
- Effort 8 Size Productivity
- Solution describe using analogy for effort
estimation and state that it is important to
choose at least one variable or feature to act as
a size driver.
17Cost Driver
- Cost drivers are the variables that are believed
to influence the cost of software development. - Ex.. COCOMO uses 15 cost drivers
- Problem with cost drivers are
- There is a lack of clear definitions for them
especially quality, complexity and experience, - Difficult to quantify and can be very subjective.
18Case Representation
19It is only a management representation?
- Management can have more influence on the
productivity of the programming staff than any
technology now in use - Research has also identified the importance of
significant user participation and experience in
successful projects
20You speak about the same domain What about
Estimation Across Broader Domains?
- In order to use CBR in estimation in a broader
context there is need to identify abstract
features that will support reminding across
different contexts and a need to develop
adaptation techniques to transform cases between
these contexts.
21Software Cost Estimation with Neural Network
22What is Neural Network?
- These are estimation models that can be trained
using historical data to produce ever better
results by automatically adjusting their
algorithmic parameter values to reduce the delta
between known actuals and model predictions.
23Ex..
24To create NN
- developing an appropriate layout of neurons, or
connections between network nodes. - This includes defining
- the number of layers of neurons,
- the number of neurons within each layer,
- and the manner in which they are all linked.
- The weighted estimating functions between the
nodes, ...etc
25To create NN
- the model must be trained by providing it with a
set of historical project data inputs and the
corresponding known actual values for project
schedule and/or cost.
26Problems
- Extremely large data sets are needed to
accurately train neural networks. - Neural Networks provide little intuitive support
for understanding the sensitivity relationships
between cost driver parameters and model results.
27Conclusion for NN CBR
- Experience to date indicates that neural-net and
dynamics-based techniques are less mature than
the other classes of techniques, but that all
classes of techniques are challenged by the rapid
pace of change in software technology.
28Software Cost Estimation with Fuzzy Model
29Why Fuzzy Model?
- Estimation of effort/cost required for
development of software products is inherently
associated with uncertainty. , - we are concerned with a fuzzy set-based
generalization of the COCOMO model, that what we
called F-COCOMO.
30Difference BetweenCOCOMO model (f-COCOMO)
- standard COCOMO model the inputs of the include
an estimation of project size and an evaluation
of other parameters. - Rather than using a single number, the software
size can be regarded as a fuzzy set (fuzzy
number) yielding the cost estimate also in form
of a fuzzy set.
31Fuzzy Sets
- Using fuzzy sets, size of a software project can
be specified by distribution of its possible
values.
32Ex..
- a small software project can be described by a
fuzzy set K.
In general, a fuzzy set K is described by its
membership function K(x) which expresses the
degree of membership of x to the fuzzy set K
describing a certain concept
33Basic COCOMO
- Models may have the general form
- where S is the code-size, and a, b are (usually
simple) functions of other cost factors.
34A. Simple f-COCOMO Model Triangular Numbers
35Triangular Numbers
As the input variable (size K) is a fuzzy set .
(fuzzy number), so is the effort E.
where K(x) and E(e) denote membership functions
of the size of the code and membership function
of the effort
36Triangular Numbers
This formula can be used directly for estimation
of effort from size of software project described
by triangular fuzzy set.
37Simple f-COCOMO Model
38Conclusion On Fuzzy Model
- The model admits inputs (say, size of code) that
are nonnumeric and therefore more acceptable to
the designer and project manager. - Fuzzy sets create a more flexible, highly
versatile development environment. - First, they help articulate the estimates and
their essence (e.g., by exploiting fuzzy numbers
described by asymmetric membership functions). - Second, they generate a feedback as to the
resulting uncertainty (granularity) of the results
39References.
- Sarah Jane Delany, Pádraig Cunningham and
Wolfgang Wilke, The Limits of CBR in Software
Project Estimation, 1998 German Workshop on
Case-Based Reasoning. - Barry Boehm, Chris Abts, Sunita Chulani ,
Software Development Cost Estimation Approaches
A Survey, 1998. - Petr Musflek, Witold Pcd.rycz, Giancarlo Succi,
Marek Reformat, Software Cost Estimation with
Fuzzy Models
40Thanks
CS MASTER
2004
S