Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Визуализация программного обеспечения или визуализация программного обеспечения относится к визуализации информации и связанных с программными системами - либо архитектуры его исходного кода или метрики их поведения во время выполнения - и их процесса разработки с помощью статических, интерактивных или анимированных 2D или 3D визуальных представлений их структуры, исполнения, поведения и эволюции.
Software visualization or software visualisation refers to the visualization of information of and related to software systems—either the architecture of its source code or metrics of their runtime behavior—and their development process by means of static, interactive or animated 2 D or 3 D visual representations of their structure, execution, behavior, and evolution.
Цели
Цели визуализации программного обеспечения заключаются в поддержке понимания программных систем (т.е. их структуры) и алгоритмов (например, путем анимирования поведения сортировочных алгоритмов), а также анализа и исследования программных систем и их аномалий (например, путем показа классов с высокой связью) и их развития и эволюции. Одной из сильных сторон программной визуализации является объединение и связь информации программных систем, которые не связаны по своей сути, например, путем проектирования изменений кода на следы выполнения программного обеспечения. Программная визуализация может использоваться в качестве инструмента и метода для изучения и анализа информации программной системы, например, для обнаружения аномалий, аналогичных процессу визуального добычи данных. Например, визуализация программного обеспечения используется для мониторинга деятельности, такой как качество кода или деятельность команды. Визуализация не является методом обеспечения качества программного обеспечения. Визуализация программного обеспечения участвует в программном интеллекте, позволяя обнаруживать и использовать преимущества освоения внутренних компонентов программных систем.
The objectives of software visualization are to support the understanding of software systems (i. e., its structure) and algorithms (e. g., by animating the behavior of sorting algorithms) as well as the analysis and exploration of software systems and their anomalies (e. g., by showing classes with high coupling) and their development and evolution. One of the strengths of software visualization is to combine and relate information of software systems that are not inherently linked, for example by projecting code changes onto software execution traces. Software visualization can be used as tool and technique to explore and analyze software system information, e. g., to discover anomalies similar to the process of visual data mining. For example, software visualization is used to monitoring activities such as for code quality or team activity. Visualization is not inherently a method for software quality assurance. Software visualization participates to Software Intelligence in allowing to discover and take advantage of mastering inner components of software systems.
Типы
Инструменты визуализации программного обеспечения могут использоваться для визуализации исходного кода и дефектов качества во время разработки программного обеспечения и мероприятий по техническому обслуживанию. Существуют различные подходы к отображению исходного кода на визуальное представление, например, с помощью программных карт. Их цель включает, например, автоматическое обнаружение и визуализацию дефектов качества в объектно-ориентированных программных системах и услугах. Обычно они визуализируют прямую связь класса и его методов с другими классами в программной системе и отмечают потенциальные дефекты качества. Еще одним преимуществом является поддержка визуальной навигации через программную систему. Для визуализации программного обеспечения используется более или менее специализированное программное обеспечение для рисования графиков. Небольшой опрос 2003 года исследователей, работающих в области обратной инженерии и обслуживания программного обеспечения, показал, что использовалось большое разнообразие инструментов визуализации, включая пакеты для рисования графиков общего назначения, такие как GraphViz и GraphEd, UML-инструменты, такие как Rational Rose и Borland Together, и более специализированные инструменты, такие как Визуализация компиляторных графиков (VCG) и Rigi. Диапазон инструментов UML, которые могут выступать в качестве визуализатора с помощью обратной инженерии источника, отнюдь не мал; в книге 2007 года отмечается, что помимо двух вышеупомянутых инструментов, ESS Model, BlueJ и Fujaba также имеют эту возможность, и что Fujaba также может идентифицировать шаблоны проектирования.
Tools for software visualization might be used to visualize source code and quality defects during software development and maintenance activities. There are different approaches to map source code to a visual representation such as by software maps Their objective includes, for example, the automatic discovery and visualization of quality defects in object oriented software systems and services. Commonly, they visualize the direct relationship of a class and its methods with other classes in the software system and mark potential quality defects. A further benefit is the support for visual navigation through the software system. More or less specialized graph drawing software is used for software visualization. A small scale 2003 survey of researchers active in the reverse engineering and software maintenance fields found that a wide variety of visualization tools were used, including general purpose graph drawing packages like GraphViz and GraphEd, UML tools like Rational Rose and Borland Together, and more specialized tools like Visualization of Compiler Graphs (VCG) and Rigi. The range of UML tools that can act as a visualizer by reverse engineering source is by no means short; a 2007 book noted that besides the two aforementioned tools, ESS Model, BlueJ, and Fujaba also have this capability, and that Fujaba can also identify design patterns.