stringtranslate.com

Análisis de software

El análisis de software es el análisis específico del dominio de los sistemas de software que tiene en cuenta el código fuente , las características estáticas y dinámicas (por ejemplo, las métricas del software ), así como los procesos relacionados con su desarrollo y evolución . Su objetivo es describir, monitorear, predecir y mejorar la eficiencia y la eficacia de la ingeniería de software a lo largo de su ciclo de vida , en particular durante el desarrollo y el mantenimiento del software . La recopilación de datos se realiza normalmente mediante la minería de repositorios de software , pero también se puede lograr recopilando acciones de los usuarios o datos de producción.

Definiciones

Objetivos

El análisis de software tiene como objetivo respaldar la toma de decisiones y generar conocimientos, es decir, hallazgos, conclusiones y evaluaciones sobre los sistemas de software y su implementación, composición, comportamiento, calidad y evolución, así como sobre las actividades de las distintas partes interesadas en estos procesos.

Acercarse

Los métodos, técnicas y herramientas de análisis de software suelen basarse en la recopilación, medición, análisis y visualización de la información que se encuentra en las múltiples fuentes de datos almacenadas en los entornos y ecosistemas de desarrollo de software. Los sistemas de software son muy adecuados para aplicar el análisis porque, por un lado, se dispone de datos mayoritariamente formalizados y precisos y, por otro, los sistemas de software son extremadamente difíciles de gestionar; en pocas palabras: "los proyectos de software son altamente mensurables, pero a menudo impredecibles". [2]

Las fuentes de datos principales incluyen código fuente , "registros, elementos de trabajo, informes de errores y ejecuciones de pruebas [...] registrados en repositorios de software como CVS, Subversion, GIT y Bugzilla". [4] También se pueden tener en cuenta los datos de telemetría , así como los rastros o registros de ejecución.

El análisis automatizado, los datos masivos y el razonamiento sistemático respaldan la toma de decisiones en casi todos los niveles. En general, las tecnologías clave empleadas por el análisis de software incluyen tecnologías analíticas como el aprendizaje automático , la minería de datos , las estadísticas , el reconocimiento de patrones , la visualización de información , así como el procesamiento y procesamiento de datos a gran escala. Por ejemplo, las herramientas de análisis de software permiten a los usuarios mapear los resultados de análisis derivados por medio de mapas de software , que respaldan la exploración interactiva de artefactos del sistema y métricas de software correlacionadas. También existen herramientas de análisis de software que utilizan tecnologías analíticas sobre modelos de calidad de software en empresas de desarrollo de software ágil , que respaldan la evaluación de las cualidades del software (por ejemplo, confiabilidad) y la derivación de acciones para su mejora. [5]

Historia

En mayo de 2009, el término análisis de software se acuñó y propuso por primera vez cuando Dongmei Zhang fundó el Grupo de Análisis de Software (SA) en Microsoft Research Asia (MSRA). El término se ha vuelto muy conocido en la comunidad de investigación de ingeniería de software después de que Zhang y sus colegas, en colaboración con Tao Xie de la Universidad Estatal de Carolina del Norte, brindaran una serie de tutoriales y charlas sobre análisis de software en conferencias de ingeniería de software, incluido un tutorial en la Conferencia Internacional IEEE/ACM sobre Ingeniería de Software Automatizada (ASE 2011), [6] una charla en el Taller Internacional sobre Tecnologías de Aprendizaje Automático en Ingeniería de Software (MALETS 2011), [7] un tutorial y una charla magistral brindada por Zhang en la Conferencia IEEE-CS sobre Educación y Capacitación en Ingeniería de Software, [8] [9] un tutorial en la Conferencia Internacional sobre Ingeniería de Software - Ingeniería de Software en la Pista Práctica, [10] y una charla magistral brindada por Zhang en la Conferencia de Trabajo sobre Minería de Repositorios de Software. [11]

En noviembre de 2010, Thomas Zimmermann y sus colegas del Grupo de Ingeniería de Software Empírico (ESE) de Microsoft Research Redmond propusieron la Analítica de Desarrollo de Software (Analítica de Software con un enfoque en el Desarrollo de Software) en su artículo FoSER 2010. [12] Zimmermann y Tim Menzies de la Universidad de Virginia Occidental organizaron un panel sobre la analítica de desarrollo de software en la Conferencia Internacional sobre Ingeniería de Software, Ingeniería de Software en la Práctica. [13]

Véase también

Referencias

  1. ^ D. Zhang, S. han, Y. Dan, J.-G. Lou, H. Zhang: "Software Analytics in Practice". IEEE Software, septiembre/octubre de 2013, págs. 30-35.
  2. ^ de Raymond PL Buse y Thomas Zimmermann. "Necesidades de información para el análisis del desarrollo de software". En Actas de la 34.ª Conferencia internacional sobre ingeniería de software (ICSE 2012), Ingeniería de software en la práctica, Zúrich, Suiza, junio de 2012, págs. 987-996.
  3. ^ TM Abdellatif, LF Capretz, D. Ho. "De la analítica de software a la práctica del software: una revisión sistemática de la literatura". 1. Taller internacional sobre ingeniería de big data, 2015, págs. 30-36.
  4. ^ Harald Gall, Tim Menzies, Laurie Williams y Thomas Zimmerman. "Análisis del desarrollo de software". Dagstuhl Reports, vol. 4, número 6, págs. 64-83.
  5. ^ Martínez-Fernández, Silverio; Vollmer, Anna Maria; Jedlitschka, Andreas; Franch, Xavier; Lopez, Lidia; Ram, Prabhat; Rodriguez, Pilar; Aaramaa, Sanja; Bagnato, Alessandra (2019). "Evaluación y mejora continua de la calidad del software con herramientas de análisis de software: un estudio de caso" (PDF) . IEEE Access . 7 : 68219–68239. Bibcode :2019IEEEA...768219M. doi : 10.1109/ACCESS.2019.2917403 . ISSN  2169-3536.
  6. ^ Dongmei Zhang y Tao Xie. "xSA: eXtreme Software Analytics - Marriage of eXtreme Computing and Software Analytics" (xSA: Analítica de software extrema: la unión de la computación extrema y la analítica de software). En Actas de la 26.ª Conferencia internacional IEEE/ACM sobre ingeniería de software automatizada (ASE 2011), Tutorial, Lawrence, Kansas, noviembre de 2011.
  7. ^ Dongmei Zhang, Yingnong Dang, Jian-Guang Lou, Shi Han, Haidong Zhang y Tao Xie. "El análisis de software como caso de aprendizaje en la práctica: enfoques y experiencias". En las Actas del Taller internacional sobre tecnologías de aprendizaje automático en ingeniería de software (MALETS 2011), Lawrence, Kansas, noviembre de 2011. PDFSlides
  8. ^ Dongmei Zhang. "Software Analytics in Practice and Its Implications for Education and Training" (Análisis de software en la práctica y sus implicaciones para la educación y la formación). Discurso inaugural. En Actas de la 24.ª Conferencia IEEE-CS sobre educación y formación en ingeniería de software (CSEE&T 2012), Tutorial, Nanjing, China, abril de 2012.
  9. ^ Dongmei Zhang, Yingnong Dang, Shi Han y Tao Xie. "Enseñanza y capacitación para el análisis de software". En Actas de la 24.ª Conferencia IEEE-CS sobre educación y capacitación en ingeniería de software (CSEE&T 2012), Tutorial, Nanjing, China, abril de 2012.
  10. ^ Dongmei Zhang y Tao Xie. "Software Analytics in Practice: Mini Tutorial". En Actas de la 34.ª Conferencia Internacional sobre Ingeniería de Software (ICSE 2012), Ingeniería de software en la práctica, Mini Tutorial, Zúrich, Suiza, junio de 2012, págs. 997. Diapositivas
  11. ^ Dongmei Zhang. "Discurso inaugural de MSR 2012: Análisis de software en la práctica: enfoques y experiencias". En Actas de la 9.ª Conferencia de trabajo sobre minería de repositorios de software (MSR 2012), Zúrich, Suiza, junio de 2012, pág. 1.
  12. ^ Raymond PL Buse y Thomas Zimmermann. "Análisis para el desarrollo de software". En Actas del taller sobre el futuro de la investigación en ingeniería de software (FoSER 2010), Santa Fe, NM, EE. UU., noviembre de 2010, págs. 77-80.
  13. ^ Tim Menzies y Thomas Zimmermann. "Goldfish Bowl Panel: Software Development Analytics". En Actas de la 34.ª Conferencia Internacional sobre Ingeniería de Software (ICSE 2012), Ingeniería de software en la práctica, Zúrich, Suiza, junio de 2012, págs. 1032-1033.

Enlaces externos