Файл: Классификация языков программирования. Критерии выбора среды и языка программирования.pdf
Добавлен: 31.03.2023
Просмотров: 315
Скачиваний: 2
Среда разработки программного обеспечения (ПО) — совокупность программных средств, используемая программистами для разработки программного обеспечения. Простая среда разработки включает в себя редактор текста, компилятор и/или интерпретатор, средства автоматизации сборки и отладчик. Когда эти компоненты собраны в единый программный комплекс, говорят об интегрированной среде разработки (Integrated development environment- IDE). Такая среда представлена одной программой, не выходя из которой можно производить весь цикл разработки. В состав комплекса кроме перечисленных выше компонент могут входить средства управления проектами, система управления версиями, разнообразные инструменты для упрощения разработки интерфейса пользователя, стандартные заготовки («мастера»), упрощающие разработку стандартных задач, и др. Современные среды разработки, поддерживающие объектно-ориентированную разработку ПО, также включают браузер классов, инспектор объектов и диаграмму иерархии классов. Хотя существуют среды разработки, предназначенные для нескольких языков — такие как Eclipse или Microsoft Visual Studio, обычно среда разработки предназначается для одного определённого языка программирования.
Если IDE включает в себя возможность визуального редактирования интерфейса программы, она называется средой визуальной разработки.
Иногда достаточно использовать только одну интегрированную среду разработки, но для больших проектов в среду разработки включаются разнородные продукты разных фирм, разных версий. Пример такого набора: файловый менеджер, набор вспомогательных утилит и пакетных файлов, С++Builder – как IDE, PLSQL Developer – для работы с СУБД Oracle, Cristal Reports – для создания отчетов , StarTeam – для ведения версий и поддержки коллективной работы.
Модель среды разработки (схема функционирования) определяет технологические процессы, совершаемые программистом, включает в себя наборы объектов и цепочки технологических операций. Модель существенно зависит от архитектуры, сложности и масштаба целевого объекта (программного средства), который должен быть получен в итоге. Для каждой категории объекта требуется своя модель, свой набор инструментальных средств. Категории программных средств: простая программа, сложная многокомпонентная программа, программа, работающая с базами данных, распределенная программная система, программа как сервис и др. Все перечисленные понятия входят в технологию программирования, определяя ее инструментальное обеспечение.
История развития операционных сред непосредственно связана с историей развития вычислительной техники и базового программного обеспечение – операционных систем. Вся история вычислительной насчитывает немногим более 60 лет. 4 декабря 2008 годы было отмечено 60 лет отечественной информатики. Что касается истории программных технологий, то ей всего 25 лет. Именно 1984 года был взят за точку отчета в статье Кристофера Эберта. Сам термин «программная инженерия» стал широко использоваться 20 лет назад.
Кардинальные изменения в сфере технологий были связаны с использованием алфавитно-цифровых, а затем и графических дисплеев, разработкой операционной IBM OS/360, изобретением микропроцессоров, появлению персональных ЭВМ, распространением Интернета.
Изменялся способ общения программиста с ЭВМ. Первые компьютеры вообще не имели базового программного обеспечения. Программа могла вводиться вручную с пульта, а впоследствии с помощью перфолент и перфокарт. Первые терминалы с электронно-лучевыми трубками (дисплеями) были предназначены не для программистов, а для операторов ЭВМ. Программисты работали с ЭВМ опосредовано, сдавая на вычислительный центр колоды перфокарт. Их основным языком описания технологических процессов был язык управления заданиями (в ОС EC – это JCL, Job Control Language).
Оператор ЭВМ – это была отдельная специальность, которая в настоящее время практически не встречается. Оператор выполнял функции управления многозадачной операционной системой, мог влиять на ход выполнения задач, их запуск и завершение, отвечать на запросы, подготавливать устройства ввода-вывода. Понятие операционной среды возникло именно в то время. Под операционной средой понималась совокупность компьютерных программ, обеспечивающая оператору возможность управлять вычислительными процессами и файлами.
Начало 70-х годов – время массового перехода на языки программирования, появление операционных систем первого поколения. По мере возрастания мощности ЭВМ стал возможным коллективный доступ к ее ресурсам, и дисплей стал инструментом программиста.
Несмотря на развитие способов общения с ЭВМ для программиста неизменным оставался основной цикл разработки и отладки программ: редактирование программы – компиляция – сборка – выполнение программы – анализ ошибок – редактирование. Этот цикл всегда надо иметь в виду при оценке эффективности операционной среды.
При выборе подходящей среды обычно предпочтение отдается той модели и тем языкам программирования, которые хорошо знают члены коллектива разработчиков. Выбирать новую технологию, которую предстоит осваивать в процессе разработки – риск провалить проект.
У каждого программиста есть свой взгляд на модель разработки, определяющийся его прошлым опытом, степенью освоения тех или иных инструментальных средств.
Любая среда позволяет производить настройку и адаптацию под те или иные требования: изменение интерфейса, режимов работы, назначения горячих клавиш, установка дополнительных средств («плагинов») и т.п. В арсенале каждого опытного программиста есть свои приемы разработки, собственные вспомогательные средства. Он имеет собственные вкусы и предпочтения. Используя настройки, программист может сделать работу в среде более удобной для себя и, тем самым, более эффективной. Он как бы проецирует свою модель разработки на модель среды. Это особенно важно, когда среди инструментов есть программы с отличающимся интерфейсом (например, разное назначение горячих клавиш).
Программисты практически никогда не используют инструментальное средство на все 100%. Создатели инструментальных средств закладывают, как правило, избыточный набор возможностей. Для начинающих программистов это может составить проблему. Поэтому при обучении желательно использовать простые среды или так их настраивать, чтобы оставалось минимальное необходимое количество режимов и настроек. По мере освоение функциональность может расширяться.
Оценивая качество и эффективность операционной среды необходимо обращать внимание на интерфейсы инструментальных средств. Современный подход к пользовательскому интерфейсу был заложен в стандарте фирмы IBM. Этот стандарт воплотился во многих программных средствах, как инструментальных, так и прикладных. Стандарт определяет оконный интерфейс, правила размещения в окнах элементов управления, назначение горячих клавиш и даже рекомендует цветовые схемы интерфейса. Конечно, в рамках этого стандарта можно реализовать большое количество разнообразных интерфейсов. Развитие и нововведения в интерфейсах можно проследить на линейках продуктов типа MS Office. Одним из важных и необходимых свойств среды является возможность настройки. К интерфейсу также относится замечание об избыточности и необходимости минимизации возможностей.
Технология программирования во многом определяется языком программирования, на котором пишутся программы. В языке могут быть заложены средства, влияющие на технологичность и архитектуру разрабатываемой системы (например, объектно-ориентированность, модульность и т.п.).
Рассмотрим следующие четыре среды разработки: JDK (Java Development Kit), Блэкбокс, MS Visual Studio, Eclipse. Кратко их можно охарактеризовать так:
- JDK – простая, многоплатформенная, широко распространенная;
- Блэкбокс – простая, удобная для обучения;
- Microsoft Visual Studio – сложная, многоязыковая, широко распространенная;
- Eclipse – многоплатформенная, многоязыковая, перспективная.
JDK имеет простую модель среды разработки. Нет собственной IDE. Используется любой текстовый редактор. Имеются два основных исполняемых файла: компилятор javac.exe и исполнитель оттранслированных классов java.exe (собственно Java-машина). Исходные файлы имеют расширение java, оттранслированные – class. На уровне языка определяются иерархии пакетов, каждый из которых включает один или несколько классов. Иерархия пакетов естественным образом при трансляции отражается в файловую структуру. При трансляции файл с объявленным пакетом package s1.p1 создается подкаталог s1, в нем подкаталог p1, в который размещаются файлы с кодами классов. Каждому классу соответствует один файл, имя которого совпадает с именем класса.
В любом файловом менеджере легко настраиваются горячие клавиши, реагирующие на расширение файлов, для редактирования, компиляции и выполнения. Это дает такой же эффект, как использование какой-либо другой простой среды разработки. Такой стиль вполне подходит для целей обучения.
Наборы классов одного или нескольких пакетов могут объединяться и храниться в одном архиве, файлов с расширением jar. Эти файлы также можно считать компонентами среды (подсистемами). При компиляции и запуске программ пути к этим подсистемам указываются в качестве параметров. Несколько приложений могут использовать общие подсистемы. В этом случае для запуска компилятора и программ лучше использовать bat-файла, в которых указывается разный набор подсистем.
На базе JDK функционирую более развитые платформы, такие как IDEA, NetBeans, Eclipse.
Усложненность сред разработки может отрицательно сказаться на усвоении основ программирования, так как внимание учащегося сосредотачивается не на языке программирования, а на собственно среде. Много времени уходит на ее освоение.
Блэкбокс (BlackBox Component Builder) — это бесплатная и открытая система программирования для языка программирования Компонентный Паскаль, являющаяся вариантом языка Оберон и обладающая следующей комбинацией свойств:
- очень простая (описание языка всего около 30 страниц);
- очень быстрая (быстро компилирует даже на i386);
- очень компактная (20 MB на диске в максимальной конфигурации)
- но при всем этом очень мощная (в том числе за счет лучшей в промышленности поддержки технологий компонентно-ориентированного программирования);
- бесплатная для некоммерческого использования (с конца 2004 г. система доступна с открытыми исходными кодами).
Блэкбокс имеет очень простую модель операционной среды. Разработчики системы следовали минималистскому принципу так же, как и при разработке языка системы. Например, в языке отсутствует вложенность модулей и классов и как следствие упрощается архитектурная модель. В отличие от языка Java, один модуль транслируется в один файл. Имеется два вида компонентов — модули и подсистемы. При успешной компиляции модуля образуются символьный и кодовый файлы, которые автоматически размещаются в подкаталогах Sym и Code соответственно. При этом эти каталоги размещаются в подкаталоге Блэкбоксе с названием подсистемы. Имя подсистемы – префикс имени модуля. Сами исходные файлы хранится в подкаталоге Mod. Символьный файл содержит всю информацию о внешних связях модуля по экспорту-импорту. Кодовый файл — это двоичный файл с машинными командами. Он загружается в память для непосредственного выполнения при первом вызове какой-либо процедуры из этого модуля.
Поскольку сам Блэкбоксе написан на Компонентном Паскале, любой скомпилированный модуль становится частью системы в том смысле, что как файл с машинным кодом, так и соответствующий символьный файл немедленно становятся доступными для импорта из других модулей, вызова процедур из меню Блэкбокса и т.п. Поэтому приложение может иметь такой же интерфейс, как и сама среда. Интерфейс представлен обычным многоуровневым меню и возможностью назначения горячих клавиш. Само меню хранится в файле Menus.odc и доступно для редактирования с помощью функций модуля Text. По команде «обновить меню» меню обновляется. Меню динамически формируется при запуске системы. Каждая подключаемая подсистема может иметь собственное подменю, которая динамически вставляется в основное меню, если в нем есть пункт, отмеченный символом «*». При такой технологии подключение подсистемы заключается в простом копировании файлов, входящим в подсистему. Если пользователь одновременно разрабатывает несколько приложений, каждое из которой располагается в своей папке, среда запускается с параметром, определяющим путь к этой папке. Подсистемы, находящиеся в основном каталоге, используются совместно. Такой подход значительно упрощает развертывание новой подсистемы в уже разработанном приложении.
В системе реализован оригинальный подход к разработке пользовательского интерфейса. Экранная форма представляется собой документ, в которой с помощью специализированного редактора размещаются элементы управления. Но в отличие от других систем это не приводит к генерации кода с описанием класса Form. В самих модулях также отсутствуют следы, какая экранная форма будет использована. В документе-форме для элемента можно указать свойство, привязывающее элемент к какой-либо переменной модуль (для текстового поля) или процедуре (для элемента типа кнопки). И этого оказывается достаточно, чтобы при запуске формы значения переменных отображались, а нажатие кнопки приводило к запуску нужной процедуры. Единственно, о чем должен позаботиться программист, это вызвать специальный метод для обновления значений переменных в экранной форме. Такой подход значительно упрощает программирование, избавляя, например, от многочисленных преобразований из текстовых значений в целые и наоборот, которыми изобилует программа в других средах. Экранная форма может быть быстро создана с помощью мастера, который выберет все экспортируемые объекты и построит по ним подходящие элементы управления.