Vous êtes sur la page 1sur 15

1

EL MODELO SLIM

LA ECUACIN DEL SOFTWARE


La cantidad de trabajo que se encuentra en cualquier producto se
puede ver como el producto del esfuerzo realizado en un periodo de
tiempo, y se puede escribir como.
Producto = (Constante) Esfuerzo Tiempo
Donde
Producto representa cierta medida sobre la funcionalidad del mismo,
y se cree proporcional al producto Esfuerzo Tiempo. La medida
SLOC suele ser una medida habitual de la funcionalidad.
Esfuerzo representa el trabajo humano, medido en personas-mes o
personas-ao.
Tiempo representa la duracin del trabajo, medido en meses o aos.
La Constante es un factor de proporcionalidad. Una vez establecidas
las otras tres variables, esta constante permite igualarlos. Sin
embargo parece que la cantidad de producto depende tambin de
"cmo se hacen las cosas", puesto que con el mismo esfuerzo y
tiempo, y dependiendo del entorno de trabajo, podremos conseguir
mayor o menor cantidad de producto.
PRODUCTIVIDAD DEL PROCESO.
La ecuacin anterior tiene mayor sentido si la expresamos como
Producto = Productividad Esfuerzo Tiempo
Donde podemos obtener el valor de Productividad, si conocemos los
otros trminos, como.
Productividad = Producto/(Esfuerzo Tiempo).

Aunque

de

esta

manera

la

Productividad

no

est

definida

precisamente, se supone que incluye un conjunto de factores que


afectan a toda la organizacin, incluyendo
La gestin del proyecto
La utilizacin de buenos requerimientos, diseos, codificaciones,
inspecciones y pruebas
El nivel del lenguaje de programacin
El estado de la tecnologa
La experiencia de los miembros del grupo
La complejidad de la aplicacin.
En un determinado momento del proyecto, el valor de la
Productividad es fijo. Sin embargo, la evolucin en el tiempo y la
accin de la direccin puede hacer cambiar su valor. Esta
productividad es un conjunto de factores y se puede denominar
"parmetro de productividad del proceso".
REFINAMIENTO DE LA ECUACIN SOFTWARE.
Basndonos en las tendencias establecidas por la base de datos QSM,
podemos deducir que la relacin entre los trminos es no lineal
Producto = Parmetro de Productividad (Esfuerzo/B)(1/3)
Tiempo(4/3)
Donde
la funcionalidad del producto se mide en SLOC
el parmetro de productividad se obtiene por calibracin de
proyectos ya realizados
esfuerzo es el trabajo en personas-ao
B es un factor de destreza especial que es funcin del tamao. Se
incrementa ligeramente de las 18.000 a las 100.000 SLOC, como
se muestra en la tabla 2.1.
Esta ecuacin se obtuvo inicialmente mediante el anlisis de una
docena de grandes proyectos software de la dcada de los 70.

JUSTIFICACIN DE LAS POTENCIAS 1/3 Y 4/3.


Es importante la validacin de esa relacin potencial, puesto que en
ocasiones el resto de los factores se suponen constantes, y la
ecuacin software queda como
Esfuerzo = Constante/Tiempo4.
Se observa que pequeos cambios en el tiempo de desarrollo
provocan grandes modificaciones en el esfuerzo. Por ejemplo,
extendiendo el tiempo de desarrollo de 18 meses a 19 meses (5.5%
ms), disminuye el esfuerzo en un 19.5%.
Empricamente se valid esta relacin posteriormente con 70
sistemas ms. Despus, a mediados de los 80 se utilizaron 750
sistemas. El mtodo de validacin fue el de reordenar la ecuacin
como
Esfuerzo = [tamao B1/3/Parmetro de productividad]3
(1/Tiempo4).
Para un sistema concreto, los trminos entre corchetes son
constantes. Se busc en la base de datos clases para los que el factor
entre corchetes era parecido, encontrndose 8 grupos. Para cada
grupo se busc esa relacin potencial, tal como se muestra en la
tabla 2.2. En la figura 2.1. se muestra el ajuste para el mayor
subgrupo (G). El valor medio del exponente para los ocho grupos es
de 3.721 con una desviacin estndar de 0.215. La probabilidad que
el valor real del exponente est entre 3.5 y 4.5 es del 84%. Con
estos datos, y por razones prcticas se concluy que el exponente de
4 era un valor razonable en esa ecuacin.
EL PARMETRO DE LA PRODUCTIVIDAD DEL PROCESO
Se obtiene calibrando sistemas terminados. Por ejemplo, dado un
sistema de 30.000 lneas de Cobol, finalizado en 17 meses con un
gasto de recursos de 146 personas-mes, tenemos

Parmetro

de

productividad

(SLOC)/(Esfuerzo/B)(1/3)

Tiempo(4/3) =
= 30.000 /(12.17/0.28)(1/3) (1.42)(4/3).
El ndice de productividad.
El ndice de productividad (PI) es una escala de enteros asociada a
los valores del PP obtenidos para la base de datos QSM (Tabla 2.3).
Este PI se comporta exponencialmente (ver figura 2.2) siendo el valor
factor multiplicador de un ndice al siguiente de 1.3.
Rango del ndice.
El PI y el PP constituyen una macromedida del entorno general de
desarrollo. Valores bajos se asocian a entornos elementales y
herramientas inadecuadas, o a un alto grado de la complejidad del
producto (como microcdigo o firmware). Valores altos se asocian a
buenos entornos, personal experimentado o a productos de baja
complejidad que se comprenden bien. El PI medio se extiende desde
2 a 16 (para los 11 tipos de aplicacin).
Valoracin econmica.
Dado que el PI representa el PP exponencial, una pequea mejora en
este ndice tiene gran importancia econmica, como se muestra en la
tabla 2.4 para el anterior sistema en Cobol. Otro ejemplo se muestra
en la tabla 2.5.
Productividad convencional.
El PP tiene un significado ms complejo que la medida de
productividad en SLOC (personas-mes) puesto que es la medida de la
efectividad en el desarrollo de software en una organizacin o
proyecto.
UTILIZACIN DE LA ECUACIN PARA ESTIMACIN.

La utilizacin bsica es la de estimar tiempo y esfuerzo al comienzo


de un nuevo proyecto software. Se deben conocer el PI (y el PP) a
travs de proyectos anteriores. Quedan dos incgnitas en la ecuacin.
Se puede resolver como:
solucin determinista
simulacin
programacin lineal
Solucin determinista
Consisten en poner la ecuacin como sigue
(esfuerzo/B)1/3 tiempo4/3 = SLOC/PP
Y aadir una segunda ecuacin basada en la "tasa de acumulacin de
esfuerzo humano", y se expresa como el parmetro de acumulacin
del esfuerzo":
Esfuerzo total acumulado/tiempo3 = parmetro MBP.
Para un proyecto ya acabado es fcil obtener este parmetro
calibrado. El MBP (con su MBI asociado) permite establecer un
"tiempo mnimo de desarrollo"
Simulacin Montecarlo.
Consiste en incorporar la incertidumbre tanto en el tamao SLOC
como en el MBI. Se simula mediante el mtodo de Montecarlo desde
100 a 1000 veces, calculndose despus la media y la desviacin
tpica.
Programacin lineal.
Se pueden aplicar al proceso de estimacin cinco restricciones
mximo MBP
mximo pico de esfuerzo
mnimo pico de esfuerzo
plazo de entrega

presupuesto monetario para el desarrollo


Estas restricciones se pueden expresar en trminos de esfuerzo total
(K), tiempo de desarrollo (td), y personas-ao/ao (y),
coste/persona-ao medio. Entre los extremos se encuentran
soluciones de compromiso.
MODELO DEL CICLO DE VIDA. Modelo terico de Norden
Un modelo propuesto por para mostrar la evolucin del desarrollo de
un proyecto es el de Norden-Rayleigh, basado en la curva de Rayleigh
(figura 3.2) cuyas ecuaciones y diferentes formas de la curva se
muestran en la figura 3.3. El mtodo de estimacin de Putnam se
basa en ese modelo terico que establece el soporte para desarrollar
otras hiptesis.

ACUMULACIN DE PERSONAL
La tasa de contratacin de personal en un proyecto debiera ser igual
a la tasa de necesidades del mismo.
Parmetro de acumulacin de personal.
Es claro en la curva de Rayleigh que la tasa de contratacin tiene
implicaciones en td y E. Un gran incremento temprano en el personal
acorta td .
El MBP se calcula como
.
Se calcul el MBP para toda la base de datos QSM, considerndose
seis valores representativos a los que se les asocia el ndice MBI
(tabla 3.1). El efecto grfico de este parmetro se muestra en la
figura 3.5. El nivel seis representa un proyecto en el que todo el
personal se contrata al comienzo, con el objetivo de disminuir el
tiempo de desarrollo.

El MBI indica que acumular personal moderadamente reduce el


esfuerzo de desarrollo, en comparacin con hacerlo ms
intensamente. La tabla 3.2 muestra el efecto de incrementar el MBI
en un proyecto Cobol de 30.000 lneas con un PI constante de 11. Se
observa que aunque es posible una reduccin del plazo, slo se
consigue con un gasto elevado. El coste o incremento de esfuerzo
entre un MBI de 1 y un MBI de 3 se muestra en la figura 3.6. Con el
MBI de 1 el nivel mximo de personal es de cinco y con el de 3 es de
12.
Mnimo tiempo de desarrollo.
La ecuacin software se puede reordenar como
tamao/PI= esfuerzo tiempo,
Y se puede representar segn la figura 5.1. Para un proyecto dado, la
relacin tamao/PI es fija, indicando que a medida que el tiempo
aumenta, el esfuerzo disminuye. Esta lnea puede ser diferente en
otros proyectos.
El MBI es otra expresin del esfuerzo y tiempo
MBI = esfuerzo/tiempo3
Y su lnea tambin es fija para un determinado proyecto: a medida
que el esfuerzo aumenta, el tiempo tambin lo hace. Empricamente
no se han encontrado proyectos a la izquierda de la lnea MBI, y as
se ha denominado en la figura 5.2 "regin imposible" a esa zona, y se
obtiene el "tiempo mnimo", que corresponde al mximo esfuerzo.
LOS TRES FACTORES SUBYACENTES
Este tiempo mnimo es funcin de tres factores: el PI, el MBI y el
tamao.
Productividad.

Para desarrollar un producto con menor tiempo y esfuerzo es


necesario mejorar el PI tal como se muestra en la figura 5.3.
Acumulacin de personal.
El sistema Cobol de 96.000 lneas (figura 5.3) se realiz con un MBI
de 3; sin embargo el MBI tambin afecta al tiempo mnimo de
desarrollo y el esfuerzo, como se muestra en la figura 5.4 donde, con
un PI de 15, a medida que aumenta el MBI disminuye el tiempo
mnimo y aumenta el esfuerzo. En la figura 5.5 se muestran valores
para el mismo proyecto con otros PI diferentes. El MBI se obtiene por
calibrado de proyectos anteriores, y representa el entorno y estilo de
gestin de la empresa.
Tamao.
El tercer factor es el tamao del sistema, puesto que cuanto mayor
es el sistema, ms elevados son el tiempo mnimo y el esfuerzo
(figura 5.6)
Regin Imposible.
En la figura 5.7 aparece un diagrama con la "regin imposible" para
el sistema Cobol de 96.000 lneas (PI=19). Las lneas diagonales son
las correspondientes al esfuerzo. La lnea gruesa marca el tiempo
mnimo de desarrollo para cada tamao del proyecto. El esfuerzo
resulta ser de 2.4 aos.
La figura 5.8 muestra el mismo sistema para un PI de 11. El tiempo
mnimo es ahora de 2.2 aos, y el esfuerzo es de 28 personas-ao.
La regin imposible representa estrategias de personal inalcanzables,
puesto que por diversas circunstancias, no se puede acelerar el
desarrollo de software todo lo que uno quiera.
INTERPRETACIN
ANALTICA
DEL
MODELO
RAYLEIGH DE DISTRIBUCIN DEL ESFUERZO

NORDEN-

K es el esfuerzo total en personas-ao de todo el proyecto (no slo


del desarrollo). El esfuerzo acumulado C(t) es nulo al comienzo y se
va acercando hacia K. La tasa de variacin de este esfuerzo
acumulado dC/dt representa el nmero de personas involucradas en
el desarrollo en cualquier punto de tiempo m(t). El esfuerzo
acumulado es

Una asuncin de Norden es que el nmero ptimo de personas para


el proyecto en un momento dado es proporcional al nmero de
problemas a ser resueltos, de donde

con k factor de proporcionalidad. La efectividad para resolver


problemas aumenta a medida que el proyecto avanza. Este factor se
representa por p(t)

que resolvindola queda

.
Norden asumi que la funcin de aprendizaje p(t) era lineal p(t)=2at,
y entonces

El nivel de personal m(t) se obtiene diferenciando la ecuacin anterior

Derivando m(t) e igualando a cero podemos obtener la relacin entre


el tiempo en el que el nivel de personal es mximo y el parmetro a

10

y sustituyendo el valor de a encontramos el mximo nivel de personal

.
Relacin con la ecuacin software.
La ecuacin software nos da el esfuerzo E y el tiempo td.
Empricamente Putnam observ que el pico de personal estaba muy
cercano al tiempo de desarrollo del sistema, que denomin td.
td tambin es la fecha en la que el sistema est completamente
operativo. En la ecuacin de Rayleigh, aestablece la forma de la
ecuacin y est relacionado con el td como sigue

.
E representa el esfuerzo hasta td, y las relaciones de la figura 3.3 dan
K = E/0.39.
Con K y td ya establecidos, la ecuacin de Rayleigh se convierte en
una expresin en esfuerzo y tiempo (y' y t)

.
DIFICULTAD.
La pendiente de la distribucin del personal tiene varias propiedades.
Diferenciando m(t)

para t = 0

11

El cociente

se denomina "dificultad". Un proyecto es ms

difcil cuando la demanda de personal elevada o cuando el plazo es


corto.

(figura 4.2)
D est relacionada tambin con el nivel mximo de personal m0 y td
.
Si el plazo es corto, el coeficiente de Norden a es alto y
m0 proporciona un valor ms elevado, lo que implica mayor nmero
de personas.
ACUMULACIN DE PERSONAL.
Vamos a ver la sensibilidad de D con respecto a K y td:

D'(K) es siempre menor que D'(td), y quiere decir que el desarrollo de


software es sensible al plazo.
Putnam observ que D'(td) tena gran importancia y constat que si el
esfuerzo se incrementa, el tiempo tambin lo hace, de tal manera
que

permanece constante alrededor de un valor. Esta cantidad

se representa por
de acumulacin de personal)

. (

es el MBP o parmetro

12

El MBP (

) tiene gran influencia en la forma de la distribucin del

personal. Cuanto mayor sea


, ms apuntada ser la distribucin y
ms rpida la acumulacin de personal.
es la "acumulacin de
personal" (figura 4.3).
Coste acumulado de personal.
El esfuerzo (coste) de personal en la fecha de entrega td se obtiene
poniendo t = td.

.
Esto quiere decir que una vez que se ha entregado el sistema slo se
ha gastado el 39% del esfuerzo total, en el que se incluyen
modificaciones y mantenimiento. En td, m(t) tiene un mximo, con un
valor

Productividad vs Dificultad.
Dibujando (en escalas logartmicas) la "productividad de desarrollo" y
la "dificultad" de cada proyecto como en la figura 4.6 se sugiere una
relacin tal como

Donde

Y Cn es una constante de proporcionalidad que depende del entorno.


En este modelo Pr no es utilizable directamente.
LA ECUACIN SOFTWARE

Como el tamao del producto S es

13

S = productividad 0.39K
donde la productividad = tamao/esfuerzo. Previamente se defini
de donde
y sustituyendo D

de donde

0.39Cn se remplaza por el coeficiente PP o parmetro de


productividad (inicialmente denominado Factor Tecnolgico)

UN MTODO SIMPLE DE ESTIMACIN


Es aplicable slo a medios y grandes proyectos, y las condiciones a
cumplir son:
Ms de 5000 lneas de cdigo
Ms de 6 meses de tiempo de desarrollo
Esfuerzo de ms de 18-20 personas-mes
El mximo nivel de personal es mayor de 3 personas.
Calibrado.
Se trata de obtener el PP de la organizacin.
1) Se introduce el factor B puesto que le tamao afecta al PP.

La figura 14.1 ilustra los trminos. B se obtiene de la tabla 2.1.


2) Se elige de la tabla 2.3 el valor del PP ms cercano al
obtenido en 1)

14

Tamao.
Se puede estimar bien en la fase de requerimientos o en la
fase de anlisis funcional.
Requerimientos.
a: mnimo tamao posible (SLOC)
b: mximo tamao posible (SLOC)
Tamao esperado=(a+b)/2
Desviacin tpica = (b-a)/6
Anlisis funcional.
Para cada subsistema (considerar de 3 a 10 subsistemas)
a: tamao mnimo posible
m: tamao probable del subsistema
b: tamao posible mximo
Tamao esperado en F
F = (a + 4m + b) / 6
Desviacin tpica
SD = (b - a) / 6
Tamao esperado del sistema completo = F1 + F2 + ... + Fn
con

Estimaciones.
Tiempo mnimo de desarrollo:

Esfuerzo mximo:

Fecha de pico de personal:


tpicoMP = fraccin td-min
La fraccin se obtiene de la tabla 14.1.
Pico de personal.

15

Personal medio.

PLANES DEL PERSONAL.


En las figuras 14.2A, 14.2B, 14.2C, 14.2D se muestran cuatro
posibilidades de nivel de personal de acuerdo con el tamao del
proyecto. Las escalas estn normalizadas con respecto al valor medio
del personal y al td. 1.0 en la escala vertical representa el personal
medio.
ESTUDIO DE VIABILIDAD

No hay frmula emprica para determinar las necesidades de


personal, pero se puede considerar yfeas = 1 a 5.
Efeas = yfeas td-min/4.
ANLISIS FUNCIONAL (figura 14.4).

El esfuerzo es una fraccin del esfuerzo de desarrollo, como se indica


en la tabla 14.2
Efunc = fraccin (E).
http://www.sc.ehu.es/jiwdocoj/mmis/slim.htm