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

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

Содержание:

Введение

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

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

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

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

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

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

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

Объектом исследования данной курсовой работы выступают интегрированные программные пакеты.

Цель курсовой работы – изучить сущность интегрированных сред разработки программ и рассмотреть основные их составляющие.

1. Определение и значение интегрированной среды разработки.

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

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

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

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

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

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

Обычно IDE ориентирована на определённый язык программирования, предоставляя набор функций, который наиболее близко соответствует парадигмам этого языка программирования. Однако, есть некоторые IDE с поддержкой нескольких языков, такие как Eclipse, ActiveState Komodo, последние версии NetBeans, Microsoft Visual Studio, WinDev и Xcode.

IDE обычно представляет собой единственную программу, в которой проводилась вся разработка. Она обычно содержит много функций для создания, изменения, компилирования, развертывания и отладки программного обеспечения. Цель среды разработки заключается в том, чтобы абстрагировать конфигурацию, необходимую, чтобы объединить утилиты командной строки в одном модуле, который позволит уменьшить время, чтобы изучить язык, и повысить производительность разработчика. Также считается, что трудная интеграция задач разработки может далее повысить производительность. Например, IDE позволяет проанализировать код и тем самым обеспечить мгновенную обратную связь и уведомить о синтаксических ошибках. В то время как большинство современных IDE являются графическими, они использовались ещё до того, как появились системы управления окнами (которые реализованы в Microsoft Windows или X11 для *nix-систем). Они были основаны на тексте, используя функциональные клавиши или горячие клавиши, чтобы выполнить различные задачи (например, Turbo Pascal). Использование IDE для разработки программного обеспечения является прямой противоположностью способа, в котором используются несвязанные инструменты, такие как vi (текстовый редактор), GCC (компилятор), и т.п.

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

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

Идея интегрированных сред достигла еще большего развития к середине 1980-х гг., когда появились две группы популярных интегрированных сред:

  • Турбо-среды (Turbo Pascal, Turbo C, Turbo C++, Delphi и др.) фирмы Borland для поддержки программирования на этих языках, реализованные сначала для операционной системы MS DOS, затем - для ОС Windows;
  • GNU Emacs - многоязыковая и многоплатформная интегрированная среда разработки, реализованная для MS DOS, затем для Windows, OpenVMS и для Linux.[1]

Первые IDE были созданы для работы через консоль или терминал, которые сами по себе были новинкой.

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

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

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

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

- текстовый редактор для набора и редактирования исходных текстов программ. В недавнем прошлом в отечественной традиции использовался именно термин исходный текст, впоследствии стал использоваться термин исходный код (source code);

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

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

Современные текстовые редакторы в интегрированных средах обеспечивают также режим автоматического завершения кода (code completion), который в них включен по умолчанию и в котором редактор среды подсказывает разработчику кода возможные и синтаксически правильные его продолжения - например, отсутствие закрывающей скобки, отсутствие точки с запятой; возможные варианты имен методов при вызове метода от объекта какого-либо определенного класса, и т.д.

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

- профилировщик (profiler) - инструмент для накопления и анализа статистических данных, полученных в результате исполнения программы под управлением интегрированной среды: число вызовов процедур (методов), объем памяти, используемой при выполнении программы, и т.д.

- рефакторинг (refactoring)[2] - инструментарий систематических групповых модификаций программ в среде, без принципиальных изменений их функциональности, с целью улучшения кода. К типичным подобным действиям относится, например, изменение имени метода в его определении и во всех использованиях, добавление его аргумента, добавление try/catch - блока для обработки ранее не учтенного исключения и т.п.

- генератор тестов (unit test generator) - инструмент для генерации типовых тестов для тестирования модулей (units) - методов или процедур - с различными возможными сочетаниями значений аргументов; типичные примеры - инструмент JUnit в интегрированных Java-средах и аналогичный инструмент NUnit в среде Visual Studio

-система управления версиями исходных кодов (source code control system) или инструмент интеграции среды с одной из существующих версионных систем (CVS, RCS, Mercurial, Visual SourceSafe и др.) - поддержка управления версиями файлов исходных кодов проектов в среде при сопровождении программ

- инструменты поддержки командной разработки программ (teamwork) - этапов жизненного цикла программы (требования и спецификации, проектирование, реализация, тестирование), распределения заданий по разработке среди участников команды программистов, контроля выполнения заданий менеджером проекта. В среде Visual Studio такая компонента называлась сначала Team Foundation Server (TFS), а, начиная с версии Visual Studio 2013, она реализована в виде облачного интерфейса и получила название Visual Studio Online.

- инструменты анализа кода (code analysis) - его семантической корректности: отсутствие некоторых видов ошибок, обнаруживаемых обычно при исполнении, например, недостижимые условия; отсутствие необходимых проверок и полномочий безопасности и др.

Эти возможности соответствуют духу и принципам надежных и безопасных вычислений (trustworthy computing), сформулированным корпорацией Microsoft и последовательно воплощаемым этой фирмой в жизнь. Также в современные среды встраиваются инструменты анализа кода в терминах метрик (metrics), характеризующих его сложность, - например, цикломатическое число графа потоков управления в программе, степень сцепления (взаимосвязанности) классов и т.д.

Инструменты визуализации сгенерированного бинарного кода - методов, переменных, их имен и т.д. Например, в среде Visual Studio для этой цели имеется утилита ildasm (IL disassembler), позволяющая визуализировать единый промежуточный (бинарный) код платформы .NET - Common Intermediate Language - CIL, сгенерированный одним из компиляторов среды.

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

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

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

4. Моноязыковые и многоязыковые интегрированные среды

Первоначально интегрированные среды разрабатывались для программирования на каком-либо одном исходном языке/ Например, среда Турбо-Паскаль - для программирования на расширении языка Паскаль фирмы Borland.

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

Например, широко известная интегрированная среда NetBeans первоначально создавалась как студенческий проект Карлова университета в Праге для программирования на языке Java. В настоящее время среда NetBeans развилась в мощную многоязыковую интегрированную среду, в которой реализована компонента C / C++ development pack, обеспечивающий поддержку разработки проектов на языках C и C++.

Среда Visual Studio.NET с самого начала создавалась как многоязыковая среда. Это принципиальная установка фирмы Microsoft - дать возможность разработчикам выбрать наиболее удобный язык (или языки) для соответствующих частей разработанного проекта, а затем собрать проект из бинарных компонент (сборок - assemblies), полученных путем компиляции с соответствующих языков в единый бинарный промежуточный код CIL. Ниже мы еще раз рассмотрим подробнее эту удобную особенность Visual Studio и поддерживаемый ею набор языков.[5]

5. Система программных средств.

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

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

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

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

Понятие трансляции, компилятора и интерпретатора было дано в предыдущих лекциях.

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

Наиболее распространёнными отладчиками являются:

- GNU Debugger – отладчик программ от проекта GNU;

- IDA – дизассемблер и низкоуровневый отладчик для операционных систем семейства Windows и GNU/Linux;

- Microsoft Visual Studio – среда разработки программного обеспечения, включающая средства отладки от корпорации Microsoft;

- OllyDbg – бесплатный низкоуровневый отладчик для операционных систем семейства Windows;

- SoftICE – низкоуровневый отладчик для операционных систем семейства Windows;

- Dr. Watson – стандартный отладчик Windows, позволяет создавать дампы памяти;

- WinDbg – бесплатный  отладчик от корпорации Microsoft.

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

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

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

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

Большинство систем управления версиями используют централизованную модель, когда имеется единое хранилище документов, управляемое специальным сервером, который и выполняет большую часть функций по управлению версиями. Пользователь, работающий с документами, должен сначала получить нужную ему версию документа из хранилища; обычно создаётся локальная копия документа, так называемая «рабочая копия». Может быть получена последняя версия или любая из предыдущих, выбранная по номеру версии или дате создания, иногда и по другим признакам. После того, как в документ внесены нужные изменения, новая версия помещается в хранилище. В отличие от простого сохранения файла, предыдущая версия не стирается, а тоже остаётся в хранилище и может быть получена оттуда в любое время. Сервер может использовать дельта-компрессию – способ хранения документов, при котором сохраняются только изменения между последовательными версиями, что позволяет уменьшить объём хранимых данных.

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

Часто бывает, что над одним проектом одновременно работают несколько человек. Если два человека изменяют один и тот же файл, то один из них может случайно отменить изменения, сделанные другим. Системы управления версиями отслеживают такие конфликты и предлагают средства их решения. Большинство систем может автоматически объединить (слить) изменения, сделанные разными разработчиками. Однако такое автоматическое объединение изменений, возможно обычно только для текстовых файлов и то, только при условии, что изменялись разные (непересекающиеся) части этого файла. Такое ограничение связано с тем, что большинство систем управления версиями ориентированы на поддержку процесса разработки программного обеспечения, а исходные коды программ хранятся в текстовых файлах. Если автоматическое объединение выполнить не удалось, система может предложить решить проблему вручную.

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

Другие возможности системы управления версиями состоят:

- в создании разных вариантов одного документа-ветки, с общей историей изменений до точки ветвления и с разными – после неё.

- возможности узнать, кто и когда добавил или изменил конкретный набор строк в файле;

- ведении журнала изменений, куда пользователи могут записывать пояснения о том, что и почему они изменили в данной версии;

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

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

Когда пользователь такой системы выполняет обычные действия, такие, как извлечение определённой версии документа, создание новой версии и тому подобное, он работает со своей локальной копией хранилища. По мере внесения изменений хранилища, принадлежащие разным разработчикам, начинают различаться, и возникает необходимость в их синхронизации. Такая синхронизация может осуществляться с помощью обмена патчами или так называемыми наборами изменений (англ. 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 и прочие от различных разработчиков. Множество расширений дополняет среду Эклипс менеджерами для работы с базами данных, серверами приложений и др.

http://i65.fastpic.ru/big/2014/0826/7d/dfb3991d4c65e3103a22317cb0fbac7d.png

Рисунок 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).

https://www.ok-t.ru/studopediaru/baza14/1007742104920.files/image004.jpg

Рисунок 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 является линейкой продуктов компании «Майкрософт», включающих интегрированную среду разработки программного обеспечения и ряд других инструментальных средств.

http://i63.fastpic.ru/big/2014/0826/af/19e7aa6818b5b3150dc157d36fa7e9af.png

Рисунок 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-е годы началась разработка языков программирования высокого уровня, которые позволили существенно облегчить работу программистов, и создание программ стало доступно даже для начинающих пользователей компьютера.

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

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


 

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

Специальная литература:

1.Апдайк У, Бек К., Брант Д., Робертс Д., Фаулер М. Рефакторинг: улучшение существующего кода = Refactoring: Improving the Design of Existing Code (2000) СПб: Символ-Плюс, 2009. — 432 с.

2.Каймин В.А. Информатика: Учебник. – М.: ИНФРА-М, 2000. – 232 с.

3.Сафонов В.О Актуальные проблемы преподавания технологии программирования в России. Компьютерные инструменты в образовании, 2008, № 5, с. 30-36

4.Сафонов В.О Надежное и безопасное программирование для Microsoft.NET на языке C#. Спецкурс для студентов 4 курса, раздел: "Технология разработки программного обеспечения"

Учебная литература:

1. Руководство к Своду знаний по управлению проектами (руководство PMBOK). 5‑е изд. / Project Management Institute. Newtown Square (USA), 2013. – 616 с.

Сайты интернета;

1. http://www.gnu.org/software/emacs/

3.Сайт языка UML

3.http://ru.wikipedia.org

4.Tips and Tricks (JDT) из документации Eclipse – множество простых советов, покрывающих довольно большую часть функционала JDT

5.Microsoft Visual Studio 2013. [Электронный ресурс]. - Режим доступа – 6.https://www.microsoft.com/ru-ru/SoftMicrosoft/VisualStudio2013.aspx

7. https://www.intuit.ru/studies/courses/21188/1223/lecture/23386

  1. http://www.gnu.org/software/emacs/

  2. Апдайк У, Бек К., Брант Д., Робертс Д., Фаулер М. Рефакторинг: улучшение существующего кода = Refactoring: Improving the Design of Existing Code (2000) СПб: Символ-Плюс, 2009. — 432 с.

  3. Сафонов В.О Актуальные проблемы преподавания технологии программирования в России. Компьютерные инструменты в образовании, 2008, № 5, с. 30-36

  4. Сайт языка UML

  5. Сафонов В.О Надежное и безопасное программирование для Microsoft.NET на языке C#. Спецкурс для студентов 4 курса, раздел: "Технология разработки программного обеспечения"

  6. Руководство к Своду знаний по управлению проектами (руководство PMBOK). 5‑е изд. / Project Management Institute. Newtown Square (USA), 2013. – 616 с.

  7. Tips and Tricks (JDT) из документации Eclipse – множество простых советов, покрывающих довольно большую часть функционала JDT

  8. http://ru.wikipedia.org

  9. Microsoft Visual Studio 2013. [Электронный ресурс]. - Режим доступа - https://www.microsoft.com/ru-ru/SoftMicrosoft/VisualStudio2013.aspx

  10. Каймин В.А. Информатика: Учебник. – М.: ИНФРА-М, 2000. – 232 с.