Gonzalo Benavides Álvaro López Un Framework Basado en Metas Para Mediciones de Software 1) Clasificando indicadores de software a) Mediciones internas: son un tipo de mediciones realizadas en términos de los productos, procesos o recursos, de manera independiente. i) Al medir productos: líneas de código, modularidad, etc. ii) Al medir procesos: tiempo empleado, esfuerzo asociado, requerimientos cambiados. iii) Al medir recursos: nivel de asignación de tareas, integrantes del equipo de desarrollo b) Mediciones externas: son un tipo de mediciones hechas comparando productos, procesos o recursos de manera relacionada. i) Al medir productos: facilidad de mantención, calidad, etc. ii) Al medir procesos: calidad, costo, costo-efectivo v/s costo esperado. iii) Al medir recursos: productividad experiencia, calidad del equipo de desarrollo. 2) Determinando qué medir a) Paradigma GQM: Goal-Question-Metric: ayuda a descubrir qué indicadores son necesarios medir para alcanzar de mejor manera las metas de la organización. Involucra tres pasos i) Establecer y listar las metas y objetivos de la organización ii) A partir de cada meta, derivar preguntas, que al ser respondidas, determinarán si las metas están siendo cumplidas. iii) Decidir qué debe medirse para poder responder a dichas preguntas. b) Midiendo para mejorar procesos: las mediciones pueden también ayudar a que los procesos que se realizan durante el desarrollo del proyecto sean mejorados. Para clasificar los avances en este sentido, el Software Engineering Institute estableció 5 niveles de madurez de procesos: i) Nivel 1: Inicial. Transición de input a output no está definida, procesos reactivos, mal definidos, se hace muy difícil llevar a cabo mediciones ya que las metas no siempre están definidas. ii) Nivel 2: Repetible. Identifica inputs, outputs, restricciones de presupuesto o calendario, y los recursos utilizados para la producción. Se le llama repetible tal como una subrutina de software; a partir de un input, generará el mismo output, sin saber que está pasando al interior. Como no hay visibilidad de procedimientos internos, es muy difícil llevar a cabo mediciones iii) Nivel 3: Definido. Se diferencia del anterior en que proporciona una visión de subsistemas en la transición de input a output; hay etapas o actividades intermedias en el desarrollo que están definidas y acotadas, lo que facilita poco a poco las mediciones. iv) Nivel 4: Administrado. Aparece la retroalimentación, y con ello, el establecimiento de prioridades y la administración de recursos. Con lo anterior, se puede comenzar a evaluar la efectividad de cada proceso o actividad, y las mediciones realizadas ahora representan a conjuntos de procesos, ya que interactúan entre sí. v) Nivel 5: Optimizando. Los procesos van cambiando en el tiempo a medida que pasa el tiempo. Se descubren mejores prácticas, con lo que dado un mismo input, el output será cada vez mejor. c) Combinando GQM con madurez de procesos. Cada meta propuesta con GQM puede ser descompuesta en submetas con distintas prioridades. Para cada una de esas submetas, un set de preguntas más específico y profundo, desde el cual se puedan extraer mejores indicadores 3) a) b) c) d) e) f) g) h) i) Aplicando el framework Estimación de costo y esfuerzo. Puede estimarse el esfuerzo (en persona/mes) o el costo en dinero de un proyecto de software una vez que se ha medido o predicho su tamaño. Modelos de productividad. De la misma forma, si se ha logrado medir o predecir el tamaño del software a desarrollar, y se conoce el número de personas involucradas, se puede medir la productividad. Modelos de calidad. Se puede estimar la calidad del producto final midiendo defectos y tamaño total. Modelos de confiabilidad. Se puede predecir o estimar si se conoce la probabilidad de fallo. Modelos de rendimiento. Conociendo el tiempo de respuesta para un cálculo, o la memoria utilizada, puede ser estimado. Medidas de complejidad. Midiendo atributos internos y externos puede estimarse la complejidad. Estimación de madurez. Se obtiene midiendo la visibilidad de los procesos y su definición. Administración mediante indicadores. Muchas empresas establecen objetivos utilizando valores esperados para indicadores. Evaluación de nuevas técnicas y herramientas. Utilizando indicadores de eficiencia y productividad, puede evaluarse la conveniencia de adoptar nuevas técnicas o adquirir nuevas herramientas.