Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМК по курсу ТРПС / ТРПС - Комплексное пособие.doc
Скачиваний:
198
Добавлен:
12.03.2015
Размер:
2.63 Mб
Скачать

Сборочное программирование

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

Выделяют следующие основные способы поддержки этого подхода:

1. Выработка стиля программирования, соответствующего принятым принципам модульности.

2. Повышение эффективности межмодульных интерфейсов. Обеспечение поддержки модульности на уровне программно-аппаратной платформы.

3. Ведение большой базы программных модулей. Решение проблемы идентификации модулей и проверки пригодности по описанию интерфейса.

Сборочное программирование тесно связано с методом повторного использования кода, причём как исходного, так и бинарного. Выделяют несколько разновидностей технологических подходов сборочного программирования, которые в значительной степени определяются базисной методологией: 1. Модульное сборочное;2. Объектное сборочное;3. Компонентное сборочное и4. Аспектное сборочное программирование.

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

Модульное сборочное программирование– исторически первый подход сборочного программирования, базирующийся на процедурах и функциях методологии структурного императивного программирования, точнее их объединении – программных модулях. В разных языках программные модули называются по-разному: модуль (moduleвModula‑2,unitвPascal), пакет (packageвAda) или просто отдельный файл (вC/C++и т.п.).

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

Развитием этого подхода является расширяемое программирование– модульно-основанное программирование, при котором добавление новых модулей возможно без каких-либо изменений в существующих модулях. Данный подход предложен Н. Виртом и впервые реализован при проектированииOberon System. Фактически это компонентно-основанное программирование без ООП, так как модуль вOberonявляется полноценным компонентом (т.е. выполняет соответствующие ему функции). РазвитиемOberonсталComponent Pascal, в своём названии отразивший своё происхождение от языкаPascalи свою нацеленность на компонентное программирование.

Объектное сборочное программирование– подход сборочного программирования, базирующийся на библиотеках классов ООП, поставляемых в виде исходного (VCLвDelphi) или бинарного кода (DLLвC/C++дляMS Windows).

Как следует из названия, подход соответствует методологии ООП.

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

Компонент– класс, доступ к которому обеспечивается через строго определённые интерфейсы. Подинтерфейсомпонимается набор средств и правил для обеспечения единообразного взаимодействия. Использование интерфейсов компонентов вместо непосредственного доступа к объектам позволяет снять проблему несовместимости компиляторов и обеспечивает смену версий компонентов без перекомпиляции основанного на них ПО. Наиболее известными примерами реализации этого подхода являютсяCOM(DCOM,COM+),CORBA,.NET.

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

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

Аспект– модуль, который содержит реализацию определённой значимости.Значимость(букв. участие, отношение) – эксплуатационная часть системы, несущая определённую характеристику (в отличие от основной части, ориентированной на ПрО). Значимость связана с определёнными эксплуатационными требованиями, предъявляемыми к системе (надёжность, контролируемость, безопасность). Примерами значимостей являются обработка контекстно-зависимых ошибок и исключений, ведение журналов работы с системой, выполнение контрольных проверок параметров, подтверждение подлинности.

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

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