Articulo de referencia

Análisis de software

El análisis de software se refiere al análisis específico de los sistemas de software , considerando el código fuente , las características estáticas y dinámicas (por ejemplo, l...

El análisis de software se refiere al análisis específico de los sistemas de software , considerando el código fuente , las características estáticas y dinámicas (por ejemplo, las métricas de software ) y los procesos relacionados con su desarrollo y evolución . Su objetivo es describir, monitorear, predecir y mejorar la eficiencia y la efectividad de la ingeniería de software a lo largo de su ciclo de vida , especialmente durante el desarrollo y el mantenimiento . La recopilación de datos se realiza generalmente mediante la minería de repositorios de software , pero también puede llevarse a cabo recopilando datos de las acciones de los usuarios o de producción.

Definiciones

  • "El análisis de software tiene como objetivo obtener información valiosa y práctica de los artefactos de software que ayuden a los profesionales a realizar tareas relacionadas con el desarrollo de software, los sistemas y los usuarios." [ 1 ] --- se centra en el análisis aplicado a los artefactos que componen un sistema de software.
  • "El análisis de software es el análisis de datos de software para gerentes e ingenieros de software con el objetivo de capacitar a los individuos y equipos de desarrollo de software para obtener y compartir información a partir de sus datos para tomar mejores decisiones." [ 2 ] --- refuerza los objetivos centrales de los métodos y técnicas de análisis de software, centrándose tanto en los artefactos de software como en las actividades de los desarrolladores y equipos involucrados.
  • "El análisis de software (AS) representa una rama del análisis de macrodatos . El AS se ocupa del análisis de todos los artefactos de software, no solo del código fuente. [...] Estos niveles varían desde el nivel superior del consejo de administración y el establecimiento de la visión empresarial y la gestión de cartera, pasando por la planificación de la gestión de proyectos y la implementación por parte de los desarrolladores de software." [ 3 ] --- refleja el amplio alcance que incluye a diversas partes interesadas.

Objetivos

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

  • La información valiosa obtenida mediante el análisis de software proporciona conocimientos útiles y relevantes para la realización de las tareas objetivo. Por lo general, no se puede obtener fácilmente examinando directamente grandes volúmenes de datos sin la ayuda de métodos y técnicas analíticas.
  • La información práctica obtenida mediante el análisis de software orienta o prescribe soluciones que pueden adoptar las partes interesadas en los procesos de ingeniería de software (por ejemplo, profesionales del software, líderes de desarrollo o directivos de alto nivel).

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 información proveniente de las múltiples fuentes de datos almacenadas en entornos y ecosistemas de desarrollo de software. Los sistemas de software son idóneos para la aplicación de análisis porque, por un lado, disponen de datos mayoritariamente formalizados y precisos y, por otro, son extremadamente difíciles de gestionar; en resumen: «los proyectos de software son altamente medibles, pero a menudo impredecibles». [ 2 ]

Las fuentes de datos principales incluyen el 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 , la estadística , el reconocimiento de patrones , la visualización de información , así como el procesamiento y la computación de datos a gran escala. Por ejemplo, las herramientas de análisis de software permiten a los usuarios mapear los resultados del análisis derivado mediante mapas de software , que permiten explorar de forma interactiva los artefactos del sistema y las métricas de software correlacionadas, como las jerarquías de clases y el acoplamiento de paquetes en una aplicación Java de gran tamaño . [ 5 ] 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 permiten evaluar las cualidades del software (por ejemplo, la fiabilidad) y derivar acciones para su mejora. [ 6 ]

Historia

En 2009, el término "análisis de software" fue utilizado en un artículo de Dongmei Zhang , Shi Han, Yingnong Dang, Jian-Guang Lou y Haidong Zhang, en parte por el Grupo de Análisis de Software (SA) de Microsoft Research Asia (MSRA). [ 7 ]

El término se ha vuelto muy conocido en la comunidad de investigación de ingeniería de software después de una serie de tutoriales y charlas sobre análisis de software impartidas por el Software Analytics Group, en colaboración con Tao Xie de la Universidad Estatal de Carolina del Norte , en conferencias de ingeniería de software, incluyendo un tutorial en la Conferencia Internacional IEEE/ACM sobre Ingeniería de Software Automatizada (ASE 2011), [ 8 ] una charla en el Taller Internacional sobre Tecnologías de Aprendizaje Automático en Ingeniería de Software (MALETS 2011), [ 9 ] un tutorial y una charla magistral impartida por Zhang en la Conferencia IEEE-CS sobre Educación y Capacitación en Ingeniería de Software, [ 10 ] [ 11 ] un tutorial en la Conferencia Internacional sobre Ingeniería de Software - Pista de Ingeniería de Software en la Práctica, [ 12 ] y una charla magistral impartida por Zhang en la Conferencia de Trabajo sobre Minería de Repositorios de Software. [ 13 ]

En noviembre de 2010, Thomas Zimmermann y sus colegas del Empirical Software Engineering Group (ESE) de Microsoft Research Redmond propusieron el análisis del desarrollo de software (análisis de software con enfoque en el desarrollo de software) en su artículo de FoSER 2010. [ 14 ] Zimmermann y Tim Menzies de la Universidad de Virginia Occidental organizaron un panel de debate sobre análisis del desarrollo de software en la Conferencia Internacional sobre Ingeniería de Software, sección de Ingeniería de Software en la Práctica. [ 15 ]

Véase también

Referencias

  1. D. Zhang, S. han, Y. Dan, J.-G. Lou, H Zhang: "Análisis de software en la práctica". IEEE Software, septiembre/octubre de 2013, págs. 30-35.
  2. 1 2 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. "Análisis de software para la práctica del software: una revisión sistemática de la literatura". 1. Taller internacional sobre ingeniería de macrodatos, 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. Limberger, Daniel; Scheibel, Willy; Döllner, Jürgen; Trapp, Matthias (septiembre de 2019). «Metáforas y técnicas visuales avanzadas para mapas de software». Actas del 12.º Simposio Internacional sobre Comunicación e Interacción de Información Visual . págs. 1–8 . doi : 10.1145/3356422.3356444 . ISBN  978-1-4503-7626-6.
  6. 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 . 
  7. Brannon, Brian G. (23 de junio de 2013). "Análisis de software en la práctica" (PDF) . microsoft.com . Consultado el 31 de diciembre de 2024 .
  8. Dongmei Zhang y Tao Xie. "xSA: eXtreme Software Analytics - Marriage of eXtreme Computing and Software Analytics." En Actas de la 26.ª Conferencia Internacional IEEE/ACM sobre Ingeniería de Software Automatizada (ASE 2011), Tutorial, Lawrence, Kansas, noviembre de 2011.
  9. Dongmei Zhang, Yingnong Dang, Jian-Guang Lou, Shi Han, Haidong Zhang y Tao Xie. «Análisis de software como caso práctico de aprendizaje: enfoques y experiencias». En Actas del Taller Internacional sobre Tecnologías de Aprendizaje Automático en Ingeniería de Software (MALETS 2011), Lawrence, Kansas, noviembre de 2011. Diapositivas en PDF.
  10. Dongmei Zhang. "Análisis de software en la práctica y sus implicaciones para la educación y la formación". Conferencia magistral. 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.
  11. Dongmei Zhang, Yingnong Dang, Shi Han y Tao Xie. "Enseñanza y capacitación en 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.
  12. Dongmei Zhang y Tao Xie. «Análisis de software en la práctica: minitutorial». En Actas de la 34.ª Conferencia Internacional sobre Ingeniería de Software (ICSE 2012), Ingeniería de software en la práctica, minitutorial, Zúrich, Suiza, junio de 2012, pág. 997. Diapositivas
  13. Dongmei Zhang. "Conferencia magistral 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.
  14. 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.
  15. Tim Menzies y Thomas Zimmermann. "Panel de análisis en el desarrollo de software: análisis de datos". 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.
  • InfoWorld: Convierta las métricas de las aplicaciones en valor empresarial.
  • Grupo de Análisis de Software de Microsoft Research Asia (SA)
  • Grupo de Ingeniería de Software Empírico (ESE) de Microsoft Research Redmond
  • Análisis de software en la práctica y sus implicaciones para la educación y la formación, ponencia principal de Dongmei Zhang en la 24.ª Conferencia IEEE-CS sobre Educación y Formación en Ingeniería de Software (CSEE&T 2012).
  • Análisis de software en la práctica: enfoques y experiencias. Diapositivas de la presentación principal de Dongmei Zhang en la 9ª Conferencia de Trabajo sobre Minería de Repositorios de Software (MSR 2012).
  • Análisis de software en la práctica: diapositivas de un minitutorial a cargo de Dongmei Zhang y Tao Xie en la 34.ª Conferencia Internacional sobre Ingeniería de Software (ICSE 2012).
  • Análisis de software Pinterest
  • Microsoft Azure - Información sobre aplicaciones en Azure
Obtenido de " https://en.wikipedia.org/w/index.php?title=Software_analytics&oldid=1352392998 "