Файл: Интегрированные среды разработки программ (Модель инструментальных окон).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 25.06.2023

Просмотров: 38

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

1. Введение

Существует большое число программных средств, используемых разработчиками для написания программного кода. Эти программы могут быть как простыми текстовыми редакторами, предлагающими только базовую подсветку текста (к примеру, Notepad и Kate), так и сложными средами разработки программ (IDE - Integrated Development Environment) [1], как Eclipse и Microsoft Visual Studio. Такие среды разработки объединяют различные инструменты, используемые в разработке, например отладчик и компилятор, для предоставления пользователю особых возможностей. Например, в IDE может присутствовать автоматическое дополнение кода, проверка синтаксической правильности программы без компиляции, возможность задавать точки останова в коде и так далее [1][2].

Несмотря на эти привлекательные возможности, многие разработчики считают IDE переусложненными и предпочитают пользоваться простыми текстовыми редакторами и дискретными инструментами разработки [2][3]. Причины этого могут быть самыми различными, и, чтобы определить их, требуется отдельное исследование удобства (usability) IDE [4][5][6]. Тем не менее, эмпирический опыт показывает, что одной из основных проблем являются инструментальные окна - дополнительные окна среды разработки, отличные от окна редактирования кода [7][8]. Как правило, дополнительные окна постоянно используются в процессе работы, поэтому пользователю приходится либо постоянно держать такие окна открытыми (уменьшая размер экранного пространства, доступного для редактирования кода), либо постоянно активировать инструментальные окна вручную.

2. Обзор сред разработки программ

В обзоре мы рассмотрим интерфейс нескольких наиболее популярных IDE [3].

Во избежание обзора вообще всех сред разработки, введем следующие ограничения:

Рассматриваются только среды для разработки программ на компилируемых объектно-ориентированных языках (а именно C++, C#, Java).

В случае если среда разработки предоставляет возможность подключения дополнительных модулей, рассматривается только имеющийся по умолчанию набор модулей.

2.1. Среды разработки программ

Перед тем как перейти к рассмотрению конкретных IDE, кратко опишем основные составляющие их графического интерфейса:


• Главное меню программы;

Настраиваемая панель команд с иконками (и, возможно, надписями) наиболее часто используемых команд главного меню;

Окно текстового редактора, в котором происходит написание программного кода. Слева от этого окна, как правило, расположена вертикальная полоса для установки точек останова и закладок;

Инструментальные окна, располагающиеся по сторонам окна текстового редактора;

  • Строка состояния - горизонтальная полоса размером в одну строку текста, расположенная снизу окна среды разработки и отображающая, как правило, информацию о прогрессе текущей операции и текстовые подсказки.

Теперь рассмотрим конкретные среды разработки программ. 3.3.1 Visual Studio

Visual Studio [11] - популярная коммерческая линейка сред разработки компании Microsoft для семейства ОС Windows. Рассматриваемая версия Visual Studio 2008 обладает широкой функциональностью и поддерживает разработку на Visual Basic, Visual C++, Visual C#, Java.

Организация инструментальных окон

По центру окна Visual Studio находится текстовое окно, которое может быть горизонтально или вертикально разделено на несколько окон с документами. Относительно текстового окна существует 4 позиции переменного размера для инструментальных окон: снизу, сверху, справа и слева. Позиция может содержать ряд инструментальных окон в своих вкладках. Позиция инструментального окна, как и окно редактора текста, может быть разделена на несколько частей для показа нескольких инструментальных окон.

Каждое инструментальное окно может находиться в одном из 4 режимов:

  • Режим дрейфа (floating): инструментальное окно не связано с позициями в окне IDE, является отдельным окном в смысле окон операционной системы;
  • Режим стыковки (dockable): инструментальное окно находится в одной из описанных выше позиций;

Режим вкладки (tabbed): инструментальное окно перемещается во вкладки окна текстового редактора, отображается на месте редактируемого документа;

Режим автоматического скрытия (auto hide): инструментальное окно сворачивается до кнопки, когда курсор мыши уходит за его пределы, и разворачивается, когда курсор наводится на кнопку.

Набор инструментальных окон

  • Solution Explorer. Это окно отображает дерево проектов текущего решения (solution) и принадлежащих им документов. Solution Explorer используется для создания новых файлов, открытия существующих и обзора структуры проектов. В дальнейшем будем называть окна, отображающие дерево элементов и позволяющие переходить к коду, связанному с каждым элементом, окнами древовидной навигации или древовидного отображения.
  • Bookmarks. Данное инструментальное окно содержит список закладок в тексте программы с указанием файла и строки, в которых расположена закладка. Использование данного окна ограничивается отключением, переименованием и переходом по закладке.
  • Class View. Двусоставное окно древовидной навигации по классам. В верхней части находится список классов, а в нижней - содержимое (методы и атрибуты) выбранного в верхней части класса. Используется для обзора структуры классов и переходу к классу или его члену.
  • Breakpoints. Данное окно отображает список существующих точек останова с указанием имени файла и строки, где расположена точка. Допустимые действия: редактирование свойств точек останова и переход к ним в тексте программы.

Server Explorer. Окно древовидного отображения сведений об операционной системе: история событий, информация о файловой системе, устройства, системные службы, счетчики производительности и т.п. Использование окна заключается в просмотре информации.

  • Output View. В данном инструментальном окне находится текстовый вывод инструмента сборки, включающий список ошибок и предупреждений для каждого проекта. Окно используется для обзора истории сборки, ошибок/предупреждений и перехода к ошибочному коду.
  • Code Definition Window. Данное окно используется для просмотра кода, определяющего текущую выбранную в текстовом редакторе сущность. Например, при установке курсора на функцию, данное окно отображает код с определением этой функции.
  • Error List. Данное окно содержит список ошибок, предупреждений и сообщений сборки с возможностью фильтрации. Используется для обзора этих трех сущностей и перехода к коду, вызвавшему их.
  • Object Browser. Инструментальное окно, отображающее дерево доступных в проекте компонент, как системных, так и пользовательских. Туда включаются видимые классы, функции и константы, сгруппированные по проектам и наборам компонент.

Call Stack. Данное окно отображает стек вызовов в процессе отладки приложения. Может использоваться для перехода к коду функций-вызовов стека.

  • Autos, Locals, Threads, Watch. Данные окна-списки отображают сущности, относящиеся к отладке: переменные (автоматические[1] и локальные соответственно), нити и введенные пользователем выражения. Могут быть использованы для перехода к коду и редактирования значений переменных.
  • Task List. Это окно отображает один из двух списков заданий: либо отмеченные в тексте комментарии (с ключевыми словами "TODO", "FIXME", о переменные, упоминающиеся в строке исходного 10"HACK" и др.), либо добавленные пользователем через это окно. Используется для обзора заданий и перехода к комментариям.
  • Properties. Окно отображения и редактирования списка свойств объектов, выбранных в окне текстового редактора или инструментальных окнах. Например, при выборе файла в Solution Explorer в Properties отображаются его свойства: имя, тип, относительный путь от текущего файла и прочие.

3.3.2 NetBeans

NetBeans 6.8 [12] - популярная кроссплатформенная IDE с открытым исходным кодом, широко используемая для разработки на Java, а также используемая для других языков, включая С++.

Организация инструментальных окон

В NetBeans инструментальные окна организованы так же, как в Visual Studio, за исключением того, что в NetBeans невозможно поместить инструментальное окно во вкладки текстового редактора.


Набор инструментальных окон

  • Projects. Окно древовидной навигации по открытым проектам, в которых файлы разделены на категории (заголовочные файлы, файлы реализации и др.). Использование аналогично использованию Solution Explorer в Visual Studio.
  • Files. Окно древовидной навигации по файловой системе. Отражает структуру каталогов, распределяя файлы по категориям, каждая из которых соответствует каталогу ФС. Использование этого окна заключается в обзоре расположения файлов и открытии новых файлов.

Classes. Окно отображения классовой структуры проектов, которое в отличие от Class view из Visual Studio отображает методы и члены классов как их прямые потомки в дереве.

  • Tasks. Окно отображения заданий из кода с возможностью фильтрации и группировки. Используется также, как и окно Task list в Visual Studio.
  • Properties. Аналогично одноименному окну в Visual Studio.

Output. Данное инструментальное окно содержит простой текстовый вывод инструментов сборки и не предоставляет возможности открытия кода, вызвавшего какую-либо запись в выводе.

  • Navigator. Это окно отображает доступные в коде имена объектов[2] в виде дерева. Так отображаются имена классов, пространств имен и заголовочных файлов. Используется аналогично окну Objects из Visual Studio.

Call Stack. Данное окно отображает список вложенных вызовов функций при отладке программы с возможностью перехода к любому из вызовов.

  • Variables. Это окно содержит список переменных, наблюдаемых при отладке с возможностью редактирования их значений.
  • Breakpoints. Отображение списка точек останова, как и в одноименном окне Visual Studio, с возможностью отключения и редактирования условия.

3.3.3 Eclipse

Eclipse [13] - кроссплатформенная среда разработки программ с открытым исходным кодом, используемая в основном для С++ (рассматривалась Eclipse CDT 4.0) и Java (рассматривалась Eclipse JDT 3.5).

Организация инструментальных окон

Инструментальные окна в Eclipse организованы почти так же, как и в Visual Studio. Открытие инструментального окна в режиме автоматического скрытия в Eclipse требует клика мыши, а не просто наведения, как в Visual Studio и NetBeans. В Eclipse можно сохранять и загружать настройки организации инструментальных окон, называемые в этой IDE перспективами.

Набор инструментальных окон

  • Navigator. Это окно древовидной навигации по проектам и группированным файлам используется также, как и окно Solution Explorer в Visual Studio.
  • Include Browser. Данное окно показывает дерево включений заголовочных файлов: потомками файла являются файлы, включенные в него. Это окно используется для просмотра включений и открытия представленных файлов.
  • Make Targets. Данное окно отображает дерево целей и подцелей системы сборки Make. Используется для просмотра структуры целей и перехода по ним.
  • Outline. Это окно аналогично окнам Navigator в Eclipse и Objects в Visual Studio.
  • Problems. Данное инструментальное окно отображает список ошибок и предупреждений сборки, как Errors list Visual Studio.
  • Properties. Аналогично одноименным окнам Visual Studio и NetBeans.
  • Breakpoints. Содержит список точек останова, аналогично одноименному окну в Visual Studio.
  • Debug. Дерево-историю записей о сессиях отладчика. Элемент каждого запуска является предком нитей, вызываемых в этой сессии отладки.
  • Variables. Данное инструментальное окно содержит список наблюдаемых при отладке переменных и их значений. Возможно редактирование значений и добавление/удаление наблюдаемых переменных.
  • Call Hierarchy. Это окно отображает дерево вызовов выбранной функции, статически анализируя код. Есть возможность перехода к любой из вызывающих функций.

3.3.4 Code::Blocks

Code::Blocks [14] - кроссплатформенная IDE с открытыми исходными кодами, разработанная для удобства программирования на С++ с использованием библиотек GTK+, Qt, OpenGL, FLTK, wxWidgets, Lightfeather. Ниже приведены данные для версии 8.02.

Организация инструментальных окон

Существует всего 4 основных контейнера инструментальных окна: Management, Logs & others, Open files list, To-Do list. Контейнер содержит инструментальные окна как вкладки. Существует два режима контейнеров:

  • дрейфующий режим: окно контейнера становится отдельным окном в смысле менеджера окон;
  • стыкующийся режим: инструментальное окно может находиться в одной из 4 позиций: сверху, снизу, справа и слева от текстового редактора.

Для окон, размещенных в одной позиции, она делится на части настраиваемого размера. Окно текстового редактора может быть разбито на два (горизонтально или вертикально), но в его частях отображается всегда текст одного и того же файла. Наборы настроек расположений окон можно сохранять и загружать (аналогично перспективам Eclipse). Этим ограничиваются возможности организации инструментальных окон в Code::Blocks.

Набор инструментальных окон

  • Management - Projects. Данное окно по назначению и структуре полностью эквивалентно одноименному окну из NetBeans.
  • Management - Symbols. Это окно отображает классы, функции, препроцессорные директивы и глобальные константы. Оно организовано, как и инструментальное окно Class view в Visual Studio.
  • Logs & others - Code::Blocks. Данное окно отображает лог событий среды разработки (создание/открытие проектов/файлов, загрузка подгружаемых модулей и др.). Не допускает переходов и действий, связанных с логом. Logs & others - Build messages. Это окно отображает список ошибок и предупреждений сборки с атрибутами, полностью аналогично, например, окну Problems из Eclipse.
  • Logs & others - Build log. Содержит текстовый вывод инструмента сборки проекта. Не допускает переходов к коду или иного сложного взаимодействия.
  • Logs & others - Search results. Это окно отображает список результатов поиска с указанием имени файла, строки и найденного фрагмента текста. Предоставляется возможность перейти к любому из найденных результатов.

Logs & others - Script console. Это окно принимает текстовые команды пользователя и выводит текстовый результат этих команд.

  • Logs & others - Debugger. Данное инструментальное окно содержит текстовый вывод отладчика, предоставляя пользователю лишь вводить команды для отладчика. Через это окно также выводятся данные о попадании на точки останова.
  • Open files list. Данное инструментальное окно отображает список файлов, открытых в Code::Blocks. Используется для обзора открытых файлов и переключения на вкладку любого из этих файлов.
  • To-Do list. Показывает список задач, содержащихся в коде текущего проекта. Использование аналогично окну Tasks из NetBeans.
  • Call Stack. Данное окно отображает стек функций в виде списка. Позволяет по двойному щелчку на верхней функции стека переходить к точке исполнения в ней.
  • Watches. Данное окно отображает дерево наблюдаемых переменных. Наблюдаемая переменная несоставного типа представляет элемент дерева, а потомками каждой переменной-класса является набор значений ее атрибутов.
  • Running threads. Это инструментальное окно отображает список нитей отлаживаемого приложения. Позволяет перейти к точке выполнения любой нити.