Моделеориентированная системная инженерия — различия между версиями

(Model Driven Architecture (MDA))
Строка 5: Строка 5:
 
'''Архитектура, управляемая моделью''' (Model Driven Architecture, MDA) — создаваемая консорциумом OMG разновидность концепции «Разработка, управляемая моделями» (англ. model-driven development): модельно-ориентированного подхода к разработке программного обеспечения. Его суть состоит в построении абстрактной метамодели управления и обмена метаданными (моделями) и задании способов ее трансформации в поддерживаемые технологии программирования (Java, CORBA, XML и др.). Создание метамодели определяется технологией моделирования MOF (Meta Object Facility), являющейся частью концепции MDA. Название концепции не совсем удачно, так как она определяет вовсе не архитектуру а именно метод разработки программного обеспечения.
 
'''Архитектура, управляемая моделью''' (Model Driven Architecture, MDA) — создаваемая консорциумом OMG разновидность концепции «Разработка, управляемая моделями» (англ. model-driven development): модельно-ориентированного подхода к разработке программного обеспечения. Его суть состоит в построении абстрактной метамодели управления и обмена метаданными (моделями) и задании способов ее трансформации в поддерживаемые технологии программирования (Java, CORBA, XML и др.). Создание метамодели определяется технологией моделирования MOF (Meta Object Facility), являющейся частью концепции MDA. Название концепции не совсем удачно, так как она определяет вовсе не архитектуру а именно метод разработки программного обеспечения.
  
 
+
OMG [[UML]] (http://www.uml.org/) принес парадигму множественности методов/групп описаний в мейнстрим программной инженерии. Его 5 типов диаграмм позволили связно отражать различные аспекты программных систем. Более того, UML расширяем стандартным способом, и системная инженерия с десятилетним лагом (как обычно) к программной инженерии получила средство для описания этого множества методов/групп описаний в форме [[SysML]], являющегося расширением UML. ISO 42010 (стандарт рекомендованной практики архитектурных описаний) получил язык для своей поддержки.
OMG [[UML]] (http://www.uml.org/) принес парадигму множественности методов/групп описаний в мейнстрим программной инженерии. Его 5 типов диаграмм позволили связно отражать различные аспекты программных систем. Более того, UML расширяем стандартным способом, и системная инженерия с десятилетним лагом (как обычно) к программной инженерии получила средство для описания этого множества методов/групп описаний в форме SysML, являющегося расширением UML. ISO 42010 (стандарт рекомендованной практики архитектурных описаний) получил язык для своей поддержки.
+
 
+
  
 
UML вместе с [[MOF]] (Meta Object Facility, http://www.omg.org/mof, обеспечивает взаимосвязанность всех моделей на UML) является основным языком MDA (http://www.omg.org/mda) консорциума по стандартизации OMG. MDA уже переосмысливается, чтобы ее предмет был расширен с программной инженерии на системную инженерию (http://www.calimar.com/Papers/Model%20Driven%20Architecture%20for%20SE-Why%20Care.pdf, http://www.lboro.ac.uk/departments/el/sedc/documents/presentations/model-driven-architecture.pdf и много других).
 
UML вместе с [[MOF]] (Meta Object Facility, http://www.omg.org/mof, обеспечивает взаимосвязанность всех моделей на UML) является основным языком MDA (http://www.omg.org/mda) консорциума по стандартизации OMG. MDA уже переосмысливается, чтобы ее предмет был расширен с программной инженерии на системную инженерию (http://www.calimar.com/Papers/Model%20Driven%20Architecture%20for%20SE-Why%20Care.pdf, http://www.lboro.ac.uk/departments/el/sedc/documents/presentations/model-driven-architecture.pdf и много других).
Строка 19: Строка 17:
 
* ограниченность этой архитектуры языком UML. В междисциплинарном проекте мы не можем ожидать, что все специалисты-пользователи говорят на UML или [[SysML]], даже если мы расширим эти языки специфичными для предметных областей стереотипами.
 
* ограниченность этой архитектуры языком UML. В междисциплинарном проекте мы не можем ожидать, что все специалисты-пользователи говорят на UML или [[SysML]], даже если мы расширим эти языки специфичными для предметных областей стереотипами.
  
== Domain Specific language (DSL) ==
 
'''Предметно-ориентированный язык''' или '''предметно-специфичный язык''' (англ. Domain Specific language, DSL — «язык, специфичный для предметной области») — язык программирования, специализированный для конкретной области применения (в противоположность языку общего назначения, применимому к широкому спектру областей и не учитывающему особенности конкретных сфер знаний). Является ключевым понятием языково-ориентированного программирования.
 
 
Классические примеры DSL:
 
* TeX/LaTeX для подготовки (компьютерной вёрстки) текстовых документов;
 
* Perl для манипулирования текстами;
 
* SQL для СУБД;
 
* Tcl/Tk для графического интерфейса пользователя;
 
* HTML и SGML для разметки документов;
 
* Verilog и VHDL для описания аппаратного обеспечения;
 
* Mathematica и Maple для символьных вычислений;
 
* AutoLisp для компьютерного моделирования (САПР);
 
* Prolog для задач, сформулированных в терминах исчисления предикатов;
 
* ML и Haskell для задач, сформулированных в терминах функций (Haskell временами определяется как DSL для денотационной семантики[en]).
 
 
 
DSL - другая ветвь модельного движения, которая связана с понятием предметно-специфичного языка, обеспечивающего применяемый экспертами метод описания для получения предметно-специфичной группы описаний. DSL объединяет (концептуальную) метамодель и (графическую и/или текстовую) нотацию. Это отличается от MDA, в которой предписываются нотации и метамодели, основанные только на MOF/UML. Тем самым программисты должны обеспечивать отдельную интерактивную среду разработки (IDE, interactive development environment) для каждого DSL, а затем эксперты-непрограммисты будут использовать эти предметно-специфичные IDE для моделирования их систем.
 
 
 
Все САПР могут быть рассмотрены как наборы таких IDE для инженерных предметно-специфичных языков (например, диаграмм P&ID для моделирования гидравлических систем). Если мы хотим создать модель завода непрерывного цикла (например, нефтеперерабатывающего завода), то предстоит трудный выбор между моделированием гидравлических систем в MDA/SysML и традиционным P&ID-моделированием. Предметно-специфические языки современных САПР легко выигрывают. Но потом мы все равно должны объединить все эти несовместимые между собой модели на разных DSL в одну связанную модель завода.
 
 
 
Есть две возможности предоставить такую связанность для зоопарка различных DSL:
 
# Онтологическое совмещение (mapping) метамоделей различных DSL, и тем самым совмещение моделей в датацентрическом репозитории моделей.
 
# Использование языковых рабочих мест (language workbenches).
 
 
 
=== Онтологическое совмещение ===
 
Онтологическое совмещение сегодня используется всеми основными поставщиками САПР, хотя при этом используются разные "верхние" (upper) онтологии и предметные таксономии:
 
* [[ISO 15926]] для непрерывных производств,
 
* ISO 18269/[[PSL]] для (в том числе бизнес) процессов,
 
* ISO 16739/[[BIM]] для строительства и т.д.
 
 
 
Это хорошая возможность справиться с зоопарком устаревших системам, которые поддерживают "старые добрые предметно-специфичные языки инженерного моделирования". Онтологическое совмещение -- относительно недавнее движение (начавшееся с работ 1994г. по созданию модели данных перерабатывающих производств Shell, http://www.matthew-west.org.uk/Publications.html), его корни лежат в моделировании данных при разработке программных средств. Те, кто воспринял этот онтологический подход, двигаются сегодня к применению уже готовых инструментов семантического веба (http://semanticweb.org/) и вдобавок к исключительно моделированию данных и интеграции данных начинают эксперименты по логическому выводу (reasoning), таким образом обеспечивая "исполнение" ("executing") онтологических моделей. Интересно, что UML не слишком распространен в онтологических кругах, а OMG озабочена совмещением (mapping) метамоделей MDA/MOF и разработанных вне OMG "верхних" и "средних" онтологий (http://www.omg.org/ontology). Нужно заметить, что большинство онтологов (или модельеров данных) вышли из программистов, программных аналитиков и архитекторов баз данных, т.е. из областей, которые де факто сейчас часть программной инженерии, а не системной инженерии.
 
 
 
=== Языковые рабочие места ===
 
'''Языковые рабочие места''' —  это новые IDE, специально посвященные созданию связанных наборов DSL (http://martinfowler.com/articles/languageWorkbench.html). Эту парадигму для разработки программных средств пробуют сейчас не слишком много разработчиков (http://martinfowler.com/bliki/IntentionalSoftware.html). Разработка "языконезависимого интерпретатора/компилятора" и "языконезависимого (в т.ч. графического) редактора" является очень сложной задачей. Зато перспективы очень заманчивы: каждый эксперт-непрограммист может получить собственный кастомизированный (инженерный, финансовый, управленческий и т.д.) DSL, и все эти DSL, адресующие множество различных интересов заинтересованных сторон, будут работать совместно.
 
 
Более того, эти отдельные обеспечивающие разделение интересов (separation of concerns) описания далее могут обрабатываться различными способами и для различных нужд:
 
* проверяться на непротиворечивость,
 
* транслироваться на выходные языки, используемые затем заводскими обрабатывающими инструментальными центрами,
 
* транслироваться в исполняемые имитационные модели и т.д.
 
 
Благодаря свободе выбора языков, это может быть лучше, чем MDA/UML (или MDA/SysML), и так же предотвращать потерю связности общей модели. Сейчас это движение исключительно программистов, системные инженеры не знают об этом DSL-тренде в целом и тренде разработки языковых рабочих мест в частности.
 
  
 +
== Интеграция моделей жизненного цикла ==
 +
'''Модели жизненного цикла''' - модели, которые порождаются и используются в какой-либо момент прохождения системой её жизненного цикла. Для их интеграции используются следующие подходы:
 +
* [[ISO 15926]]
 +
* работы по архитектуре семантической интеграции данных системноинженерных моделей DANSE (Designing for adaptability and evolution in system of systems engineering) для случая, когда моделирование шло для независимо разрабатываемых систем (системно-системная инженерия), и нельзя ожидать использования общего для всех инструментария моделирования и предписанной последовательности использования инструментов (Tool Chain). В этом случае говорят о Tool-Net (сети инструменов) и semantic mediation (основанной на стандартах Semantic Web): [https://www.danse-ip.eu/home/images/deliverables/danse_d8.1.3_conceptual_and%20architecture%20principles_of_sos_design_and_semantic_interoperability_of_systems_platform_and_sos_design_tool_net.pdf 1], [http://www.iltam.org/files/the-voice-of-the-systems-en-dec.2013.web.pdf (работа заняла первое место на INCOSE International Workshop 2013г. 2]).
 +
* [[OSLC]]
  
Системная инженерия может, как обычно, ждать 10 лет до заимствования из программной инженерии этих новых подходов к моделированию, или начинать экспериментировать с новыми технологиями немедленно. Моделеориентированная системная инженерия не должна быть синонимом [[SysML]]-ориентированной системной инженерии. SysML — это только отправной пункт для моделеориентированной системной инженерии, а не пункт назначения.
 
  
 +
== См. также ==
 +
* [[DSL]] (Domain Specific language)
  
  
 
[[Категория:Концепции]]
 
[[Категория:Концепции]]
 
[[Категория:Незавершенные статьи]]
 
[[Категория:Незавершенные статьи]]

Версия 14:51, 14 января 2016

Ключевая характеристика моделе-ориентированной системной инженерии — это поддержка одновременного использования множества методов описания (viewpoints), т.е. одновременного применения множества методов моделирования для получения множества групп описаний (views), которые адресуют различные интересы соответствующих заинтересованных лиц.


Model Driven Architecture (MDA)

Архитектура, управляемая моделью (Model Driven Architecture, MDA) — создаваемая консорциумом OMG разновидность концепции «Разработка, управляемая моделями» (англ. model-driven development): модельно-ориентированного подхода к разработке программного обеспечения. Его суть состоит в построении абстрактной метамодели управления и обмена метаданными (моделями) и задании способов ее трансформации в поддерживаемые технологии программирования (Java, CORBA, XML и др.). Создание метамодели определяется технологией моделирования MOF (Meta Object Facility), являющейся частью концепции MDA. Название концепции не совсем удачно, так как она определяет вовсе не архитектуру а именно метод разработки программного обеспечения.

OMG UML (http://www.uml.org/) принес парадигму множественности методов/групп описаний в мейнстрим программной инженерии. Его 5 типов диаграмм позволили связно отражать различные аспекты программных систем. Более того, UML расширяем стандартным способом, и системная инженерия с десятилетним лагом (как обычно) к программной инженерии получила средство для описания этого множества методов/групп описаний в форме SysML, являющегося расширением UML. ISO 42010 (стандарт рекомендованной практики архитектурных описаний) получил язык для своей поддержки.

UML вместе с MOF (Meta Object Facility, http://www.omg.org/mof, обеспечивает взаимосвязанность всех моделей на UML) является основным языком MDA (http://www.omg.org/mda) консорциума по стандартизации OMG. MDA уже переосмысливается, чтобы ее предмет был расширен с программной инженерии на системную инженерию (http://www.calimar.com/Papers/Model%20Driven%20Architecture%20for%20SE-Why%20Care.pdf, http://www.lboro.ac.uk/departments/el/sedc/documents/presentations/model-driven-architecture.pdf и много других).


Достоинства MDA

  • множество уровней абстракции (иерархия уровней метамоделирования) и множество обеспечиваемых метамоделями методов описания с прописанными правилами соответствия методов описаний (viewpoint correspondence rules).


Недостаток MDA

  • ограниченность этой архитектуры языком UML. В междисциплинарном проекте мы не можем ожидать, что все специалисты-пользователи говорят на UML или SysML, даже если мы расширим эти языки специфичными для предметных областей стереотипами.


Интеграция моделей жизненного цикла

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

  • ISO 15926
  • работы по архитектуре семантической интеграции данных системноинженерных моделей DANSE (Designing for adaptability and evolution in system of systems engineering) для случая, когда моделирование шло для независимо разрабатываемых систем (системно-системная инженерия), и нельзя ожидать использования общего для всех инструментария моделирования и предписанной последовательности использования инструментов (Tool Chain). В этом случае говорят о Tool-Net (сети инструменов) и semantic mediation (основанной на стандартах Semantic Web): 1, (работа заняла первое место на INCOSE International Workshop 2013г. 2).
  • OSLC


См. также

  • DSL (Domain Specific language)