El Modelo SLIM

 

 

La Ecuación 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-año.

            Tiempo representa la duración del trabajo, medido en meses o años.

            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 también de "cómo 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 ecuación anterior tiene mayor sentido si la expresamos como

            Producto = Productividad · Esfuerzo · Tiempo

de donde podemos obtener el valor de Productividad, si conocemos los otros términos, 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 organización, incluyendo

            • la gestión del proyecto

            • la utilización de buenos requerimientos, diseños, codificaciones, inspecciones y pruebas

            • el nivel del lenguaje de programación

            • el estado de la tecnología

            • la experiencia de los miembros del grupo

            • la complejidad de la aplicación.

En un determinado momento del proyecto, el valor de la Productividad es fijo. Sin embargo, la evolución en el tiempo y la acción de la dirección puede hacer cambiar su valor. Esta productividad es un conjunto de factores y se puede denominar "parámetro de productividad del proceso".

 

Refinamiento de la Ecuación Software.

            Basándonos en las tendencias establecidas por la base de datos QSM, podemos deducir que la relación entre los términos es no lineal

            Producto = Parámetro de Productividad · (Esfuerzo/B)(1/3)· Tiempo(4/3)

donde

            • la funcionalidad del producto se mide en SLOC

            • el parámetro de productividad se obtiene por calibración de proyectos ya realizados

            • esfuerzo es el trabajo en personas-año

            • B es un factor de destreza especial que es función del tamaño. Se incrementa ligeramente de las 18.000 a las 100.000 SLOC, como se muestra en la tabla 2.1.

            Esta ecuación se obtuvo inicialmente mediante el análisis de una docena de grandes proyectos software de la década de los 70.

 

Justificación de las potencias 1/3 y 4/3.

            Es importante la validación de esa relación potencial, puesto que en ocasiones el resto de los factores se suponen constantes, y la ecuación software queda como

                        Esfuerzo = Constante/Tiempo4.

            Se observa que pequeños 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% más), disminuye el esfuerzo en un 19.5%.

            Empíricamente se validó esta relación posteriormente con 70 sistemas más. Después, a mediados de los 80 se utilizaron 750 sistemas. El método de validación fue el de reordenar la ecuación como

            Esfuerzo = [tamaño · B1/3/Parámetro de productividad]3 · (1/Tiempo4).

            Para un sistema concreto, los términos entre corchetes son constantes. Se buscó en la base de datos clases para los que el factor entre corchetes era parecido, encontrándose 8 grupos. Para cada grupo se buscó esa relación 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 desviación estándar 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 prácticas se concluyó que el exponente de 4 era un valor razonable en esa ecuación.

 

El parámetro de la productividad del proceso

            Se obtiene calibrando sistemas terminados. Por ejemplo, dado un sistema de 30.000 líneas de Cobol, finalizado en 17 meses con un gasto de recursos de 146 personas-mes, tenemos

            Parámetro 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 microcódigo 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 aplicación).

 

Valoración económica.

            Dado que el PI representa el PP exponencial, una pequeña mejora en este índice tiene gran importancia económica, 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 más 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 organización o proyecto.

 

Utilización de la Ecuación para Estimación.

            La utilización básica es la de estimar tiempo y esfuerzo al comienzo de un nuevo proyecto software. Se deben conocer el PI (y el PP) a través de proyectos anteriores. Quedan dos incógnitas en la ecuación. Se puede resolver como

            • solución determinista

            • simulación

            • programación lineal

Solución determinista

            Consisten en poner la ecuación como sigue

            (esfuerzo/B)1/3 · tiempo4/3 = SLOC/PP

y añadir una segunda ecuación basada en la "tasa de acumulación de esfuerzo humano", y se expresa como el parámetro de acumulación del esfuerzo":

            esfuerzo total acumulado/tiempo3 = parámetro MBP.

            Para un proyecto ya acabado es fácil obtener este parámetro calibrado. El MBP (con su MBI asociado) permite establecer un "tiempo mínimo de desarrollo"

 

Simulación Montecarlo.

            Consiste en incorporar la incertidumbre tanto en el tamaño SLOC como en el MBI. Se simula mediante el método de Montecarlo desde 100 a 1000 veces, calculándose después la media y la desviación típica.

 

Programación lineal.

            Se pueden aplicar al proceso de estimación cinco restricciones

            • máximo MBP

            • máximo pico de esfuerzo

            • mínimo pico de esfuerzo

            • plazo de entrega

            • presupuesto monetario para el desarrollo

            Estas restricciones se pueden expresar en términos de esfuerzo total (K), tiempo de desarrollo (td), y personas-año/año (y´), coste/persona-año medio. Entre los extremos se encuentran soluciones de compromiso.

 

Modelo del Ciclo de Vida. Modelo teórico de Norden

            Un modelo propuesto por para mostrar la evolución 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 método de estimación de Putnam se basa en ese modelo teórico que establece el soporte para desarrollar otras hipótesis.

 

 

Acumulación de Personal

            La tasa de contratación de personal en un proyecto debiera ser igual a la tasa de necesidades del mismo.

 

Parámetro de acumulación de personal.

            Es claro en la curva de Rayleigh que la tasa de contratación 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, considerándose seis valores representativos a los que se les asocia el índice MBI (tabla 3.1). El efecto gráfico de este parámetro 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 comparación con hacerlo más intensamente. La tabla 3.2 muestra el efecto de incrementar el MBI en un proyecto Cobol de 30.000 líneas con un PI constante de 11. Se observa que aunque es posible una reducción del plazo, sólo 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 máximo de personal es de cinco y con el de 3 es de 12.

 

Mínimo tiempo de desarrollo.

            La ecuación software se puede reordenar como

            tamaño/PI= esfuerzo · tiempo,

y se puede representar según la figura 5.1. Para un proyecto dado, la relación tamaño/PI es fija, indicando que a medida que el tiempo aumenta, el esfuerzo disminuye. Esta línea puede ser diferente en otros proyectos.

            El MBI es otra expresión del esfuerzo y tiempo

            MBI = esfuerzo/tiempo3

y su línea también es fija para un determinado proyecto: a medida que el esfuerzo aumenta, el tiempo también lo hace. Empíricamente no se han encontrado proyectos a la izquierda de la línea MBI, y así se ha denominado en la figura 5.2 "región imposible" a esa zona, y se obtiene el "tiempo mínimo", que corresponde al máximo esfuerzo.

 

Los tres factores subyacentes

            Este tiempo mínimo es función de tres factores: el PI, el MBI y el tamaño.

 

Productividad.

            Para desarrollar un producto con menor tiempo y esfuerzo es necesario mejorar el PI tal como se muestra en la figura 5.3.

 

Acumulación de personal.

            El sistema Cobol de 96.000 líneas (figura 5.3) se realizó con un MBI de 3; sin embargo el MBI también afecta al tiempo mínimo 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 mínimo 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 gestión de la empresa.

 

Tamaño.

            El tercer factor es el tamaño del sistema, puesto que cuanto mayor es el sistema, más elevados son el tiempo mínimo y el esfuerzo (figura 5.6)

 

Región Imposible.

            En la figura 5.7 aparece un diagrama con la "región imposible" para el sistema Cobol de 96.000 líneas (PI=19). Las líneas diagonales son las correspondientes al esfuerzo. La línea gruesa marca el tiempo mínimo de desarrollo para cada tamaño del proyecto. El esfuerzo resulta ser de 2.4 años.

            La figura 5.8 muestra el mismo sistema para un PI de 11. El tiempo mínimo es ahora de 2.2 años, y el esfuerzo es de 28 personas-año. La región imposible representa estrategias de personal inalcanzables, puesto que por diversas circunstancias, no se puede acelerar el desarrollo de software todo lo que uno quiera.

 

Interpretación analítica del

modelo Norden-Rayleigh de distribución del esfuerzo

            K es el esfuerzo total en personas-año de todo el proyecto (no sólo del desarrollo). El esfuerzo acumulado C(t) es nulo al comienzo y se va acercando hacia K. La tasa de variación de este esfuerzo acumulado dC/dt representa el número de personas involucradas en el desarrollo en cualquier punto de tiempo m(t). El esfuerzo acumulado es

                                    

Una asunción de Norden es que el número óptimo de personas para el proyecto en un momento dado es proporcional al número 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 resolviéndola queda

                                   .

            Norden asumió que la función de aprendizaje p(t) era lineal p(t)=2at, y entonces

                                  

            El nivel de personal m(t) se obtiene diferenciando la ecuación anterior

                                  

Derivando m(t) e igualando a cero podemos obtener la relación entre el tiempo en el que el nivel de personal es máximo y el parámetro a

                                  

y sustituyendo el valor de a encontramos el máximo nivel de personal

                                   .

 

Relación con la ecuación software.

            La ecuación software nos da el esfuerzo E y el tiempo td. Empíricamente Putnam observó que el pico de personal estaba muy cercano al tiempo de desarrollo del sistema, que denominó td. td también es la fecha en la que el sistema está completamente operativo. En la ecuación de Rayleigh, a establece la forma de la ecuación 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 ecuación de Rayleigh se convierte en una expresión en esfuerzo y tiempo (y' y t)

                                   .

 

Dificultad.

            La pendiente de la distribución del personal tiene varias propiedades. Diferenciando m(t)

           

            para t = 0

           

            El cociente  se denomina "dificultad". Un proyecto es más difícil cuando la demanda de personal elevada o cuando el plazo es corto.

             (figura 4.2)

            D está relacionda también con el nivel máximo de personal m0 y td

            .

            Si el plazo es corto, el coeficiente de Norden a es alto y m0 proporciona un valor más elevado, lo que implica mayor número de personas.

 

Acumulación 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) tenía gran importancia y constató que si el esfuerzo se incrementa, el tiempo también lo hace, de tal manera que  permanece constante alrededor de un valor. Esta cantidad se representa por                    . ( es el MBP o parámetro de acumulación de personal)

            El MBP () tiene gran influencia en la forma de la distribución del personal. Cuanto mayor sea , más apuntada será la distribución y más rápida la acumulación de personal.  es la "acumulación 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 sólo se ha gastado el 39% del esfuerzo total, en el que se incluyen modificaciones y mantenimiento. En td, m(t) tiene un máximo, con un valor

           

 

Productividad vs Dificultad.

            Dibujando (en escalas logarítmicas) la "productividad de desarrollo" y la "dificultad" de cada proyecto como en la figura 4.6 se sugiere una relación tal como

                       

donde

                       

y Cn es una constante de proporcionalidad que depende del entorno. En este modelo Pr no es utilizable directamente.

           

La ecuación software

           

Como el tamaño del producto S es

            S = productividad · 0.39K

donde la productividad = tamaño/esfuerzo. Previamente se definió

             de donde

             y sustituyendo D

             de donde

           

            0.39Cn se remplaza por el coeficiente PP o parámetro de productividad (inicialmente denominado Factor Tecnológico)

           

 

 

Un Método Simple de Estimación

            Es aplicable sólo a medios y grandes proyectos, y las condiciones a cumplir son:

            • más de 5000 líneas de código

            • más de 6 meses de tiempo de desarrollo

            • esfuerzo de más de 18-20 personas-mes

            • el máximo nivel de personal es mayor de 3 personas.

 

Calibrado.

            Se trata de obtener el PP de la organización.

            1) Se introduce el factor B puesto que le tamaño afecta al PP.

                                  

            La figura 14.1 ilustra los términos. B se obtiene de la tabla 2.1.

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

 

Tamaño.

            Se puede estimar bien en la fase de requerimientos o en la fase de análisis funcional.

Requerimientos.

            a: mínimo tamaño posible (SLOC)

            b: máximo tamaño posible (SLOC)

            Tamaño esperado=(a+b)/2

            Desviación típica = (b-a)/6

Análisis funcional.

            Para cada subsistema (considerar de 3 a 10 subsistemas)

            a: tamaño mínimo posible

            m: tamaño probable del subsistema

            b: tamaño posible máximo

            Tamaño esperado en F

                        F = (a + 4m + b) / 6

            Desviación típica

                        SD = (b - a) / 6

            Tamaño esperado del sistema completo = F1 + F2 + ... + Fn

            con

                       

Estimaciones.

            Tiempo mínimo de desarrollo:

                       

                       

            Esfuerzo máximo:

                       

                       

            Fecha de pico de personal:

                        tpicoMP = fracción · td-min

                        la fracción se obtiene de la tabla 14.1.

            Pico de personal.

                       

            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 tamaño del proyecto. Las escalas están 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 fórmula empírica para determinar las necesidades de personal, pero se puede considerar y´feas = 1 a 5.

                                   Efeas = y´feas · td-min/4.

 

Análisis funcional (figura 14.4).

                                  

            El esfuerzo es una fracción del esfuerzo de desarrollo, como se indica en la tabla 14.2

                                   Efunc = fracción (E).