Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Интегрированные среды разработки программ (Интегрированная среда разработки, ее предназначение)

Содержание:

Введение

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

Каждый программист, независимо от его уровня подготовки должен уметь качественно и объективно выбрать среду в которой он будет выполнять стоящую перед ним задачу. Многие из них останавливают свой выбор на той системе разработки которую они хорошо знают и где имеют опыт работы. Не всегда такой выбор является объективным и имеет все необходимые для разработки инструменты. Именно это является той проблемой, пути решения которой стоит рассмотреть, для чего необходимо исследовать среды разработки, постараться их сгруппировать по определенным признакам.

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

ГЛАВА 1. Общие сведения о интегрированных средах разработки.

Интегрированная среда разработки, ее предназначение.

Интегрированная среда разработки (ИСР) – совокупность программных средств, используемая программистами для разработки программного обеспечения. Если использовать язык родоначальник данного понятия то оно имеет название Integrated Development Environmentили сокращенно IDE. В случае, когда IDE имеет возможность визуального редактирования графического интерфейса разрабатываемого программного обеспечения , она называется средой визуальной разработки.

Интегрированная среда разработки включает в себя 4 основополагающих составляющие:

  1. Текстовый редактор;
  2. Компилятор;
  3. Интерпретатор;
  4. Средства автоматизации разработки и сборки программного обеспечения.

Кроме того ИСР может включать в себя:

  1. Отладчик;
  2. Средства для обмена данными с системой управлениями версиями;
  3. Инструменты для упрощения задачи разработки графического интерфейса пользователя.

Интегрированные среды разработки разрабатывались с целью максимально увеличить производительность программиста, используя для этого связанные компоненты с интуитивно понятными интерфейсами пользователя. Такое решение позволяет программному разработчику совершать меньшее количество операций для изменения режимов, что является важным отличием от дискретных программ разработки. Стоит отметить, что по причине того, что ИСР характеризуется как сложный программный комплекс, то максимальное увеличение скорости разработки программного обеспечения будет достигнуто лишь после полного изучения среды.

Интегрированная среда разработки, как правило, является единой программой, разработка в которой ведется от начального этапа до момента вывода продукта на тестирование и дальнейшей эксплуатации. Такой модуль содержит огромное количество инструментов для создания, редактирования, компилирования, установки и отладки программного комплекса.

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

Интегрированные среды разработки дают возможность отказаться от совершения огромного количества одинаковых действий и этим значительно повысить эффективность каждого из этапов разработки и отладки программного продукта. Таким образом ИСР в некотором смысле являются RAD–средствами, обладающими той или иной степенью автоматизации процесса программирования. Кроме того ИСР часто имеют возможность создания в исходном коде программ комментариев, отображающих какую то информацию, применимую для дальнейшего поиска возникающих ошибок и упрощения отладки разрабатываемого программного продукта.Кроме того данные пометки могут быть использованы лицом, развивающим запущенный проект, а так же для организации совместной работы с построением тегов и формирования задач. Применение комментариев считается стандартом формирования кода в Object Pascal, Delphi, C++, C# и многих других языков программирования высокого уровня.

Разработка в интегрированной среде предоставляет программисту следующие возможности:

  1. Использование стандартного текстового редактора, предполагающего возможность обработки нескольких файлов различного расширения, созданного специально для работы с исходными кодами;
  2. Автоматизированная диагностика ошибок, которые были обнаружены при компиляции (исходный код, открытый для редактирования, выводится параллельно с диагностикой в смежных окнах);
  3. Одновременная работа с несколькими самостоятельными или объединяемыми воедино проектами. Менеджер проектов дает возможность использования любого проекта в качестве шаблона;
  4. Наименьший показатель перекомпиляции. Данному процессу подвергаются лишь те модули, которые были отредактированы;
  5. Загрузка проходящей испытания программы в средства отладки, а так же возможность работы отладчика без выхода из оболочки;
  6. Широчайшие возможности подключения к оболочке любых совместимых программных средств.

История создания первых интегрированных сред разработки

С развитием и совершенствованием ЭВМ изменялся и способ взаимодействия программиста с машинами. Первые версии компьютеров не имели даже зачатков, привычного нам, программного обеспечения. В первых версиях ЭВМ программа передавалась вычислительной технике вручную, с использованием пульта, а в дальнейшем с помощью перфокарт и перфолент. После десятилетий эволюции ЭВМ начали появляться терминалы с электронно – лучевыми трубками (графическими дисплеями), но они создавались не для разработчиков программ, а для тех кто работал с ЭВМ – операторов. Программисты же долгое время осуществляли работу с техникой путем отправки на вычислительный центр перфокарт. Лишь в начале 1970-х годов был совершен массовый переход на языки программирования, впервые были представлены операционные системы. Параллельно росту мощности ЭВМ появлялись различные варианты коллективного доступа к ресурсам вычислительной техники, визуализированная среда постепенно стала инструментом программистов.

Одни из первых ИСР основывались на вводе данных через консоль или терминал. Эти понятия на тот момент были последними достижениями технической мысли. Первым языком программирования, который был разработан с ИСР, стал Dartmouth Basic, кроме того это был первый язык, используемый в консолях и терминалах. Данная ИСР для управления использовала команды, что было главным отличием от более новых, управление которыми производилось с помощью меню и горячими клавишами, и уж совсем сильно она отличалась от распространенных в наше время графических ИСР. Но все основные черты интегрированных сред разработки были ей присущи, а именно: редактирование исходного кода, управление файлами, компилирование, отладка программного продукта. Кроме того существовала возможность исполнения программы методом, присущим современным ИСР.

Следующим этапом в истории ИСР стал выпуск Maestro 1 –продукт, созданный Softlab Munich, стал первой в мире интегрированной средой разработки программного обеспечения для ЭВМ. Данная система была представлена миру в 1975 году и стала всемирным лидером в этом кластере рынка в течении 1970-х и 1980-х годов. Ей воспользовались более 22000 программистов по всему земному шару (стоит учитывать, что в тот период компьютеров и людей, умеющих ими пользоваться, было во много раз меньше, чем в наши дни). С момента выпуска в 1975 году и до 1989 года лишь на территории Германии было установлено более 6000 копий данного продукта. В наше время данную среду есть возможность увидеть лишь в Музее Информационной технологии в Арлингтоне.

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

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

Таким образом с развитием информационных технологий появлялось все большее количество методик общениями с ЭВМ. Но, несмотря на любые технологии существуют основополагающие и потому неизменные этапы разработки любого продукта:

  1. Разработка исходного кода;
  2. Редактирование программы;
  3. Компиляция;
  4. Сборка;
  5. Тестирование;
  6. Анализ ошибок, отладка;
  7. Редактирование;
  8. Подготовка итоговой версии продукта.

Приведенные этапы необходимо учитывать при расчете эффективности программной среды.

Современные интегрированные среды программирования

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

  1. Элемент просмотра классов (в этом окне разработчик может просмотреть все классы, а так же методы каждого из классов);
  2. Инспектор объектов (в данном элементе отображаются текущие настройки выбранного объекта, а также существует возможность изменять их прямо в ходе разработки);
  3. Диаграмма иерархии классов – применяется при методе объектно- ориентированного программирования.

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

  1. «Eclipse»;
  2. «NetBeans»;
  3. «Intellij IDEA»;
  4. «Qt Creator»;
  5. «Microsoft Visual Studio»;
  6. «Xcode».

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

  1. «Visual Basic»;
  2. «PyCharm»;
  3. «Delphi»;
  4. «Dev – C++».

Рассмотрим основные функциональные возможности современных интегрированных сред программирования:

  1. Общий интерактивный интерфейс, который обеспечивает вызов всех других компонентов, без закрытия среды разработки, с широким использованием функциональных клавиш;
  2. Текстовый редактор для создания и изменения исходных кодов программ.
  3. Модуль сборки (так называемый building), отвечающий за компиляцию проекта, выстраиваемого их исходных кодов, включающий в себя компилятор с используемого языка программирования и компоновщик (в среде именуемый linker) объектных бинарных кодов в общий исполняемый код (который в дальнейшем является загрузочным модулем);
  4. Отладчик, который используется для поиска ошибок и отладки программы в среде разработки, располагающий стандартным набором команд: установить точку остановки; прекратить выполнение в выбранной процедуре; отображать значения переменных (а при программировании на языках низкого уровня – регистров и областей памяти).

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

Современные редакторы кода, применяемые в интегрированных средах программирования имеют функцию автоматического заполнения кодовой строки. Данная функция поддерживает определение классовой зависимости (вероятные имена методов при вызове метода от объекта какого – либо определенного класса), а также подсказки по возможным и синтаксически верным продолжениям кода.

В версиях интегрированных сред программирования нашего времени появились и новые возможности (компоненты):

  1. Профилировщик (profiler) – средство для сбора и анализа статистических данных, которые были сформированы в ходе работы программы, управляемой интегрированной средой: количество вызовов процедур (методов), количество памяти, которое используется при выполнении программы;
  2. Рефакторинг (refactoring) – инструмент периодических общих модификаций программ в среде, без значимых изменений их функциональной составляющей, преследующий улучшение кода. Примером может служить замена имени метода, что послужит стартом автоматического изменения его имени во всех его использованиях;
  3. Генератортестов (unittestgenerator) – инструмент для создания тестов для проверки работоспособности модулей, методов и процедур, используя при этом различные наборы значений аргументов. Примером может служить инструмент JUnit в интегрированных Java – средах, а так же NUnitв MicrosoftVisualStudio.
  4. Система управления версиями исходных кодов – способ взаимодействия среды с одной из используемых систем (GIT, CVS, RCS, Mercurial, VisualSourceSafeи др.) – помощь в управлении версиями файлов исходного кода в среде разработки при обслуживании программ.
  5. Инструментарий поддержки командной разработки программ (teamwork) – последовательность жизненного цикла программного обеспечения (требования, спецификации, проектирование, реализация, тестирование), возможность разделения задания между командой программистов, а также возможность контроля проделанной работы менеджером проекта. Для примера в VisualStudio элемент, отвечающий за это назывался TeamFoundationServer (TFS), а, начиная с 2013 года Microsoftразработал для своего продукта облачный интерефейся, который получил название VisualStudioOnline.
  6. Средства анализа кода (codeanalysis)–разбор программного обеспечения, который для получения результата не требовал исполнения проверяемой программы. Как правило анализ производится применимо к какой – либо версии исходного кода. Термин применим к анализу, который выполняется с использованием специализированного программного обеспечения, но может быть проведен и ручной анализ, который получил название «Programunderstanding». В зависимости от применяемого инструмента качество проводимой проверки может изменяться от отображения изменений операторов до анализа, который предоставляет результаты всего имеющегося исходного кода. Существуют различные пути применения полученных в ходе анализа результатов: от определения мест, в которых, с высокой степенью вероятности, содержащих ошибки, до формальных методов, которые дают возможность с помощью математических действий доказать особые свойства программы. Последние разработки в рамках верификации свойств ПО, которое используется в компьютерных системах, все чаще используют методику статического анализа. Кроме того такой анализ все чаще используется для поиска заведомо содержащего уязвимости кода;
  7. Средства графического представления генерируемого бинарного кода – методов, переменных, имен, классов;
  8. Средства, выполняющие задачу добавления коду свойства «запутывания». С этой целью выполняется задача замены таких элементов кода, как: классы, методы, поля. Они автоматически заменяются на хаотичные имена. Данная процедура преследует цель затруднения изучения бинарного кода, который прошел декомпиляцию, что позволяет защитить от злоумышленников тот код, который те хотят заполучить;
  9. Возможность создания программных проектов совершенно разнообразного вида и построения их решений на основании типовых шаблонов кода, а так же сопоставление механизмов создания расширений. В наше время при написании программ часто необходимо создать очень сильно отличающиеся друг от друга виды приложений и инструментов. Примерами возможных вариантов разработки могу служить: консольные приложения, Web – приложения, Web– сервисы, облачные приложения, мобильные приложения, приложения для персональных компьютеров, прикладные программы для прошивки микросхем и чипованых устройств. Для каждого из огромного набора таких приложений требуется разработка специфической структуры файловой системы исходного кода, и файлов конфигурации, обеспечивающих, к примеру, спецификацию (права безопасности кода, интернет конфигурации). Интегрированные среды программирования, используемые в настоящее время обладают отличным механизмом автоматизации создания различного рода проектов, предлагая шаблон исходного кода и автоматически создавая нужные проекту файлы конфигурации. Многим из разработчиков современного программного обеспечения уже сложно представить создание продукта без применения подготовленных шаблонов кода, которое сразу же начинает требовать большего уровня внимательности, так как очень легко допустить ошибки, которые, как кажется, не могут быть совершены подготовленным человеком. Они могут заключаться в отсутствии того или иного файла, несмотря на его необходимость для корректной работы проекта. Именно поэтому очень важно сопровождение проекта интегрированными средствами различного вида. Кроме того в современных системах разработчик имеет возможность самостоятельно дополнить набор возможных видов проектов;
  10. Возможность моделирования структуры программы с использованием средств UML (Unified Modeling Language). Версии языка UML, применяемые в наше время, обеспечивают моделирование программ абсолютно любой направленности и построение диаграмм, отображающих каждую из моделей. Кроме того эта среда разработка предполагает своим функционалом возможность разработки взаимодействия разработчиков между собой. Большинство современных интегрированных сред разработки предполагают использование средств UML двумя основными путями: генерация модели и соответствующих диаграмм по исходному коду, или в обратной последовательности: генерация кода на основе разработанной модели.

Статический анализ с каждым годом все чаще применяется для критического программного обеспечения в областях:

  1. Программное обеспечение, обеспечивающее работу медицинских устройств;
  2. Программное обеспечение, обеспечивающее работу атомных электростанций и систем безопасности реактора;
  3. Программное обеспечение, обеспечивающее выполнения задач авиацией;
  4. Программное обеспечение на наземных видах транспорта.

ГЛАВА 2. Рассмотрение наиболее популярных интегрированных сред разработки

Среда программирования Delphi

Любой программист при упоминании термина интегрированная среда программирования первым делом начинает думать о среде Delphi. Именно она стала первой среди ИСР, многие особенности современные среды переняли именно у нее, она стала основоположником новой эры программирования.

Интерфейс среды программирования Delphi отличается от многих других, что можно увидеть в ОС Windows. Например, Borland Pascal for Windows 7.0, Borland C++ 4.0, являются MDI приложениями и выглядят по-другому, чем Delphi. MDI (Multiple Document Interface) - предполагает особый способ управления нескольких дочерних окон внутри одного большого окна.

Среда Delphi же следует другой логике построения рабочего пространства, называемой Single Document Interface (SDI), и состоит из нескольких отдельно расположенных окон. Это было применено из-за того, что SDI близок к той модели приложений, что используется в Windows 95.

Ниже перечислены основные составные части Delphi:

  1. Дизайнер Форм (Form Designer);
  2. Окно Редактора Исходного Текста (Editor Window);
  3. Палитра Компонент (Component Palette);
  4. Инспектор Объектов (Object Inspector);
  5. Справочник (On-line help);

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

Разработчки на Delphi проводят большую часть времени работая в Дизайнере Форм и Окне Редактора Исходного Кода (которое для краткости называют Редактор).

Дизайнер Форм в Delphi очень прост в использовании, что делает создание графического интерфейса пользователя не занимает много времени (конечно же возможности визуализации совсем не те, что в современных ИСР). Дизайнер Форм изначально состоит из одного пустого окна, которое пользователь заполняет разнообразными объектами, которые могут быть выбраны на Палитре Компонент. Основным рабочим пространством разработчика является редактор исходного кода, где прописывается вся логическая составляющая продукта.

Палитра Компонент дает возможность пользователю выбрать нужные объекты для размещения их на Дизайнере Форм. Слева от Дизайнера Форм в среде разработки находится Инспектор Объектов. Информация в нем изменяется в зависимости от объекта, выбранного на форме.

Инспектор Объектов состоит из двух вкладок, на каждой из которых существует возможность настройки поведения текущего элемента. Первая вкладка - это окно свойств, а вторая - окно событий.

Еще один важный элемент среды Delphi - Справочник (online help). Чтобы отобразить данный элемент нужно просто выбрать в системном меню вкладку Help, а затем Contents. Пользователь получит подсказку, соответствующую текущей ситуации и выбранному элементу.

Теперь рассмотрим элементы, которые можно считать вспомогательными для среды программирования:

  1. Меню (Menu System);
  2. Панель с кнопками для быстрого доступа (SpeedBar);
  3. Редактор картинок (Image Editor).

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

Элемент SpeedBar дублирует большую часть того, что можно сделать через главное меню. Если навести мышь над любой из иконок на SpeedBar и задержать ее, то пользователь сможет увидеть всплывающее окно с описанием того, что делает данная пиктограмма.

Редактор Картинок, выполняет те же функции, что программа Paintbrush из Windows.

Помимо уже рассмотренных элементов существует еще 5 средств, которые и превращают Delphi в интегрированную среду разработки:

  1. Встроенный отладчик;
  2. Внешний отладчик (поставляется отдельно);
  3. Компилятор командной строки;
  4. WinSight;
  5. WinSpector.

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

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

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

WinSight и WinSpector предназначены исключительно для опытных разработчиков в Windows. Конечно же это не говорит о том, что новичок не может запустить данные средства и начать изучать их возможности, но прежде всего эти средства предназначены для узкоспециализированных технических целей.

Из приведенных инструментов WinSight более полезен. Основная его функция - позволить пользователю в режиме реального времени следить за системой сообщений Windows. Delphi предпринимает многое для того, чтобы скрыть непростые детали данной системы сообщений от начинающих пользователей, но Windows является ОС, управляемой событиями. Подавляющее большинство главных и второстепенных событий в среде Windows принимают вид сообщений, которые рассылаются с огромной интенсивностью среди используемых элементов на экране. Delphi предоставляет пользователю полный доступ к сообщениям Windows и дает возможность отвечать на них, если в этом появится необходимость. Таким образом, опытным пользователям WinSight прямо говоря необходим.

WinSpector хранит записи о текущем состоянии компьютера в текстовом файле. Пользователь имеет возможность просмотреть этот файл с целью понимания причины того что что то неправильно происходит в программе. Инструмент крайне полезен в случае, когда программное обеспечение находится в опытном применении – существует возможность получить важную информацию при крушении системы.

Таким образом именно Delphi положила начало всем интегрированным средам разработки, на основе нее появились C++ Builder, RAD Studio и еще множество дочерних сред. Стоит заметить полную преемственность ими всего функционала и всех функций, но даже они в современных условиях считаются сильно устаревшими, именно поэтому предлагаю рассмотреть 2 среды, которые являются злейшими конкурентами, каждая из них приобрела армию постоянных пользователей, каждая из них уже долгое время на рынке и, судя по всему, никто не намерен пускать новые продукты на свою территорию.

Интегрированная среда разработки Microsoft Visual Studio

Независимо от того, с какой точки зрения подходить к изучению современных ИСР, невозможно не остановиться на разработке IT гиганта.

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

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

  1. Обозреватель решений – позволяет просматривать все части из которых состоит исходный код программы, перемещаться по ним и управлять их работой. Кроме того данный элемент дает пользователю возможность упорядочить код посредством объединения его в решения и проекты.
  2. Окно редактора – в данном рабочем пространстве отображается содержимое того файла, над которым в данный момент ведется работа. Именно здесь пользователь имеет возможность редактировать код.
  3. Окно выводы – один из, на мой взгляд, важнейших элементов интерфейса среды разработки. Именно в нем отображаются различные уведомления (сообщения об ошибках, предупреждения компилятора). Все сообщения разбиты по вкладках, в зависимости от источника.
  4. Team Explorer – дает возможность отслеживать рабочие элементы и запускать код одновременно с другими пользователями, что достигается технологией управления версиями. Примером может служить Git и система управления версиями Team Foundation.

Среда разработки Microsoft Visual Studio разработана для операционных систем Windows и Mac OS. Все функциональные возможности, присущие версии для Windows полностью реализованы и для Mac версии программы, они точно так же оптимизированы для разработки кроссплатформенных приложений и продуктов для мобильных устройств.

В ходе создания было разработано три основных пакета Visual Studio. Они получили названия Community, Professional и Enterprise. Главным отличием их друг от друга является разнообразный набор функций в каждой из них. Но существует элемент преемственности: более старшая версия содержит все элементы более младшей.

Разберем основные составляющие каждой из выпусков Visual Studio, проиллюстрировав их в таблице №1.

Поддерживаемые возможности

Visual Studio Community

Visual Studio Professional

Visual Studio Enterprise

Поддерживаемые сценарии использования

+++

++++

++++

Поддержка платформ разработки

++++

++++

++++

Интегрированная среда разработки

+++

+++

++++

Расширенная отладка и диагностика

++

++

++++

Средства тестирования

+

+

++++

Кроссплатформенная разработка

++

++

++++

Инструменты и возможности для совместной работы

++++

++++

++++

Таблица №1. Сравнение выпусков ИСР Visual Studio

В представленной таблице мы можем видеть релизованный в каждом из выпуском возможности среды. Уровень реализации и автоматизации каждой из них приведены пометками «+». Как мы видим в старшей версии все реализовано с максимальной работоспособностью и автоматизацией, что приведет, после соответствующего обучения, к наибольшему упрощению работы разработчика при создании своих проектов.

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

  1. Волнистые линии, быстрые команды. В режиме реального времени при вводе кода те места где выявляются ошибки или потенциально неверно написанные элементы выделяются волнистой линией. Эта графическая подсказка привлекает внимание пользователя и позволяет немедленно устранить ошибку, еще до сборки кода и запуска программы. При наведении курсора на выделенный элемент будет показана дополнительная информация о найденной неисправности. Помимо этого в окне слева возможно появление значка лампочки с быстрыми командами по исправлению ошибки.
  2. Очистка кода. Данное средство позволяет нажатием кнопки мыши отформатировать код, исправить его в соответствии с рекомендациями, которые предлагают параметры стиля кода, соглашения в файле Editor Config и анализатор Roslyn. Данная функция позволяет устранять многие проблемы при написании исходного кода еще до его проверки. К сожалению на сегодняшний день данная функция реализована лишь для C# и C++, а для огромного множества других языков программирования достпуных в среде Visual Studio еще не доступна.
  3. Рефакторинг. Заключает в себе такой функционал, как интеллектуальное изменение имен переменных, построение нового метода на основе одной или нескольких строк кода, перераспределение порядка параметров методов.
  4. IntelliSense - кластер функций, который включает в себя средства отображения сведений о коде непосредственно в редакторе кода и автоматизированно создающих в некоторых случаях куски кода. По своим основным возможностям она представляет собой базовую документацию, которая входит в состав редактора, позволяющую не искать информацию о создаваемом коде в каких то дополнительных источниках. Функциональные возможности данной составляющей зависят от используемого языка программирования.
  5. Поле поиска. Данная функция была создана, в большей степени, для начинающих пользователей средой, которая на первый взгляд может показаться очень сложной и громоздкой. Действительно огромное нагромождение функций и надстроек может ввести в ступор новичка. Именно для быстрого обнаружения необходимого содержимого и было добавлено поле поиска. Как только вы начинаете набирать название искомого элемента, Visual Studio сразу прдставит результаты, один из которых точно подойдет для решения задачи пользователя. Если же будет необходимо установить какие либо дополнительные функциональные возможности (такие как поддержка дополнительных языков программирования), поле поиска предложит варианты, которые откроют Visual Studio Installer для устанвки рабочей среды или дополнительного самостоятельного компонента.
  6. Live Share. Данная функция дает пользователю возможность совместного редактирования исходного кода с группой разработчиков, даже если вы находитесь в разных странах. Каждый из них сможет быстро и защищенно поделиться проектом, а так же сеансами отладки, экземплярами терминалов, веб-приложениями.
  7. Иерархия вызовов. В данном элементы отображаются методы, которые вызывают выбранный метод. Это очень полезно в том случае, если вы собрались изменить (удалить) метод, а так же когда хотите отследить ошибку, когда нет видимых причин ее возникновения.
  8. CodeLens. Данная функция позволяет обнаружить ссылки на код, его изменения, ошибки обладающие взаимосвязью, рабочие элементы, проверки кода, а так же тесты модулей. Самое удобное в этом это возможность в ходе всех манипуляций не выходить из редактора кода.
  9. Перейти к определению. Данная функция позволяет мгновенно перейти непосредственно к тому месту, где определена процедура, функция или тип данных.

Интегрированная среда разработки Qt Creator

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

Формирование проекта позволит пользователю совершать следующие действия:

  1. Группировать все файлы и элементы вместе;
  2. Дополнять уже имеющиеся шаги сборки своими;
  3. Включить элементы и формы ресурсов;
  4. Сформировать начальные настройки для запускаемых приложений.

Пользователь может начать создавать свой проект с пустого файла, а также имеет возможность импортировать существующий проект. Среда сама сгенерирует все нужные файлы, в соответствии с видом разрабатываемого проекта. К примеру, если пользователь хочет создать приложением с визуальным интерфейсом пользователя, то Qt Creator создаст пустой .ui файл, который в дальнейшем будет доступен для изменения во встроенном Qt Designer.

Кроме того рассматриваемая среда интегрирована с кроссплатформенными средствами автоматизированными системами сборки: qmake и CMake. Пользователь может импортировать уже созданные проекты, которые не использовали при сборке qmake и CMake, указать Qt Creator, который проигнорирует использовавшуюся до этого систему сборки.

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

Так как рассматриваемая среда относится к ИСР, то Qt Creator имеет существенные отличия от всем привычного текстового редактора (такого как Word), которые заключаются прежде всего в том, что система может автоматизировано собрать и запустить приложение. Она воспринимает языки программирования С++, а так же QML именно как программный код, а не как обычный текст. Это умение позволяет ей:

  1. Дать пользователю возможность создавать изначально хорошо форматированный код;
  2. На основе созданного раньше кода предполагать дальнейшие действия пользователя и автоматизировано дополнять код;
  3. В режиме реального времени отображать данные об ошибках и предупреждения;
  4. Дать пользователю возможность быстро перемещаться между классами, функциями и символами;
  5. Предоставлять пользователю справку по классам, функциям и символам, в зависимости от контекста в котором ее запросят;
  6. Автоматически изменять имена символов так, что другие символы с таким же именем но использующиеся в других областям не изменят своего имени;
  7. Отображать ссылку на ту позицию кода, в которой функция была использована.

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

В среде разработки пользователь сможет использовать редактор для написания исходного кода на таких языках программирования, как Qt C++, QML (язык декларативного программирования).

Пользователь имеет возможность применять QML для разработки очень гибкого интерфейса, состоящего из множества элементов QML. QML может помочь как разработчикам, так и дизайнерам объединиться для совместной работы над разработкой гибких пользовательских интерфейсов, которые будут широко распространены на таких устройствах, как смартфоны, планшетные персональные компьютеры и ноутбуки.

QML это модификация JavaScript, которая делает доступным механизм декларативной сборки структуры объектов из элементов QML. QML улучшает взаимосвязь между JavaScript и и уже созданной системой Qt, основанной на QObject, дополняет ее поддержкой автоматического группирования свойств и способствует сетевой открытости на уровне языка.

Qt Creator обеспечивает помщь для сборки и запуска программных продуктов, созданных на Qt для настольных компьютеров (под управлением ОС Windows, Linux и Mac OS) и мобильных устройств (под управлением мобильных ОС Symbian, Android и iOS). Настройки сборки позволят пользователю быстро переключаться между целями сборки.

При сборке приложения, разработанного для мобильного устройства (смартфона), подключённого к компьютеру пользователя, Qt Creator самостоятельно создает «пакет» установки, выполняет его установку на устройстве и сразу же включает.

Qt Creator поставляется с предустановленным набором инструментов, включающим в себя системы управления версиями и эмулятор Qt.

Отличным вариантом для создания проекта считается использование системы управления версиями. Для получения доступа к пользовательским хранилищам Qt Creator применяет консольные клиенты систем управления версиями. Существуют следующие системы:

  1. Git
  2. Subversion
  3. Perforce
  4. CVS
  5. Mercurial

Открытые для использования пользователем возможности в Qt Creator зависят от системы управления версиями. Минимальный набор функций открыт для всех поддерживаемых систем. Набор включает сравнение элементов с последней версией, расположенной в хранилище, и отображение разницы, просмотр истории версий и подробностей изменений, аннотацию файлов, а так же принятие либо отмену изменений.

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

Qt Creator имеет возможность помочь пользователю с отладкой его приложений. Среда применяет интерфейсы к GNU Symbolic Debugger (gdb) и Microsoft Console Debugger (CDB) для отладки обычных приложений на C++ и свой собственный отладчики для Java Script. Это дает возможность подключать смартфоны к компьютеру и отлаживать используемые на них программы.

Сравнение сред Qt Creator и Visual Studio

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

Общей чертой данных ИСР можно считать то, что как в Qt, так и в Windows Runtime все построено на классах. Но как только пользователь начнет создавать свой код и использовать какие-то библиотеки, сразу становится понятно, что есть одно огромное и немаловажное именно для интегрированных сред разработки отличие – большая часть разработки построена на создании либо вызове асинхронных функций. Если пользователь ранее не сталкивался с этим, то в любом случае ему придется обратиться к литературе и почитать сопроводительную документацию (в том случае, если пользователь только начинает путь разработчика, то это даже полезно, так как поможет разобраться в асинхронном программировании).

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

Кроме того стоит отметить то, что через WinRT достаточно просто сохранять и получать настройки приложения – крайне удобно по сравнению с Qt. К тому же, все сохраненные надстройки будут доступны с любого вашего устройства, что очень удобно при сетевых разработках.

Qt — очень крупная разработка, имеющая много сильных сторон, но при работе с ней не ощущается той интуитивности и программной поддержки, которой буквально обволакивает пользователя Visual Studio с C++/CX. Удобная среда, элементарность параллельных вычислений, имеющая даже в минимальном наборе новые стандарты C++ (включая некоторые возможности еще не вышедшего C++17).

Лично мое мнение заключается в следующем: Qt сильно проигрывает Visual Studio; а учитывая активную поддержку корпорацией Microsoft своей среды, то она навсегда останется неоспоримым лидером. Уже в наше время нет никаких плюсов при написании программного обеспечения на C++/Qt, так как Visual Studio предоставляет огромный набор возможностей для разработки кроссплатформенных программных продуктов.

Возможные варианты развития интегрированных сред программирования.

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

Единственным отличием, ожидаемым в ближайшей перспективе разработки можно считать стремление создателей ИСР не разрабатывать новые функции, а сделать свою среду доступной в «облачном» хранилище. То есть избавить пользователей от необходимости установки среды на свой персональный компьютер, а сделать среду доступной в Web-пространстве, что в свою очередь откроет перед разработчиками огромные возможности по портабельности продукта.

В связи с быстро развивающимися сетевыми технологиями, когда все больше и больше программ получают Web версии, избавляя, тем самым, пользователя от необходимости установки ПО на свой ПК, можно сделать логичное предположение что именно выход на Web – площадку и станет следующим этапом в развитии интегрированных сред разработки. Но существует вероятность того, что создатели ИСР видят другое будущее своих разработок и оставят их узкоспециализированным программным продуктом.

Заключение

Таким образом, в рамках написания курсовой работы, мной были изучены основополагающие качества и свойства интегрированных сред разработки. Был проведен анализ существующих сред, а так же продуктов, ставших основоположниками этого направления развития инструментов разработки программного обеспечения. Можно сказать что рынок данных систем постоянно обновляется, появляются новейшие среды, созданные под какие то конкретные задачи. Именно их узконаправленность не дает возможности конкурировать с теми гигантами, которые были рассмотрены в моей работе.

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

Список литературы

  1. Архангельский, А. Я. Программирование в Delphi для Windows. Версии 2006, 2007, Turbo Delphi (+ CD-ROM) / А.Я. Архангельский. - М.: Бином-Пресс, 2017. - 538 c.
  2. Архангельский, А. Я. Программирование в Delphi. Учебник по классическим версиям Delphi (+ CD-ROM) / А.Я. Архангельский. - М.: Бином-Пресс, 2015. - 694 c.
  3. Архангельский, А. Я. Программирование в Delphi. Учебник по классическим версиям Delphi (+ дискета) / А.Я. Архангельский. - М.: Бином-Пресс, 2014. - 125 c.
  4. Бобровский, Сергей Технологии Delphi 2006. Новые возможности / Сергей Бобровский. - М.: Питер, 2013. - 288 c.
  5. М. Саммерфилд «Qt. Профессиональное программирование. Разработка кроссплатформенных приложений на С++», Символ-Плюс, 2011
  6. Ж. Бланшет, М. Саммерфилд «QT 4: программирование GUI на С++», КУДИЦ-Пресс, 2008
  7. М. Шлее «Qt 5.3. Профессиональное программирование на C++»,  БХВ-Петербург, 2015
  8. Andrew, Moore Visual Studio® 2010 All–in–One For Dummies® / Andrew Moore. - Москва: Гостехиздат, 2015. - 162 c.
  9. Joydip, Kanjilal Visual Studio 2010 and .NET 4 Six–in–One / Joydip Kanjilal. - Москва: Мир2014. - 428 c.
  10. Nick, Randolph Professional Visual Studio® 2008 / Nick Randolph. - Москва: ИЛ2016. - 227 c.
  11. Алекс, Макки Введение в .NET 4.0 и Visual Studio 2010 для профессионалов / Макки Алекс. - М.: Диалектика / Вильямс, 2015. - 216 c.
  12. Биллиг, В.А. Основы объектного программирования на C# (C# 3.0, Visual Studio 2008) / В.А. Биллиг. - М.: Бином. Лаборатория знаний, 2015.- 195 c.