La visualización de software [1] [2] o visualización de software se refiere a la visualización de información de y relacionada con los sistemas de software, ya sea la arquitectura de su código fuente o métricas de su comportamiento en tiempo de ejecución , y su proceso de desarrollo mediante representaciones visuales estáticas, interactivas o animadas en 2D o 3D [3] de su estructura, [4] ejecución, [5] comportamiento, [6] y evolución.
Información del sistema de software
La visualización de software utiliza una variedad de información disponible sobre los sistemas de software. Las categorías de información clave incluyen:
Objetivos
Los objetivos de la visualización de software son apoyar la comprensión de los sistemas de software (es decir, su estructura) y algoritmos (por ejemplo, animando el comportamiento de los algoritmos de ordenamiento), así como el análisis y la exploración de los sistemas de software y sus anomalías (por ejemplo, mostrando clases con alto acoplamiento ) y su desarrollo y evolución. Una de las fortalezas de la visualización de software es combinar y relacionar información de sistemas de software que no están inherentemente vinculados, por ejemplo, proyectando cambios de código sobre rastros de ejecución de software. [7]
La visualización de software se puede utilizar como herramienta y técnica para explorar y analizar información del sistema de software, por ejemplo, para descubrir anomalías similares al proceso de minería de datos visual . [8] Por ejemplo, la visualización de software se utiliza para monitorear actividades como la calidad del código o la actividad del equipo. [9] La visualización no es inherentemente un método para el aseguramiento de la calidad del software . [ cita requerida ] La visualización de software participa en la inteligencia de software al permitir descubrir y aprovechar el dominio de los componentes internos de los sistemas de software.
Tipos
Las herramientas de visualización de software se pueden utilizar para visualizar el código fuente y los defectos de calidad durante las actividades de desarrollo y mantenimiento de software. Existen diferentes enfoques para mapear el código fuente a una representación visual, como los mapas de software [10]. Su objetivo incluye, por ejemplo, el descubrimiento y visualización automáticos de defectos de calidad en sistemas y servicios de software orientados a objetos. Comúnmente, visualizan la relación directa de una clase y sus métodos con otras clases en el sistema de software y marcan los posibles defectos de calidad. Un beneficio adicional es el soporte para la navegación visual a través del sistema de software.
Para la visualización de software se utiliza un software de dibujo de gráficos más o menos especializado . Una encuesta a pequeña escala de 2003 de investigadores activos en los campos de ingeniería inversa y mantenimiento de software encontró que se utilizaba una amplia variedad de herramientas de visualización, incluidos paquetes de dibujo de gráficos de propósito general como GraphViz y GraphEd, herramientas UML como Rational Rose y Borland Together , y herramientas más especializadas como Visualization of Compiler Graphs (VCG) y Rigi . [11] : 99–100 La gama de herramientas UML que pueden actuar como visualizador mediante ingeniería inversa de fuentes no es en absoluto corta; un libro de 2007 señaló que además de las dos herramientas mencionadas anteriormente, ESS-Model, BlueJ y Fujaba también tienen esta capacidad, y que Fujaba también puede identificar patrones de diseño . [12]
Véase también
Referencias
- ^ Bohnet, Johannes; Döllner, Jürgen (2006). "Análisis de la implementación de características mediante la exploración visual de gráficos de llamadas integrados arquitectónicamente". 4.º Taller internacional sobre análisis dinámico . ACM Press. págs. 41–48. doi :10.1145/1138912.1138922. ISBN. 1595934006.S2CID17556465 .
- ^ Diehl 2002; Diehl 2007; Caballero 2002
- ^ (Marcus, Feng y Maletic 2003; Wettel y Lanza 2007)
- ^ Staples y Bieman 1999
- ^ Trümper, J.; Döllner, J.; Telea, A. (2013). "Comparación visual multiescala de trazas de ejecución". Actas de la Conferencia internacional sobre comprensión de programas (PDF) . IEEE Computer Society. págs. 53–62. doi :10.1109/ICPC.2013.6613833. ISBN 978-1-4673-3092-3.S2CID206839054 .
- ^ (Kuhn y Greevy 2006, Stasko y otros 1998)
- ^ Bohnet, J.; Voigt, S.; Döllner, J. (2009). "Proyectar cambios de código en trazas de ejecución para apoyar la localización de errores introducidos recientemente". Actas del simposio ACM de 2009 sobre informática aplicada . págs. 438–442. doi :10.1145/1529282.1529378. ISBN 9781605581668.S2CID8349297 .
- ^ (Keim 2002; Soukup y Davidson 2002; Burch, Diehl y Weißgerber 2005)
- ^ Bohnet, J.; Döllner, J. (2011). "Monitoreo de la calidad del código y la actividad de desarrollo mediante mapas de software". Actas del taller IEEE ACM ICSE sobre gestión de la deuda técnica . Association for Computing Machinery. págs. 9–16. doi :10.1145/1985362.1985365. ISBN . 9781450305860. Número de identificación del sujeto 17258620.
- ^ Limberger, D.; Wasty, B.; Trümper, J.; Döllner, J. (2013). "Mapas de software interactivos para análisis de código fuente basado en la web". Actas de la 18.ª Conferencia internacional sobre tecnología web 3D . págs. 91–98. doi :10.1145/2466533.2466550. ISBN . 9781450321334.S2CID3040005 .
- ^ Koschke, Rainer (2003). "Visualización de software en mantenimiento de software, ingeniería inversa y reingeniería: un estudio de investigación". Revista de mantenimiento y evolución de software: investigación y práctica . 15 (2): 87–109. doi : 10.1002/smr.270 .
- ^ Diehl 2007, pág. 63
Lectura adicional
- Roels, R.; Meştereagă, P.; Signer, B. (2016). "Un complemento de visualización de código fuente interactivo para la plataforma de presentación MindXpres". Educación asistida por computadora . Comunicaciones en informática y ciencias de la información. Vol. 583. Springer. págs. 169–188. doi :10.1007/978-3-319-29585-5_10. ISBN 978-3-319-29584-8.
- Burch, M.; Diehl, S.; Weißgerber, P. (2005). "Minería visual de datos en archivos de software". Actas del simposio ACM de 2005 sobre visualización de software (SoftVis '05) . págs. 37–46. doi :10.1145/1056018.1056024. ISBN 1595930736. Número de identificación del sujeto 1577375.
- Diehl, S. (2002). Visualización de software. Seminario internacional en el castillo de Dagstuhl, Alemania, 20-25 de mayo de 2001. Documentos revisados . Apuntes de clase en informática. Vol. 2269. Springer. doi :10.1007/3-540-45875-1. ISBN 978-3-540-43323-1.S2CID21007575 .
- Diehl, S. (2007). Visualización de software: visualización de la estructura, el comportamiento y la evolución del software . Springer. ISBN 978-3-540-46504-1.
- Eades, P.; Zhang, K. (1996). Visualización de software . Serie sobre ingeniería de software e ingeniería del conocimiento. Vol. 7. World Scientific. ISBN 981-02-2826-0.
- Gîrba, T.; Kuhn, A.; Seeberger, M.; Ducasse, S. (2005). "Cómo los desarrolladores impulsan la evolución del software" (PDF) . Actas del Taller internacional sobre principios de evolución del software (IWPSE 2005) . IEEE Computer Society Press. págs. 113–122. doi :10.1109/IWPSE.2005.21. ISBN. 0-7695-2349-8.S2CID 9260583 .
- Keim, DA (enero-marzo de 2002). "Visualización de información y minería de datos visual". IEEE Transactions on Visualization and Computer Graphics . 8 (1): 1–8. doi :10.1109/2945.981847.
- Knight, C. (2002). "Visualización de sistemas y software". En Chang Shi-kuo (ed.). Tecnologías emergentes . Manual de ingeniería de software e ingeniería del conocimiento. Vol. 2. World Scientific. págs. 131–148. ISBN 978-981-4491-78-5.
- Kuhn, A.; Greevy, O. (2006). "Explotación de la analogía entre trazas y procesamiento de señales" (PDF) . Actas de la Conferencia Internacional IEEE sobre Mantenimiento de Software (ICSM 2006) . IEEE Computer Society Press. págs. 394–5. doi :10.1109/ASE.2004.1342773. ISBN . 0-7695-2131-2.
- Lanza, M. (2004). "CodeCrawler: vistas polimétricas en acción". Actas. 19.ª Conferencia internacional sobre ingeniería de software automatizada, Linz, Austria, 20-24 de septiembre de 2004. pp. 394-5. doi :10.1109/ASE.2004.1342773. ISBN. 0-7695-2131-2.
- López, FL; Robles, G.; González, BJM (2004). "Aplicación del análisis de redes sociales a la información de repositorios CVS". Taller internacional sobre minería de repositorios de software (MSR 2004)" Taller W17S 26.ª Conferencia internacional sobre ingeniería de software, Edimburgo, Escocia, Reino Unido, 25 de mayo de 2004. IET. pp. 101–5. doi :10.1049/ic:20040485. ISBN 0-86341-432-X.
- Marcus, A.; Feng, L.; Maletic, JI (2003). "Representaciones 3D para visualización de software". Actas del simposio ACM de 2003 sobre visualización de software . págs. 27 y siguientes. doi :10.1145/774833.774837. ISBN 1581136420.S2CID10263993 .
- Soukup, Tom; Davidson, Ian (2002). Minería visual de datos: técnicas y herramientas para la visualización y minería de datos. Wiley. ISBN 978-0-471-27138-3.
- Grapas, ML; Bieman, JM (1999). "Visualización 3-D de la estructura del software". Avances en Computadoras . 49 : 96-143. CiteSeerX 10.1.1.13.3090 . doi :10.1016/S0065-2458(08)60284-3. ISBN 9780120121496.
- Stasko, John; Brown, Marc H.; Domingue, John B.; Price, Blaine A. (1998). Visualización de software: programación como experiencia multimedia. MIT Press. ISBN 978-0-262-19395-5.
- Van Rysselberghe, F.; Demeyer, S. (2004). "Estudio de la información sobre la evolución del software mediante la visualización del historial de cambios". Actas de la 20.ª Conferencia internacional sobre mantenimiento de software . IEEE Computer Society Press. págs. 328–337. doi :10.1109/ICSM.2004.1357818. ISBN . 0-7695-2213-0. Número de identificación del sujeto 16571788.
- Wettel, R.; Lanza, M. (2007). "Visualización de sistemas de software como ciudades". Actas de VISSOFT 2007 (4.º taller internacional IEEE sobre visualización de software para comprensión y análisis) . IEEE Computer Society Press. págs. 92–99. doi :10.1109/VISSOF.2007.4290706. ISBN. 978-1-4244-0599-2.S2CID 9974947 .
- Zhang, K. (2003). Visualización de software: de la teoría a la práctica . Kluwer. ISBN 1-4020-7448-4.
Enlaces externos
- SoftVis, el simposio de ACM sobre visualización de software
- VISSOFT 2.ª Conferencia de trabajo IEEE sobre visualización de software
- Visualizador de dependencias de proyectos EPDV Eclipse