Métrica de software - Software metric
Desarrollo de software |
---|
Una métrica de software es un estándar de medida del grado en que un sistema o proceso de software posee alguna propiedad. Incluso si una métrica no es una medida (las métricas son funciones, mientras que las medidas son los números obtenidos mediante la aplicación de métricas), a menudo los dos términos se utilizan como sinónimos. Dado que las mediciones cuantitativas son esenciales en todas las ciencias, existe un esfuerzo continuo por parte de los teóricos y profesionales de la informática para aportar enfoques similares al desarrollo de software. El objetivo es obtener mediciones objetivas, reproducibles y cuantificables, que pueden tener numerosas aplicaciones valiosas en la planificación de programas y presupuestos, estimación de costos, garantía de calidad, pruebas, depuración de software, optimización del rendimiento del software y asignaciones óptimas de tareas de personal.
Medidas de software habituales
Las medidas de software comunes incluyen:
- Métrica de software ABC
- Cuadro de mando integral
- Errores por línea de código
- Cobertura de código
- Cohesión
- Densidad de comentarios
- Componentes de software connascent
- Modelo de costo constructivo
- Acoplamiento
- Complejidad ciclomática ( complejidad de McCabe)
- Densidad de complejidad ciclomática
- Densidad de defectos: defectos encontrados en un componente
- Defecto potencial: número esperado de defectos en un componente en particular.
- Tasa de eliminación de defectos
- DSQI (índice de calidad de la estructura del diseño)
- Puntos de función y puntos de función automatizados, un estándar del grupo de administración de objetos
- Complejidad de Halstead
- Longitud de la ruta de instrucción
- Índice de mantenibilidad
- Número de líneas de código
- Tiempo de ejecución del programa
- Tiempo de carga del programa
- Tamaño del programa (binario)
- Puntos de micro función ponderados
- Medidas de características de calidad automatizadas CISQ
- Tiempo de ciclo (software)
- Rendimiento de primera pasada
- Probabilidad de compromiso correctivo
Limitaciones
Dado que el desarrollo de software es un proceso complejo, con una gran variación tanto en las metodologías como en los objetivos, es difícil definir o medir las cualidades y cantidades del software y determinar una métrica de medición válida y concurrente, especialmente cuando se hace tal predicción antes del diseño detallado. Otra fuente de dificultad y debate es determinar qué métricas son importantes y qué significan. Por lo tanto, la utilidad práctica de las mediciones de software se ha limitado a los siguientes dominios:
- Planificación
- Dimensionamiento del software
- Complejidad de programación
- Estimación del esfuerzo de desarrollo de software
- Calidad del software
Una medición específica puede apuntar a uno o más de los aspectos anteriores, o al equilibrio entre ellos, por ejemplo, como un indicador de la motivación del equipo o el desempeño del proyecto.
Además, las métricas varían entre el código de programa estático y dinámico, así como para el software orientado a objetos (sistemas).
Aceptación y opinión pública
Algunos profesionales del desarrollo de software señalan que las mediciones simplistas pueden causar más daño que bien. Otros han notado que las métricas se han convertido en una parte integral del proceso de desarrollo de software. El impacto de la medición en la psicología del programador ha generado preocupaciones por los efectos dañinos en el rendimiento debido al estrés, la ansiedad por el rendimiento y los intentos de engañar a las métricas, mientras que otros encuentran que tiene un impacto positivo en el valor de los desarrolladores hacia su propio trabajo y evita que sean infravalorados. Algunos argumentan que la definición de muchas metodologías de medición es imprecisa y, en consecuencia, a menudo no está claro cómo las herramientas para calcularlas llegan a un resultado particular, mientras que otros argumentan que la cuantificación imperfecta es mejor que ninguna (“No se puede controlar lo que se puede” t medir. ”). La evidencia muestra que las métricas de software están siendo ampliamente utilizadas por agencias gubernamentales, el ejército de los EE. UU., La NASA, consultores de TI, instituciones académicas y software de estimación de desarrollo comercial y académico .
Otras lecturas
- J. Smith, Introducción a la programación lineal , Acme Press, 2010. Un texto introductorio.
- Reijo M.Savola, Calidad de métricas y medidas de seguridad, Computers & Security, Volumen 37, septiembre de 2013, páginas 78-90.
Ver también
- Métrica de pregunta de objetivo
- Lista de herramientas para el análisis de código estático
- Clasificación de defectos ortogonales
- Ingeniería de software
- Métricas de paquetes de software
Referencias
enlaces externos
- Métricas de software (SQA.net)
- Métricas de ingeniería de software: qué miden y cómo sabemos
- Estándar de la NASA NASA-STD-8739.8 (Garantía de software y estándar de seguridad del software)
- HIS Source Code Metrics ( desactualizado pero para referencia ; relacionado ver AUTOSAR )
- HIS Source Code Metrics versión 1.3.1 01.04.2008 ( desactualizado pero para referencia ; relacionado ver AUTOSAR )
- Un marco para métricas de código fuente
- NASA.gov
- Definiciones de métricas de SonarQube
- Métricas de software orientado a objetos (2010)