Методы и средства инженерии программного обеспечения

       

Языковые средства описания компонентов и методов интеграции


Компонент – это единица интеграции, специфицированная так, чтобы можно было ее объединять с другими компонентами в ПС. Важнейшее свойство компонента – отделение его интерфейса от реализации, в отличие от объектов в  объектно–ориентированных ЯП,  в которых  реализация класса отделена  от определения  класса [1]..

Интеграция компонентов и развертывания – независима от ЖЦ разработки ПС и замена в ней компонента не требует перекомпиляции всей ПС или переналадки всех связей между компонентами. Доступ к компоненту проводится через его интерфейс. Компонент включает спецификацию функциональных и нефункциональных  свойств (атрибутов качества – точность, надежность, секретность и др.) требований,   сценариев, тестов и т.п. Текущие компонентные технологии используют формальные средства спецификации только функциональных свойств компонентов, включающих описание синтаксиса операций и атрибутов, а для описания нефункциональных свойств компонентов формальный аппарат пока отсутствует.

Более крупным образованием компонентов, используемым в практике программирования,  являются  паттерны и каркасы [2].

Паттерны определяют повторяемые решения  для проблемы объединения компонентов в структуры. Для каждого объединения определяется абстракция общения (взаимодействия) определенной совокупности объектов в кооперативной деятельности, для которой задаются абстрактные участники, их роли, взаимоотношения и распределение полномочий. Они классифицированы по трем уровням абстракции. На верхнем уровне – архитектура системы, которая скомпонована из  компонентов, называется архитектурным паттерном, охватывающим общую структуру и организацию ПС, набор подсистем,  роли и  отношения между ними. На среднем уровне абстракции паттерн уточняет структуру и поведение подсистем,  компонентов ПС и связей между ними.

На

нижнем уровне паттерн – абстракция определенной цели, которая зависит от выбранной парадигмы его представления и  ЯП.

Каркас представляет собой типичную повторно возникающую ситуацию на уровне модели, в которой определенная структура проекта имеет не доопределенные элементы с пустыми слотами для занесения в них  доопределенных свойств  компонентов.
При  сборке  отдельно построенных программных частей в каркас, компоненты  инкапсулируются и  определяются  контекстом сборки, после чего каркас становится контейнером, применяемым далее как повторный компонент или ПИК.

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

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


Содержание раздела