Файл: Интегрированные среды разработки программ (Определение и значение интегрированной среды разработки).pdf
Добавлен: 30.03.2023
Просмотров: 596
Скачиваний: 2
Когда пользователь такой системы выполняет обычные действия, такие, как извлечение определённой версии документа, создание новой версии и тому подобное, он работает со своей локальной копией хранилища. По мере внесения изменений хранилища, принадлежащие разным разработчикам, начинают различаться, и возникает необходимость в их синхронизации. Такая синхронизация может осуществляться с помощью обмена патчами или так называемыми наборами изменений (англ. change sets) между пользователями.
Основное преимущество распределённых систем заключается в их гибкости. Каждый разработчик может вести работу независимо, так, как ему удобно, сохраняя промежуточные варианты документов и передавая результаты другим участникам, когда посчитает нужным. При этом обмен наборами изменений может осуществляться по различным схемам. В небольших коллективах участники работы могут обмениваться изменениями по принципу «каждый с каждым», за счет чего отпадает необходимость в создании выделенного сервера. Крупное сообщество, наоборот, может использовать централизованный сервер, с которым синхронизируются копии всех его участников. Возможны и более сложные варианты, например, с созданием групп для работы по отдельным направлениям внутри более крупного проекта.
Для использования систем управления версиями необходимо владеть терминологией этих систем. Общепринятой терминологии не существует, в разных системах могут использоваться различные названия для одних и тех же действий.
Ниже приведены некоторые, наиболее часто используемые варианты. В связи с тем, что системы разрабатывались англоязычным сообществом, а русскоязычная терминология ещё на выработана, используются английские термины.
Branch (ветвь) – направление разработки, независимое от других. Ветвь представляет собой копию части (как правило, одного каталога) хранилища, в которую можно вносить свои изменения, не влияющие на другие ветви. Документы в разных ветвях имеют одинаковую историю до точки ветвления и разные – после неё.
Check-in, commit, submit – создание новой версии, публикация изменений. Распространение изменений, сделанных в рабочей копии, на хранилище документов. При этом в хранилище создаётся новая версия изменённых документов.
Check-out, clone – извлечение документа из хранилища и создание рабочей копии.
Conflict – конфликтная ситуация, когда несколько пользователей сделали изменения одного и того же участка документа. Конфликт обнаруживается в случае, когда один пользователь уже опубликовал свои изменения, а второй только пытается их опубликовать и система сама не может корректно слить конфликтующие изменения. Поскольку программа может быть недостаточно разумна для того, чтобы определить, какое изменение является «корректным», второму пользователю нужно самому разрешить конфликт (resolve).
Merge, integration (слияние) - объединение независимых изменений в единую версию документа. Осуществляется, когда два человека изменили один и тот же файл или при переносе изменений из одной ветки в другую.
Repository (хранилище документов) - место, где система управления версиями хранит все документы вместе с историей их изменения и другой служебной информацией.
Revision (версия документа). Системы управления версиями различают версии по номерам, которые назначаются автоматически.
Tag, label (метка) – которую можно присвоить определённой версии документа. Метка представляет собой символическое имя для группы документов, причём описывает она не только набор имён файлов, но и ревизию каждого файла. Ревизии включённых в метку документов могут принадлежать разным моментам времени.
Trunk, mainline (ствол) – основная ветвь разработки проекта. Политика работы со стволом может отличаться от проекта к проекту, но в целом она такова: большинство изменений вносится в ствол; если требуется серьёзное изменение, способное привести к нестабильности, создаётся ветвь, которая сливается со стволом, когда нововведение будет в достаточной мере испытано; перед выпуском очередной версии создаётся «релизная» ветвь, в которую вносятся только исправления.
Update, sync (обновление, синхронизация) – синхронизация рабочей копии до некоторого заданного состояния хранилища. Чаще всего это действие означает обновление рабочей копии до самого свежего состояния хранилища. Однако при необходимости можно синхронизировать рабочую копию и к более старому состоянию, чем текущее.
Working copy (рабочая копия) – рабочая (локальная) копия документов.
Рассмотрим возможности ИСР на примере наиболее доступных и популярных версий.
Eclipse (от англ. затмение) – свободная интегрированная среда разработки модульных кроссплатформенных приложений (рисунок 1). Развивается и поддерживается некоммерческой организацией Eclipse Foundation (http://www.eclipse.org/).
Первоначально Eclipse разрабатывалась фирмой «IBM» в качестве корпоративного стандарта ИСР для разработки на разных языках под платформы от данной компании. По сведениям «IBM», проектирование и разработка стоили 40 млн. долл. Исходный код был полностью открыт и сделан доступным после того, как Eclipse был передан для дальнейшего развития независимому от «IBM» сообществу.
В основе Эклипс лежат фреймворк OSGi и SWT/JFace, на основе которых разработан следующий слой – RCP (Rich Client Platform, платформа для разработки полноценных клиентских приложений). RCP служит основой не только для Эклипс, но и для других RCP-приложений, например, Azureus и File Arranger. Следующий слой – сам Эклипс, представляющий собой набор расширений RCP: редакторы, панели, перспективы, модуль CVS и модуль Java Development Tools (JDT).
Эклипс – в первую очередь, полноценная Java ИСР, нацеленная на групповую разработку: поддержка CVS входит в поставку Эклипс, активно развиваются несколько вариантов SVN-модулей, существует поддержка VSS и других. В силу бесплатности и высокого качества, Эклипс во многих организациях является корпоративным стандартом для разработки приложений.
Второе назначение Эклипс – служить платформой для разработки новых расширений, чем он и завоевал популярность: любой разработчик может расширить Эклипс своими модулями. Уже существуют C/C++ Development Tools (CDT), разрабатываемые инженерами QNX совместно с «IBM», и средства для языков COBOL, FORTRAN, PHP и прочие от различных разработчиков. Множество расширений дополняет среду Эклипс менеджерами для работы с базами данных, серверами приложений и др.
Рисунок 1. Интерфейс главного окна Эклипс
Эклипс написана на Java, потому является платформо-независимым продуктом, за исключением библиотеки SWT, которая разрабатывается для всех распространённых платформ. Библиотека SWT используется вместо стандартной для Java библиотеки Swing. Она полностью опирается на нижележащую платформу (операционную систему), что обеспечивает быстроту и натуральный внешний вид пользовательского интерфейса, но иногда вызывает на разных платформах проблемы совместимости и устойчивости приложений.
Основой Eclipse является платформа расширенного клиента (RCP - от англ. rich client platform). Её компоненты:
- ядро платформы (загрузка Eclipse, запуск модулей);
- OSGi (стандартная среда поставки комплектов (англ. bundles));
- SWT (портируемый инструментарий виджетов);
- JFace (файловые буферы, работа с текстом, текстовые редакторы);
- рабочая среда Эклипс (панели, редакторы, проекции, мастеры).[7]
Другой популярной свободной ИСР является КДевелоп (http://www.kdevelop.org, рис. 2). КДевелоп (англ. KDevelop) - свободная среда разработки программного обеспечения для UNIX-подобных операционных систем. Проект стартовал в 1998 году. КДевелоп распространяется согласно лицензии GNU (General Public License).
Рисунок 2. Интерфейс KDevelop
KDevelop не включает в свой состав компилятор, вместо этого он использует любой компилятор для создания исполняемого кода.
Текущая стабильная версия поддерживает большое количество языков программирования, таких как Ада, Bash, C, C++, Фортран, Java, Pascal, Perl, PHP, Python, Ruby и SQL.
КДевелоп использует встроенный компонент – текстовый редактор – через технологию KParts. Основным редактором является Kate.
Функции КДевелоп:
- подсветка исходного кода с учетом синтаксиса используемого языка программирования, который определяется автоматически;
- менеджер проектов для проектов разного типа, таких как Automake, qmake для проектов базирующихся на технологиях Qt и Ant для проектов, базирующихся на Java;
- навигатор классов (Class Browser);
- Front-end для GNU Compiler Collection;
- Front-end для GNU Debugger;
- помощников для генерации и обновления определения классов и платформы (framework);
- автоматическая система завершения кода (Си/C++);
- встроенная поддержка системы документирования исходных кодов (Doxygen);
- одна из систем контроля версий: SCM, CVS, Subversion, Perforce и ClearCase;
- функция Quick Open позволяющая быстро перемещаться по файлам.
KDevelop представляет собой «подключаемую» архитектуру. Когда разработчик делает изменения, он должен лишь скомпилировать плагин. Предусмотрена возможность сохранения профилей, указывающих какие плагины должны быть загружены. KDevelop не поставляется со встроенным текстовым редактором, он подключается как плагин. KDevelop не зависит от языка программирования и от платформы, на которой он запускается, поддерживая KDE, GNOME и много других технологий (например, Qt, GTK+ и wxWidgets).
Встроенный отладчик KDevelop позволяет работать графически со всеми средствами отладки, такими как точки останова и трассировки. Он также может работать с динамически подгружаемыми плагинами, в отличие от консольного gdb.[8]
На данный момент существует примерно от 50 до 100 плагинов для данной IDE. Среди наиболее полезных – persistent project-wide code bookmarks, Code abbreviations, позволяющие быстро разворачивать текст, Source formatter, который переформатирует текст для style guide до сохранения, поиск по регулярным выражениям и project-wide поиск/замена.
Последней рассматриваемой ИСР является Microsoft Visual Studio (Microsoft Visual Studio, рис. 3). По сути, Microsoft Visual Studio является линейкой продуктов компании «Майкрософт», включающих интегрированную среду разработки программного обеспечения и ряд других инструментальных средств.
Рисунок 3. Интерфейс Microsoft Visual Studio
Microsoft Visual Studio включает один или несколько компонентов из следующих: Visual Basic.NET, Visual C++, Visual C#, Visual F#, Microsoft SQL Server, Visual InterDev, Visual J++, Visual J#, Visual FoxPro, Visual Source Safe.
Одним из главных преимуществ Майкрософт Визуал Студия является высокое качество документирования процесса разработки и описания возможных проблем в MSDN Library. Однако наиболее интересная для профессионала часть, посвящённая тонкостям разработки, существует только на английском языке.[9]
Заключение
В современном мире уже не один человек, попробовавший блага цивилизации, не может представить свою жизнь без использования компьютерной техники. Ее использование происходит в любой сфере человеческой жизнедеятельности: производстве, торговле, обучении, развлечении и общении людей, их научной и культурной деятельности. Все это благодаря возможности подбора компьютерной техники для решения любой, даже самой сложной задачи.
Однако и универсальность и специализированность компьютерной техники обеспечивается использованием на базе практически любой ЭВМ различного набора программного обеспечения, обеспечивающих решение любых поставленных задач.
Компьютер – это устройство, не способное мыслить самостоятельно, как человек. Для того, чтобы компьютер мог работать с информацией – получать ее, хранить, передавать, обрабатывать – его необходимо научить выполнять все эти действия. Научить – значит построить работу компьютера по инструкции, в которой указано, что надо делать. Такая инструкция должна содержать строгую последовательность команд на языке, понятном компьютеру, т.е. сообщать ему, как надо обрабатывать данные для получения желаемого результата. Такая инструкция называется программой. Компьютер без программ – это груда железа. И только программы делают его нашим помощником, другом и советчиком.[10]
Самые первые программы разрабатывались на машинном языке, где слова этого языка представляют собой последовательность нулей и единиц, и не все люди могли заниматься их разработкой, а только профессиональные программисты.
В 60-е годы началась разработка языков программирования высокого уровня, которые позволили существенно облегчить работу программистов, и создание программ стало доступно даже для начинающих пользователей компьютера.
Программа – это последовательность команд, которую выполняет компьютер в процессе обработки информации. Все мы видим огромное многообразие компьютерных программ и ошеломляющие темпы их роста и совершенствования, и лишь малая часть из нас представляет невидимую сторону по их проектированию, разработке и созданию. Однако данная сфера компьютерных технологий является на наш взгляд наиболее важной, так как именно от ее развития будет зависеть бедующее компьютерных технологий.
Любая программа значительно облегчает работу пользователя, экономит время и помогает при разработке других программ . А так как разработка любой компьютерной программы, обеспечивающей организацию процесса разработки ПО, происходит с использованием программных средств, то в нашей курсовой работе мы подробно остановиться именно на системе, выделив ее из всего программного обеспечения и раскрыв сущность и особенности всех составляющих.