Эти разные, разные "Меты".

Jan 09, 2013 16:59

Если разбираться в том, как работает инженерная компания, то нужно в явном виде описать метод её работы. Из лучших методов этого описания можно предложить на сегодня стандарт Основ (http://ailev.livejournal.com/1051048.html) -- и тут же наткнуться на простоту его применения в части описанных в нём сущностей инженерного проекта и крайнюю сложность описания этих сущностей для разных инженерных методов. Эта сложность определяется прежде всего тем, что в стандарте активно задействуется четыре уровня моделирования: ситуация (M0), ситуационная модель (M1), мета-модель предмета (M2), мета-мета-модель самого моделирования (M3). А где много "мета", там и сложно -- тем более, что выбранный стандарт мета-мета-моделирования вполне позволяет организовать не четыре мета-уровня, а до девяти.

Я несколько лет пытался заново найти статью, где я видел шесть видов "мета", и даже пытался сам что-то на эту тему думать (http://ailev.livejournal.com/821154.html). Вчера я наконец-то нашёл следы: это была дискуссия по определению meta-object facility (MOF, http://www.omg.org/cgi-bin/doc?formal/2011-08-07.pdf), модульного языка, на котором потом писались UML, BPMN и много других языков -- включая сам ESSENCE. Вот эти шесть типов "мета" (слайд 8 в подробной презентации http://jtc1sc32.org/doc/N1751-1800/32N1764-WG2-Tutorial-OnMOF-forSC32.ppt):
1. Экземпляризация (тип -- экземпляр)
2. Группирование (тип-подтип), оно же категории
3. Описание (описание -- всё что угодно)
4. Применение/стереотип (шаблон -- воплощение)
5. Основа-вариант (основная модель -- кастомизированная)
6. Выражение (абстрактный синтаксис -- выражение)

Нужно добавить, что к этим шести типам "мета" при рассмотрении MOF одновременно рассматривались шесть видов отношений композиции (не только composition, но и aggregation -- попытки разобраться в мереологии): http://www.conradbock.org/compkind.html с выходом этих исследований в UML 2. Почему это тоже важно упомянуть? Потому что в мире физических объектов легко сообразить, идёт ли речь о мета-отношениях, или об отношениях композиции. А вот если речь идёт о практиках и методах, которые во много уровней учебников-стандартов-реализаций определяются и уточняются, то тип этих отношений уже может быть не так очевиден.

И, чтобы два раза не вставать, все эти отношения тесно связаны со способами моделирования -- ибо новые куски модели в ходе моделирования (в том числе мета-моделирования) добавляются именно по ним. Но способы моделирования также разнообразны. Например, в http://lml.ls.fi.upm.es/rsd/Event-B/Papers/refinement_event_decomp_event_B.pdf определяется три таких способа:
-- refinement: более абстрактная форма сменяется менее абстрактной
-- decomposition: крупная модель бьётся на части, и далее моделируется по частям
-- generic instantiation: более общая модель параметризуется конкретными значениями
То есть при первом же соприкосновении с мега-моделью, т.е. при попытке интеграции данных большого инженерного проекта приходится понимать, какими отношениями связаны тамошние модели -- чтобы не терять семантику этих связей, чтобы вовремя (т.е. до того, как они проявятся в реальности) найти ошибки проектирования.

Вот несколько ссылок на литературу, которая поможет поразбираться с шестью "метами", а также ещё двумя видами трудностей метамоделирования (ambigous classification, replication of concept):
-- слайды общего обзора того, что оказалось в MOF (2004г. tutorial для ISO -- MOF/UML ведь стали ещё и ISO стандартами по fast track): http://jtc1sc32.org/doc/N1751-1800/32N1764-WG2-Tutorial-OnMOF-forSC32.ppt
-- flexible infrastructure for multi-level language engineering -- http://swt.informatik.uni-mannheim.de/uploads/tx_fmipublications/A_Flexible_Infrastructure_for_Multi__Level_Language_Engineering.pdf (самая современная версия проблем моделирования и предложения по их решению, 2009г.)
-- the essence of multilevel modeling -- http://homepages.mcs.vuw.ac.nz/~tk/publications/papers/essence.pdf (исходная статья 2001г., которая и легла в основу решений по UML/MOF моделированию многоуровневости).
-- understanding metamodeling (2003г.) -- http://www.er.byu.edu/er2003/slides/ER2003T1HendersonSellers.pdf (основные проблемы в слайдах)
-- contrasting classification with generalisation -- http://www.er.byu.edu/er2003/slides/ER2003T1HendersonSellers.pdf (2009г).
-- generating systems from multiple levels of abstraction -- http://homepages.mcs.vuw.ac.nz/~tk/publications/papers/generating-systems.pdf (2007, идея архитектурной стратификации)
-- logical modeling for engineering -- 2011г., слайды с акцентом на то, как "общеонтологическая" и "логическая" терминология становится предметной терминологией: http://www.isr.umd.edu/events/m-bsec_PPTs/111128_Bock.pdf
-- современное состояние вопроса (там много об этих "мета" в их современных изводах): proceedings конференции MODELS11 -- Model Driven Engineering Languages and Systems -- http://libgen.info/view.php?id=166360.

Главным образом это работы Colin Aktinson (http://swt.informatik.uni-mannheim.de/de/publications/), Thomas Kuhne (http://homepages.mcs.vuw.ac.nz/~tk/publications/) с разными соавторами, но там есть и много старых знакомых -- Conrad Bock, Brian Henderson-Sellers.

Тут нужно особо заметить, что всё это по большей части разные изводы объект-ориентированного моделирования/онтологизирования/программирования. И только изредка они вспоминают об OWL, только в самые последние годы. Тем не менее, все эти проблемы вполне себе сохраняются в той или иной постановке и при переходе от объектов с атрибутами к чистой логической парадигме. Интересно, как с подобными проблемами выражения "мета" могли бы справляться прототипные языки: там не будет большинства обсуждаемых по ссылкам проблем, но сама проблема "мета" ведь никуда не денется!
Previous post Next post
Up