Языковые средства описания компонентов и методов интеграции
Компонент – это единица интеграции, специфицированная так, чтобы можно было ее объединять с другими компонентами в ПС. Важнейшее свойство компонента – отделение его интерфейса от реализации, в отличие от объектов в объектно–ориентированных ЯП, в которых реализация класса отделена от определения класса [1]..
Интеграция компонентов и развертывания – независима от ЖЦ разработки ПС и замена в ней компонента не требует перекомпиляции всей ПС или переналадки всех связей между компонентами. Доступ к компоненту проводится через его интерфейс. Компонент включает спецификацию функциональных и нефункциональных свойств (атрибутов качества – точность, надежность, секретность и др.) требований, сценариев, тестов и т.п. Текущие компонентные технологии используют формальные средства спецификации только функциональных свойств компонентов, включающих описание синтаксиса операций и атрибутов, а для описания нефункциональных свойств компонентов формальный аппарат пока отсутствует.
Более крупным образованием компонентов, используемым в практике программирования, являются паттерны и каркасы [2].
Паттерны определяют повторяемые решения для проблемы объединения компонентов в структуры. Для каждого объединения определяется абстракция общения (взаимодействия) определенной совокупности объектов в кооперативной деятельности, для которой задаются абстрактные участники, их роли, взаимоотношения и распределение полномочий. Они классифицированы по трем уровням абстракции. На верхнем уровне – архитектура системы, которая скомпонована из компонентов, называется архитектурным паттерном, охватывающим общую структуру и организацию ПС, набор подсистем, роли и отношения между ними. На среднем уровне абстракции паттерн уточняет структуру и поведение подсистем, компонентов ПС и связей между ними.
На
нижнем уровне паттерн – абстракция определенной цели, которая зависит от выбранной парадигмы его представления и ЯП.
Каркас представляет собой типичную повторно возникающую ситуацию на уровне модели, в которой определенная структура проекта имеет не доопределенные элементы с пустыми слотами для занесения в них доопределенных свойств компонентов.