mdd:delta_modelling

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
mdd:delta_modelling [2016/12/25 19:42] – [Заключение] kirivasilemdd:delta_modelling [2026/08/29 07:59] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +====== 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|http://dx.doi.org/10.1145/2031759.2031767]]
 +
 +===== Введение =====
 +
 +Сегодня моделирование архитектур программного обеспечения является неотъемлемой частью процесса разработки. Современные системы являются сильно изменчивыми, особенно это касается встраиваемых систем. 
 +
 +//Дельта-моделирование// – это трансформационный подход для представления изменчивости продукта. В нём набор изменчивых систем изображён как определённое ядро системы и набор дельт, описывающих модификации для ядра, которые реализуют дальнейшие варианты системы. 
 +
 +В этой статье, мы применим принципы дельта-моделирования, чтобы изобразить изменчивость архитектур, которые описаны существующим языком архитектурного описания – MontiArc. MontiArc был создан, чтобы моделировать архитектуры для асинхронного взаимодействия распределённых систем. Архитектурная дельта – сущность, определяющая добавление, удаление, модификацию компоненты, или замену структуру коммуникации между ними. Применив несколько дельт к описанию ядра системы в MontiArc, мы можем получить описание других вариантов системы в языке MontiArc. В результате мы получаем новый язык моделирования для архитектурной изменчивости – Δ-MontiArc.
 +
 +===== Архитектурное моделирование с MontiArc =====
 +
 +Языки описания архитектуры (Architecture description languages – ADLs) поддерживают моделирование, проектирование, анализ и эволюцию архитектур. Текстовый ADL MontiArc создан для моделирования распределённых систем, чьи коммуникации основаны на асинхронных сообщениях. 
 +
 +[[mdd:_detail:mdd:delta1.png|]]
 +
 +В качестве примера описания на MontiArc мы используем часть системы очистителя ветровых стёкол. Компонента //IntervalControl// принимает выбранный интервал от водителя и издаёт команду //WipeCMD// для управления подсоединённым приводом стеклоочистителя. Это иерархически разбито на субкомпоненту //IntervalCmdProcessor//, названную //icp//, которая вычисляет необходимые действия стеклоочистителя на основе выбора водителя и скорости машины. Описание интерфейса компоненты //IntervalControl// содержит входящий порт //IntervalSelection//, входящий порт //vs//, и исходящий порт //WipeCmd//.
 +
 +[[mdd:_detail:mdd:delta2.png|]]
 +
 +В листинге 1 можно увидеть это же описание, только в текстовом формате на языке MontiArc. 
 +
 +===== Дельта моделирование =====
 +
 +Дельта моделирование – это трансформационный подход для моделирования изменчивой модульной структуры. Линейка продуктов разбивается на ядро и набор дельт. Ядро отвечает за самые необходимые функции конфигурации. Дельты же определяют модификации к ядру, чтобы интегрировать другие функции в продукт. 
 +
 +====== Архитектурное моделирование изменчивости в Δ-MontiArc ======
 +
 +В листинге 2 показано как выглядит грамматика MontiCore на языке Δ-MontiArc.
 +
 +[[mdd:_detail:mdd:delta3.png|]]
 +
 +Описание дельты начинается с ключевого слова delta, названия дельты, а также условия, когда эта дельта применяется. Далее следует список компонент, начинающихся с modify component и имени компоненты, которую необходимо модифицировать. В них определяется, что нужно добавить, удалить, или заменить в компоненте.
 +В листинге 3 можно увидеть пример описания дельты для датчика дождя.
 +
 +[[mdd:_detail:mdd:delta4.png|]]
 +
 +===== Заключение =====
 +
 +В этой статье, была изложена первая версия Δ-MontiArc, поддерживающая гибкое моделирование структуры модулей для архитектурной изменчивости. Она модифицирует существующий язык MontiArc концептами дельта моделирования.