Слайд 2Инструментальное программное обеспечение
Инструментальное программное обеспечение — программное обеспечение, предназначенное для использования в ходе проектирования,
разработки и сопровождения программ.
Инструментальное программное обеспечение используется для создания программных продуктов в любой области, включая и системные и прикладные программы. В настоящее время для создания программных продуктов применяются мощные системы визуального программирования, которые включают в себя обширные библиотеки стандартных программ, специальные средства отладки и тестирования.
Слайд 3Инструментальное программное обеспечение
Системы программирования предназначены для разработки новых программ на конкретном языке программирования
и включают в себя компиляторы, интерпретаторы, диалоговую среду, редакторы текстов, библиотеки стандартных подпрограмм, компоновщики, отладчики, справочные службы, средства автоматизированного тестирования, системы управления версиями и др.
Слайд 4Инструментальное программное обеспечение
Слайд 5Инструментальное программное обеспечение
Слайд 6Инструментальное программное обеспечение
Слайд 7Инструментальное программное обеспечение
Кроме того, в инструментальное программное обеспечение входят SDK, ассемблер, генератор документации.
SDK
(Software Development Kit) — комплект средств разработки, который позволяет специалистам по программному обеспечению создавать приложения для определенного пакета программ, программного обеспечения базовых средств разработки, аппаратной платформы, компьютерной системы, видеоигровых консолей, оперативных систем и прочих платформ.
Слайд 8Инструментальное программное обеспечение
Ассемблер — компьютерная программа, компилятор исходного текста программы, написанной на языке ассемблера,
в программу на машинном коде. Как и сам язык, ассемблеры, как правило, специфичны для конкретной архитектуры, операционной системы и варианта синтаксиса языка. Вместе с тем существуют мультиплатформенные или вовсе универсальные (точнее, ограниченно-универсальные, потому что на языке низкого уровня нельзя написать аппаратно-независимые программы) ассемблеры, которые могут работать на разных платформах и операционных системах.
Слайд 9Инструментальное программное обеспечение
Генератор документации — программа или пакет программ, позволяющая получать документацию, предназначенную
для программистов и/или для конечных пользователей системы, по особым образом комментированному исходному коду и, в некоторых случаях, по исполняемым модулям (полученным на выходе компилятора).
Слайд 10Концепция современной интегрированной среды разработки приложений
Интегрированная среда разработки программного обеспечения (Integrated Development Environment —
IDE) — система программных средств, используемая программистами для разработки программного обеспечения.
Слайд 11Концепция современной интегрированной среды разработки приложений
Обычно среда разработки включает в себя текстовый редактор,
компилятор и/или интерпретатор, средства автоматизации сборки и отладчик. Иногда также содержит систему управления версиями и разнообразные инструменты для упрощения конструирования графического интерфейса пользователя. Многие современные среды разработки также включают браузер классов, инспектор объектов и диаграмму иерархии классов для использования при объектно-ориентированной разработке программного обеспечения.
Интегрированная среда разработки (ИСР) имеет общую интерактивную графическую оболочку, поддерживающую выполнение всех основных функций жизненного цикла разработки.
Слайд 12Концепция современной интегрированной среды разработки приложений
Для каждой из интегрированных сред разработки программ
характерно наличие следующих компонентов:
единая интерактивная оболочка, обеспечивающая вызов всех других компонентов, не выходя из среды, с широким использованием функциональных клавиш;
текстовый редактор для набора и редактирования исходных текстов программ. В недавнем прошлом в отечественной традиции использовался именно термин «исходный текст», впоследствии стал использоваться термин «исходный код» (source code);
система поддержки сборки (build), т. е. компиляции проектов из исходных кодов, включающая компилятор с исходного реализуемого языка и компоновщик (linker) объектных бинарных кодов в единый исполняемый код (загрузочный модуль); компоновщик используется либо штатный, входящий в состав операционной системы, либо специфичный для данной среды;
отладчик (debugger) для отладки программ в среде с помощью типичного набора команд: точки останова, пошаговое выполнение процедур (методов), визуализация значений переменных и др.
Слайд 13Концепция современной интегрированной среды разработки приложений
ИСР обычно предназначены для нескольких языков программирования
— такие как IntelliJ IDEA, NetBeans, Eclipse, Qt Creator, Geany, Embarcadero RAD Studio, Xcode или Microsoft Visual Studio, но есть и ИСР для одного определенного языка программирования, как, например, Visual Basic, Delphi, Dev-C++.
Частный случай ИСР — среды визуальной разработки, которые включают в себя возможность визуального редактирования интерфейса программы.
Современные текстовые редакторы в интегрированных средах обеспечивают также режим автоматического завершения кода (code completion), который в них включен по умолчанию и в котором редактор среды подсказывает разработчику возможные и синтаксически правильные его продолжения, например, отсутствие закрывающей скобки, отсутствие точки с запятой; возможные варианты имен методов при вызове метода от объекта какого-либо определенного класса, и т. д.
Слайд 14Концепция современной интегрированной среды разработки приложений
Слайд 15Концепция современной интегрированной среды разработки приложений
В современных версиях интегрированных сред имеются следующие
компоненты.
Профилировщик (profiler) — инструмент для мониторинга активности пользователей, накопления и анализа статистических данных, полученных в результате выполнения программы под управлением интегрированной среды: число вызовов процедур (методов), объем памяти, используемой при выполнении программ, и т.д.
Рефакторинг (refactoring) — инструментарий для реорганизации кода — изменения внутренней структуры программы, не затрагивающий ее внешнего поведения и имеющий целью облегчить понимание ее работы.
Генератор тестов (unit test generator) — инструмент для генерации типовых тестов для тестирования модулей, методов или процедур с различными возможными сочетаниями значений аргументов.
Слайд 16Концепция современной интегрированной среды разработки приложений
Система управления версиями исходных кодов (source code
control system) для облегчения работы с изменяющейся информацией. Система управления версиями позволяет хранить несколько версий файлов исходных кодов проектов в среде при сопровождении программ.
Инструменты поддержки командной разработки программ (teamwork) — этапов жизненного цикла программы (требования и спецификации, проектирование, реализация, тестирование), распределения заданий по разработке среди участников команды программистов, контроля выполнения заданий менеджером проекта.
Инструменты анализа кода (code analysis) — специальное программное обеспечение для статического и динамического анализа кода проекта. Статический анализ кода (static code analysis) — анализ программного обеспечения, производимый в отличие от динамического анализа без реального выполнения исследуемых программ. Динамический анализ кода (dynamic program analysis) — анализ программного обеспечения, проводимый при помощи выполнения программ на реальном или виртуальном процессоре (в отличие от статического анализа).
Слайд 17Концепция современной интегрированной среды разработки приложений
Инструменты визуализации сгенерированного бинарного кода — методов,
переменных, их имен и т.д.
Инструменты «запутывания» кода (obfuscation), выполняющие именно с этой целью замену имен элементов кода — классов, методов, полей и т. д. на непонятные, «случайные», «запутанные» имена, в целях затруднения изучения декомпилированного бинарного кода, для защиты от «взлома» кода злоумышленниками, которые хотят несанкционированным образом присвоить себе новые идеи, содержащиеся в коде, либо изучить его со злонамеренными целями организации атак.
Поддержка создания различных видов программных проектов и решений на основе типовых шаблонов кода; механизм разработки расширений. При современной разработке программ часто требуется создавать различные приложения — консольные, веб-приложения и веб-сервисы, мобильные приложения, облачные приложения и др. Для каждой из этих разновидностей требуется разработка специфической структуры файлов исходного кода, а также конфигурационных файлов. Современные интегрированные среды автоматизируют создание различного рода проектов, предоставляя шаблоны исходного кода и генерируя автоматически необходимые для проекта конфигурационные файлы.
Слайд 18Концепция современной интегрированной среды разработки приложений
Поддержка моделирования структуры программ на унифицированном языке
моделирования UML. Современные интегрированные среды поддерживают использование языка UML в двух направлениях: генерация модели и соответствующей диаграммы по исходному коду и, наоборот, генерация (шаблона) исходного кода по разработанной модели.
Слайд 19
Контрольные вопросы и задания
Cформулируйте определение интегрированной среды разработки программ.
Каковы основные компоненты интегрированной среды
разработки программного обеспечения?
Что такое текстовый редактор?
Какие дополнительные функции по синтаксической проверке вводимого исходного кода встроены в современные редакторы в интегрированной среде разработки?
Что такое отладчик и каковы его типовые команды?
Какую функциональность обеспечивает поддержка коллективной разработки программ?
Для чего предназначено инструментальное программное обеспечение?
Дайте определения понятиям «компилятор», «транслятор», «компоновщик», «интерпретатор».
Что такое SDK (Software Development Kit)?
Наличие каких компонент характерно для интегрированных сред разработки ПО?
Что включает в себя система поддержки сборки?
Для чего используются инструменты «запутывания» кода?