Визуализация программного обеспечения [1] [2] или визуализация программного обеспечения относится к визуализации информации, относящейся к программным системам (будь то архитектура исходного кода или метрики их поведения во время выполнения ), а также к процессу их разработки посредством статических, интерактивных или анимированных 2-D или 3-D [3] визуальных представлений их структуры, [4] выполнения, [5] поведения [6] и эволюции.
Информация о программном обеспечении системы
Визуализация программного обеспечения использует разнообразную информацию, доступную о системах программного обеспечения. Ключевые категории информации включают:
Цели
Цели визуализации программного обеспечения — поддержка понимания систем программного обеспечения (т. е. его структуры) и алгоритмов (например, путем анимации поведения алгоритмов сортировки), а также анализ и исследование систем программного обеспечения и их аномалий (например, путем демонстрации классов с высокой степенью связи ), а также их развития и эволюции. Одной из сильных сторон визуализации программного обеспечения является объединение и связывание информации о системах программного обеспечения, которые не связаны по своей сути, например, путем проецирования изменений кода на трассировки выполнения программного обеспечения. [7]
Визуализация программного обеспечения может использоваться как инструмент и метод для исследования и анализа информации о программной системе, например, для обнаружения аномалий, аналогичных процессу визуального интеллектуального анализа данных . [8] Например, визуализация программного обеспечения используется для мониторинга таких видов деятельности, как качество кода или деятельность команды. [9] Визуализация по своей сути не является методом обеспечения качества программного обеспечения . [ необходима ссылка ] Визуализация программного обеспечения участвует в программном интеллекте , позволяя обнаруживать и использовать преимущества освоения внутренних компонентов программных систем.
Типы
Инструменты для визуализации программного обеспечения могут использоваться для визуализации исходного кода и дефектов качества во время разработки и обслуживания программного обеспечения. Существуют различные подходы к отображению исходного кода в визуальное представление, например, с помощью карт программного обеспечения [10]. Их цель включает, например, автоматическое обнаружение и визуализацию дефектов качества в объектно-ориентированных системах программного обеспечения и службах. Обычно они визуализируют прямую связь класса и его методов с другими классами в системе программного обеспечения и отмечают потенциальные дефекты качества. Еще одним преимуществом является поддержка визуальной навигации по системе программного обеспечения.
Для визуализации программного обеспечения используется более или менее специализированное программное обеспечение для рисования графов . Небольшой опрос исследователей, работающих в областях обратного проектирования и сопровождения программного обеспечения, проведенный в 2003 году , показал, что использовались самые разные инструменты визуализации, включая пакеты для рисования графов общего назначения, такие как GraphViz и GraphEd, инструменты UML, такие как Rational Rose и Borland Together , и более специализированные инструменты, такие как Visualization of Compiler Graphs (VCG) и Rigi . [11] : 99–100 Диапазон инструментов UML, которые могут выступать в качестве визуализатора с помощью обратного проектирования, отнюдь не узок; в книге 2007 года отмечалось, что помимо двух вышеупомянутых инструментов, ESS-Model, BlueJ и Fujaba также обладают этой возможностью, и что Fujaba также может определять шаблоны проектирования . [12]
Смотрите также
Ссылки
- ^ Bohnet, Johannes; Döllner, Jürgen (2006). "Analyzing Feature Implementation by Visual Exploration of Architecturally-Embedded Call-Graphs". 4th International Workshop on Dynamic Analysis . ACM Press. стр. 41–48. doi :10.1145/1138912.1138922. ISBN 1595934006. S2CID 17556465.
- ^ Диль 2002; Диль 2007; Найт 2002
- ^ (Маркус, Фэн и Малетик 2003; Веттель и Ланца 2007)
- ^ Стэйплс и Биман 1999
- ^ Trümper, J.; Döllner, J.; Telea, A. (2013). «Многомасштабное визуальное сравнение трасс выполнения». Труды Международной конференции по пониманию программ (PDF) . IEEE Computer Society. стр. 53–62. doi :10.1109/ICPC.2013.6613833. ISBN 978-1-4673-3092-3. S2CID 206839054.
- ^ (Кун и Гриви 2006, Стаско и др. 1998)
- ^ Bohnet, J.; Voigt, S.; Döllner, J. (2009). «Проецирование изменений кода на трассировки выполнения для поддержки локализации недавно появившихся ошибок». Труды симпозиума ACM 2009 года по прикладным вычислениям . С. 438–442. doi :10.1145/1529282.1529378. ISBN 9781605581668. S2CID 8349297.
- ^ (Кейм 2002; Соукуп и Дэвидсон 2002; Берч, Диль и Вайсгербер 2005)
- ^ Bohnet, J.; Döllner, J. (2011). "Monitoring Code Quality and Development Activity by Software Maps". Труды семинара IEEE ACM ICSE по управлению техническим долгом . Ассоциация вычислительной техники. стр. 9–16. doi :10.1145/1985362.1985365. ISBN 9781450305860. S2CID 17258620.
- ^ Limberger, D.; Wasty, B.; Trümper, J.; Döllner, J. (2013). «Интерактивные программные карты для анализа исходного кода на основе веб-технологий». Труды 18-й Международной конференции по 3D-веб-технологиям . С. 91–98. doi :10.1145/2466533.2466550. ISBN 9781450321334. S2CID 3040005.
- ^ Кошке, Райнер (2003). «Визуализация программного обеспечения в обслуживании программного обеспечения, обратном проектировании и реинжиниринге: исследовательский обзор». Журнал обслуживания программного обеспечения и эволюции: исследования и практика . 15 (2): 87–109. doi : 10.1002/smr.270 .
- ^ Диль 2007, стр. 63
Дальнейшее чтение
- Roels, R.; Meştereagă, P.; Signer, B. (2016). "Интерактивный плагин визуализации исходного кода для платформы презентаций MindXpres". Computer Supported Education . Communications in Computer and Information Science. 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). "Визуальный анализ данных в архивах программного обеспечения". Труды симпозиума ACM 2005 года по визуализации программного обеспечения (SoftVis '05) . стр. 37–46. doi :10.1145/1056018.1056024. ISBN 1595930736. S2CID 1577375.
- Diehl, S. (2002). Software Visualization. Международный семинар в замке Дагштуль, Германия, 20–25 мая 2001 г. Пересмотренные статьи . Lecture Notes in Computer Science. Том 2269. Springer. doi :10.1007/3-540-45875-1. ISBN 978-3-540-43323-1. S2CID 21007575.
- Диль, С. (2007). Визуализация программного обеспечения — Визуализация структуры, поведения и эволюции программного обеспечения . Springer. ISBN 978-3-540-46504-1.
- Идс, П.; Чжан, К. (1996). Визуализация программного обеспечения . Серия по программной инженерии и инженерии знаний. Том 7. World Scientific. ISBN 981-02-2826-0.
- Gîrba, T.; Kuhn, A.; Seeberger, M.; Ducasse, S. (2005). "Как разработчики управляют эволюцией программного обеспечения" (PDF) . Труды Международного семинара по принципам эволюции программного обеспечения (IWPSE 2005) . IEEE Computer Society Press. стр. 113–122. doi :10.1109/IWPSE.2005.21. ISBN 0-7695-2349-8. S2CID 9260583.
- Кейм, ДА (январь–март 2002 г.). «Визуализация информации и визуальный анализ данных». Труды IEEE по визуализации и компьютерной графике . 8 (1): 1–8. doi :10.1109/2945.981847.
- Knight, C. (2002). «Системная и программная визуализация». В Chang Shi-kuo (ред.). Новые технологии . Справочник по программной инженерии и инженерии знаний. Том 2. World Scientific. стр. 131–148. ISBN 978-981-4491-78-5.
- Kuhn, A.; Greevy, O. (2006). "Использование аналогии между трассировками и обработкой сигналов" (PDF) . Труды Международной конференции IEEE по обслуживанию программного обеспечения (ICSM 2006) . IEEE Computer Society Press. стр. 394–5. doi :10.1109/ASE.2004.1342773. ISBN 0-7695-2131-2.
- Ланца, М. (2004). «CodeCrawler — полиметрические представления в действии». Труды. 19-я Международная конференция по автоматизированной разработке программного обеспечения, Линц, Австрия, 20–24 сентября 2004 г. С. 394–5. doi :10.1109/ASE.2004.1342773. ISBN 0-7695-2131-2.
- Lopez, FL; Robles, G.; Gonzalez, BJM (2004). "Применение анализа социальных сетей к информации в репозиториях CVS". Международный семинар по репозиториям программного обеспечения для майнинга (MSR 2004)" Семинар W17S 26-я Международная конференция по программной инженерии, Эдинбург, Шотландия, Великобритания, 25 мая 2004 г. IET. стр. 101–5. doi :10.1049/ic:20040485. ISBN 0-86341-432-X.
- Маркус, А.; Фэн, Л.; Малетич, ДЖИ (2003). "3D-представления для визуализации программного обеспечения". Труды симпозиума ACM 2003 года по визуализации программного обеспечения . стр. 27–и след. doi :10.1145/774833.774837. ISBN 1581136420. S2CID 10263993.
- Соукуп, Том; Дэвидсон, Ян (2002). Визуальный анализ данных: методы и инструменты для визуализации и анализа данных. Wiley. ISBN 978-0-471-27138-3.
- Стейплс, МЛ; Биман, Дж. М. (1999). «3-D визуализация структуры программного обеспечения». Достижения в области компьютеров . 49 : 96–143. CiteSeerX 10.1.1.13.3090 . дои : 10.1016/S0065-2458(08)60284-3. ISBN 9780120121496.
- Стаско, Джон; Браун, Марк Х.; Доминге, Джон Б.; Прайс, Блейн А. (1998). Визуализация программного обеспечения: программирование как мультимедийный опыт. MIT Press. ISBN 978-0-262-19395-5.
- Van Rysselberghe, F.; Demeyer, S. (2004). "Изучение информации об эволюции программного обеспечения путем визуализации истории изменений". Труды. 20-я Международная конференция по обслуживанию программного обеспечения . IEEE Computer Society Press. стр. 328–337. doi :10.1109/ICSM.2004.1357818. ISBN 0-7695-2213-0. S2CID 16571788.
- Веттель, Р.; Ланца, М. (2007). «Визуализация систем программного обеспечения как городов». Труды VISSOFT 2007 (4-й Международный семинар IEEE по визуализации программного обеспечения для понимания и анализа) . IEEE Computer Society Press. стр. 92–99. doi :10.1109/VISSOF.2007.4290706. ISBN 978-1-4244-0599-2. S2CID 9974947.
- Чжан, К. (2003). Визуализация программного обеспечения — от теории к практике . Kluwer. ISBN 1-4020-7448-4.
Внешние ссылки
- SoftVis Симпозиум ACM по визуализации программного обеспечения
- VISSOFT 2-я рабочая конференция IEEE по визуализации программного обеспечения
- Просмотрщик зависимостей проекта EPDV Eclipse