La visualización de software [ 1 ] [ 2 ] se refiere a la visualización de información de y relacionada con sistemas de software, ya sea la arquitectura de su código fuente o las 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:
- artefactos de implementación como códigos fuente ,
- datos métricos de software a partir de mediciones o de ingeniería inversa ,
- trazas que registran el comportamiento de ejecución,
- datos de pruebas de software (por ejemplo, cobertura de pruebas)
- Datos del repositorio de software que registran los cambios.
Objetivos
Los objetivos de la visualización de software son facilitar la comprensión de los sistemas de software (es decir, su estructura) y los algoritmos (por ejemplo, animando el comportamiento de los algoritmos de ordenación), 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 ventajas 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 los cambios de código sobre trazas de ejecución del software. [ 7 ]
La visualización de software puede utilizarse como herramienta y técnica para explorar y analizar la información de los sistemas 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 monitorizar 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 . 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 pueden utilizarse para visualizar el código fuente y los defectos de calidad durante las actividades de desarrollo y mantenimiento del 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 la visualización automáticos de defectos de calidad en sistemas y servicios de software orientados a objetos. Generalmente, 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. Otra ventaja es el soporte para la navegación visual a través del sistema de software.
Se utiliza software de dibujo de gráficos más o menos especializado para la visualización de software. Una pequeña encuesta realizada en 2003 a investigadores activos en los campos de la ingeniería inversa y el mantenimiento de software encontró que se utilizaba una amplia variedad de herramientas de visualización, incluyendo 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 código fuente 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 grafos 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. S2CID 17556465 .
- ↑ Diehl 2002 ; Diehl 2007 ; Knight 2002
- ↑ ( Marcus, Feng y Maletic 2003 ; Wettel y Lanza 2007 )
- ↑ Staples & 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. S2CID 206839054 .
- ↑ ( Kuhn y Greevy 2006 , Stasko et al. 1998 )
- ↑ Bohnet, J.; Voigt, S.; Döllner, J. (2009). «Proyección de 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 computación aplicada . págs. 438–442 . doi : 10.1145/1529282.1529378 . ISBN 9781605581668. S2CID 8349297 .
- ↑ ( Keim 2002 ; Soukup y Davidson 2002 ; Burch, Diehl y Weißgerber 2005 )
- ↑ Bohnet, J.; Döllner, J. (2011). «Monitorización 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. S2CID 17258620 .
- ↑ Limberger, D.; Wasty, B.; Trümper, J.; Döllner, J. (2013). «Mapas de software interactivos para el 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. S2CID 3040005 .
- ↑ Koschke, Rainer (2003). "Visualización de software en el mantenimiento, la ingeniería inversa y la reingeniería de software: una revisión de la investigación" . Journal of Software Maintenance and Evolution: Research and Practice . 15 (2): 87– 109. doi : 10.1002/smr.270 .
- ↑ Diehl 2007 , pág. 63
Lecturas adicionales
- Roels, R.; Meştereagă, P.; Signer, B. (2016). «Un complemento interactivo para la visualización del código fuente en la plataforma de presentación MindXpres». Educación asistida por ordenador . Comunicaciones en informática y ciencias de la información. Vol. 583. Springer. pp. 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. S2CID 1577375 .
- Diehl, S. (2002). Visualización de software. Seminario internacional, Castillo de Dagstuhl, Alemania, 20-25 de mayo de 2001. Artículos revisados . Lecture Notes in Computer Science. Vol. 2269. Springer. doi : 10.1007/3-540-45875-1 . ISBN 978-3-540-43323-1. S2CID 21007575 .
- 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 la Evolución del Software (IWPSE 2005) . IEEE Computer Society Press. pp. 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 visuales". IEEE Transactions on Visualization and Computer Graphics . 8 (1): 1– 8. Bibcode : 2002ITVCG...881847K . 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. pp. 131–148 . ISBN 978-981-4491-78-5.
- Kuhn, A.; Greevy, O. (2006). «Explotando 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–395 . doi : 10.1109/ASE.2004.1342773 . ISBN 0-7695-2131-2.
- Lanza, M. (2004). «CodeCrawler: vistas polimétricas en acción». Actas de la 19.ª Conferencia Internacional sobre Ingeniería de Software Automatizada, Linz, Austria, 20-24 de septiembre de 2004. pp. 394-395 . 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 en repositorios CVS». Taller Internacional sobre Minería de Repositorios de Software (MSR 2004) W17S Workshop 26.ª Conferencia Internacional sobre Ingeniería de Software, Edimburgo, Escocia, Reino Unido, 25 de mayo de 2004. IET. pp. 101–105 . doi : 10.1049/ic:20040485 (inactivo el 12 de julio de 2025). ISBN 0-86341-432-X.
{{cite book}}: CS1 maint: DOI inactivo desde julio de 2025 ( enlace ) - Marcus, A.; Feng, L.; Maletic, JI (2003). «Representaciones 3D para la 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. S2CID 10263993 .
- 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: La 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. S2CID 16571788 .
- Wettel, R.; Lanza, M. (2007). «Visualizando sistemas de software como ciudades». Actas de VISSOFT 2007 (4.º Taller Internacional IEEE sobre Visualización de Software para la Comprensión y el 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 la ACM sobre visualización de software.
- VISSOFT 2.ª Conferencia de Trabajo IEEE sobre Visualización de Software
- Visor de dependencias de proyectos de Eclipse EPDV
- Infografías
- Mantenimiento de software
- Métricas de software
- Desarrollo de software
- Calidad del software
- Código fuente
- Software
- Software de visualización