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

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

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

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

Добавлен: 05.04.2023

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

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

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

1. Введение

Интегри́рованная среда́ разрабо́тки, ИСР (англ. IDE, Integrated development environment или integrated debugging environment) — система программных средств, используемая программистами для разработки программного обеспечения (ПО).

Обычно среда разработки включает в себя:

  • текстовый редактор
  • компилятор и/или интерпретатор
  • средства автоматизации сборки
  • отладчик.

Иногда содержит также средства для интеграции с системами управления версиями и разнообразные инструменты для упрощения конструирования графического интерфейса пользователя. Многие современные среды разработки также включают браузер классов, инспектор объектов и диаграмму иерархии классов — для использования при объектно-ориентированной разработке ПО. Хотя, и существуют среды разработки, предназначенные для нескольких языков программирования — такие, как Eclipse, NetBeans, Embarcadero RAD Studio, Qt Creator или Microsoft Visual Studio, обычно среда разработки предназначается для одного определённого языка программирования - как, например, Visual Basic, Delphi, Dev-C++.

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


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

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

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

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


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


Работа в интегрированной среде дает программисту:

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

2. История создания первых IDE


Изменялся способ общения программиста с ЭВМ. Первые компьютеры вообще не имели базового программного обеспечения. Программа могла вводиться вручную с пульта, а впоследствии с помощью перфолент и перфокарт. Первые терминалы с электронно-лучевыми трубками (дисплеями) были предназначены не для программистов, а для операторов ЭВМ. Программисты работали с ЭВМ опосредовано, сдавая на вычислительный центр колоды перфокарт. Начало 70-х годов – время массового перехода на языки программирования, появление операционных систем первого поколения. По мере возрастания мощности ЭВМ стал возможным коллективный доступ к ее ресурсам, и дисплей стал инструментом программиста.
Первые IDE были созданы для работы через консоль или терминал, которые сами по себе были новинкой.
Dartmouth BASIC был первым языком, который был создан с IDE, и был также первым, который был разработан для использования в консоли или терминале. Эта IDE управлялась при помощи команд, поэтому существенно отличалась от более поздних, управляемых с помощью меню и горячих клавиш, и тем более графических IDE, распространённых в XXI веке. Однако она позволяла редактировать исходный код, управлять файлами, компилировать, отлаживать и выполнять программы способом, принципиально подобным современным IDE.
Maestro I — продукт от Softlab Munich, был первой в мире интегрированной средой разработки для программного обеспечения в 1975 г. и, возможно, мировым лидером в этой рыночной нише в течение 1970-х и 1980-х годов. Он был установлен у 22000 программистов во всем мире. До1989 года 6000 копий было установлено в Федеративной Республике Германия. Ныне Maestro I принадлежит истории и может быть найден разве что в Музее Информационной технологии в Арлингтоне.
Последующее развитие средств разработки связано с распространением развитых средств графического интерфейса пользователя. В состав средств разработки ПО сначала были включены библиотеки, поддерживающие развитый графический интерфейс пользователя и взаимодействие с функциями API* операционных систем.
Позже были созданы среды быстрого проектирования, в которых программирование заменяется проектированием. В проектируемое окно готовые визуальные компоненты перетаскиваются с помощью мыши, затем свойства и поведение компонентов настраивается с помощью редактора. Исходный текст программы, ответственный за работу этих элементов, генерируется автоматически. Этот подход называется визуальным программированием.
Несмотря на развитие способов общения с ЭВМ для программиста неизменным оставался основной цикл разработки и отладки программ: редактирование программы – компиляция – сборка – выполнение программы – анализ ошибок – редактирование.
Этот цикл всегда надо иметь в виду при оценке эффективности программной среды.


3. Современные IDE


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

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

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

Диаграмма иерархии классов – используется при объектно-ориентированной разработке ПО


Большинство современных IDE предназначены для разработки программ на нескольких языках программирования одновременно, это применяется в подобных IDE – «Eclipse», «NetBeans»,«IntelliJ IDEA», «Qt Creator» или «Microsoft Visual Studio».
Но обычно IDE предназначается для одного определённого языка программирования - как, например, «Visual Basic», «PyCharm», «Delphi», «Dev-C++».


Основные возможности современных интегрированных сред:


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

Текстовый редактор для набора и редактирования исходных текстов программ. В недавнем прошлом в отечественной традиции использовался именно термин исходный текст, впоследствии стал использоваться термин исходный код (source code);
Система поддержки сборки (build), то есть компиляции проектов из исходных кодов, включающая компилятор с исходного реализуемого языка и компоновщик (linker) объектных бинарных кодов в единый исполняемый код (загрузочный модуль); компоновщик используется либо штатный, входящий в состав операционной системы, либо специфичный для данной среды;
Отладчик (debugger) для отладки программ в среде с помощью типичного набора команд: установить контрольную точку остановки; остановиться в заданной процедуры (методе); визуализировать значения переменных (или, на более низком уровне, регистров и областей памяти).
Современные текстовые редакторы в интегрированных средах обеспечивают также режим автоматического завершения кода (code completion), который в них включен по умолчанию и в котором редактор среды подсказывает разработчику кода возможные и синтаксически правильные его продолжения - например, отсутствие закрывающей скобки, отсутствие точки с запятой; возможные варианты имен методов при вызове метода от объекта какого-либо определенного класса, и т.д.
В современных версиях интегрированных сред появились также следующие возможности (компоненты):
Профилировщик (profiler) - инструмент для накопления и анализа статистических данных, полученных в результате исполнения программы под управлением интегрированной среды: число вызовов процедур(методов), объем памяти, используемой при выполнении программы, и т.д.
Рефакторинг (refactoring) - инструментарий систематических групповых модификаций программ в среде, без принципиальных изменений их функциональности, с целью улучшения кода. К типичным подобным действиям относится, например, изменение имени метода в его определении и во всех использованиях, добавление его аргумента, добавление try/catch - блока для обработки ранее не учтенного исключения и т.п.
Генератор тестов (unit test generator) - инструмент для генерации типовых тестов для тестирования модулей - методов или процедур - с различными возможными сочетаниями значений аргументов; типичные примеры - инструмент JUnit в интегрированных Java-средах и аналогичный инструмент NUnit в среде Visual Studio.
Система управления версиями исходных кодов (source code control system) - инструмент интеграции среды с одной из существующих версионных систем (GIT, CVS, RCS, Mercurial, Visual SourceSafe и др.) - поддержка управления версиями файлов исходных кодов проектов в среде при сопровождении программ.

Инструменты поддержки командной разработки программ (teamwork) - этапов жизненного цикла программы (требования и спецификации, проектирование, реализация, тестирование), распределения заданий по разработке среди участников команды программистов, контроля выполнения заданий менеджером проекта. В среде Visual Studio такой компонент называлася сначала Team Foundation Server (TFS), а, начиная с версии Visual Studio 2013, она реализована в виде облачного интерфейса и получила название Visual Studio Online.
Инструменты анализа кода (code analysis) - анализ программного обеспечения, производимый (в отличие от динамического анализа) без реального выполнения исследуемых программ. В большинстве случаев анализ производится над какой-либо версией исходного кода, хотя иногда анализу подвергается какой-нибудь вид объектного кода. Термин обычно применяют к анализу, производимому специальным программным обеспечением(ПО), тогда как ручной анализ называют «program understanding», «program comprehension» (пониманием или постижением программы).



В зависимости от используемого инструмента глубина анализа может варьироваться от определения поведения отдельных операторов до анализа, включающего весь имеющийся исходный код. Способы использования полученной в ходе анализа информации также различны — от выявления мест, возможно содержащих ошибки до формальных методов, позволяющих математически доказать какие-либо свойства программы.
В последнее время статический анализ всё больше используется в верификации свойств ПО, используемого в компьютерных системах высокой надёжности, особенно критичных для жизни). Также применяется для поиска кода, потенциально содержащего уязвимости (иногда это применение называется Static Application Security Testing, SAST).


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


1. ПО для медицинских устройств.
2. ПО для атомных станций и систем защиты реактора
3. ПО для авиации (в комбинации с динамическим анализом)
4. ПО на автомобильном или железнодорожном транспорте


Инструменты "запутывания" кода (obfuscation), выполняющие именно с этой целью замену имен элементов кода - классов, методов, полей и т.д. на непонятные, "случайные", "запутанные" имена, с целью затруднения изучения декомпилированного бинарного кода, для защиты от "взлома" кода злоумышленниками, которые хотят несанкционированным образом присвоить себе новые идеи, содержащиеся в коде, либо изучить его со злонамеренными целями организации атак. Например, в среде Visual Studio имеется "штатный" обфускатор - DotFuscator.


Поддержка создания различных видов программных проектов (projects) и решений (solutions) на основе типовых шаблонов кода (code patterns); механизм разработки расширений (plug-ins, add-ins, add-ons). При современной разработке программ подчастребуется создавать очень сильно отличающиеся друг от друга разновидности приложений и инструментов - консольные (простейшие) приложения, Web-приложения и Web-сервисы, мобильные приложения, облачные приложения и др. Для каждой из этих разновидностей требуется разработка специфической структуры файлов исходного кода, а также конфигурационных файлов (configuration files), специфицирующих, например, полномочия безопасности кода, Web-конфигурации и др. Современные интегрированные среды автоматизируют создание различного рода проектов, предоставляя шаблоны исходного кода и генерируя автоматически необходимые для проекта конфигурационные файлы.

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

Поддержка моделирования структуры программ на языке моделирования UML* (Unified Modeling Language). Современная версия языка UML (2.x) обеспечивает построение моделей различного рода программ и соответствующих этим моделям диаграмм. Кроме того, UML поддерживает разработку моделей деятельности при разработке программ и взаимодействия разработчиков между собой (activity diagrams). Современные интегрированные среды поддерживают испрользование языка UML в двух направлениях: генерация модели и соответствующей диаграммы по исходному коду и, наоборот, генерация (шаблона) исходного кода по разработанной модели.



3.1. Среда программирования для Java

Для разработки на языке Java существует большое количество интегрированных сред разработки. Примером являются:

1. Eclipse.

2. netbeans.

3. IntelliJ IDEA.

4. Jcreator.

Eclipse – один из лучших инструментов Java, созданных за последние годы. SDK Eclipse представляет собой интегрированную среду разработки (IDE, Integrated Development Environment) с открытым исходным кодом. Среда разработки Eclipse является модульной средой разработки на основе программного ядра и интерфейсов для написания и подключения дополнительных модулей (плагинов, plugin). Таким образом, среда Eclipse может быть использована не только для написания приложений на языке Java, но также и для других целей, в зависимости от установленных плагинов.

Основные инструментальные средства Eclipse Java включают в себя: редактор исходного кода (создание и редактирование исходного текста программ), средства отладки и интеграции с Ant.

При первоначальном знакомстве со средой IDE Eclipse она может показаться несколько сложной для неподготовленного пользователя. Для того чтобы понять основы работы с системой, нужно уяснить себе основные концепции среды: рабочее пространство, инструменты, компоновки, редакторы и представления.

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

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

К инструментам (workbench) относится набор соответствующих редакторов и представлений, размещенных в рабочей области Eclipse (рисунок 6). Для конкретной задачи определенный набор редакторов и представлений называют перспективой или компоновкой.

Компоновка (perspective) – это набор представлений и редакторов, расположенных в том порядке, который вам требуется. В каждой компоновке присутствует свой набор инструментов, некоторые компоновки могут иметь общие наборы инструментов. В определенный момент времени активной может быть только одна компоновка.

Используя компоновки, вы можете настроить свое рабочее пространство под определенный тип выполняемой задачи. В пособии будут использоваться компоновки, связанные в основном с программированием на Java, такие, как: Debug, Java Browsing, Java.