Язык моделирования — это любой искусственный язык , который может быть использован для выражения данных , информации или знаний или систем в структуре , которая определяется последовательным набором правил. Правила используются для интерпретации значения компонентов в структуре языка программирования.
Язык моделирования может быть графическим или текстовым. [1]
Примером языка графического моделирования и соответствующего ему языка текстового моделирования является EXPRESS .
Не все языки моделирования являются исполняемыми, и для тех, которые являются, их использование не обязательно означает, что программисты больше не нужны. Напротив, исполняемые языки моделирования предназначены для повышения производительности квалифицированных программистов, чтобы они могли решать более сложные проблемы, такие как параллельные вычисления и распределенные системы .
В литературе описано большое количество языков моделирования.
Примеры языков графического моделирования в области информатики, управления проектами и системной инженерии:
Примеры языков графического моделирования в других областях науки.
Информационные модели также могут быть выражены на формализованных естественных языках, таких как Gellish. [4] Gellish имеет варианты естественного языка, такие как Gellish Formal English и Gellish Formal Dutch (Gellish Formeel Nederlands) и т. д. Gellish Formal English — это язык представления информации или язык семантического моделирования, который определен в Gellish English Dictionary-Taxonomy, который имеет форму Taxonomy-Ontology (аналогично для Dutch). Gellish Formal English подходит не только для выражения знаний, требований и словарей, таксономий и онтологий, но и информации об отдельных вещах. Вся эта информация выражена на одном языке, и поэтому ее можно интегрировать, независимо от того, хранится ли она в централизованных или распределенных или в федеративных базах данных. Информационные модели в Gellish Formal English состоят из коллекций выражений Gellish Formal English, которые используют термины естественного языка и формализованные фразы. Например, географическая информационная модель может состоять из ряда выражений формального английского языка Gellish, таких как:
- Эйфелева башня <находится в> Париже- Париж <классифицируется как> город
тогда как информационные требования и знания могут быть выражены, например, следующим образом:
- башня <должна быть расположена в> географической зоне- город <является видом> географической области
Такие выражения формального английского языка Gellish используют названия концепций (например, «город») и фразы, представляющие типы отношений (например, ⟨находится в⟩ и ⟨классифицируется как⟩ ), которые следует выбирать из словаря таксономии английского языка Gellish (или из вашего собственного словаря предметной области). Словарь таксономии английского языка Gellish позволяет создавать семантически насыщенные информационные модели, поскольку словарь содержит более 600 стандартных типов отношений и определения более 40000 концепций. Информационная модель в языке Gellish может выражать факты или делать утверждения, запросы и ответы.
В последнее время в области компьютерных наук появились более конкретные типы языков моделирования.
Языки алгебраического моделирования (AML) — это языки программирования высокого уровня для описания и решения сложных задач для крупномасштабных математических вычислений (т. е. задач типа крупномасштабной оптимизации). Одним из особых преимуществ AML, таких как AIMMS , AMPL , GAMS , Gekko , Mosel , OPL , MiniZinc и OptimJ , является сходство его синтаксиса с математической записью задач оптимизации. Это позволяет очень кратко и читабельно определять задачи в области оптимизации, что поддерживается определенными языковыми элементами, такими как множества, индексы, алгебраические выражения, мощные разреженные индексы и переменные обработки данных, ограничения с произвольными именами. Алгебраическая формулировка модели не содержит никаких подсказок о том, как ее обрабатывать.
Поведенческие языки предназначены для описания наблюдаемого поведения сложных систем, состоящих из компонентов, которые выполняются одновременно. Эти языки фокусируются на описании ключевых концепций, таких как: параллелизм, недетерминизм, синхронизация и коммуникация. Семантической основой поведенческих языков является исчисление процессов или алгебра процессов .
Язык моделирования, специфичный для дисциплины (DspM) , ориентирован на результаты, связанные с определенным этапом жизненного цикла разработки программного обеспечения. Поэтому такой язык предлагает отдельный словарь, синтаксис и нотацию для каждого этапа, такого как обнаружение, анализ, проектирование, архитектура, сокращение и т. д. Например, для фазы анализа проекта разработчик модели использует определенную нотацию анализа для предоставления диаграммы предложений анализа. Однако на этапе проектирования логическая нотация проектирования используется для отображения взаимосвязи между сущностями программного обеспечения. Кроме того, передовые практики языка моделирования, специфичные для дисциплины, не исключают возможности объединения различных нотаций в одной диаграмме.
Моделирование предметной области (DSM) — это методология разработки программного обеспечения для проектирования и разработки систем, чаще всего ИТ-систем, таких как компьютерное программное обеспечение. Она включает в себя систематическое использование графического предметно-ориентированного языка (DSL) для представления различных аспектов системы. Языки DSM, как правило, поддерживают абстракции более высокого уровня, чем языки моделирования общего назначения, поэтому они требуют меньше усилий и меньше низкоуровневых деталей для спецификации данной системы.
Язык моделирования, специфичный для фреймворка ( FSML) — это разновидность языка моделирования, специфичного для предметной области, который разработан для объектно-ориентированного фреймворка приложений. FSML определяют абстракции, предоставляемые фреймворком, как концепции FSML и разлагают абстракции на признаки. Признаки представляют собой этапы реализации или варианты выбора.
Концепцию FSML можно настроить, выбрав функции и указав значения для функций. Такая конфигурация концепции представляет, как концепция должна быть реализована в коде. Другими словами, конфигурация концепции описывает, как должна быть завершена структура для создания реализации концепции.
Связанные данные и проектирование онтологий требуют «языков-хозяев» для представления сущностей и отношений между ними , ограничений между свойствами сущностей и отношений и атрибутов метаданных . JSON-LD и RDF являются двумя основными (и семантически почти эквивалентными) языками в этом контексте, в первую очередь потому, что они поддерживают овеществление и контекстуализацию утверждений , которые являются существенными свойствами для поддержки логики более высокого порядка, необходимой для рассуждений о моделях. Трансформация модели является распространенным примером такого рассуждения.
Языки объектного моделирования — это языки моделирования, основанные на стандартизированном наборе символов и способах их организации для моделирования (части) объектно-ориентированного проектирования программного обеспечения или проектирования системы.
Некоторые организации широко используют их в сочетании с методологией разработки программного обеспечения для перехода от начальной спецификации к плану внедрения и для передачи этого плана всей команде разработчиков и заинтересованных лиц. Поскольку язык моделирования визуален и находится на более высоком уровне абстракции, чем код, использование моделей способствует формированию общего видения, которое может предотвратить проблемы различной интерпретации на более поздних этапах разработки. Часто инструменты моделирования программного обеспечения используются для построения этих моделей, которые затем могут быть способны к автоматическому переводу в код.
Язык моделирования виртуальной реальности (VRML), до 1995 года известный как язык разметки виртуальной реальности, представляет собой стандартный формат файла для представления трехмерной (3D) интерактивной векторной графики, разработанный специально для Всемирной паутины.
Различные виды языков моделирования применяются в различных дисциплинах, включая информатику , управление информацией , моделирование бизнес-процессов , программную инженерию и системную инженерию . Языки моделирования могут использоваться для указания:
Языки моделирования предназначены для точного описания систем, чтобы заинтересованные стороны (например, клиенты, операторы, аналитики, проектировщики) могли лучше понять моделируемую систему.
Более зрелые языки моделирования точны, последовательны и выполнимы. Неформальные методы построения диаграмм, применяемые с помощью инструментов рисования, как ожидается, дадут полезные наглядные представления системных требований, структур и поведения, которые могут быть полезны для коммуникации, проектирования и решения проблем, но не могут быть использованы программно. [5] : 539 Однако исполняемые языки моделирования, применяемые с надлежащей поддержкой инструментов, как ожидается, автоматизируют верификацию и валидацию системы , моделирование и генерацию кода из тех же представлений.
Обзор языков моделирования необходим для того, чтобы иметь возможность назначить, какие языки подходят для различных настроек моделирования. В термин настройки мы включаем заинтересованные стороны, домен и связанные знания. Оценка качества языка — это средство, направленное на достижение лучших моделей.
Здесь качество языка определяется в соответствии с SEQUAL framework для качества моделей, разработанным Krogstie, Sindre и Lindland (2003), поскольку это framework, который связывает качество языка с framework для общего качества модели. В этой framework используются пять областей для описания качества языка, и они должны выражать как концептуальную, так и визуальную нотацию языка. Мы не будем вдаваться в подробное объяснение базовой структуры качества моделей, а сосредоточимся на областях, используемых для объяснения структуры качества языка.
Фреймворк утверждает способность представлять домен как соответствие домену. Утверждение соответствие может быть немного расплывчатым, но в этом конкретном контексте оно означает способность выражать . В идеале вы должны уметь выражать только то, что находится в домене, но быть достаточно мощным, чтобы включать все, что находится в домене. Это требование может показаться немного строгим, но цель состоит в том, чтобы получить визуально выраженную модель, которая включает все, что относится к домену, и исключает все, что не соответствует домену. Чтобы достичь этого, язык должен иметь хорошее различие того, какие нотации и синтаксисы выгодно представлять.
Чтобы оценить соответствие участников, мы пытаемся определить, насколько хорошо язык выражает знания, которыми обладают заинтересованные стороны. Это влечет за собой проблемы, поскольку знания заинтересованной стороны субъективны. Знания заинтересованной стороны бывают как неявными, так и явными. Оба типа знаний носят динамический характер. В этой структуре учитывается только явный тип знаний. Язык должен в значительной степени выражать все явные знания заинтересованных сторон, имеющие отношение к предметной области.
В последнем параграфе говорилось, что знания заинтересованных сторон должны быть представлены в хорошем виде. Кроме того, крайне важно, чтобы язык мог выражать все возможные явные знания заинтересованных сторон. Никакие знания не должны оставаться невыраженными из-за недостатков языка.
Уместность понимания гарантирует, что социальные субъекты понимают модель благодаря последовательному использованию языка. Для достижения этого структура включает набор критериев. Общая важность, которую они выражают, заключается в том, что язык должен быть гибким, легко организуемым и легко различать различные части языка как внутри, так и от других языков. В дополнение к этому, цель должна быть максимально простой, и каждый символ в языке должен иметь уникальное представление.
Это также связано со структурой требований к разработке.
Чтобы гарантировать, что фактически смоделированная область пригодна для анализа и дальнейшей обработки, язык должен гарантировать возможность рассуждать автоматически. Для этого он должен включать формальный синтаксис и семантику. Еще одним преимуществом формализации является возможность обнаружения ошибок на ранней стадии. Не всегда язык, наиболее подходящий для технических субъектов, совпадает с языком для социальных субъектов.
Используемый язык соответствует организационному контексту, например, язык стандартизирован в организации или поддерживается инструментами, выбранными в качестве стандартных в организации.