Л.Е. Карпов - Системы программирования (1119429), страница 23
Текст из файла (страница 23)
Наиболее ярко эти тенденциипроявляются в последовательном применении компонентного и визуальногопрограммирования.Термин “компонент” также многозначен, как и многие другие термины,используемые в литературе по программированию. Он может соответствовать термину“программный модуль”, обозначая в таком случае архитектурный компонентпрограммной системы – некоторый абстрактный элемент структуры программы,выделенный для решения некоторых конкретных подзадач в рамках общего назначениясистемы и имеющий некоторый фиксированный интерфейс взаимодействия с другимипрограммными модулями (подсистемами).
Другой смысл вкладывается в этот термин,когда говорят о компонентах, как об “элементах сборки” программы – некоторых ееотносительно небольших (иногда незавершенных) фрагментах или заготовках, которыеможно извлекать из библиотек (вообще говоря, из любых библиотек, но чаще при этомимеются в виду разрабатываемые специально для подобного стиля программирования“библиотеки компонентов”). Наконец, в распределенных программных системах(серверах приложений, сетевых службах) под компонентом часто понимаютопределенную функционально законченную и самодостаточную структурную единицупрограммы, обладающую точно описанным интерфейсом и даже некоторуюнезависимость от других подобных компонентов этого же программного комплекса.Например, в сервере приложений J2EE имеется специальный компонент, позволяющийсоздавать сервлеты, представляющие собой классы языка программирования Java,реализующие обработку запросов по протоколу взаимодействия HTTP и генерациюответных сообщений в формате этого протокола, и взаимодействовать с созданнымисервлетами.
Этот компонент может присутствовать в конкретной программной системеили отсутствовать в ней (если взаимодействие через Интернет не является задачейсистемы), благодаря точному описанию интерфейса и независимости от другихкомпонентов сервера приложений, он может даже использоваться в других системах,не обязательно написанных на языке Java.Чаще всего, когда говорят о компонентном подходе к построениюсовременных систем программного обеспечения, имеют в виду именно эту, последнюютрактовку термина “компонент”.
Компонентная разработка предлагает строить такиесистемы последовательно из отдельных элементов — “компонентов”, каждый изкоторых, в свою очередь, может рассматриваться как отдельная программная система.Компоненты отличаются от классов объектно-ориентированных языков. Классопределяет не только набор реализуемых интерфейсов, но и саму их реализацию. Вописании компонента реализация интерфейсов обычно не зафиксирована.
Класс описанна определенном языке программирования, компонент же не привязан ни к какому82языку (если его компонентная модель этого не требует, компонентная модель являетсядля компонентов тем же, чем для классов является язык программирования). Наконец,обычно компонент является более крупной структурной единицей, чем класс,реализация компонента часто состоит из нескольких тесно связанных друг с другомклассов. Понятие компонента является более узким, чем понятие программногомодуля. Основное содержание понятия модуля — наличие четко описанногоинтерфейса между ним и его окружением. Использование компонента подразумеваетвозможность поставки или удаления компонента отдельно от всей остальной системы.Компоненты могут и разрабатываться отдельно, однако они должны следоватьправилам определенной компонентной модели и реализовывать достаточно важные дляпользователей функции.Визуальнымназываетсятакойстильпрограммирования,которыйпредусматривает создание приложений с помощью наглядных средств.
Используяприемы визуального программирования, программист не создает тексты программ, апоказывает, что должно получиться в результате. Например, многие системыпрограммирования позволяют строить на экране монитора графические формы,состоящие из отдельных более или менее независимых элементов (“компонентов”) –графических кнопок, надписей, диаграмм, окон для ввода и вывода информации и такдалее. Тексты программ, управляющих такими формами, генерируются автоматическис помощью визуального прототипа соответствующего компонента на основеиспользуемых в системе библиотек компонентов.
Как и компонентноепрограммирование, визуальное программирование основывается на объектноориентированном подходе, поскольку с каждым наглядным элементом связан какойнибудь класс или чаще целый набор классов, описывающих интерфейсы и реализацииметодов, с помощью которых осуществляется взаимодействие с данным элементом.Визуальное программирование широко используется в системах создания приложений.Некоторые из таких систем кратко описаны далее.4.2. Системы программирования компании BorlandФирма Borland и ее основатель Филипп Канн (Philippe Kahn) оказались однимииз пионеров создания современных представлений о системах программированияперсональных ЭВМ.
Начав с проектирования транслятора с языка программированияПаскаль, компания Borland за непродолжительное время создала несколько серийпрекрасных систем программирования на языках Паскаль, Си, Си++, Пролог и других,включая язык ассемблера для персональной ЭВМ на базе процессоров iAPXi86.4.2.1. Turbo PascalНаиболее известной серией этих систем, продолжающейся до сих пор, являетсясамая первая из них, связанная с программированием на языке Паскаль в самой первойоперационной системе персональных ЭВМ – DOS.
В настоящее время компаниейBorland для DOS выпускается несколько систем программирования: Turbo Pascalверсии 7.0, Borland Pascal for DOS и Delphi. Все эти системы являются наследницамисистем, выпускавшихся с 1983 года, и во многом совместимы с ними как по самомуязыку программирования, для которого они разработаны, так и по возможностяминтегрированной среды разработки и отладки программ.Начиная с версии 4.0 системы Turbo Pascal, появившейся примерно 15 лет назад,язык программирования, использованный в них, значительно отличается от того языка83Паскаль, классическое описания которого, дано его автором Никлаусом Виртом идругими в их многочисленных работах.Компания Borland опередила в своей практической работе разработку теориимодульного, структурного и объектно-ориентированного программирования, которуювел Никлаус Вирт, осуществляя переход от языка Паскаль к языку Модула-2.Концепция стандартных модулей, предложенная в языке под названием TurboPascal, некоторыми своими чертами напоминает подход, описанный в языке Модула-2 спомощью модулей определений и модулей реализации.
В Модуле-2 парадигмымодульного и структурного программирования нашли свое почти идеальноевоплощение. В этом языке уже намечались те черты, которые впоследствии былиявственно выделены в языках, ориентированных на работу с объектами. Однакоразвитие систем программирования компании Borland шло по другому пути.Было признано более целесообразным не переходить к использованию другогоязыка программирования, пусть и напоминающего классический Паскаль, как Модула2, но все же отличающегося от него в некоторых важных чертах, а сохранить ирасширить сам Паскаль, дав ему новую жизнь в изменившихся условиях. Вместомодулей определений и реализации в языке Turbo Pascal появились модули, имеющиеразделы интерфейса и реализации. Появились и элементы объектно-ориентированногопрограммирования, в частности, привязка процедур и функций к описаниям сложныхобъектов.Однакопоследовательноговнедренияпринциповобъектноориентированного программирования в системы программирования для DOSкомпанией Borland произведено не было, это было осуществлено только в другой сериисистем программирования – в системах программирования для операционных системWindows.Указанные особенности языка программирования Turbo Pascal до некоторойстепени повлияли и на саму систему программирования Turbo Pascal.
Эта система внаибольшей степени автоматизирует сам процесс программирования (написанияпрограмм) и отладки программ, в ее состав входят•••••Многооконный экранный редактор текстов, позволяющий быстро отыскивать в архиве файловой системы необходимые текстыпрограмм и их составных частей (например, модулей), показывать в экранных окнах и редактировать тексты. сохранять их в архиве для последующего использования.Транслятор с языка программирования Turbo Pascal с подсистемой фиксациии индикации синтаксических ошибок в текстах.Набор стандартных системных модулей для работы с основными внешнимиустройствами ЭВМ.Компоновщик модулей, позволяющий собирать из ранее оттранслированныхмодульных фрагментов программ и библиотечных модулей полноценныеисполняемые программы.Отладчик программ, позволяющий отлаживать программы в пошаговомрежиме и просматривать промежуточные значения внутренних переменныхпрограмм, состояния памяти ЭВМ.
Отладчик помогает устанавливать впрограмме контрольные точки, на которых при выполнении программыможет быть осуществлена остановка программы. После такой остановкипрограммист имеет возможность исследовать значения переменных, а затем(если это необходимо) исправить текст программы и продолжить84выполнение пр о гр аммы в по шаго вом или в о бычном р ежиме до выхода наследующую контрольную точку или до конца работы программы.Благодаря тому, что системы программирования Turbo Pascal работают подуправлением операционной систему DOS, в состав этих систем удалось включитьстандартные модули, работающие с ресурсами и аппаратными элементами ЭВМ(дисками и прерываниями – DOS, графическим экраном – Graph, текстовым экраном извуком – Crt и др.) в режиме полного управления.