Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| mdd:modeling [2014/06/01 14:29] – [Это пример оформления статьи] golovanov_sergey | mdd:modeling [2026/08/29 07:59] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Моделирование Моделирования Моделирования ====== | ||
| + | Pierre-Alain Muller, Frédéric Fondement, Benoît Baudry, and Benoît Combemale. 2012. Modeling modeling modeling. //Softw. Syst. Model.// 11, 3 (July 2012), 347-359. DOI=10.1007/ | ||
| + | [[http:// | ||
| + | |||
| + | ==== Введение ==== | ||
| + | |||
| + | Подходы к проектированию на основе моделей проникли во все сферы разработки программного обеспечения до такой | ||
| + | степени, | ||
| + | прозу, но не знал об этом. В основе моделирования лежат отношения, | ||
| + | представить что-то одно, через нечто другое. В данной статье рассмотрены определения различных моделей и | ||
| + | отношений между ними. Определены стандартные отношения между моделями, | ||
| + | выражения различных видов представления отношений. Кроме того будет предложен графический синтаксис для | ||
| + | представления этих отношений. Так же приводится структурное определение для предлагаемого языка в форме | ||
| + | метамодели и формальной интерпретации (используется язык Prolog.) | ||
| + | |||
| + | ==== 1. Обзор литературы ==== | ||
| + | |||
| + | Приводимая ниже таблица, | ||
| + | |||
| + | ^ Таблица 1. Сводная таблица определения понятия “модель” ^ | ||
| + | ^ Безивин (Bézivin) | Модель - это упрощение системы, | ||
| + | ^ Браун (Brown) | Модель позволяет абстрагироваться от физической системы, | ||
| + | ^ Джексон (Jackson) | Слово “Модель” здесь означает область дискового пространства | ||
| + | ^ Кюне (Kuehne) | Модель - это абстракция | ||
| + | ^ Людвиг (Ludewig) | Модель помогает создать отображения, | ||
| + | ^ OMG (Object Modeling Group) | Модель системы | ||
| + | ^ Сейдевиц (Seidewitz) | Модель - это ряд состояний некоторой исследуемой системы. (ИС) [7] ^ | ||
| + | ^ Селик (Selic) | Функция инженерной модели - снижение риска, через облегчение нашего понимания сложной задачи и потенциальных способов её решения, | ||
| + | ^ Штейнмюллер (Steinmüller) | Модель - это информация: | ||
| + | |||
| + | === Особенности моделей === | ||
| + | |||
| + | По Брэну Селику [8] инженерная модель должна обладать следующими пятью особенностями: | ||
| + | |||
| + | - **Абстракция.** Модель - это всегда сокращенная интерпретация представляемой системы. | ||
| + | |||
| + | - **Понятность.** Модель должна сохранять интуитивную форму. | ||
| + | |||
| + | - **Точность.** Модель должна предоставлять объективное отражение необходимых особенностей системы. | ||
| + | |||
| + | - **Предикативность.** Модель должна корректно предугадывать важные, | ||
| + | |||
| + | - **Доступность.** Модель должна быть значительно дешевле для реализации и анализа, | ||
| + | |||
| + | === Определение отношений между моделями === | ||
| + | |||
| + | С точки зрения подхода, | ||
| + | **Представление** (RepresentationOf), | ||
| + | **Элемент** (ElementOf), | ||
| + | **РаспадаетсяНа** (DecomposedIn), | ||
| + | **ПреобразуемоВ** (IsTransformedIn) | ||
| + | **СоответствуетС** (ConformsTo) - производное отношение. | ||
| + | |||
| + | ==== 2. К модели моделирования ==== | ||
| + | |||
| + | Моделью моделирования здесь называется представление, | ||
| + | моделирования. В процессе моделирования по сути с определённой целью создаются объекты, | ||
| + | представления других объектов. Следующий ниже подход к моделированию моделирования таким образом служит для | ||
| + | фиксирования различных отношений между объектами, | ||
| + | |||
| + | При моделировании приходится иметь дело с объектами, | ||
| + | Как утверждает Бран Селик [8], сначала следует найти компромисс между абстракцией и доступностью для понимания, | ||
| + | поэтому отойдём от простого видения // | ||
| + | объектом (который многие авторы называют моделью) и целевым объектом (называемым оригиналом по Стачовику [10]) | ||
| + | Кроме того понимание того является ли данный объект исходным или целевым относительно данной стрелки ничего | ||
| + | не способно сказать нам о данном объекте. Это представлено на Рисунке 1. Здесь “источник” обозначен X, а “цель” | ||
| + | Y, отношение **Представления** (RepresentationOf) обозначается μ. | ||
| + | [[mdd: | ||
| + | |||
| + | === Интенция (Intention) === | ||
| + | |||
| + | Ни объекты ни их представления не создаются отдельно. Как говорится в [9] Штейнмюллером оба существуют, | ||
| + | отвечать заданным целям, проявляют свойства, | ||
| + | |||
| + | Здесь и далее это воспринимается как назначение объекта или его интенция (от англ. intention). | ||
| + | Интенсиональное моделирование отвечает на вопросы КТО? и ЗАЧЕМ?, | ||
| + | Таким образом цель объекта состоит в том, чтобы представить причину (ЗАЧЕМ? | ||
| + | объект, | ||
| + | поведения, | ||
| + | |||
| + | ^ Таблица 2. Различные μ - отношения и их графические обозначения. ^ | ||
| + | ^ Вид ^ Интенции ^ Описание ^ Условное обозначение ^ | ||
| + | | Отличается (different) | [[mdd: | ||
| + | | Пересекается (share) | [[mdd: | ||
| + | | Подмножество (sub) | [[mdd: | ||
| + | | Тот же (same) | [[mdd: | ||
| + | | Надмножество (super) | [[mdd: | ||
| + | |||
| + | Все авторы сходятся на том, что преимущество моделей в том, что они фактически могут быть использованы в том | ||
| + | месте, где создаются, | ||
| + | называет прагматической прикладной особенностью модели. На практике оказывается удобно работать с некоторой | ||
| + | выборкой интенций и договориться, | ||
| + | (приведённое ниже) обозначает что X является представлением Y (для ой выборки интенций). Символ I может быть | ||
| + | затем использован в другом месте схеме, чтобы показать данный образ включает некоторое подмножество интенций. | ||
| + | Если интенция не меняется во всех схеме, то она может быть упрощена до условного обозначения. | ||
| + | |||
| + | ^ Таблица 3. Условные обозначения. X полностью представляет Y для заданного подмножества интенций (в данном контексте). ^ | ||
| + | | [[mdd: | ||
| + | |||
| + | === Сравнение аналитической и синтетической сущностей представления === | ||
| + | |||
| + | Как было показано ранее, несколько авторов различают модели // | ||
| + | (соответственно // | ||
| + | |||
| + | // | ||
| + | Аналитическое представление определяется (через μα) следующим образом: | ||
| + | |||
| + | [[mdd: | ||
| + | |||
| + | где Tα отношение, | ||
| + | является одним из представлений X (включая идентичность). На языке моделирования Tα может обозначать | ||
| + | преобразование модели (model transformation). В терминах истинности (введённых Фавром), | ||
| + | представления истинность содержится в // | ||
| + | |||
| + | // | ||
| + | (через μγ) определяется как: | ||
| + | |||
| + | [[mdd: | ||
| + | |||
| + | где Tγ отношение, | ||
| + | является одним из представлений X (включая идентичность (Identity)). На языке моделирования Tγ | ||
| + | может так же обозначать преобразование модели (model transformation). В терминах истинности, | ||
| + | μγ представления истинность содержится в источнике. | ||
| + | |||
| + | Рассмотрение количественного вклада X и Tγ в синтез Y находится за пределами данного обзора. | ||
| + | |||
| + | === Каузальность === | ||
| + | |||
| + | Каузальность относится к вопросу о синхронизации, | ||
| + | определяет не только //где// устанавливается μ-отношение, | ||
| + | место). | ||
| + | |||
| + | Если вернуться к определениям // | ||
| + | то считается, | ||
| + | |||
| + | * В случае // | ||
| + | * В случае // | ||
| + | |||
| + | Одним из путей уменьшения этой неопределенности является четкое разделение между природой | ||
| + | (// | ||
| + | Рисунке 2 модель является каузальным аналитическим представлением системы. Если система изменяется, | ||
| + | каузальное μα-отношение определяет последующее обновление модели. В свою очередь, | ||
| + | также является каузальным μγ-представлением программы, | ||
| + | представлением системы. | ||
| + | |||
| + | [[mdd: | ||
| + | |||
| + | === Транзитивность === | ||
| + | |||
| + | Ниже формально правила транзитивности между видами представлений установлены, | ||
| + | Это сделано, | ||
| + | прямых представлений. | ||
| + | |||
| + | ^ Таблица 4. Правило сочетания представлений ^ | ||
| + | | [[mdd: | ||
| + | |||
| + | Установлены три основных пункта (названные также Prolog-правилами (Prolog rules) для последовательности μ* из | ||
| + | μ-отношений: | ||
| + | |||
| + | - Если все μ-отношения в μ* относятся к одному типу K, тогда сочетаемое μ*-отношение также принадлежит к этому типу. Это правило имеет одно исключение: | ||
| + | - Если в μ* встречается μ-отношение типа same (X и Y одинаковы по сути (same intention)), | ||
| + | - Если в μ* присутствует μ-отношение типа different (X и Y абсолютно различны (no intention)), | ||
| + | |||
| + | Используя данное объяснение μ-отношений в Предисловии, | ||
| + | Табл. 4. Следует отметить, | ||
| + | отношений. Например, | ||
| + | и если Y имеет одинаковый смысл с Z (тип same), то X является расширенным представлением Z (тип allInSource). | ||
| + | В некоторых случаях сочетания отношений могут привести к 2, 3, 4 или 5 возможным результатам. Например, | ||
| + | Рисунок 3 (соответствует строке 11 в Табл. 4) иллюстрирует две возможных ситуации, | ||
| + | и частичным представлением Y (тип share) и Y является расширенным и частичным представлением Z (тип share). | ||
| + | В первом случае общий для X и Y смысл не будет пересекаться со смыслом, | ||
| + | для X и Y смысл пересекается со смыслом, | ||
| + | представлением Z (тип share). | ||
| + | |||
| + | [[mdd: | ||
| + | |||
| + | ==== 3. Метамодель моделирования ==== | ||
| + | |||
| + | Далее вводится структурное определение моделирования с использованием метамодели (Рисунок 4). | ||
| + | |||
| + | [[mdd: | ||
| + | |||
| + | Сам процесс моделирования (Modeling) может быть назван и охарактеризован через набор объектов-имен (Thing) без | ||
| + | какого бы то ни было учёта их внутренней структуры. Единственная информация, | ||
| + | возможное интенциональное **Представление** (RepresentationOf) другого объекта, | ||
| + | (содержащихся в исходных объектах). | ||
| + | |||
| + | Таким образом модель моделирования может быть рассмотрена как конечный ориентированный мультиграф (то есть | ||
| + | между любыми двумя вершинами возможны кратные рёбра) без циклов (т. е. рефлексивность ребер). Определение | ||
| + | самопредставления (т. е. циклы) ограничиваются следующим OCL представлением: | ||
| + | |||
| + | < | ||
| + | context RepresentationOf inv NoLoops : self.src <> self.tgt; | ||
| + | </ | ||
| + | |||
| + | μ-отношение в основном | ||
| + | исходного объекта (src). Считается, | ||
| + | другой объект. Другими словами отношение **Представление** (RepresentationOf) содержит интенцию src относительно | ||
| + | tgt (в метамодели src и tgt - это две роли, которые Объект (Thing) может играть в **Представлении** | ||
| + | (RepresentationOf)). Это касается так же и метамодели поскольку представление (represent) включает ссылку между | ||
| + | Объектом (Thing) и отношением **Представление** (RepresentationOf), | ||
| + | т. к. целевой объект не зависит от представления. Кроме того допускается определение одного объекта через | ||
| + | другой без какого бы то ни было представления этого другого объекта (вопреки интенциональности), | ||
| + | чтобы воспринимать его внутреннюю структуру как “черный ящик” в используемом здесь формализме. | ||
| + | |||
| + | В рамках данного формализма предполагается так же определение чёрного ящика как интенции | ||
| + | представления объекта (кроме неформального описания, | ||
| + | и связям между объектами не может быть сделано никаких выводов. Однако, | ||
| + | атрибут вида (kind) позволяет охарактеризовать окружение интенции объекта источника (src) сравнительно с | ||
| + | объектом-целью (tgt) (см. Таблицу 4). | ||
| + | |||
| + | μ-отношение Представление (representationOf) так же характеризуется своей сущностью (nature), используемой | ||
| + | для различения аналитического и синтетического представления. И наконец причинность μ-отношения | ||
| + | характеризуется булевым атрибутом causality для отношения representationOf. По нашему мнению формализация | ||
| + | причинностных отношений представляется очень важной (т.ч. для инженерии, | ||
| + | рассмотрение этой проблемы вынесено за рамки темы моделирование моделирования. | ||
| + | |||
| + | На Рисунке 4 построена графическая модель редактора на основе формального структурного определения | ||
| + | моделирования. | ||
| + | |||
| + | ==== 4. Практическое использование моделирования ==== | ||
| + | |||
| + | Здесь в качестве примера рассматриваются интенциональные ограничения, | ||
| + | модели. Модель на Рисунке 5 может быть рассмотрена как спецификация ограничения, | ||
| + | репозиторий модели. Данным ограничением утверждается, | ||
| + | аспекта 1, а затем аспекта 2 в Базу, либо наоборот: | ||
| + | результирующую интенцию. M'1 и M'2 имеют одни и те же интенции, | ||
| + | стрелками. | ||
| + | |||
| + | M1 и M2 созданы как расширения Базы, путем включения интенций, | ||
| + | Аспектом 2. Интенция M1 (и M2) включает в себя интенцию Базы, что отражено на схеме отношением Надмножества | ||
| + | (super). Интенция М1 (M2) не полностью включает в себя | ||
| + | требование представления | ||
| + | используется отношение Подмножества (sub). Далее представление M1 (M2) ещё более расширяется до M'1 и M'2. В | ||
| + | итоге M'1 и M'2 имеют одинаковые интенции, | ||
| + | |||
| + | [[mdd: | ||
| + | |||
| + | ==== 5. Примеры ==== | ||
| + | |||
| + | === Тестирование на основе модели === | ||
| + | |||
| + | Тестирование на основе построения моделей выполняется путем создания тестовых сценариев, | ||
| + | использоваться для тестирования программы. На представленном Рисунке 6 с одной стороны разрабатываются модель и | ||
| + | программа, | ||
| + | соответствия между этими двумя образами системы. При выявлении несоответствия, | ||
| + | |||
| + | Тестовая модель является частичным представлением системы с дополнительным назначением - тестированием | ||
| + | (нахождением ошибок), | ||
| + | представлением модели, | ||
| + | одинаковы), | ||
| + | является представлением системы. В дальнейшем модель используется для создания частей программы. | ||
| + | |||
| + | Когда тестовая модель становится достаточно большой, | ||
| + | по данной модели согласно критерию адекватности теста. Таким образом, | ||
| + | объектами. Данная особенная связь также предполагает что μα связь между тестовой моделью и системой | ||
| + | распространяется на тестовые сценарии, | ||
| + | |||
| + | Последнее отношение, | ||
| + | сценарии являются представлением программы, | ||
| + | ошибок в программе. Однако, | ||
| + | является нахождение ошибок в программа, | ||
| + | для некоторого пользователя. | ||
| + | |||
| + | [[mdd: | ||
| + | |||
| + | === Моделирование моделирования моделирования === | ||
| + | |||
| + | Этот обзор озаглавлен “Моделирование моделирования моделирования”, | ||
| + | собой работу о формальной модели (на рисунке - F) языка (L), который в свою очередь представляет множество | ||
| + | моделей систем (M и S на картинке). В качестве примера рассмотрим статью для журнала (модель модели модели), | ||
| + | которая может быть расширена до трудов конференции (модель модели) через третий уровень моделирования, | ||
| + | будет соответственно докладом на основе этой статьи. | ||
| + | |||
| + | [[mdd: | ||
| + | |||
| + | ===== Заключение ===== | ||
| + | |||
| + | В статье приведён анализ различных определений моделей, | ||
| + | предложен язык моделирования, | ||
| + | моделями, | ||
| + | |||
| + | ===== Ссылки ===== | ||
| + | |||
| + | - Ludewig, J., Models in software engineering - an introduction. SoSyM, 2003. 2(3): p. 5-14. | ||
| + | - [[http:// | ||
| + | - Brown, A.W., Model driven architecture: | ||
| + | - Jackson, M., Some Basic Tenets of Description. Software and Systems Modeling, 2002. 1(1): p. 5-9. | ||
| + | - Kühne, T., Matters of (meta-) modeling. SoSyM, 2006. 5(4). | ||
| + | - [[http:// | ||
| + | - [[http:// | ||
| + | - Steinmüller, | ||
| + | - Stachowiak, H., Allgemeine Modelltheorie. 1973: Springer, Wien. | ||
| + | - Favre, J.-M. Towards a Megamodel to Model Software Evolution Through Software Transformation. in Proceedings of Workshop on Software Evolution through Transformation, | ||
| + | - Favre, J.-M., Foundations of Model (Driven) (Reverse) Engineering: | ||
| + | - Muller P. - A., Fondement F., Baudry B., Combemale B. Modeling Modeling Modeling | ||
| + | - [[http:// | ||