Está en la página 1de 12

Procesos y mtricas Para comparar objetivos y estadsticas de valores histricos es necesario hacer mediciones.

Medida: indicacin cuantitativa de extensin, cantidad, dimensiones,


capacidad o tamao de algn atributo de un proceso.

Medicin: acto de determinar una medida. Mtrica: medida cuantitativa del grado en que un sistema, proceso o
componente posee un atributo dado. Indica las medidas individuales sobre algn aspecto. El ingeniero recopila mtricas para obtener indicadores. Indicador: mtrica o combinacin de mtricas que dan una visin profunda del proyecto, proceso o producto software. Permite ajustar lo que se midi para mejorarlo.

Variable: rasgo, atributo o propiedad de la realidad a medir. Puede tomar ms de un valor y posee una nica unidad de medida: nmeros enteros, tiempo, distancia, monto de dinero, etc.

Relaciones: vinculan en forma de cociente 2 valores con diferente unidad de


medida (diferentes variables).

ndices: vinculan un atributo en 2 dominios diferentes. Ejemplo: 50/100. El


n de arriba es la cifra que se compara con la de abajo. Es decir, que los ndices miden proporciones. Tambin miden enlaces de diferentes unidades en una misma relacin o relaciones entre diferentes perodos de tiempo. Si el numerador es menor, el ndice es un porcentaje. Si es al revs, el ndice es el numero de veces. Ambos suelen usarse indistintamente. A veces los ndices son usados como variables.

Ejemplos de ndices:

Procesos: ndice de productividad (recursos alcanzados y consumidos), KPI:

ndice de rendimiento clave (rendimiento por hora de equipo o herramientas, porcentaje de costo sobre costo total, % tiempo ocioso, % tiempo productivo sobre tiempo total, cantidad de lneas de cdigo sin errores por persona y perodo, etc.). Gestin de proyectos: involucran materiales, personas, tiempo, dinero, etc. Medidas econmicas (VAN, TIR, RI, PRI), nivel de riesgo, costo de cada actividad respecto al total, grado de avance y de retraso, calidad del resultado, tasa de errores, reclamos por perodo, revisiones por perodo y actividad, controles por tarea, etc.

Los indicadores permiten ver en profundidad la eficacia de un proceso. Las mtricas recopilan proyectos durante mucho tiempo y dan indicadores para mejorar los procesos a largo plazo. Permiten evaluar el estado del proyecto, los riesgos potenciales, las reas con problemas crticos potenciales, as como ajustar el flujo y las tareas y evaluar la habilidad del equipo para controlar la calidad de los productos. Para mejorar cualquier proceso hay que medir sus atributos, crear mtricas significativas y usarlas para proporcionar indicadores que lleven a mejoras.

Modo de uso: primero hay que determinar qu ndices usar, es decir, qu es significativo. Para ello consideramos el tipo de negocio, la antigedad, el punto del ciclo en que se encuentra y qu es lo que se busca. Luego se definen las relaciones entre los ndices seleccionados y la frecuencia de las mediciones. Los indicadores medidos deben ser: fciles de medir, oportunos, comprensibles crebles y relevantes. Proceso previo a la decisin: 1. 2. 3. 4. 5. Establecer metas y objetivos. Seleccionar ndices e indicadores. Recolectar datos. Comparar resultados. Corregir si es necesario.

Medicin en el software Para indicar la calidad del producto. Para evaluar la productividad de la gente. Para evaluar beneficios (productividad y calidad) de usar nuevos mtodos y herramientas. Para establecer una lnea base de estimacin. Para justificar el uso de nuevas herramientas o formacin adicional.

Medidas directas del proceso: costo y esfuerzo. Medidas directas del producto: lneas de cdigo, velocidad de ejecucin, defectos por perodo. Medidas indirectas: calidad, funcionalidad, eficiencia, facilidad de mantenimiento, etc. Clasificacin de mtricas Orientadas a la funcin o al tamao Segn la informacin entregada:

De productividad: rendimiento del proceso de ingeniera. De calidad: ajuste del soft a los requisitos del cliente. Tcnicas: se centran en el software (modularidad, complejidad, etc.).

Mtrica de software: funcin cuyas entradas son datos del software o el proceso y las salidas son valores numricos nicos interpretados como el grado en que el software o el proceso poseen un atributo dado.

Estimacin de proyectos software Planificacin: estimacin del esfuerzo requerido para el proyecto, la duracin del mismo y los costos. Esta estimacin precisa muchas variables: humanas, tcnicas, de entorno, polticas, etc., que afectan el costo final y el esfuerzo. Opciones: Estimar ms adelante. Basarse en proyectos similares terminados. Descomponer para estimaciones ms sencillas. Desarrollar un modelo emprico para el clculo.

La idea es usar todas las opciones, siendo cada una comprobacin de las otras. Antes de estimar, el planificador debe comprender el mbito del software y estimar su tamao. Tcnicas y modelos de estimacin En software hay pocos elementos que nos ayuden a estimar con precisin, debido a la forma en que evoluciona la tecnologa. Esto genera que no haya un acumulado histrico vlido de informacin y que los proyectos actuales tarden y cuesten ms de lo planeado. La productividad tambin es algo difcil de medir y puede ser definida como: productividad = (resultados del proceso / insumos del proceso).

Insumos: mano de obra, suministros, equipos, etc. Se deben aclarar las


fases, actividades y recursos que realmente importen.

Resultados: su expresin ms popular es la de lneas de cdigo (LOC). Es

difcil estimar su n, pero a falta de alternativas normalizadas, es la medida ms difundida. Tambin se asume que la productividad en LOC por hora hombre es constante en funcin del tamao del proyecto.

Hay 2 tipos de modelos de estimacin: los subjetivos, basados en la experiencia y los objetivos, basados en estadsticas. Estos modelos nos permiten estimar valores como: Cantidad de personas para un proyecto de x instrucciones en un plazo predefinido. Costo global del proyecto en base a sus caractersticas. Duracin del proyecto en base al tipo de personal y las caractersticas del ambiente de desarrollo. Esfuerzo a invertir en base a las caractersticas del software. Calidad en base a las caractersticas del software.

Estimacin emprica: el administrador recurre a alguien que haya hecho algo similar para estimar (juicio experto). Se descompone el problema en partes ms pequeas para estimar cada una por separado. Se hacen estimaciones optimistas (EO), ms probables (EMP) y pesimistas (EP) con una probabilidad para cada una. E = EO * PO + EMP + PMP + EP + PP Esta estimacin se limita a pocos proyectos, por lo que no es adecuada para cualquier software y sus resultados deben ser usados con prudencia.

Estimacin racional basada en estadsticas:

Cada proyecto tiene su aceleracin inicial al aplicarse progresivamente y no bruscamente, los recursos. Cada proyecto tiene tambin desaceleracin progresiva. Hay relacin entre el plazo de desarrollo, el esfuerzo realizado y el tamao del software. Mientras ms voluminoso es el proyecto ms vlidas son estas premisas.

Modelo de putnam (Macroscpico): supone una distribucin del esfuerzo sobre la vida del proyecto en base a la ecuacin de Rayleigh y con datos de proyectos software muy grandes (30 aos hombre o ms). L = C * K1/3 * T 4/3 T: tiempo en aos. L: lneas de cdigo producidas. K: esfuerzo (aos hombre). C: constante que depende de la tecnologa a aplicar: 6500: ambiente de desarrollo pobre (sin documentacin, revisiones y ejecucin por lotes). 10000: ambiente bueno (documentacin, revisiones, modo interactivo). 12500: ambiente excelente (herramientas automatizadas). Estos valores pueden calcularse usando datos histricos. Esfuerzo: K = L3 / (C3 * T4) Si se incluye el costo de la mano de obra, la ecuacin del esfuerzo puede estimar el costo de la misma en un proyecto de software. Modelo de puntos de funcin: es una medida indirecta del software y del proceso de desarrollo, que se centra en la funcionalidad o utilidad del software. Se cuantifica el tamao y la complejidad del sistema en trminos de las funciones de usuario que desarrolla. Por ello, la medida es independiente del lenguaje o herramienta de desarrollo. Sirve para aplicaciones de negocios, no para aplicaciones tcnicas. Ventajas: Independencia del lenguaje y herramienta de implementacin. Pueden estimarse con la especificacin de requisitos, posibilitando la estimacin temprana. Cualquier cambio en la especificacin, se replica sin problemas.

Como se basan en la visin del usuario, estos tienen el mejor entendimiento de lo que se est midiendo. Resuelve inconsistencias que aparecen con el uso de LOC como mtrica.

Puntos de caracterstica: ampliacin de los puntos de funcin, que incluye aplicaciones de complejidad algortmica alta. Considera los mismos elementos que PF, aade la variable n de algoritmos y elimina los niveles de complejidad. CoCoMo (constructive cost model): Usa una jerarqua de modelos. Modelo I: calcula esfuerzo y costo del desarrollo en funcin de las LOC estimadas. Modelo II: I + un conjunto de conductores de costos sobre la evaluacin subjetiva del producto, el hardware, el personal y atributos del proyecto. Modelo III: II + evaluacin de los conductores de costos en cada etapa del proyecto.

Herramientas automticas de estimacin: permiten estimar costos y esfuerzos, as como tiempos de entrega y seleccin de personal, entre otros. Requieren de una o ms clases de datos, de los cuales se estima todo lo mencionado. Para obtener una estimacin temprana de tiempo, esfuerzo y personas, as como predecir recursos hardware, software y riesgos, lo recomendable es usar 2 o ms de las tcnicas listadas, para comparar, conciliar y obtener ms exactitud.

Puntos de funcin Evala: Valor comercial del sistema para el usuario. Tamao del proyecto, costo y tiempos. Calidad y productividad del programador. Esfuerzo de adaptacin, modificacin y mantenimiento. Posibilidad de desarrollo propio. Beneficios de implementacin en 4GL. Punto de funcin: funcin comercial de usuario final.

Las funciones se dividen en: entradas, salidas, consultas, ficheros e interfaces y luego se clasifican por su complejidad: alta, media, baja. Se ajusta este total acorde a las caractersticas del entorno.

Salidas: datos nicos o salidas de control generadas proceduralmente que


salen del lmite de la aplicacin. Son informes o mensajes a otras aplicaciones y usuarios. Es salida nica si: tiene formato diferente a otra salida o si tiene el mismo formato, pero con diferente lgica de procesamiento. Ejemplos: ficheros de transaccin enviados a otra aplicacin, facturas, cheques, fichas perforadas, transacciones automticas, mensajes, cintas, grficos, ficheros backup, etc. No son salidas: cabeceras de columna, ttulos, n de pgina, mensajes individuales (informacin, confirmacin o respuestas a errores), salida en igual formato y lgica que se cuente para otro soporte.

Entradas: dato nico de usuario o entrada de control que entra en los


lmites de la aplicacin y actualiza un fichero lgico interno, datos, tabla o dato independiente. Son ficheros de entrada o transacciones de otra aplicacin. Es entrada nica si: tiene formato diferente a otra entrada o tiene el mismo formato, pero diferente lgica de procesamiento o modifica un fichero lgico distinto. Ejemplos: Mouse, documento micr, transacciones de cintas, pantallas sensitivas, lectores de cdigos de barra, etc.

Consultas: combinacin de E/S, donde la entrada genera una salida, todo


on-line. Pueden provenir de otra aplicacin. Es consulta nica si: tiene formato diferente en la entrada o la salida, o tiene el mismo formato, pero diferente procesamiento en la entrada o la salida. Una consulta directa en la BD o fichero maestro es aquella que usa claves simples para recuperar datos y no un rango de claves. Adems requiere respuesta inmediata y no actualiza datos, aunque puede realizar clculos. Ejemplos: consulta de usuario/display sin actualizacin, ficheros de transaccin que salen de la aplicacin si est accesible al usuario on-line, pantalla de seleccin de men, mensaje de informacin o ayuda, etc.

Ficheros: Grupo lgico mayor de datos de usuario o informacin de control


que est en los lmites de la aplicacin. Hay dos tipos de ficheros: ficheros de transacciones temporales y ficheros con registros lgicos permanentes. Cuando estn dentro de la aplicacin, se denominan ficheros internos lgicos. Si se comparten entre aplicaciones son adems interfaces (las 2 cosas a la vez). Las transacciones son sucesos que cambian los ficheros lgicos internos, no son ficheros. Transaccin entrada: se lee para actualizar un fichero lgico interno. Transaccin interfaz: transfiere transacciones de actualizacin a otra aplicacin. Ejemplos: base de datos (1 por vista lgica o camino de acceso), ficheros maestros (1 por cada grupo de claves), tablas mantenidas por los usuarios, fichero de procesamiento batch, ndice de referencias cruzadas.

Interfaces: ficheros lgicos de informacin de control, enviados fuera de las

aplicaciones, compartidos o recibidos desde otra aplicacin. Los ficheros compartidos entre aplicaciones son ficheros e interfaces en cada aplicacin que los usen o los mantengan, mientras que en la otra slo sern interfaces. Es decir, un fichero interface debe ser interno lgico en esa aplicacin, en otra o en ambas, o puede ser un fichero transaccin generado en la propia aplicacin. Casos: Datos o informacin de control desde A hasta B. En A es fichero e interface. En B slo interface.

Datos o informacin de control desde B hasta A. dem anterior, pero al revs. Datos o informacin de control compartidos entre A y B. En ambos es fichero e interface.

Involucran ficheros maestros, no transacciones: Si las aplicaciones se relacionan por medio de transacciones, se puntan Entrada, Salida, Consulta y quizs Interface. Si se relacionan por medio de Ficheros Maestros, se puntan Interface y quizs Fichero. Un fichero transaccin no es interface si el formato con el que lo recibe el otro programa es el mismo. El receptor lo toma como entrada. Es contado como salida e interface si el programa que lo enva realiza la conversin. Ejemplos: ficheros lgicos internos accesibles y accedidos desde otra aplicacin, BD compartida, lista de parmetros compartida, fichero de impresin exportado, fichero transaccin compartido que requiere conversin, fichero de registros de otra aplicacin, ficheros de registros a otra aplicacin (fichero en la aplicacin y en la otra interface), ficheros de registros a varias aplicaciones (afecta la complejidad), fichero compartido entre 2 o ms aplicaciones, BD compartida con otras aplicaciones, BD compartida de otras aplicaciones, fichero transaccin de otras aplicaciones con conversin de datos, fichero transaccin enviado a otra aplicacin con conversin de datos (se cuentan en 1 sola aplicacin). Caractersticas generales de la aplicacin PF Se califican de 0 a 5 segn su influencia en el sistema.

1. Comunicacin de datos: datos o informacin de control que la aplicacin 2. 3. 4. 5. 6. 7. 8. 9.


enva o recibe a travs de la facilidad de comunicacin. Vara entre batch, datos remotos o interactivo. Funcin distribuida: los componentes o datos se distribuyen en varios procesadores. Vara entre ofrecer y no ofrecer esta posibilidad. Rendimiento: respuesta dentro del sistema. Vara entre considerar al usuario en sus requerimientos o no. Configuracin masiva: restricciones de memoria o hardware. Vara entre no tener restricciones y s tenerlas en componentes distribuidos. Tasas de transaccin: llegada de transacciones. Vara entre considerar transacciones estndares o altos niveles de transaccin. Entrada on-line de datos: cantidad de transacciones (en %) que tienen entrada interactiva. Diseo para la eficiencia del usuario final: vara entre no considerar sus requerimientos y considerarlos (prototipos). Actualizacin on-line: vara entre no actualizar los ficheros, considerar su actualizacin y hacerlo y cuidar que no se pierdan (backup y recuperacin). Complejidad del procesamiento: complejidad interna, ms all de la E/S. Vara entre tener y no tener: procesamiento lgico/matemtico, procesamiento complejo de entradas y salidas, muchas excepciones de procesamiento, transacciones incompletas y reprocesamiento, procesamiento de seguridad y/o control sensitivo. Reutilizacin: que se puedan usar los componentes en otras aplicaciones. Vara entre permitir su reutilizacin y usar mdulos de otras aplicaciones y no hacerlo.

10.

11. Facilidad de instalacin: vara entre considerar los requerimientos del 12. 13. 14.

usuario de facilidades de instalacin y conversin y no hacerlo. Facilidad de operacin: vara entre operacin manual, ayuda en backups y arranque y operacin desatendida. Puestos mltiples: vara entre no considerar muchos puestos y hacerlo brindando documentacin y apoyo. Facilidad de cambio: facilidad de realizar cambios futuros. Vara entre no considerarlos y hacerlo facilitndoselo al usuario con consultas y actualizaciones de tablas on-line.

PF = PF no ajustados * (0,65 + 0,01 * ( influencia de factores))

CoCoMo Ecuacin de estimacin de esfuerzo de desarrollo:

S: n de miles de LOC. m(X): multiplicador que depende de 15 atributos. Tabla de coeficientes:

Modelo bsico: estima rpidamente proyectos pequeos y medianos. Este modelo no considera muchas caractersticas del entorno.

Modo orgnico: entorno familiar. Entre miles y decenas de miles de LOC. El


costo y el tiempo es proporcional al tamao.

Km: personas/mes Sk: LOC Tiempo: td: tiempo de desarrollo en meses.

Modo empotrado: mayores restricciones, principalmente de hardware.


Problemas ms especficos con ms de una centena de mil en LOC. Requiere gente ms idnea. Costo:

Tiempo:

Modo semiempotrado: intermedio entre los dos anteriores. Se pueden incluir


personas experimentadas o no. Costo: Tiempo:

Modelo intermedio: introduce 15 atributos del entorno de trabajo para ajustar costos y precisin en la estimacin. Para cada modo, los 15 atributos multiplican el costo nominal:

Los exponentes son los mismos del modelo bsico, lo que indica que el tamao afecta igual. Los coeficientes han cambiado para mantener el equilibrio semiempotrado respecto al efecto multiplicador de los atributos. Atributos de costo Atributos de producto: Garanta de funcionamiento requerida al software: consecuencias para el usuario de un mal funcionamiento. Tamao de la BD: tamao respecto al tamao del programa. Complejidad: complejidad de cada mdulo y del sistema. Vara de baja a alta. Atributos de la computadora: Tiempo de ejecucin: restricciones al programar un sistema con mayor tiempo de ejecucin. Se expresa en el % de tiempo de ejecucin disponible. Restricciones de almacenamiento: esfuerzo de programacin para reducir el uso de almacenamiento principal. Volatilidad de la mquina virtual: cambios en la mquina donde se desarrolla el programa. Tiempo de respuesta: esfuerzo para reducir este valor. Atributos del personal: Capacidad del analista: habilidad de anlisis, eficiencia y capacidad para cooperar. Experiencia en la aplicacin: experiencia en algo similar. Vara entre baja (menos de 4 meses) a alta (ms de 12 aos). Capacidad del programador: capacidad del grupo de programadores. Experiencia en mquina virtual: experiencia del grupo con el procesador. Desde baja a muy alta. Experiencia en lenguaje de programacin: a mayor experiencia, menos errores y requerimientos humanos. Vara desde muy baja a muy alta. Atributos del proyecto: Prcticas de programacin modernas: Ejemplo: uso de programacin estructurada y desarrollo top-down. Vara desde no usarlas a tenerlas como hbito. Uso de herramientas software: sirven para multiplicar la productividad. Vara desde usar herramientas bsicas a especficas. alrededor del

Plan de desarrollo requerido: el tiempo nominal de desarrollo es el que


requiere menos esfuerzo. Vara entre mucho apresuramiento y retraso.