Medida del grado en que el software posee alguna propiedad
En ingeniería y desarrollo de software , una métrica de software es un estándar de medida de un grado en el que un sistema o proceso de software posee alguna propiedad. [1] [2] Incluso si una métrica no es una medición (las métricas son funciones, mientras que las mediciones son los números obtenidos por 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 profesionales y teóricos 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 cronogramas y presupuestos, la estimación de costos, el control de calidad, las pruebas, la depuración de software , la optimización del rendimiento del software y la asignación óptima de tareas al personal.
Medidas de software habituales
Las mediciones de software más comunes incluyen:
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 dicha predicción antes del diseño detallado. Otra fuente de dificultad y debate es determinar qué métricas importan y qué significan. [8] [9]
Por lo tanto, la utilidad práctica de las mediciones de software se ha limitado a los siguientes dominios:
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 del desempeño del proyecto. [10]
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). [11] [12]
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. [13] 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 inquietudes por los efectos nocivos para 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, [14] mientras que otros argumentan que la cuantificación imperfecta es mejor que ninguna ("No puedes controlar lo que no puedes medir"). [15] La evidencia muestra que las métricas de software están siendo ampliamente utilizadas por agencias gubernamentales, el ejército de EE. UU., la NASA, [16] consultores de TI, instituciones académicas, [17] y software de estimación de desarrollo comercial y académico .
Lectura adicional
- J. Smith, Introducción a la programación lineal , Acme Press, 2010. Un texto introductorio.
- Reijo M. Savola, Calidad de las métricas y mediciones de seguridad, Computers & Security, Volumen 37, septiembre de 2013, páginas 78-90. [18]
Véase también
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 .
{{cite book}}
: CS1 maint: location missing publisher (link) - ^ 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)". Land Software Engineering Centre . 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". IEEE Transactions on Software Engineering . 17 (12): 1284–1288. doi :10.1109/32.106988. ISSN 1939-3520.
- ^ "mantenibilidad - ¿Tiene sentido calcular la relación complejidad ciclomática/líneas de código?". Software Engineering Stack Exchange . Consultado el 1 de marzo de 2021 .
- ^ "OMG adopta la especificación de puntos de función automatizada". Omg.org. 17 de enero de 2013. 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 confirmación correctiva". arXiv : 2007.10912 [cs.SE].
- ^ ab Binstock, Andrew (marzo de 2010). "Integration Watch: Using metrics effectiveness" (Vigilancia de la integración: uso eficaz de las métricas). SD Times . BZ Media . Consultado el 19 de octubre de 2010 .
- ^ Kolawa, Adam (7 de agosto de 2008). "Cuándo, por qué y cómo: análisis de código". The Code Project . Consultado el 14 de febrero de 2021 .
- ^ Mike, John. "Métricas esenciales para estrategias de respuesta a incidentes eficaces" . Consultado el 18 de julio de 2021 .
- ^ Gosain, Anjana; Sharma, Ganga (2015). "Métricas de software dinámicas para software orientado a objetos: una revisión". En Mandal, JK; Satapathy, Suresh Chandra; Kumar Sanyal, Manas; Sarkar, Partha Pratim; Mukhopadhyay, Anirban (eds.). Diseño de sistemas de información y aplicaciones inteligentes . Avances en sistemas inteligentes y computación. Vol. 340. Nueva Delhi: Springer India. págs. 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 (2004), Métricas de ingeniería de software: ¿Qué miden y cómo lo sabemos ?, CiteSeerX 10.1.1.1.2542
- ^ Lincke, Rüdiger; Lundberg, Jonás; 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.
- ^ DeMarco, Tom (1982). Control de proyectos de software: gestión, medición y estimación . Yourdon Press. ISBN 0-13-171711-1.
- ^ "Grupo de trabajo de planificación y presentación de informes sobre 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 las métricas y mediciones de seguridad". Computers & Security . 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 lo sabemos?
- Estándar de la NASA NASA-STD-8739.8 (Estándar de garantía y seguridad del software)
- Métricas del código fuente de HIS ( desactualizadas pero como referencia ; relacionadas con AUTOSAR )
- Métricas del código fuente de HIS versión 1.3.1 01.04.2008 ( obsoleta pero como referencia ; para más información, consulte AUTOSAR )
- Un marco para métricas de código fuente
- NASA.gov
- Definiciones de métricas de SonarQube
- Métricas del software orientado a objetos (2010)