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

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

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

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

Добавлен: 25.06.2023

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

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

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

3.3.5 MonoDevelop

MonoDevelop 2.2 [15] - среда разработки с открытым исходным кодом, предназначенная для написания приложений на С/С++, С#, Java, Visual Basic и других языках. Является частью проекта Mono по созданию свободной реализации платформы .NET.

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

Инструментальные окна MonoDevelop подчиняются тем же принципам организации, что и окна Visual Studio за следующими исключениями:

Возможно сохранение/загрузка перспектив так же, как в Eclipse.

Окно текстового редактора не может быть разделено на два независимых окна.

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

Solution. Данное окно полностью эквивалентно окну Solution Explorer в среде разработки Visual Studio.

  • Files. Это типичное окно древовидной навигации по файловой системе, которые мы уже рассмотрели в IDE NetBeans.
  • Classes. Древовидно отображает принадлежность классов и пространств имен классам из открытого решения (solution). Использование аналогично окну Classes из NetBeans.
  • Errors list. Данное окно аналогично уже рассмотренным окнам отображения списка ошибок.
  • Task list. Окно отображения одного из списков задач пользователя: списка из комментариев и списка, созданного при помощи этого инструментального окна. Таким образом, внешний вид и использование, как у окна Task list в Visual Studio.
  • Properties. Данное окно полностью аналогично одноименному окну из Visual Studio и NetBeans.
  • Document Outline. Отображает функции и классы из текущего документа, повторяя функции окна Outline из Eclipse.
  • Build Output. Содержит простой текстовый вывод инструмента сборки, доступный только для выделения и копирования.

Application Output. Содержит простой текстовый вывод запускаемого приложения, доступный только для выделения и копирования. Breakpoints. Отображает список точек останова, аналогично одноименным окнам рассмотренных ранее IDE.

  • Watch. Отображает список пользовательских выражений и их значений, вычисляемых во время отладки.
  • Locals. Содержит дерево элементов, каждый из которых соответствует локальной переменной в точке исполнения программы. Потомками локальных переменных являются их базовые классы и члены-данные, для которых отображается текущее значение.
  • Call Stack. Отображает стек вызовов, как и одноименное окно NetBeans.
  • Threads. Отображает список нитей, аналогично окну Running threads в Code::Blocks.

3.3.6 KDevelop

KDevelop 4.0 [16] - независимая от платформы свободная IDE для графической оболочки KDE, написанная на С++ с помощью библиотек Qt и KDE. Поддерживает программирование на многих языках, в том числе С/С++ и Java.


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

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

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

  • Breakpoints. Отображает список точек останова, аналогично одноименному окну в Eclipse
  • Call Stack. Это окно отображает список нитей и стек вызовов для каждой нити при использовании отладчика. Функционирует и используется аналогично одноименному окну в NetBeans.
  • Code Browser. Выполняет ту же функцию, что и Code Definition Window в Visual Studio - показ свойств объекта кода, на котором находится курсор.
  • Filesystem. Окно древовидной навигации по файлам. Использование аналогично таким окнам, рассмотренным ранее.
  • Projects. Данное окно древовидной навигации по открытым проектам отличается от, например, окна Projects из NetBeans тем, что позволяет редактировать список собираемых проектов, расположенных в этом же инструментальном окне.

Documents. Окно древовидной навигации по проектам и связанным с ними документам (редактируемым файлам). Использование аналогично другим окнам древовидной навигации.

  • Messages. Отображение списка ошибок и предупреждений, полученных в результате сборки, с указанием файла, в котором возникла ошибка, линии ошибки и описания. Использование данного окна заключается в просмотре сообщений и переходе к коду, вызвавшему их.
  • Problems. Окно, аналогичное Messages, но показывает ошибки, полученные в результате фонового разбора кода. Используется аналогично Messages.
  • GDB. Содержит простой текстовый вывод отладчика GDB, доступный для выделения и копирования.
  • Variables. Окно с древовидной структурой, отображающее две категории наблюдаемых переменных: автоматические и локальные. Переменные сложных типов содержат потомков-атрибутов, а переменные простых типов представлены одним элементом дерева.

3.3.7 IntelliJ IDEA

IntelliJ IDEA (Community Edition 9.0) [17] - многоплатформенная среда разработки программ с открытым исходным кодом, основной пользовательской аудиторией которой являются Java-разработчики.


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

Инструментальные окна IDEA обладают возможностями настройки, схожими с окнами Visual Studio. Именование режимов отличается, однако их выразительные способности совпадают: для любого расположения инструментальных окон в Visual Studio можно создать аналогичное расположение в IDEA, и наоборот. Единственное исключение - в IDEA нельзя поместить инструментальное окно во вкладку текстового редактора.

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

Project. Отображает дерево модулей проекта и внешние библиотеки, тем самым совмещая функции окон Solution explorer и Object Browser из Visual Studio.

Messages. Отображает сообщения сборки, включая ошибки и предупреждения. Аналогично другим окнам с сообщениями сборки.

  • Commander. Двусоставное окно навигации по файловой системе. Верхняя часть отображает структуру каталогов, а нижняя - файлы выбранного в первой части каталога.
  • Run. Простой текстовый вывод запущенного приложения. Переход к строкам кода и другое сложное взаимодействие с пользователем не предусмотрено.
  • Debug. Простой текстовый вывод отладчика. Переход к строкам кода и другое сложное взаимодействие с пользователем не предусмотрено.
  • Frames. Отображает список вызовов в стеке приложения. По щелчку на функцию осуществляется переход либо (в случае щелчка по верхней функции) к точке останова, либо к точке выбранной функции, где управление перешло к следующей по вложенности функции.
  • Varuables. Отображает дерево локальных переменных. Для простых типов это окно отображает просто элемент верхнего уровня, для сложных типов отображает потомков-членов класса.
  • Watches. Данное окно отображает список наблюдаемых пользователем выражений и их значений.
  • TODO. Это окно содержит 2 вкладки: с заданиями проекта и данного файла. Задания берутся из кода. Есть возможность перейти к заданию в коде.
  • Structure. Древовидное отображение классов, их предков и членов. Аналогично окну Navigator в Eclipse.

3.3.8 C++ Builder

C++ Builder 6.0 [18] - коммерческая среда разработки от компании Borland, предназначенная для разработки на С++ с использованием библиотек CLX, VCL, MFC.

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

Инструментальные окна в C++ Builder организованы схожим образом с окнами Visual Studio за тем исключением, в C++ Builder недоступен режим автоматического скрытия и режим вкладки. Всегда присутствует окно редактора формы, не стыкующееся ни с какими инструментальными окнами. Окно текстового редактора не может быть разделено на несколько окон. В C++ Builder есть возможность сохранения/загрузки настроек расположения инструментальных окон (save/load desktop), аналогично перспективам в Eclipse.


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

  • Project Manager. Древовидное отображение файлов, входящих в проекты. Аналогично Solution Explorer в Visual Studio.
  • Class Explorer. Отображение дерева классов с их атрибутами и предками. Аналогично окну Classes из NetBeans.
  • Components. Список визуальных компонентов, доступных для добавления на форму. Используется для поиска и добавления.
  • Messages. Содержит список сообщений сборки, аналогично одноименным окнам IntelliJ IDEA и KDevelop.
  • Object TreeView. Это окно отображает дерево принадлежности компонентов на выбранной форме. Может быть использовано для обзора принадлежности и выбора компонента.
  • Object Inspector. Отображает редактируемый список свойств объекта формы.
  • Breakpoint List. Редактируемый список точек останова. Используется так же, как и рассмотренные ранее окна точек останова.
  • Call Stack. Отображает список функций-вызовов в текущем состоянии программы. Может быть использовано для перехода к любой из функций.
  • Threads. Отображает список нитей отлаживаемого приложения. Для каждой нити имеется возможность перейти к точке ее исполнения.
  1. Результаты обзора

Итак, в обзоре установлены следующие факты:

  • Организация инструментальных окон очень схожа в различных IDE и заключается в наличии окна текстового редактора и настраиваемых инструментальных окон, каждое из которых может находиться в нескольких режима (подробное описание режимов находится в обзоре Visual Studio).

Рассмотренные инструментальные окна можно разделить по структуре и схеме использования на несколько больших классов.

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

  1. Модель инструментальных окон

Опишем сначала классы обобщенных инструментальных окон, входящих в модель, а затем сами обобщенные инструментальные окна. Классы инструментальных окон определяют визуальную структуру содержимого окна и основные его функции, а обобщенные инструментальные окна конкретизируют сущности, описываемые окном, и его возможности.

3.5.1 Классы инструментальных окон

    1. Окна-деревья навигации по сущностям. Такие окна отображают дерево сущностей и, возможно, дополнительные подокна для просмотра атрибутов или потомков выбранного элемента дерева. Важным критерием окон-деревьев является возможный неограниченный рост глубины дерева в процессе использования IDE. Окна-деревья предоставляют пользователю следующие функции:
  • Просмотр пользователем дерева сущностей.
  • Вызов контекстного меню для произвольной сущности дерева и совершение некоторых действий.
  • Возможно, переход к объекту исходного текста (файлу, части файла, строке), связанному с выбранной сущностью посредством двойного щелчка мыши.

К этому классу относятся окна древовидной навигации по проектам и файлам, по объектам кода, целям Make и другие похожие окна.

    1. Окна-списки сущностей, связанных со строками кода. Для данных окон существенна связь один к одному со строками кода разрабатываемой программы. Окно-список, в общем случае, может отображать дерево, каждый элемент которого связан со строкой кода, и, что не менее важно, глубина которого не более 2 (для глубины 2 мы получаем де-факто категоризированный список). Функции окон-списков, используемые разработчиком:
  • Просмотр списка сущностей и их атрибутов.
  • Переход к строкам кода, связанным с сущностями.
  • Возможно, редактирование атрибутов сущностей.

К таким окнам можно отнести списки задач, точек останова, списки ошибок и предупреждений сборки и другие подобные окна.

  1. Окна - документы. К данному типу отнесем окна, не являющиеся окнами первых двух типов. Функции окон данного типа, предлагаемые пользователю:
  • Как правило, просмотр простого текстового вывода внешних инструментов с примитивными возможностями копирования текста.
  • Возможно, ввод текстовых пользовательских команд.
  • Некоторая функциональность просмотра и редактирования, не связанная со строками кода (например, для окон-списков, сущности которых не имеют привязки к строкам кода).

К этому типу окон следует отнести окна вывода инструментов сборки, вывода отладчика и другие.

3.5.2 Обобщенные инструментальные окна

Обобщенные инструментальные окна мы получим, выделяя назначение инструментальных окон и сущности, с которыми они оперируют (например, ошибки, файлы или задания). Основные функции обобщенного окна определяются его классом; все специфичные для конкретного окна функции мы будем указывать отдельно.

Обобщенные инструментальные окна-деревья описаны в таблице 1.

Таблица 1. Обобщенные окна-деревья

Название окна

Сущность, представляе мая листом дерева

Возможные элементы дерева помимо листов

Окна рассмотренных IDE, являющиеся прототипами

Окно навигации по проектам

Документ с возможностью редактирования в IDE

Группы документов. Например, исходные коды, заголовочные файлы и др.

Solution Explorer (Visual Studio), Projects (Eclipse, NetBeans, ...), ...

Окно навигации по файловой системе

Файл

Каталоги файловой системы

Files (NetBeans, MonoDevelop), Filesystem (KDevelop)

Окно навигации по объектам кода

Метод класса, атрибут класса, макрос, глобальная функция, глобальная переменная

Класс, категория «Глобальные переменные», категория «Глобальные функции», категория «Макросы»

Class View (Visual Studio), Classes (Eclipse), Structure (IntelliJ IDEA), ...