Сборочное (расширяемое) программирование

Сборочное программирование предполагает, что программа собирается путем переиспользования уже известных фрагментов (рис. 12).

 

Рис. 12. Сборочное программирование

 

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

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

* Повышение эффективности межмодульных интерфейсов; важность аппаратной поддержки модульности.

* Ведение большой базы программных модулей; решение проблемы идентификации модулей и проверки пригодности по описанию интерфейса. Модули должны стать “программными кирпичиками’, из которых строится программа.

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

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

* Объектно-ориентированное сборочное программирование. Подход базируется на методологии объектно-ориентированного программирования и предполагает распространение библиотек классов в виде исходного кода и упаковку классов в динамически компонуемую библиотеку.

* Компонентное сборочное программирование. Основные идеи подхода — распространение классов в бинарном виде и предоставление доступа к методам класса через строго определенные интерфейсы, что позволяет снять проблему несовместимости компиляторов и обеспечивает смену версий классов без перекомпиляции использующих их приложений. Существуют конкретные технологические подходы, поддерживающие компонент сборочное программирование — СОМ (DСОМ, СОМ+), СОRВА, .Net.

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