|
|
(не показано 5 промежуточных версий этого же участника) |
Строка 1: |
Строка 1: |
− | Ключевая характеристика '''моделе-ориентированной системной инженерии''' — это поддержка одновременного использования множества [[Метод описания|методов описания]] (viewpoints), т.е. одновременного применения множества методов моделирования для получения множества групп описаний (views), которые адресуют различные интересы соответствующих заинтересованных лиц.
| + | #REDIRECT [[MBSE]] |
− | | + | |
− | | + | |
− | == 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]], даже если мы расширим эти языки специфичными для предметных областей стереотипами.
| + | |
− | | + | |
− | == 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-тренде в целом и тренде разработки языковых рабочих мест в частности.
| + | |
− | | + | |
− | | + | |
− | Системная инженерия может, как обычно, ждать 10 лет до заимствования из программной инженерии этих новых подходов к моделированию, или начинать экспериментировать с новыми технологиями немедленно. Моделеориентированная системная инженерия не должна быть синонимом [[SysML]]-ориентированной системной инженерии. SysML — это только отправной пункт для моделеориентированной системной инженерии, а не пункт назначения.
| + | |
− | | + | |
− | | + | |
− | | + | |
− | [[Категория:Концепции]]
| + | |
− | [[Категория:Незавершенные статьи]] | + | |