Una métrica de software es un estándar de medida del grado en que un sistema o proceso de software posee alguna propiedad. [1] [2] 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 la informáticaprofesionales y teóricos 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 [3]
- Componentes de software connascent
- Modelo de costo constructivo
- Acoplamiento
- Complejidad ciclomática ( complejidad de McCabe)
- Densidad de complejidad ciclomática [4] [5]
- 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 gestión de objetos [6]
- 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 [7]
Limitaciones
Como 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. [8] [9] 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). [10] [11]
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. [12] Otros han notado que las métricas se han convertido en una parte integral del proceso de desarrollo de software. [8] El impacto de la medición en la psicología del programador ha generado preocupación 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 los previene. siendo infravalorado. 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, [13] mientras que otros argumentan que la cuantificación imperfecta es mejor que ninguna (“No se puede controlar lo que no se puede medir ”). [14] La evidencia muestra que las métricas de software están siendo ampliamente utilizadas por agencias gubernamentales, el ejército de los Estados Unidos, la NASA, [15] consultores de TI, instituciones académicas [16] 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. [17]
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
- ^ Fenton, Norman E. (2014). Métricas de software: un enfoque riguroso y práctico . James Bieman (3ª ed.). Boca Raton, FL. ISBN 978-1-4398-3823-5. OCLC 834978252 .
- ^ Timóteo, Aline Lopes; Álvaro, Re; Almeida, Eduardo Santana De; De, Silvio Romero; Meira, Lemos. Métricas de software: una encuesta . CiteSeerX 10.1.1.544.2164 .
- ^ "Umbrales métricos de información descriptiva (DI)" . Centro de Ingeniería de Software Terrestre . Archivado desde el original el 6 de julio de 2011 . Consultado el 19 de octubre de 2010 .
- ^ Gill, GK; Kemerer, CF (diciembre de 1991). "Densidad de complejidad ciclomática y productividad de mantenimiento de software" . Transacciones IEEE sobre ingeniería de software . 17 (12): 1284-1288. doi : 10.1109 / 32.106988 . ISSN 1939-3520 .
- ^ "mantenibilidad - ¿Tiene sentido calcular la complejidad ciclomática / relación de líneas de código?" . Intercambio de pila de ingeniería de software . Consultado el 1 de marzo de 2021 .
- ^ "OMG adopta la especificación de punto de función automatizada" . Omg.org. 2013-01-17 . Consultado el 19 de mayo de 2013 .
- ^ Amit, Idan; Feitelson, Dror G. (21 de julio de 2020). "La métrica de calidad del código de probabilidad de compromiso correctivo". arXiv : 2007.10912 [ cs.SE ].
- ^ a b Binstock, Andrew. "Vigilancia de la integración: utilizar métricas de forma eficaz" . Tiempos SD . BZ Media . Consultado el 19 de octubre de 2010 .
- ^ Kolawa, Adam. "Cuándo, por qué y cómo: análisis de código" . El proyecto de código . Consultado el 14 de febrero de 2021 .
- ^ Gosain, Anjana; Sharma, Ganga (2015). Mandal, JK; Satapathy, Suresh Chandra; Kumar Sanyal, Manas; Sarkar, Partha Pratim; Mukhopadhyay, Anirban (eds.). "Métricas de software dinámico para software orientado a objetos: una revisión" . Diseño de Sistemas de Información y Aplicaciones Inteligentes . Avances en Computación y Sistemas Inteligentes. Nueva Delhi: Springer India. 340 : 579–589. doi : 10.1007 / 978-81-322-2247-7_59 . ISBN 978-81-322-2247-7.
- ^ S, Parvinder Singh; Singh, Gurdev. Métricas dinámicas para polimorfismo en sistemas orientados a objetos . CiteSeerX 10.1.1.193.4307 .
- ^ Kaner, Dr. Cem, Ingeniero de software Métricas: ¿Qué miden y cómo lo sabemos? , CiteSeerX 10.1.1.1.2542
- ^ Lincke, Rüdiger; Lundberg, Jonas; Löwe, Welf (2008), "Comparación de herramientas de métricas de software" (PDF) , Simposio internacional sobre pruebas y análisis de software 2008 , págs. 131–142
- ^ DeMarco, Tom (1982). Control de Proyectos de Software: Gestión, Medición y Estimación . ISBN 0-13-171711-1.
- ^ "Grupo de trabajo de planificación e informes de métricas de la NASA (MPARWG)" . Earthdata.nasa.gov. Archivado desde el original el 22 de octubre de 2011 . Consultado el 19 de mayo de 2013 .
- ^ "Centro de Ingeniería de Sistemas y Software de la USC" . Sunset.usc.edu . Consultado el 19 de mayo de 2013 .
- ^ Savola, Reijo M. (1 de septiembre de 2013). "Calidad de métricas y medidas de seguridad" . Computadoras y seguridad . 37 : 78–90. doi : 10.1016 / j.cose.2013.05.002 . ISSN 0167-4048 .
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
- https://swehb.nasa.gov/display/SWEHBVB/Metrics+-+Software+Metrics+Report
- Definiciones de métricas de SonarQube
- Métricas de software orientado a objetos (2010)