Delta Modeling for Software Architectures

Arne Haber, Thomas Kutz, Holger Rendel, Bernhard Rumpe, and Ina Schaefer. 2011. Delta-oriented architectural variability using MontiCore. In Proceedings of the 5th European Conference on Software Architecture: Companion Volume (ECSA '11). ACM, New York, NY, USA, , Article 6 , 10 pages. DOI=http://dx.doi.org/10.1145/2031759.2031767

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

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

В этой статье, мы применим принципы дельта-моделирования, чтобы изобразить изменчивость архитектур, которые описаны существующим языком архитектурного описания – MontiArc. MontiArc был создан, чтобы моделировать архитектуры для асинхронного взаимодействия распределённых систем. Архитектурная дельта – сущность, определяющая добавление, удаление, модификацию компоненты, или замену структуру коммуникации между ними. Применив несколько дельт к описанию ядра системы в MontiArc, мы можем получить описание других вариантов системы в языке MontiArc. В результате мы получаем новый язык моделирования для архитектурной изменчивости – Δ-MontiArc.

Языки описания архитектуры (Architecture description languages – ADLs) поддерживают моделирование, проектирование, анализ и эволюцию архитектур. Текстовый ADL MontiArc создан для моделирования распределённых систем, чьи коммуникации основаны на асинхронных сообщениях.

В качестве примера описания на MontiArc мы используем часть системы очистителя ветровых стёкол. Компонента IntervalControl принимает выбранный интервал от водителя и издаёт команду WipeCMD для управления подсоединённым приводом стеклоочистителя. Это иерархически разбито на субкомпоненту IntervalCmdProcessor, названную icp, которая вычисляет необходимые действия стеклоочистителя на основе выбора водителя и скорости машины. Описание интерфейса компоненты IntervalControl содержит входящий порт IntervalSelection, входящий порт vs, и исходящий порт WipeCmd.

В листинге 1 можно увидеть это же описание, только в текстовом формате на языке MontiArc.

Дельта моделирование – это трансформационный подход для моделирования изменчивой модульной структуры. Линейка продуктов разбивается на ядро и набор дельт. Ядро отвечает за самые необходимые функции конфигурации. Дельты же определяют модификации к ядру, чтобы интегрировать другие функции в продукт.

Архитектурное моделирование изменчивости в Δ-MontiArc

В листинге 2 показано как выглядит грамматика MontiCore на языке Δ-MontiArc.

Описание дельты начинается с ключевого слова delta, названия дельты, а также условия, когда эта дельта применяется. Далее следует список компонент, начинающихся с modify component и имени компоненты, которую необходимо модифицировать. В них определяется, что нужно добавить, удалить, или заменить в компоненте. В листинге 3 можно увидеть пример описания дельты для датчика дождя.

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