Файл: Интегрированные среды разработки программ (Понятие интегрированной среды разработки).pdf
Добавлен: 30.03.2023
Просмотров: 205
Скачиваний: 2
СОДЕРЖАНИЕ
Глава 1. Интегрированная среда разработки программ
1.1 Понятие интегрированной среды разработки
1.2 Основные возможности интегрированных сред разработки
1.3 Этапы выполнения программы в интегрированной среде разработки
Глава 2. Интегрированная среда разработки приложений Delphi
2.1 Интегрированная среда разработчика
ВВЕДЕНИЕ
Интегрированная среда разработки программ предназначена для быстрого создания прикладного программного обеспечения для различных операционных систем. Благодаря этому позволяет достаточно низкоуровнево взаимодействовать с операционной системой, а также с библиотеками, написанными на языке программирования. Выделение и освобождение памяти контролируется в основном пользовательским кодом, что, с одной стороны, ужесточает требования к качеству кода, а с другой - делает возможным создание сложных приложений, с высокими требованиями к работе в реальном времени.
Среда разработки позволяет управлять не только процессом кодирования приложения, но и берет на себя функции управления процессом компоновки и отладки приложения.
Основные функциональные возможности существенно увеличивают скорость разработки программ, что особенно актуально для такого трудоемкого процесса.
Целью данной курсовой работы является изучение понятия и возможностей интегрированных сред разработки программ.
Объектом исследования данной работы является интегрированная среда разработки данных.
Предметом исследования данной работы являются основные возможности и этапы создания программ в интегрированной среде.
Задачами курсовой работы являются:
изучение теоретических основ интегрированной среды разработки программ;
рассмотрение с практической точки зрения интегрированной среды разработки Delphi.
Глава 1. Интегрированная среда разработки программ
1.1 Понятие интегрированной среды разработки
Интегрированная среда разработки (англ. IDE, Integrated Development Environment или Integrated Debugging Environment) – совокупность программных средств и инструментов, которая позволяет программистам разрабатывать качественное программное обеспечение (ПО), поддерживая при этом все этапы реализации программного продукта, начиная от написания исходного кода, компиляцией, сборкой и отладкой, и заканчивая удобным взаимодействием с другим инструментарием программиста.
До появления первых IDE специалисты тратили много времени на разработку самых простых и тривиальных программ, по причине отсутствия качественного софта на тот момент. Первым был Maestro I – немецкий программный продукт от компании Softlab Munich, который вышел в свет в 1975 году и занимал лидирующие позиции в 70-80-ых годах прошлого столетия. В те времена это было настоящим прорывом, этот комплекс был установлен на компьютерах у 22000 программистов. Первой IDE с поддержкой плагинов стала Softbench.
IDE была придумана в первую очередь для того, чтобы в разы ускорить и автоматизировать процесс разработки программного обеспечения.
Использование интегрированной среды - один из возможных подходов к разработке программ. Альтернативой ему является более ранний, традиционный подход системы UNIX, основанный на использовании набора инструментов, родственных по тематике и функциональности, но не объединенных в одну интегрированную интерактивную среду и подчас вызываемых в режиме командной строки (command line interface) [1].
Использование интегрированной среды значительно сокращает время создания программы для разработчика, чем и объясняется бурное развитие и разнообразие интегрированных сред, начиная с 1980-х годов.
Одной из первых интегрированных сред стала среда Turbo Pascal фирмы Borland, руководителем разработки которой в середине 1980-х гг. стал Филипп Кан.
Идея интегрированных сред достигла еще большего развития к середине 1980-х гг., когда появились две группы популярных интегрированных сред:
- Турбо-среды (Turbo Pascal, Turbo C, Turbo C++, Delphi и др.) фирмы Borland для поддержки программирования на этих языках, реализованные сначала для операционной системы MS DOS, затем - для ОС Windows;
- GNU Emacs - многоязыковая и многоплатформная интегрированная среда разработки, реализованная для MS DOS, затем для Windows, OpenVMS и для Linux.
Следует также указать интегрированную среду тех лет для разработки программ на объектно-ориентированном языке Smalltalk фирмы Xeror PARC - одну из первых интегрированных сред ООП, в которой впервые появилось понятие байт-кода как бинарной постфиксной формы промежуточного представления программы и понятие just-in-time (JIT, динамического) компилятора, выполняющего при первом вызове метода его компиляцию в платформно-зависимый код целевого компьютера.
Турбо-среды фирмы Borland оказали огромное влияние на разработчиков ПО и создателей инструментов разработки ПО. Их характерной чертой стала поддержка непрерывного цикла разработки: набор и редактирование исходного текста - компиляция - анализ и исправление ошибок - завершение компиляции - исполнение и отладка - без выхода из интегрированной среды, причем все эти этапы управлялись простым набором функциональных клавиш и не требовали явного вызова каких-либо отдельных инструментов. Привлекательным качеством Турбо-сред стала также высокая скорость компиляции. Хотя в первых версиях Турбо-Паскаля компиляция осуществлялась до первой ошибки, и для поиска и диагностики всех ошибок приходилось, после исправления предыдущей, запускать компиляцию снова, но это выполнялось мгновенно с помощью функциональных клавиш [5].
Турбо-среды имели встроенный механизм сборки (build) для полной компиляции всех исходных текстов проекта в бинарный код, а также режим make, аналогичный функциональности классической утилиты make системы UNIX, для повторной компиляции только измененных модулей исходного текста.
Самым важным нововведением в среде Турбо-Паскаль было расширение входного языка объектно-ориентированными концепциями (класс, объект) и конструкцией unit (модуль), воплощающей в себе идею независимой единицы компиляции (compilation unit). Поддержка ООП появилась в версии 5.5. Впоследствии эти идеи были развиты, уже на платформе Windows, в новых версиях интегрированных сред фирмы Borland - Borland Pascal и Delphi (язык программирования фирмы Borland, развивающий идеи Паскаля в сочетании с ООП).
IDE позволяют избежать большого объема однообразных действий и тем самым существенно повысить эффективность процесса разработки и отладки позволяют, то есть они являются RAD-средами различной степени автоматизации процесса программирования.
Работа в интегрированной среде позволяет специалисту[5]:
- использование встроенного многофайлового текстового редактора, специально ориентированного на работу с исходными текстами программ;
- проводить автоматическую диагностику выявленных при компиляции ошибок, когда исходный текст программы, доступный редактированию, выводится одновременно с диагностикой в многооконном режиме;
- параллельно работать над несколькими проектами. Менеджер проектов позволяет использовать любой проект в качестве шаблона для вновь создаваемого проекта;
- загрузить отлаживаемой программы в имеющиеся средства отладки, и возможность работы с ними без выхода из оболочки;
- подключаться к оболочке практически любых программных средств.
В последнее время, функции интегрированных сред разработки становятся стандартной принадлежностью программных интерфейсов эмуляторов и отладчиков-симуляторов.
1.2 Основные возможности интегрированных сред разработки
Обозначим основные возможности интегрированных сред разработки программ. Для каждой из них характерно наличие следующих компонент:
- единая интерактивная оболочка, обеспечивающая вызов всех других компонент, не выходя из среды, с широким использованием функциональных клавиш;
- текстовый редактор для набора и редактирования исходных текстов программ. В недавнем прошлом в отечественной традиции использовался именно термин исходный текст, впоследствии стал использоваться термин исходный код (source code);
- система поддержки сборки (build), то есть компиляции проектов из исходных кодов, включающая компилятор с исходного реализуемого языка и компоновщик (linker) объектных бинарных кодов в единый исполняемый код (загрузочный модуль); компоновщик используется либо штатный, входящий в состав операционной системы, либо специфичный для данной среды;
- отладчик (debugger) для отладки программ в среде с помощью типичного набора команд: установить контрольную точку остановки; остановиться в заданной процедуры (методе); визуализировать значения переменных (или, на более низком уровне, регистров и областей памяти)[7].
Современные текстовые редакторы в интегрированных средах обеспечивают также режим автоматического завершения кода (code completion), который в них включен по умолчанию и в котором редактор среды подсказывает разработчику кода возможные и синтаксически правильные его продолжения - например, отсутствие закрывающей скобки, отсутствие точки с запятой; возможные варианты имен методов при вызове метода от объекта какого-либо определенного класса, и т.д.
В современных версиях интегрированных сред появились также следующие возможности (компоненты):
- Профилировщик (profiler) - инструмент для накопления и анализа статистических данных, полученных в результате исполнения программы под управлением интегрированной среды: число вызовов процедур (методов), объем памяти, используемой при выполнении программы.
- Рефакторинг (refactoring) - инструментарий систематических групповых модификаций программ в среде, без принципиальных изменений их функциональности, с целью улучшения кода. К типичным подобным действиям относится, например, изменение имени метода в его определении и во всех использованиях, добавление его аргумента, добавление try/catch - блока для обработки ранее не учтенного исключения[2].
- Генератор тестов (unit test generator) - инструмент для генерации типовых тестов для тестирования модулей (units) - методов или процедур - с различными возможными сочетаниями значений аргументов.
- Система управления версиями исходных кодов (source code control system) или инструмент интеграции среды с одной из существующих версионных систем (CVS, RCS, Mercurial, Visual SourceSafe и др.) - поддержка управления версиями файлов исходных кодов проектов в среде при сопровождении программ.
- Инструменты поддержки командной разработки программ (teamwork) - этапов жизненного цикла программы (требования и спецификации, проектирование, реализация, тестирование), распределения заданий по разработке среди участников команды программистов, контроля выполнения заданий менеджером проекта.
- Инструменты анализа кода (code analysis) - его семантической корректности: отсутствие некоторых видов ошибок, обнаруживаемых обычно при исполнении, например, недостижимые условия; отсутствие необходимых проверок и полномочий безопасности и др [4].
- Инструменты визуализации сгенерированного бинарного кода - методов, переменных, их имен и т.д.
- Инструменты «запутывания» кода (obfuscation), выполняющие именно с этой целью замену имен элементов кода - классов, методов, полей и т.д. на непонятные, «случайные», «запутанные» имена, с целью затруднения изучения декомпилированного бинарного кода, для защиты от «взлома» кода злоумышленниками, которые хотят несанкционированным образом присвоить себе новые идеи, содержащиеся в коде, либо изучить его со злонамеренными целями организации атак.
- Поддержка создания различных видов программных проектов (projects) и решений (solutions) на основе типовых шаблонов кода (code patterns); механизм разработки расширений (plug-ins, add-ins, add-ons). При современной разработке программ подчас требуется создавать очень сильно отличающиеся друг от друга разновидности приложений и инструментов - консольные (простейшие) приложения, Web-приложения и Web-сервисы, мобильные приложения, облачные приложения.
1.3 Этапы выполнения программы в интегрированной среде разработки
Рассмотрим весь процесс разработки программы, от самого начала до готового собранного бинарника, который можно будет запустить вне среды разработки. Для простоты и наглядности в качестве примера обратим внимание на классические этапы выполнения программы:
- Набор и редактирование кода
- Препроцессорная обработка
- Компиляция
- Компоновка
- Загрузка
- Выполнение
Рисунок 1 – процесс разработки программы
Изучим каждый этап, который отображен на рисунке 1:
- Набор и редактирование кода. Первый этап разработки программы, который подразумевает под собой написание текста, а если быть точнее, то инструкций для компилятора. В течение этого процесса программист не только набирает непосредственно код, но при этом он активно пользуется всем функционалом, который предоставляет ему ИСК в виде умного текстового редактора. В самых продвинутых решениях все изменения сохраняются автоматически, так же сразу происходит перекомпиляция необходимых участков кода, поэтому программист может видеть не только свои синтаксические ошибки, но и логические. Разработчик также будет иметь доступ ко всему дереву проекта и сможет работать параллельно с несколькими файлами[8].
- Препроцессорная обработка. После того, как разработчик завершил писать и редактировать код, он отправляет код компилятору, но до этого момента, до того, как компиляция начнется, программа проходит через специальную предварительную препроцессорную обработку.
- Компиляция. После выполнения второго этапа код, пока что еще понятные программисту, отправляется к компилятору, где сначала проверяется на наличие синтаксических ошибок, и если их нет, то текст программы с подстановками после препроцессорной обработки преобразуется в машинный код, по-другому его еще называют объектный код, и сохраняется на диске.
Файлы на выходе имеют расширение .obj. Помимо этого в распоряжении разработчика могут быть сторонние объектные файлы, куски машинного кода, или, если по- другому их назвать, библиотеки с расширением. lib. На данном этапе они никак не состыковываются с теми файлами .obj, которые были получены после работы компилятора.