Este documento discute métodos para estimar el tamaño funcional de un software cuando los requerimientos no están completamente definidos. Explica que la estimación se basa en conjeturas informadas por el conocimiento disponible y se ve afectada por la incertidumbre en los requerimientos. Presenta el método COSMIC para la medición funcional y niveles de aproximación cuando no se pueden aplicar métodos detallados.
De lo operativo a lo estratégico: un modelo de management de diseño
Estimacion requerimientos vagos
1. Enlighten
your
software
¿Cómo
puedo
estimar
cuando
no
hay
requerimientos
detallados?
Dr.
Francisco
Valdés
Souto
@valdessoutofco,
www.spingere.com.mx/blog
2. Estimación
• “An
estimation
is
a
prediction
that
is
equally
likely
to
be
above
or
below
the
actual
result.”
T.
DeMarco
• “estimates
are,
in
reality,
guesses
regarding
future
performance
based
on
available
knowledge.
As
such,
their
accuracy
is
affected
by
the
extent
of
uncertainty
regarding
the
task
to
be
estimated.
Uncertainty
is
associated,
inter
alia,
with
definitions
of
requirements,
choice
of
technological
solutions,
innovativeness
of
needs,
and
customer
characteristics”
(Morgenshtern,
2007).
Pierre
Bourque (May 2007)
4. ¿Qué
se
puede
medir
en
el
software?
Factores
Técnicos
•Significante
para
desarrolladores
pero
no
para
usuarios
y
administración
•Pobre portabilidad
•Se
conocen
precisamente
muy
tarde
•No
hay
un
estándar
internacional
Factores
Funcionales
•Significativo
para
los
managers
y
usuarios
y
staff técnico
•Portable
•Puede ser
medido temprano
•Basado en
estándar
internacional!
Q
Eff/$$
5. Método
COSMIC
(ISO
19761)
• Common Software
Measurement
International
Consortium
(COSMIC)
• Es
un
método
de
medición
de
tamaño
funcional
de
software
• Es
el
único
método
de
segunda
generación.
• Está
basado
en
la
representación
del
software:
E,
X,
W,
R.
No
en
datos
estadísticos
como
en
la
primera
generación.
• Tiene
su
equivalente
en
Norma
Mexicana
(NMX),
que
está
incluida
en
el
MAAGTICSI
6. Niveles para
determiner
el
tamaño del
software
(Steve
McConnell)
• Count:
If
detailed
information
is
available,
the
most
accurate
way
of
determining
the
size
is
to
count.
• Compute:
If
not
enough
information
is
available
at
the
desired
level
of
detail,
count
something
that
is
available
and
then
compute
the
answer
by
using
calibration
data.
• Judge:
Experts
can
give
an
approximation
of
the
size,
based
on
a
mental
model
established
on
experience.
This
expert
judgment
is
the
least
accurate
means
of
approximation.
The
accuracy
can
be
strengthened
if
the
expert
judgment
can
be
tied
to
concrete
size
information.
Judge Compute Count
Aproximación
de
Tamaño
Funcional
7. Aproximación
de
Tamaño
• Se
utiliza cuándo:
• No
hay
suficiente tiempo para
aplicar de
manera detallada el
método COSMIC
• Los
requerimientosno
están al
nivel de
detalle requerido para
plicar el
método COSMIC
Level of granularity of the
Functional User Requirements
Measurement
method
Measurement
standard
Actual requirements at a high level of
granularity derived from e.g.:
high-level statement of actual
requirements for the software
architecture artifacts
high-level view of existing software
expressed in locally-defined countable
units e.g. Use Cases, or in CFP
‘Approximate
approach’ to the
COSMIC
measurement
method.
Calibrated locally
The average size
of the locally
defined countable
unit, expressed in
local units or in
CFP
The functional process level of
granularity
COSMIC
measurement
method
The CFP
8. Needs
local
calibration
Requirement
granularity
level Consideration
Average
Functional
Process X
Functional
Process
This
approximation
is
valid
as
long
as
there
is
sufficient
reason
to
assume
that
the
sample
on
which
the
size
of
the
average
functional
process
is
calculated
is
representative
for
the
software
of
which
the
functional
size
of
which
size
is
approximated.
[38]
Fixed
Size
Classification
X
Functional
Process
This
approximation
is
valid
as
long
as
there
is
sufficient
reason
to
assume
that
the
assigned
size
classification
is
representative
for
the
software
of
which
the
functional
size
of
which
size
is
approximated.
[38]
Equal
Size
Bands
approximation X
Functional
Process
This
method
is
recommended
for
the
approximate
sizing
of
software
where
the
distribution
of
the
functional
process
sizes
is
skewed.
For
the
business
application
this
method
has
little
added
value
over
the
average
functional
process
method
(1)
or
the
fixed
size
classification
method
(2).
[38]
Average
Use
Case
approximation X Use
Case
This
approximation
is
valid
as
long
as
there
is
sufficient
reason
to
assume
that
the
assigned
size
classification
of
an
average
use
case
is
representative
for
the
software
of
which
the
functional
size
of
which
size
is
approximated.
[38]
Early
&
Quick
COSMIC
approximation X
Multilevel
Approach
The
precision
of
the
method
is
strongly
dependent
on
the
training
and
capability
of
the
practitioners
who
use
it
to
understand
the
categories
at
higher
levels
of
granularity.
[38]
EASY
Function
Point
Approximation X
Multilevel
Approach
Different
choices
of
probability
distributions,
as
well
as
minimum
and
maximum
CFP
values
for
the
several
cases
of
Functional
Process
above,
lead
to
different
instantiation
of
the
EASY
approximation
approach
EPCU
approximation
approach
Functional
Process
&
Use
Cases
Does
not
require
local
calibration
(less
expensive
)
and
is
useful
when
there
are
no
historical
data
available.
9. Situación
Típica
Obtención
Requerimientos
Estimación
$/EFF Validación
Ejecución
Proyecto
Enfoque
Actual
Recolección
e
Integración
Problemas:
• Solo
pasan
los
requerimientos
a
los
CDS’s,
no
tienen
referencia
• Los
artefactos
mínimos
no
son
homologados
Problemas:
• No
hay
datos
históricos
confiables
• Las
validaciones
se
hacen
principalmente
por
Juicio
de
Experto
• No
hay
sustentos
robustos
para
enfrentar
una
auditoría
• No
hay
certeza
de
que
se
paga
lo
mismo
por
funcionalidades
iguales
10. Caso
Práctico
1.Requerimientos
(CU) 2.
Analistas
de
Negocio 3.
www.mepe.com.mx
10
Módulos
86
CU
Proceso
Funcional
/
Casos
de
Uso
Tamaño
del
Proceso
Funcional
(0
Nivel
de
Presencia
de
Objetos
Alta
de
Establecimiento
3.3 3.5
Baja 2.1 3.3
Actualizacion 2.3 2.3
Consulta 2.1 2.1
Alta
3.8 2.3
Baja 3.3 2.0
Actualizacion 3.4 1.3
Consulta 3.1 1.1
Consulta
de
Información
del
Establecimiento 2.6 2.5
Proceso
Funcional
/
Casos
de
Uso
Tamaño
del
Proceso
Funcional
(0
Nivel
de
Presencia
de
Objetos
ESTIMACIÓ
N
Alta
de
Establecimiento
3.3 3.5 14.58
Baja 2.1 3.3 12.02
Actualizacion 2.3 2.3 8.16
Consulta 2.1 2.1 7.01
Alta
3.8 2.3 9.32
Baja 3.3 2.0 8.41
Actualizacion 3.4 1.3 6.78
Consulta 3.1 1.1 6.56
Consulta
de
Información
del
Establecimiento 2.6 2.5 9.84
12. Caso
Práctico
1.Requerimientos
(CU) 2.
Analistas
de
Negocio 3.
www.mepe.com.mx 4.
Estimación
Esfuerzo/Costo
10
Módulos
86
CU
Proceso
Funcional
/
Casos
de
Uso
Tamaño
del
Proceso
Funcional
(0
Nivel
de
Presencia
de
Objetos
Alta
de
Establecimiento
3.3 3.5
Baja 2.1 3.3
Actualizacion 2.3 2.3
Consulta 2.1 2.1
Alta
3.8 2.3
Baja 3.3 2.0
Actualizacion 3.4 1.3
Consulta 3.1 1.1
Consulta
de
Información
del
Establecimiento 2.6 2.5
Proceso
Funcional
/
Casos
de
Uso
Tamaño
del
Proceso
Funcional
(0
Nivel
de
Presencia
de
Objetos
ESTIMACIÓ
N
Alta
de
Establecimiento
3.3 3.5 14.58
Baja 2.1 3.3 12.02
Actualizacion 2.3 2.3 8.16
Consulta 2.1 2.1 7.01
Alta
3.8 2.3 9.32
Baja 3.3 2.0 8.41
Actualizacion 3.4 1.3 6.78
Consulta 3.1 1.1 6.56
Consulta
de
Información
del
Establecimiento 2.6 2.5 9.84
18. ¿Porqué
es
importante?
• Efectividad Operacional: conlleva
cualquier número de PRÁCTICAS que le
permiten a la empresa utilizar de mejor
manera los insumos de producción
% Mejora
Tiempo
u Barrera
de
Productividad:
Máximo valor
que una compañía puede entregar sobre un
producto o
servicio a
un
costo dado.
20. ¿Preguntas?
Dr.
Francisco
Valdés
Souto
@valdessoutofco
francisco.valdes@spingere.com.mx
@mxspingere,
www.spingere.com.mx/blog,
@ammsmx
Dimensionamiento
y
Estimación
Profesional
de
Software!