Introduction

advertisement
Software estimation
techniques
Lidia García Esparcia
Daniel Román Planas
Estefanía Caballero Ruiz
Victoria Blanco Alegría
Index
 Introduction
 Current situation
 Estimation techniques
 Function points
 Characteristic points
 Lines of code




Comparative
Conclusion
Future trends
Sources
Introduction
 Why we measure?
 Evaluate the productivity
 Evaluate the profits
 A previous stage before estimate
 Justify using new tools
 Software projects are typically controlled by four
major variables; time, requirements, resources
(people, infrastructure/materials, and money), and
risks.
 Overestimating needs can be very expensive for the
organization
 3 kinds of methods
Current situation
 All sw development companies use
planning techniques in order to
estimate the cost of a project.
 Break the project down into the different
tasks needed.
 Evaluate each task on two scales:
complexity and size of work
Function points
Index







Introduction
ISO/IEC 14143
IFPUG-FPA
MK II
COSMIC FFP
Method Evolution
Criticism
Introduction
 Functional Size Measurement Method





Simple
Independent of the technology
Based on functional user requirements
Consistent
Estandar
 Unit of measurement to express the
amount of business functionality an
information system provides to a user.
ISO/IEC 14143
 Define the concepts and features that
a method should satisfy in order to be
approved.
 Methods:




ISO/IEC 20926:2003 Software engineering -- IFPUG 4.1
Unadjusted functional size measurement method
ISO/IEC 24570. Software engineering -- NESMA -- Function
Point Analysis.
ISO/IEC 20968:2002 Software engineering -- Mk II Function
Point Analysis
ISO/IEC 19761:2003 Software engineering -- COSMIC-FFP -A functional size measurement method
IFPUG - FPA
“Standard method for measuring the development of software from
the user's point of view.

In 1986, Allan Albrecht found the International Function Point User
Group

Most famous and most used

Number of function points acording to the component type
(transaction functions, data files) and its complexity.

Adjustment of the result

Evaluates the size of the project, cost and development time .

Has limitations for measuring software in real time systems.
MK II
 Developed in 1986 by KPMG, defined and
published by Charles R. Symons in 1991.
Adopted by UKSMA (United Kingdom
Software Metrics Association.
 Method of continuous measurement
throughout the life cycle of an application
 Derivation of the Albrecht’s function Points .
 Logic discrete transactions consisting of
entry, process and exit
COSMIC-FFP

FFP (v. 1.0) was published in 1997 as an extension of IFPUG method to measure
the functional size of real-time software and control systems.

In 1998, a group of experts in software metrics, established the Common
Software Measurement International Consortium (COSMIC FFP).

Introduces additional data and transactional function types:


Control Data:
 Multiple occurrence logical group
 Single ocurrence logical group.

Transactions:
 Full Function Points enter into the calculation not only processes
but also includes subprocesses .
The other types of data and processes are counted with the standard FPA
technique
Method Evolution
Criticism

Additional dedication in the software development projects.

It is hard to train staff in their use.

The method of calculation is subjective.

Need to re-estimate the size as we have more product
knowledge.

Lacks precision when it comes to small projects.

Not applicable to all systems.
Feature points
Index




Introduction
Method
Example
Advantages
Feature points
Introduction
 Software estimation method designed by
Caper Jones.
 Very similar to function points, but more
accurate for estimating scientific and
complex software.
 Used specifically for CAD software,
embedded systems and real-time
applications.
Feature points
Introduction
 The differences between function points
and feature points are in the algorithm cost
estimation, that is new on feature points,
and the removal of the different complexity
levels, establishing just one for each
feature.
Feature points
Method
1. Count the number of the different
features.
2. Calculate the cost of these features.
Feature points
Count the number of different features
Features in this step are the same that function points define,
adding the count of the algorithms. This is:
 External inputs.
 External outputs.
 External queries.
 Internal logical files.
 External logical files.
 Algorithms.
Feature points
Calculate features’ cost
Each feature has an unique complexity value.
Cost estimation of that features is calculated by multiplying
complexity by the count of that feature.
Final estimation are done by applying this equation:
FPE = TOTAL_COUNT * (0.65 + 0.01 * SUM(Fi))
Fi => Result of question number i on information system
survey, also defined on function points estimation.
Feature points
Example
FUNCTION POINTS
Feature points
Example
FEATURE POINTS
Feature points
Advantages

More accurate when is applied to scientific, mathematic,
real-time or military software, which uses complex
algorithms.

Used on other kinds of software, feature points offers
similar results than function points calculate.
Lines of code
Index






Introduction
Types
Example
Estimating Effort
Advantages
Disadvantages
Lines of code
Introduction
Measures the size of a software project
counting the number of lines of code.
 Predict the amount of effort.
 Estimate programming productivity.
 Estimate effort once the software is produced.
Lines of code
Types
 Physical SLOC
 Count the lines of the program's
source code.
 Logical SLOC
 Measure the number of statements.
Lines of code
Example
Lines of code




Productivity = KLOC / person-month
Quality = defects / KLOC
Cost = Cost / KLOC
Documentation = pages of
documentation / LOC
Lines of code
Estimating effort
It is based on previous projects or on the
experience of the developer.
Lines of code
E = (a + 4m + b) / 6
a= ideal number of LOC
b= pessimistic number of LOC
m= most probable number of LOC
Lines of code
Advantages
 Easy method
 Many methods use LOC as an imput
Lines of code
Disadvantages
 Lack of Cohesion with Functionality
 Lack of Accountability
 Difference in Languages
 Lack of Counting Standards
 Psychology
Comparative
Method
Uses
Staff
During the project
Function points Not all systems and
lacks precision in
small projects
Hard to train
Need to re-estimate
the size as we have
more product
knowledge
Feature points
Software that uses
complex algorithms
Not easy to learn
Lines of code
Many methrics use
LOC as an imput
Easy
Based in other
projects or in own
experience
Conclusion
 The fundamental goals of software
estimation are to produce estimations of
effort and schedule for anticipated software
projects
 Increasingly, it is recognized that software
estimation techniques must reflect, and be
an integral part of, the technical and
managerial processes used to develop and
modify software.
 The preceding techniques can help one
achieve better estimates
Sources:




www.inf.udec.cl
www.monografias.com
www.willydev.net
www.wikipedia.com
Download