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

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

Содержание:

1. Введение

1. 1. Цели

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

Курсовая работа разделена на 2 части: теоретическая и практическая.

1. 1. 1. Цели теоретической части

В теоретической части необходимо дать понятие и сделать обзор основных возможностей современных ИСР.

1. 1. 2. Цели практической части

В практической части необходимо изучить состав и назначение инструментария современной интегрированной среды разработки IntelliJ IDEA.

2. Теоретическая часть

2. 1. Обзор

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

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

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

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

В то время как большинство современных ИСР являются графическими, текстовые ИСР, такие как Turbo Pascal, широко использовались до появления оконных систем, таких как Microsoft Windows и X Window System (X11). Они обычно используют функциональные клавиши или горячие клавиши для выполнения часто используемых команд или макросов.

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

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

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

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

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

Некоторые ИСР предназначены для определенного языка программирования или набора языков, создавая набор функций, который соответствует особенностям этого языка. Например, Xcode для языков Objective-C и Swift, API-интерфейсы Cocoa и Cocoa Touch.

Однако есть много многоязычных ИСР, таких как Eclipse (C, C ++, Python, Perl, PHP, Java, Ruby и другие), Komodo (Perl, Python, Tcl, PHP, Ruby, Javascript и другие) и NetBeans ( Java, JavaScript, PHP, Python, Ruby, C, C ++ и другие).

Поддержка альтернативных языков часто обеспечивается плагинами. Например, Flycheck является расширением проверки синтаксиса для GNU Emacs 24 с поддержкой 39 языков.

Существует множество различных ИСР, учитывающих различные способы работы разработчиков и различные типы кода, которые они создают. Существуют ИСР, разработанные для работы с одним конкретным языком, облачные ИСР, ИСР, настроенные для разработки мобильных приложений или для HTML, и ИСР, предназначенные специально для разработки Apple или Microsoft.

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

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

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

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

Минимум перекомпиляции. Ей подвергаются только модули, которые были изменены;

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

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

2. 2. История

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

В 1983 году Borland Ltd. приобрела компилятор Pascal и выпустила его как TurboPascal, в котором впервые появился интегрированный редактор и компилятор.

Хотя TurboPascal выдвинул идею интегрированной среды разработки, многие считают, что Microsoft Visual Basic (VB), выпущенная в 1991 году, была первой настоящей ИСР. Visual Basic был построен на более старом языке BASIC, который был популярным языком программирования в течение 1980-х годов. С появлением Visual Basic программирование можно было представить в графическом виде, и появились значительные преимущества в производительности.

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

3. Практическая часть, обзор возможностей

В этой части представлен обзор различных компонентов и возможностей ИСР.

3. 1. Подсветка синтаксиса

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

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

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

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

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

3. 2. Автозаполнение написанного кода

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

Автозаполнение исходного кода также называется завершением кода. В редакторе исходного кода автозаполнение значительно упрощается благодаря регулярной структуре языков программирования. Обычно имеется только ограниченное количество слов, значимых в текущем контексте или пространстве имен, таких как имена переменных и функций. Примером завершения кода является дизайн Microsoft IntelliSense. Он включает в себя показ всплывающего списка возможных дополнений для текущего префикса ввода, чтобы позволить пользователю выбрать правильный. Это особенно полезно в объектно-ориентированном программировании, потому что часто программист не знает точно, какие члены есть у конкретного класса. Следовательно, автозаполнение служит удобной документацией и методом ввода. Еще одна полезная функция автозаполнения для исходного кода заключается в том, что он поощряет программистов использовать более длинные и описательные имена переменных, включающие как строчные, так и прописные буквы (CamelCase), что делает исходный код более читабельным. Ввод больших слов со многими смешанными падежами, такими как «numberOfWordsPerParagraph», может быть затруднен, но автозаполнение позволяет завершить ввод слова с использованием доли нажатий клавиш.

3. 3. Рефакторинг кода

Большинство ИСР обеспечивают поддержку автоматического рефакторинга.

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

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

3. 4. Отладчик

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

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

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

3. 5. Визуальное программирование

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

Визуальный язык программирования позволяет программировать с визуальными выражениями, пространственным расположением текстовых и графических символов, используемых как элементы синтаксиса или вторичной нотации. Например, многие ВЯП (известные как поток данных или схематическое программирование) основаны на идее «прямоугольников и стрелок», где прямоугольники или другие экранные объекты обрабатываются как объекты, связанные стрелками, линиями или дугами, которые представляют отношения.

3. 6. Поддержка нескольких языков программирования

Некоторые ИСР поддерживают несколько языков, таких как GNU Emacs на основе C и Emacs Lisp, и IntelliJ IDEA, Eclipse, MyEclipse или NetBeans, все на основе Java или MonoDevelop на основе C#.

Поддержка альтернативных языков часто обеспечивается плагинами, что позволяет устанавливать их в одной и той же среде ИСР одновременно. Например, Flycheck — это современное расширение для проверки синтаксиса на лету для GNU Emacs 24 с поддержкой 39 языков. Eclipse и Netbeans имеют плагины для C / C ++, Ada, Perl, Python, Ruby и PHP, которые выбираются между автоматически в зависимости от расширения файла, среды или настроек проекта.

3. 8. Обозреватель классов

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

С появлением C ++ в конце 1980-х современные ИСР добавили обозреватели классов, сначала для простой навигации по иерархии классов, а затем для помощи в создании новых классов. С появлением Java в середине 1990-х классовые браузеры стали ожидаемой частью любой графической среды разработки.

3. 9. Профилирование

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

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

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

4. Практическая часть, обзор возможностей семейства ИСР IntelliJ IDEA

4. 1. Глубокий анализ и понимание кода

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

4. 1. 1. Интеллектуальное авто-дополнение

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

4. 1. 2. Авто-дополнение цепочек вызовов

Работает еще чуть глубже, чем интеллектуальное авто-дополнение и перечисляет соответствующие символы, доступные через методы или методы получения в текущем контексте. Допустим, разработчик ищет значение Project и имеет только объявление модуля, он может нажать сочетание клавиш Ctrl+Shift+Space дважды, и получит авто-дополнение для метода module.getProject() без каких-либо дополнительных усилий.

4. 1. 3. Завершение статических методов

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

4. 1. 4. Анализ потока данных

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

4. 1. 5. Языковая инъекция

Предоставляет помощь в кодировании для выбранного языка в выражениях и строковых литералах на другом языке, что дает разработчику все преимущества, которые он обычно имеет только при работе с отдельными файлами. Например, он может вставить фрагменты кода SQL, XPath, HTML, CSS или JavaScript в литералы Java строк.

4. 1. 6. Рефакторинг для нескольких языков

Зная все об использовании символа, IntelliJ IDEA предлагает чрезвычайно эффективный, тщательный рефакторинг. Например, когда разработчик переименовывает класс в выражении JPA, ИСР будет обновлять все, от класса сущности JPA, до каждого выражения JPA, в котором он используется.

4. 1. 7. Обнаружение дубликатов

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

4. 1. 8. Инспекции и быстрые исправления

Всякий раз, когда IntelliJ IDEA обнаруживает, что разработчик собирается совершить ошибку, в редакторе появляется небольшая лампочка. Щелкнув по нему или нажав Alt+Enter, откроется список действий, которые разработчик может предпринять, чтобы все исправить.

4. 2. Эргономика разработчика

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

4. 2. 1. Быстрый доступ к возможностям ИСР

Большую часть времени редактор (и код) — это единственное, что видно на экране разработчика. IntelliJ IDEA позволяет не покидать его, чтобы делать что-то, что не связано с написанием программного кода.

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

Если нажать сочетание клавиш Ctrl+Shift+I, интегрированная среда разработки показывает определение символа в каретке.

IntelliJ IDEA позволяет сгенерировать шаблонный код без заполнения огромных форм или прохождения мастера настройки.

4. 2. 2. Горячие клавиши для всех действий

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

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

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

4. 2. 3. Эргономичный пользовательский интерфейс

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

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

4. 2. 4. Встроенный отладчик

Когда запущен инструмент отладки, IntelliJ IDEA показывает значения переменных прямо в исходном коде рядом с их использованием.

Разработчику не нужно делать дополнительных действий, достаточно навести указатель мыши на переменную или переключиться на панель «Variables» окна инструмента «Debug tool».

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

4. 3. Встроенные инструменты разработчика

Чтобы упростить рабочий процесс, IntelliJ IDEA предлагает непревзойденный набор инструментов с самого первого запуска: декомпилятор, инструмент просмотра байт-кода, FTP и многие другие.

4. 3. 1. Системы контроля версий

IntelliJ IDEA предоставляет унифицированный интерфейс для основных систем контроля версий, включая Git, SVN, Mercurial, CVS, Perforce и TFS. Среда ИСР позволяет просматривать историю изменений, управлять ветками, конфликтами слияний и многим другим.

4. 3. 2. Инструменты для сборки проектов

IntelliJ IDEA поддерживает Maven, Gradle, Ant, Gant, SBT, NPM, Webpack, Grunt, Gulp и другие инструменты для сборки проектов. Эти инструменты легко интегрируются и помогают автоматизировать компиляцию, упаковку, запуск тестов, развертывание и другие действия.

4. 3. 3. Автоматическое тестирование и анализ покрытия тестами

IntelliJ IDEA позволяет легко выполнять модульное тестирование. ИСР включает в себя тестовые прогоны и инструменты покрытия для основных тестовых сред, включая JUnit, TestNG, Spock; Cucumber, ScalaTest, spec2, и Karma.

4. 3. 4. Декомпилятор

IntelliJ IDEA поставляется со встроенным декомпилятором для классов Java. Если у разработчика есть необходимость заглянуть внутрь библиотеки, для которой у него нет исходного кода, он может это сделать без каких-либо сторонних плагинов.

4. 3. 5. Инструменты для работы с базами данных

В IntelliJ IDEA можно использовать интеллектуальную помощь при написании и редактировании SQL запросов; подключаться к живым базам данных; выполнять запросы; просматривать и экспортировать данные; и даже управлять своими схемами в визуальном интерфейсе - прямо из ИСР.

4. 3. 6. Серверы приложений

IntelliJ IDEA поддерживает основные серверы приложений: Tomcat, JBoss, WebSphere, WebLogic, Glassfish и многие другие.

В ней есть возможность выгрузить созданные артефакты на сервера и отладить развернутые приложения прямо из ИСР.

4. 3. 7. Контейнеризация

С помощью отдельного плагина IntelliJ IDEA предоставляет специальное окно инструментов, которое позволяет подключаться к локально работающим контейнерам Docker для управления и настройки.

5. Заключение

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

Также мы изучили состав инструментария современной интегрированной среды разработки IntelliJ IDEA и ее назначение.

Таким образом, мы выполнили все поставленные перед нами задачи.

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

1. IntelliJ IDEA. Профессиональное программирование на Java. Наиболее полное руководство. — СПб.: «БХВ Петербург», 2005. — С. 800.

2. Монахов В. Язык программирования Java и среда NetBeans. — СПб.: «БХВ Петербург», 2008. — С. 640.

3. Снастин А. Обучение программированию в Linux на примере интегрированной среды разработки Geany: Часть 1. Основы работы в Geany – создание простого приложения

4. Рудюк С.А. Lazarus. Delphi-кросс-платформенный. Программирование для свободных людей. – 2006- С. 96

5. Хемраджани Анил Гибкая разработка приложений на Java™ с помощью Spring, Hibernate и Eclipse.- М.СПб.К.,2008 – С.339.

6. Википедия:

- https://en.wikipedia.org/wiki/Source-code_editor

- https://en.wikipedia.org/wiki/Integrated_development_environment

- https://en.wikipedia.org/wiki/Syntax_highlighting

- https://ru.wikipedia.org/wiki/Подсветка_синтаксиса

- https://en.wikipedia.org/wiki/Autocomplete#In_source_code_editors

- https://en.wikipedia.org/wiki/Intelligent_code_completion

- https://ru.wikipedia.org/wiki/IntelliSense

- https://en.wikipedia.org/wiki/Code_refactoring

- https://ru.wikipedia.org/wiki/Рефакторинг

- https://en.wikipedia.org/wiki/Debugger

- https://ru.wikipedia.org/wiki/Отладчик

- https://en.wikipedia.org/wiki/Class_browser

- https://en.wikipedia.org/wiki/Comparison_of_online_source_code_playgrounds