Модели, методы и программные средства трансформации предметно-ориентированных языков для интерфейсов программных систем общего назначения тема диссертации и автореферата по ВАК РФ 05.13.11, кандидат наук Улитин Борис Игоревич
- Специальность ВАК РФ05.13.11
- Количество страниц 161
Оглавление диссертации кандидат наук Улитин Борис Игоревич
Введение
Глава 1: Классические подходы к разработке ПОЯ для программных систем
1.1 Определение, классификация и общая структура ПОЯ
1.2 Модели жизненного цикла ПОЯ
1.2.1 Анализ применимости ПОЯ
1.2.2 Анализ предметной области
1.2.3 Проектирование и реализация ПОЯ
1.2.4 Развертывание ПОЯ
1.2.5 Недостатки существующих методов управления жизненным циклом ПОЯ для поддержки эволюции ПОЯ
1.3 Особенности разработки и эксплуатации программных систем в динамических контекстах
1.4 Анализ классического подхода к разработке ПОЯ
Глава 2: Анализ существующих подходов к формализации структуры ПОЯ
2.1 Подходы к разработке и анализу семантической модели предметной области
2.2 Понятие кроссмодельных преобразований
2.3 Методы модельно-ориентированного определения ПОЯ
2.3.1 Трехуровневая структура ПОЯ
2.3.2 Семантическая модель ПОЯ
2.3.3 Методы разработки метамодели ПОЯ
2.3.4 Методы моделирования конкретного синтаксиса ПОЯ
2.4 Формализация кроссмодельных преобразований на основе графовых моделей
Глава 3: Разработка проекционного подхода к разработке ПОЯ
3.1 Схема предлагаемого проекционного подхода на основе обобщенной модельно-ориентированной структуры ПОЯ и кроссмодельных преобразованиях
3.2 Представление эволюции ПОЯ в рамках предлагаемого подхода
3.3 Алгоритмизация процедур эволюции ПОЯ с использованием кроссмодельных преобразований
Глава 4: Практическое использование предлагаемого проекционного подхода для разработки и модификации ПОЯ в изменяющихся контекстах
4.1 Обоснование выбора предметных областей для апробации результатов74
4.2 Разработка программной системы на базе проекционного подхода для управления ресурсами ж/д станции
4.2.1 Применение проекционного подхода: разработка модели предметной области
4.2.2 Применение проекционного подхода: описание МКЕ в моделях ПОЯ
4.2.3 Применение проекционного подхода: описание кроссмодельных преобразований между СМПО и метамоделями ПОЯ
4.2.4 Применение проекционного подхода: описание МКК в архитектуре предлагаемой системы
4.2.5 Применение проекционного подхода: проектирование архитектуры предлагаемой программной системы
4.2.6 Проектирование и реализация модуля эволюции ПОЯ
4.2.7 Анализ эффективности предлагаемого решения
4.3 Разработка программной системы на базе проекционного подхода для Приемной комиссии ВУЗа
4.3.1 Применение проекционного подхода: разработка модели предметной области
4.3.2 Применение проекционного подхода: описание МКЕ в моделях ПОЯ
4.3.3 Применение проекционного подхода: описание кроссмодельных преобразований между СМПО и метамоделями ПОЯ
4.3.4 Применение проекционного подхода: описание МКК в архитектуре предлагаемой системы
4.3.5 Применение проекционного подхода: проектирование архитектуры предлагаемой программной системы
4.3.6 Проектирование и реализация модуля эволюции ПОЯ
4.3.7 Анализ эффективности предлагаемого решения
4.4 Технические особенности реализованных программных прототипов
4.5 Анализ границ применимости предлагаемых подходов и реализованных программных прототипов
Заключение
Список использованной литературы
Глоссарий
ПРИЛОЖЕНИЕ 1: UML-диаграмма классов БД
ПРИЛОЖЕНИЕ 2: Основные вкладки интерфейса
ПРИЛОЖЕНИЕ 3: Пример обработчика МКК поля int
ПРИЛОЖЕНИЕ 4: Функция соответствия МКЕ объектно-реляционной модели и МКК ПОЯ
ПРИЛОЖЕНИЕ 5: UML-диаграмма ресурсов ж/д станции
ПРИЛОЖЕНИЕ 6: Кроссмодельные преобразования в ATL
ПРИЛОЖЕНИЕ 7: Текстовый ПОЯ для ж/д станции
Рекомендованный список диссертаций по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК
Разработка моделей и методов управления периодическими процессами технического обслуживания на авиаремонтном предприятии2013 год, кандидат наук Федотова, Алена Валериевна
Методы и программные средства интеграции приложений с использованием внешней шины2015 год, кандидат наук Шумский, Леонид Дмитриевич
Технология интеграции данных в гетерогенных корпоративных программных комплексах2017 год, кандидат наук Зыков, Сергей Викторович
Методы и средства формирования предметных онтологий в автоматизированном проектировании программно-аппаратных комплексов2018 год, кандидат наук Гуськов Глеб Юрьевич
Разработка интеллектуальной системы для поддержки проектирования человеко-компьютерного взаимодействия в веб-приложениях2012 год, кандидат технических наук Бакаев, Максим Александрович
Введение диссертации (часть автореферата) на тему «Модели, методы и программные средства трансформации предметно-ориентированных языков для интерфейсов программных систем общего назначения»
Введение
Актуальность темы. В центре внимания этой работы находится понятие предметно-ориентированного языка (ПОЯ) в контексте моделирования структуры интерфейсов программных систем общего назначения. В данном случае под структурой подразумевается совокупность объектов, задействованных в интерфейсе, и взаимосвязей между ними. Алгоритмические ПОЯ, используемые для описания решения некоторой задачи в рамках предметной области, не входят в фокус внимания данной работы. Важно отметить, что используемые в работе подходы на основе ПОЯ применимы для моделирования как программных интерфейсов между различными составляющими сложной программной системы, так и человеко-машинных интерфейсов [36] (т.е. объектов и связей, отображаемых на экране и используемых пользователем). Однако в рамках данного исследования мы демонстрируем приложение и развитие этих подходов только для повышения эффективности разработки человеко-машинных интерфейсов в составе программных систем общего назначения.
С точки зрения компьютерных наук ПОЯ является компьютерным языком (в т.ч. программирования или моделирования) с ограниченными выразительными возможностями, ориентированный на некую конкретную предметную область [44]. С более общей точки зрения (включающей лингвистические аспекты ПОЯ как языка в целом), ПОЯ является искусственно созданным языком, который семантически и синтаксически соответствует некоторой предметной области [5].
Чаще всего ПОЯ разрабатывается как часть некоторой более общей программной системы (которая называется по отношению к ПОЯ основной системой). В этом смысле, ПОЯ связан с языком общего назначения, используемом при создании основной системы и, по отношению к нему, может быть внутренним или внешним [44].
Внутренние ПОЯ написаны на языке основного приложения и встроены в этот язык [44]. С этой точки зрения внутренние ПОЯ представляют собой специфичный способ использования языка общего назначения, используемого при создании основного приложения. Как следствие, для разработки внутренних ПОЯ применимы подходы, характерные для языков общего назначения, и их анализ находится за рамками данного исследования.
В отличие от внутренних ПОЯ, внешние ПОЯ написаны отдельно от основной системы. После создания такие языки встраиваются в основное приложение в качестве компилятора или интерпретатора [44]. Основным преимуществом внешних ПОЯ является то, что они могут наилучшим образом отразить концепты предметной области и требования заказчика [14].
В рамках данной работы мы рассматриваем только внешние ПОЯ, используемые для моделирования интерфейсов программных систем общего назначения. Это эффективно и обоснованно с той точки зрения, что человеко-машинный интерфейс программных систем обладает ограниченной функциональностью (непосредственно связанной с функционалом системы в целом), как и ПОЯ, и может в этом смысле рассматриваться как особый вид ПОЯ [67]. Именно поэтому внедрение элементов разработки и модификации ПОЯ в процессы разработки и модификации программных систем может быть эффективным и обеспечить большую гибкость последних в отношении требований различных категорий пользователей [36].
Интерес к ПОЯ проявляется как среди исследователей, так и среди практиков [67, 79]. В первую очередь это связано с тем, что ПОЯ представляют собой удобный, понятный и достаточно простой с точки зрения пользователя механизм управления той предметной областью, для которой они созданы [44].
Исследованиям проблем разработки ПОЯ посвящены работы многих отечественных ученых, в частности, И.С. Ануреева [1], Б.Н. Гайфуллина и В.Е. Туманова [5], А.О. Сухова [14], В.Г. Федоренкова и П.В. Балакшина [17] и др.
Эта тематика также находит отражение в работах таких зарубежных ученых, как Pablo Gómez-Abajo, Esther Guerra, Juan de Lara [49], Aleksandar Popovic, Ivan Lukovic, Vladimir Dimitrieski, Verislav Djuki [SS], Walter Cazzola, Edoardo Vacchi и др.
Кроме того, большое количество работ посвящено исследованиям в смежных областях, в частности: вопросы определения и динамики семантики исследуются в работах А.П. Ершова [S], Л.А. Калиниченко [9, б5], Guizzardi [51, 52], Stoy [100], Strachey [S2] и др., определение синтаксических аспектов ПОЯ - в работах Evans [42], Laird [70] и др.
В большинстве современных исследований [44, б7, S5] процесс разработки ПОЯ включает в себя следующие этапы: принятие решения (о необходимости создания ПОЯ, иначе говоря, анализ его применимости), анализ предметной области (для которой создается ПОЯ), проектирование ПОЯ (включающее в себя определение всей структуры ПОЯ и выбор наиболее подходящего вида ПОЯ), реализация ПОЯ и развёртывание ПОЯ.
Также иногда рассматривают как отдельный этап поддержку ПОЯ (включающую в себя возможность эволюции ПОЯ) [З5]. Эволюция может происходить как под влиянием изменений самой предметной области ([З5, Зб]), так и под влиянием внутренних факторов, таких как изменение поведения пользователей системы [70], их гетерогенность [S6].
Однако, как показывает анализ публикаций, в работах не освещен сам
механизм отслеживания изменений предметной области и их трансляции на
модель ПОЯ. Более того, считается, что к моменту разработки ПОЯ сама
модель предметной области уже создана вручную перенесена в модель ПОЯ
(как, например, в работах [49, б0]). Справедливо отметить, что ряд
исследователей, в их числе Peter Bell [2б], Josh G.M. Mengerink, Alexander
Serebrenik, Mark van den Brand [7б], Ramon R.H.Schiffelers [77] и в частности,
Jonathan Sprinkle, Gabor Karsai [97], исследуют вопрос эволюции графических
моделей предметной области. Но они не рассматривают последующий
перенос проведенных изменений моделей и правил, их обеспечивающих, на
7
модели ПОЯ [97]. Напротив, эти авторы стараются сохранить структуру ПОЯ неизменной, что не соответствует предположению, что модель ПОЯ идентична модели предметной области, а значит, любое изменение модели предметной области должно выливаться в эквивалентное изменение модели ПОЯ.
Вопрос эволюции ПОЯ является еще более актуальным в случае ПОЯ для моделирования человеко-машинных интерфейсов программных систем общего назначения, поскольку жизненный цикл программных систем предполагает наличие этапа поддержки программной системы, подразумевающего ее развитие (модификацию) под новые требования пользователей [70].
Чтобы подчеркнуть важность этого требования в работе используется понятие динамического контекста, в условиях которого происходит этап поддержки программной системы. Под динамическим контекстом в работе понимается совокупность изменяющихся моделей предметной области и/или набора компетенций пользователей. Наличие динамического контекста обусловливает необходимость адаптации интерфейсов программной системы под новые требования пользователей, а также в соответствии с изменениями моделей предметной области, для которой создана программная система [36].
Как следствие, изменения в системе должны быть отражены в ПОЯ, который также существует в динамическом контексте. Однако, в жизненном цикле ПОЯ этап поддержки (сопровождения) является опциональным, а существующие инструменты разработки ПОЯ не поддерживают функционал по организации полноценной эволюции ПОЯ [67]. Как следствие, могут возникать проблемы эффективности в использовании программной системы на базе ПОЯ [35].
В связи с этим, является актуальной задача предложения подходов, методов и инструментальных средств поддержки эволюции ПОЯ для
моделирования человеко-машинных интерфейсов программных систем общего назначения.
Целью исследования является повышение эффективности процессов поддержки жизненного цикла программных систем общего назначения путем разработки новых моделей и методов эволюции ПОЯ для моделирования интерфейсов.
Для оценки эффективности используются критерии в соответствии с ГОСТ Р ИСО/МЭК 25010-2015 [7], в т.ч. время модификации ПОЯ, количество вносимых вручную строк кода для модификации интерфейсов и др.
Для достижения цели необходимо реализовать следующие задачи исследования:
• проанализировать существующие подходы к разработке и трансформации (эволюции) ПОЯ для моделирования человеко-машинных интерфейсов программных систем общего назначения;
• разработать формальную модель, лежащую в основе предлагаемого подхода к трансформации и эволюции ПОЯ для моделирования человеко-машинных интерфейсов программных систем общего назначения;
• разработать алгоритмы трансформации моделей (как предметной области, так и ПОЯ для моделирования человеко-машинных интерфейсов программных систем общего назначения);
• провести апробацию и тестирование полученных результатов (моделей, алгоритмов и программных прототипов) на ПОЯ для моделирования человеко-машинных интерфейсов программных систем общего назначения в различных предметных областях, обладающих динамическим контекстом.
Объектом исследования является процесс поддержки жизненного цикла программных систем общего назначения в части эволюции моделей человеко-машинного интерфейса как примера внешнего ПОЯ в динамических контекстах.
Предметом исследования являются модельно-ориентированные процессы трансформации внешнего ПОЯ для моделирования человеко-машинных интерфейсов программных систем общего назначения в динамическом контексте в случае изменения моделей предметной области или компетенций пользователей ПОЯ.
Методы исследования. В диссертационной работе использованы такие формальные математические методы как: теория функций, теория графов [94] и графовых грамматик [19], элементы логики предикатов [31]. В качестве средства моделирования предметной области применяются ЦМЬ-диаграммы и концептуальные (семантические) модели в виде кодифицированных онтологий [51] и объектно-реляционных моделей [19].
В практической части работы применяются методы компиляции, декларативные средства для преобразований на графах [27], методы объектно-ориентированного и событийно-ориентированного программирования. Научная новизна.
• на основе анализа существующих подходов и методов к разработке ПОЯ представлена обобщенная модельно-ориентированная структура ПОЯ, представляющая собой унифицированное представление всех уровней структуры ПОЯ;
• формализованы различные виды (модели) эволюции ПОЯ для моделирования человеко-машинного интерфейса для программных систем общего назначения, что позволяет определить согласованную эволюцию СМПО и всех уровней ПОЯ в соответствии с предлагаемым проекционным подходом;
• построен и реализован набор кроссмодельных преобразований (на основе графовых преобразований) для организации горизонтальной и вертикальной эволюции внешнего ПОЯ моделирования интерфейсов программных систем общего назначения;
• на основе выделенного набора кроссмодельных преобразований
предложен новый метод (названный проекционным подходом) к
10
разработке внешнего ПОЯ для моделирования человеко-машинных интерфейсов программных систем общего назначения. Предложенный проекционных подход позволяет автоматизировать процесс разработки ПОЯ для моделирования интерфейсов программных систем общего назначения и использовать результаты анализа предметной области (ее представление в виде семантической модели предметной области (СМПО)) при проектировании и реализации ПОЯ, а также организовать автоматизированную эволюцию ПОЯ;
• в соответствии с предложенным методом выполнена алгоритмизация и программная реализация процедуры трансформации человеко-машинного интерфейса как примера внешнего ПОЯ для моделирования человеко-машинных интерфейсов программных систем общего назначения для двух предметных областей.
В результате анализа выполненной программной реализации процедуры трансформации человеко-машинного интерфейса как примера внешнего ПОЯ выявлены повторно-используемые результаты. На этом основании делается вывод, что предложенный подход и модели эволюции ПОЯ применимы для реализации эволюции ПОЯ в различных предметных областях и являются основой для разработки универсальных программных инструментов поддержки полного жизненного цикла ПОЯ (включая этап эволюции ПОЯ). Положения, выносимые на защиту :
• формализованная модель эволюции ПОЯ на основе кроссмодельных, графовых преобразований для моделирования интерфейсов программных систем общего назначения в динамических контекстах;
• новый метод (названный проекционным подходом) к разработке внешнего ПОЯ для моделирования интерфейсов программных систем общего назначения, позволяющий автоматизировать процесс разработки ПОЯ для моделирования интерфейсов программных систем общего назначения и использовать результаты анализа предметной
области при проектировании, реализации и модификации ПОЯ;
11
• повторно-используемая программная реализация процедуры трансформации человеко-машинного интерфейса как примера внешнего ПОЯ, использованная в составе двух прототипов программных сред для различных предметных областей. Практическая ценность результатов.
В рамках исследования был разработан новый инженерный метод
(проекционный подход) к разработке внешнего ПОЯ для моделирования
интерфейсов программных систем общего назначения, позволяющий
повысить эффективность и удобство процессов поддержки эволюции ПОЯ для
моделирования человеко-машинных интерфейсов программных систем
общего назначения. В поддержку предложенного подхода была выполнена
алгоритмизация и программная реализация процедуры трансформации
человеко-машинного интерфейса как примера внешнего ПОЯ.
Были реализованы прототипы программных сред с применением
предлагаемого проекционного подхода на базе ПОЯ (с возможностями
эволюции в условиях динамических контекстов) для предметных областей
«Программная система Приемной комиссии ВУЗа» и «Программная система
распределения ресурсов ж/д станции» (для разработки использовался язык
Java и плагины Eclipse, общее число строк кода обоих прототипов - 22483).
Разработанные прототипы позволяют не только выполнять сценарии на ПОЯ,
но также модифицировать структуру всех уровней ПОЯ в реальном режиме
времени без необходимости повторного создания ПОЯ и ИС в целом.
Опыт эксплуатации разработанных программных прототипов показал,
что их применение минимизирует количество ошибок и конфликтов при
модификации (эволюции) ПОЯ и программной среды в целом, так как все
изменения в ПОЯ вносятся в автоматизированном виде, без необходимости
ручной модификации. Как следствие, снижается и суммарное время,
затрачиваемое на модификацию ПОЯ и программной среды в целом.
Предложенный подход к поддержке эволюции ПОЯ для моделирования
интерфейсов программных систем общего назначения применим для
12
реализации программных сред общего назначения различных предметных областей, обладающих динамическим контекстом использования, в частности, в областях с высокой степенью адаптивности, например, в т.н. умных (Smart) системах и кибер-физических системах [67].
Апробация и внедрение результатов. Основные результаты работы были представлены на следующих международных конференциях:
• 15th International Conference on Perspectives in Business Informatics Research, Prague, Czech Republic, September 15-16, 2016;
• 16th International Conference on Perspectives in Business Informatics Research, Copenhagen, Denmark, August 28-30, 2017;
• 17th International Conference on Perspectives in Business Informatics Research, Stockholm, Sweden, September 24-26, 2018;
• 22st Conference of Open Innovations Association FRUCT, Jyvaskyla, Finland, May 15-18, 2018;
• 18th International Conference on Perspectives in Business Informatics Research, Katowice, Poland, September 23-25, 2019;
• 11th International Joint Conference on Knowledge Discovery, Knowledge Engineering, and Knowledge Management, Vienna, Austria, September 1719, 2019;
• 15th International Workshop on Enterprise & Organizational Modeling and Simulation (EOMAS в рамках CAiSE 2019), Rome, Italy, June 3-4, 2019;
• 9th IFAC/IFIP/IFORS/IISE/INFORMS Conference Manufacturing Modelling, Management and Control (MIM), Berlin, Germany, August 2830, 2019;
• 1st International Workshop on Model-driven Organizational and Business Agility (MOBA-2021) в рамках 33rd International Conference on Advanced Information Systems Engineering, June 28-29, 2021.
Публикации. Результаты работы были опубликованы в виде 12 статей в журналах (1-3) и сборниках статей по материалам конференций (4-12):
1. Бабкин, Э.А., Бабкина, Т.С., Улитин, Б.И. Моделирование динамики онлайн-дискуссий в сети Интернет с использованием многоагентных систем // Бизнес-информатика. - 2018. - № 2 (44) - с. 17-29.
2. Ulitin, В., Babkin, E., Babkina, T. Ontology-based DSL development using graph transformations methods // Journal of Systems Integration. - 2018. -v.9 (2). - pp. 37-51.
3. Ulitin, В., Babkin, E. Ontology-based reconfigurable DSL for planning technical services // IFAC-PapersOnLine. - 2019. - v. 52, no. 13. - pp. 11381144.
4. Ulitin, В., Babkina, T. Adapting Domain-Specific Interfaces Using Invariants Mechanisms // Advanced Information Systems Engineering Workshops. CAiSE 2021. Lecture Notes in Business Information Processing, vol 423. -2021. - pp. 81-92.
5. Ulitin, B., Babkin, E. Providing Models of DSL Evolution Using Model-to-Model Transformations and Invariants Mechanisms // Digital Transformation and New Challenges, Lecture Notes in Information Systems and Organisation. - 2020. - v. 40. - pp. 37-48.
6. Ulitin, B. et al. Automated formal verification of model transformations using the invariants mechanism / B. Ulitin, E. Babkin, T. Babkina, A. Vizgunov // Perspectives in Business Informatics Research. 18th International Conference, BIR 2019, Katowice, Poland, September 23-25, 2019 Proceedings. Lecture Notes in Business Information Processing. - 2019. - i. 365. - pp. 59-73.
7. Ulitin, B., Babkin, E., Babkina, T. A Projection-Based Approach for Development of Domain-Specific Languages // Perspectives in Business Informatics Research. 17th International Conference, BIR 2018, Stockholm, Sweden, September 24-26, 2018 Proceedings. Lecture Notes in Business Information Processing. - 2018. - i. 330. - pp. 219-234.
8. Ulitin, B., Babkin, E. Ontology and DSL co-evolution using graph transformations methods // Perspectives in Business Informatics Research.
14
16th International Conference, BIR 2017, Copenhagen, Denmark, August 2830, 2017 Proceedings. Lecture Notes in Business Information Processing. -2017. - 2017. - i. 295. - pp. 233-247.
9. Ulitin, B., Babkin, E., Babkina, T. Combination of DSL and DCSP for decision support in dynamic contexts // Perspectives in Business Informatics Research. 15th International Conference, BIR 2016, Prague, Czech Republic, September 15-16, 2016 Proceedings. Lecture Notes in Business Information Processing. - 2016. - i. 261. - pp. 159-173.
10.Babkin, E., Poletaeva, T., Ulitin, B. Knowledge life cycle management as a key aspect of digitalization // Communications in Computer and Information Science. 11th International Joint Conference on Knowledge Discovery, Knowledge Engineering, and Knowledge Management, IC3K 2019, Vienna, Austria, September 17-19, 2019, Revised Selected Papers Issue 1297: Knowledge Discovery, Knowledge Engineering and Knowledge Management. - 2020. - pp. 429-452.
11.Babkin, E., Poletaeva, T., Ulitin, B. Digitalization: A meeting point of knowledge management and enterprise engineering // IC3K 2019 -Proceedings of the 11th International Joint Conference on Knowledge Discovery, Knowledge Engineering and Knowledge Management. - 2019. -v. 3. - pp. 22-36.
12.Ulitin, B., Babkin, E. An Object-Oriented Model for Smart Devices in Internet of Things // Proceedings of the 22st Conference of Open Innovations Association FRUCT, Jyvaskyla, Finland. - 2018. - pp. 263-271. Получено Свидетельство о государственной регистрации программы
для ЭВМ №2018616788 «Postgraduate admission office» (v.1.0).
Структура и объем диссертации. Диссертационная работа состоит из введения, 4 глав, заключения, списка литературы, включающего 116 источников (в т.ч. 17 отечественных), глоссария и 7 приложений. Работа изложена на 161 листе машинописного текста, содержит 47 рисунков, 4 таблицы.
Краткое содержание работы.
Во введении представлены актуальность работы, цель и задачи диссертационного исследования, научная новизна, теоретическая и практическая значимость исследования, а также приводится краткое содержание работы.
Глава 1 посвящена анализу существующей классической методологии проектирования и реализации ПОЯ для моделирования человеко-машинных интерфейсов программных систем общего назначения в контексте жизненного цикла программных систем общего назначения. Для этого в главе приводится определение ПОЯ и его места в программных системах общего назначения. Представлено описание основных этапов классического жизненного цикла ПОЯ и программных систем. Выделены недостатки существующих методов управления жизненным циклом ПОЯ для моделирования человеко-машинных интерфейсов программных систем общего назначения.
На основании проведенного анализа делается вывод о неполном соответствии жизненных циклов ПОЯ и программных систем общего назначения. Как следствие, существует необходимость в разработке методов, позволяющих не только устранить недостатки классического подхода к разработке ПОЯ для моделирования человеко-машинных интерфейсов программных систем общего назначения, но также поддерживать его эволюцию в соответствии с эволюцией предметной области.
Глава 2 посвящена анализу существующих методов и формализмов, используемых при описании структуры ПОЯ для моделирования человеко-машинных интерфейсов программных систем общего назначения. В частности, рассматриваются формализации таких артефактов, как: семантическая модель предметной области (СМПО), составляющие структуры ПОЯ: семантика, абстрактный и конкретный синтаксис.
По итогам анализа классических подходов к формализации ПОЯ для
моделирования человеко-машинных интерфейсов программных систем
общего назначения сформулировано обобщенное унифицированное
16
модельно-ориентированное представление ПОЯ для моделирования человеко-машинных интерфейсов программных систем общего назначения. Это представление позволяет представить каждую составляющую структуры ПОЯ в виде модели, а процесс эволюции ПОЯ - в виде набора кроссмодельных преобразований.
Формирование такого унифицированного представления позволяет напрямую использовать в процессе разработки ПОЯ для моделирования человеко-машинных интерфейсов программных систем общего назначения результаты анализа предметной области (ее представление в виде СМПО), автоматизируя процессы определения структуры ПОЯ, тем самым устраняя необходимость повторного создания ПОЯ в случае модификации СМПО в процессе эволюции предметной области.
Глава 3 содержит подробное описание предлагаемого нового проекционного подхода к разработке ПОЯ для моделирования человеко-машинных интерфейсов программных систем общего назначения, базирующегося на модельно-ориентированном представлении структуры ПОЯ, сформулированном в предыдущей главе.
В предлагаемом проекционном подходе переход между различными составляющими структуры ПОЯ происходит посредством применения набора правил кроссмодельных преобразований, обеспечивающих не только согласованность вносимых в ПОЯ изменений с изменениями в предметной области (СМПО), но и возможность автоматизации процесса эволюции ПОЯ.
Полученный набор правил кроссмодельных преобразований для организации эволюции ПОЯ на основе графовых преобразований может применяться для проектирования ПОЯ для моделирования человеко-машинных интерфейсов программных систем общего назначения в различных предметных областях. Для этого необходимо адаптировать только отдельные части правил в соответствии с используемыми моделями предметной области, сама же структура правил и их набор остаются неизменными.
На основе данного набора правил кроссмодельных преобразований, в главе представлены детали алгоритмизации и программной реализации процедуры эволюции человеко-машинного интерфейса программных систем общего назначения. Разработанные программные алгоритмы использованы для реализации программных систем в двух предметных областях, описанных в следующей главе.
Глава 4 содержит описание и анализ программной реализации процедуры эволюции человеко-машинного интерфейса программных систем общего назначения как примера внешнего ПОЯ в двух предметных областях: «Программная система Приемной комиссии ВУЗа» и «Программная система распределения ресурсов ж/д станции». Представлено определение правил кроссмодельных преобразований на языке ЛТЬ [23] для реализации горизонтальной и вертикальной эволюции ПОЯ для моделирования человеко-машинных интерфейсов программных систем общего назначения. Разработаны инструментальные средства (модули) для поддержки эволюции ПОЯ для моделирования человеко-машинных интерфейсов программных систем общего назначения.
Приведены результаты оценки характеристик существующих и предложенных программных сред по следующим критериям: время модификации ПОЯ, количество строк кода, вносимых вручную в ходе модификации ПОЯ.
В заключении работы содержатся перечисление основных результатов исследования, оценка уровня достижения поставленной цели, а также предложения по дальнейшему развитию и практическому применению полученных результатов в различных предметных областях.
Глава 1. Классические подходы к разработке ПОЯ для программных систем
В данной главе на основе актуальной научной литературы проводится анализ существующих классических подходов к проектированию и разработке ПОЯ.
1.1 Определение, классификация и общая структура ПОЯ
ПОЯ является компьютерным языком, созданным для некоторой предметной области [44]. С этой точки зрения ПОЯ формализует внутри себя структуру, поведение, а также ограничения и требования данной предметной области. В отличие от языков общего назначения, не имеющих строгой привязки к предметной области, ПОЯ обладают ограниченной выразительностью и обеспечивают поддержку только верхнего уровня абстракции предметной области [26]. Как следствие, ПОЯ, фактически, содержит внутри себя некоторую модель предметной области, тем самым позволяя пользователям оперировать терминами и концептами предметной области. Более того, на уровне ПОЯ также сохраняется возможность учитывать ограничения предметной области, исключая некорректные выражения в ПОЯ [35].
Важно отметить, что то, в каком виде будут учитываться ограничения предметной области, зависит от того, какой вид ПОЯ предполагается разрабатывать. Чаще всего ПОЯ используются в рамках некоторой программной системы (называется основной системой), для создания которой используется некоторый язык общего назначения. По отношению к данному языку ПОЯ могут быть разделены на два вида: внутренние и внешние [44].
Внутренние ПОЯ написаны на языке общего назначения, используемого для создания основной системы, и встроены в него [44]. С этой точки зрения внутренние ПОЯ представляют собой специфичный способ использования
Похожие диссертационные работы по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК
Методы и программные средства создания интеллектуальных систем с декларативными базами знаний на оснoве модельных трансформаций2022 год, доктор наук Юрин Александр Юрьевич
Метод визуального управления онтологическими данными в трехмерном виртуальном пространстве2021 год, кандидат наук Раздьяконов Даниил Сергеевич
Автоматический синтез диаграмм классов языка UML на основе ассоциативных отношений предметной области2017 год, кандидат наук Бикмуллина Ильсияр Ильдаровна
Метод и программное средство разработки баз знаний на основе трансформации концептуальных моделей2018 год, кандидат наук Дородных Никита Олегович
Алгоритм обнаружения аномалий в технологических сигналах на основе нейронной сети с архитектурой автоэнкодер2024 год, кандидат наук Мурзагулов Дамир Альбертович
Список литературы диссертационного исследования кандидат наук Улитин Борис Игоревич, 2021 год
Список использованной литературы
1. Ануреев, И.С. Предметно-ориентированные системы переходов: объектная модель и язык // Системная информатика. - 2013. - №. 1. - с. 1-34.
2. Белозерова, И.Г. Исследование операций на железнодорожных станциях / И.Г. Белозерова, Е.А. Несветова. - Хабаровск: ДВГУПС, 2012. - 56 с.
3. Белозерова, И.Г. Оперативное управление работой станции / И.Г. Белозерова, Е.А. Несветова. - Хабаровск: ДВГУПС, 2012. - 56 с.
4. Бульонков, М.А., Ершов, А.П. Как специальные конструкции трансляции могут порождаться универсальными процессами смешанных вычислений // Андрей Петрович Ершов - ученый и человек: сборник. - 2006. - с. 101-120.
5. Гайфуллин, Б.Н., Туманов, В.Е. Предметно-ориентированные системы научной осведомленности в науке и образовании // Современные информационные технологии и ИТ-образование. - 2012. - №2. 8. - с. 741750.
6. ГОСТ Р ИСО/МЭК 12207-2010: СИСТЕМНАЯ И ПРОГРАММНАЯ ИНЖЕНЕРИЯ Процессы жизненного цикла программных средств // Москва: Стандартинформ. - 2012.
7. ГОСТ Р ИСО/МЭК 25010-2015: СИСТЕМНАЯ И ПРОГРАММНАЯ ИНЖЕНЕРИЯ Требования и оценка качества систем и программного обеспечения (SQuaRE). Модели качества систем и программных продуктов // Москва: Стандартинформ. - 2015.
8. Ершов, А.П. Денотационный подход к описанию трансформационной семантики: Слайды доклада на семинаре проекта С1Р в Мюнхенском техническом университете. - 1982.
9. Конструирование канонических информационных моделей для интегрированных информационных систем / В. Н. Захаров, Л. А. Калиниченко, И. А. Соколов, С. А. Ступников // Информатика и ее применения. — 2007. — Т. 1, № 2. — с. 15-38.
134
10.Набиуллин, О.Р., Бабкин, Э.А. Моделирование и автоматическая проверка по AsmL // Бизнес-информатика. - 2008. - № 4. - с. 56-63.
11.Набиуллин, О.Р., Норкин, В.М. Архитектура высокопроизводительной системы многоагентного моделирования // Бизнес-информатика. - 2008.
- № 2. - с. 48-60.
12. Об информации, информационных технологиях и о защите информации [Текст]: Федеральный закон от 27.07.2006 №149-ФЗ (в ред. 2021 г.).
13. Об утверждении классификатора программ для электронных вычислительных машин и баз данных [Текст]: Приказ Министерства цифрового развития, связи и массовых коммуникаций РФ от 22.09.2020 №486 (в ред. 2021 г.).
14.Сухов, А.О. Классификация предметно-ориентированных языков и языковых инструментариев // Математика программных систем. - 2012.
- с. 74-83.
15.Терёшина, Н.П. Экономика железнодорожного транспорта: учебник / Н. П. Терёшина [и др.]. - М.: ФГБОУ «Учебно-методический центр по образованию на железнодорожном транспорте», 2012. - 536 с. - ISBN 978-5-89035-621-5.
16. Устав железнодорожного транспорта Российской Федерации: Федеральный закон от 10 января 2003 г. N 18-ФЗ // Российская газета. -2003. - 18 января (№ 3122).
17.Федоренков, В.Г., Балакшин, П.В. Особенности применения предметно-ориентированных языков для тестирования веб-приложений // Программные продукты и системы. - 2019. - №4. - с. 601-606.
18.Agrawal, A., Karsai, G., Shi, F. Graph Transformations on Domain-Specific Models // International Journal on Software and Systems Modeling. - 2003.
- pp. 1-43.
19.Akehurst, D., Kent, S. A relational approach to defining transformations in a metamodel // J.-M. Jezequel, H. Hussmann, and S. Cook (eds.), Proc. Fifth
International Conference on the Unified Modeling Language - The Language and its Applications, LNCS. - 2002. - vol. 2460. - pp. 243-258.
20.Amrani, M. et al. A tridimensional approach for studying the formal verification of model transformations / M. Amrani, L. Lucio, G. Selim, B. Combemale, J. Dingel, H. Vangheluwe, Y.L. Traon, J. Cordy // Verification and validation of model Transformations (VOLT). - 2012.
21.ANother Tool for Language Recognition (ANTLR) [Электронный ресурс]
- URL: http://www.antlr.org/.
22.Arp, R., Smith, B., Spear, A.D. Building Ontologies with Basic Formal Ontology. - The MIT Press, 2015. - 248 p. - ISBN 978-0-262-52781-1.
23.ATL Transformation Language [Электронный ресурс] - URL: http: //www. eclipse. org/atl/.
24.Bacchus, F., Beek, P.V. On the Conversion between Non-Binary and Binary Constraint Satisfaction Problems // Proceedings of the 15th National Conference on Artificial Intelligence (AAAI-98) and of the 10th Conference on Innovative Applications of Artificial Intelligence (IAAI-98). - 1998. - pp. 311-318.
25.Bashir, R.S. et al. UML models consistency management: Guidelines for software quality manager / R.S. Bashir, S.P. Lee, S.U.R. Khan, V. Chang, S. Farid // International Journal of Information Management. - 2016. - v. 36, i. 6. - pp. 883-899.
26.Bell, P. Automated Transformation of Statements within Evolving Domain Specific Languages // Computer Science and Information System Reports. -2007. - pp. 172-177.
27.Bergmann, G. et al. Change-driven model transformations / G. Bergmann, I. Ráth, G. Varró, D. Varró // Software & Systems Modeling. - 2021. - v. 11(3).
- pp. 431-461.
28.Bezivin, J. On the unification power of models // Journal on Software and Systems Modeling. - 2005. - v. 4(2). - pp. 171-188.
29.Binmore, K. Rational decisions. - Princeton University Press, 2009. - 216 p. - ISBN 978-0-691-14989-9.
30.Bondavalli, A. et al. Dependability analysis in the early phases of UML based system design / A. Bondavalli, M. Dal Cin, D. Latella, I. Majzik, A. Pataricza, G. Savoia // International Journal of Computer Systems - Science & Engineering. - 2001. - v. 16(5). - pp. 265-275.
31.Cabot, J. et al. Verification and validation of declarative model-to-model transformations through invariants / J. Cabot, R. Clariso, E. Guerra, J. de Lara // J Syst Softw. - 2010. - v. 83(2). - pp. 283-302.
32.Challenger, M. et al. On the use of a domain-specific modeling language in the development of multiagent systems / M. Challenger, S. Demirkol, S. Getir, M. Mernik, G. Kardas, T. Kosar // In: Engineering Applications of Artificial Intelligence. - 2014. - pp. 111-141.
33.Chen, W., Dong, M. Optimal resource allocation across related channels // Operations Research Letters. - 2018. - pp. 397-401.
34.Choco solver [Электронный ресурс] - URL: http://choco-solver.org/.
35.Cleenewerck, T. Component-Based DSL Development // Software Language Engineering. - 2003. - pp. 245-264.
36.Cleenewerck, T. Evolution and Reuse of Language Specifications for DSLs (ERLS) / T. Cleenewerck, K. Czarnecki, J. Striegnitz, M. Volter // Object-Oriented Technology. ECOOP 2004 Workshop Reader. - 2004. - pp. 187201.
37.Degrandsart, S. et al. A transformation-based approach to context-aware modelling / S. Degrandsart, S. Demeyer, J. Van den Bergh, T. Mens // Software & Systems Modeling. - 2014. - v. 13(1). - pp. 191-208.
38.Demuth, A. et al. Co-evolution of metamodels and models through consistent change propagation / A. Demuth, M. Riedl-Ehrenleitner, R.E. LopezHerrejon, A. Egyed // Journal of Systems and Software. - 2016. - pp. 281297.
39.Disolver [Электронный ресурс] - URL: http://research.microsoft com/apps/pubs/default.aspx?id=64335.
40.Eclipse Graphical Modeling Project (GMP) [Электронный ресурс] - URL: http: //www. eclipse. org/modeling/gmp/.
41.Eisenberg, C. Distributed Constraint Satisfaction for Coordinating and Integrating a Large-Scale, Heterogeneous Enterprise. - University of London. 2003. - 129 p..
42.Evans, E. Domain-Driven Design: Tackling Complexity in the Heart of Software. - Addison-Wesley, 2013. - 560 p. - ISBN 978-0-321-12521-7.
43.Fernandez-Lopez, M., Gomez-Perez, A. Overview and analysis of methodologies for building ontologies // The Knowledge Engineering Review. - 2002. - pp. 129-156.
44.Fowler, M. Domain specific languages / M. Fowler, R. Parsons. - Addison Wesley, 2010. - 413 p. - ISBN: 978-0-321-71294-3.
45.Gecode toolkit [Электронный ресурс] - URL: http://www.gecode.org/.
46.Giese, H., Hildebrandt, S., Lambers, L. Bridging the gap between formal semantics and implementation of triple graph grammars // Software & Systems Modeling. - 2014. - v. 13. - pp. 273-299.
47.Gogolla, M., Bohling, J., Richters, M. Validating UML and OCL models in USE by automatic snapshot generation // Journal on Software and System Modeling. - 2005. - v. 4(4). - pp. 386-398.
48.Golobisky, M.F., Vecchietti, A. Mapping UML Class Diagrams into Object-Relational Schemas // Proc. of Argentine Symposium on Software Engineering. - 2005. - pp. 65-79.
49.Gómez-Abajo, P. A domain-specific language for model mutation and its application to the automated generation of exercises / Pablo Gómez-Abajo, Esther Guerra, Juan de Lara // Computer Languages, Systems & Structures. -2016. - v. 49. - pp. 152-173.
50.GReAT: Graph Rewriting and Transformation [Электронный ресурс] -URL: http://www.isis.vanderbilt.edu/tools/great.
138
51.Guizzardi, G. Ontological foundations for structural conceptual models. -Enschede, The Netherlands, 2005. - 418 p. - ISBN 90-75176-81-3.
52.Guizzardi, G., Halpin, T. Ontological Foundations for Conceptual Modeling // Applied Ontology. - 2008. - v. 3. - pp. 91-110.
53.Haav, H.-M. et al. Ontology-Based Integration of Software Artefacts for DSL Development / H.-M. Haav, A. Ojamaa, P. Grigorenko, V. Kotkas // On the Move to Meaningful Internet Systems: OTM 2015 Workshops. Lecture Notes in Computer Science. - 2015. - v. 9416. - pp. 309-318.
54.Ehrig, H. Fundamentals of Algebraic Graph Transformation / H. Ehrig, K. Ehrig, U. Prange, G. Taentzer. - 2006. - 390 p. - ISBN: 978-3-540-31187-4.
55.Hausmann, J.H., Heckel, R., Sauer, S. Extended model relations with graphical consistency conditions // UML 2002 Workshop on Consistency Problems in UML-based Software Development. - 2002. - pp. 61-74.
56.Hayat, S.A.E., Toufik, F., Bahaj, M. UML/OCL based design and the transition towards temporal object relational database with bitemporal data // Journal of King Saud University - Computer and Information Sciences. -2020. - v. 32, i.4. - pp. 398-407.
57.Heavin, C., Power, D.J. Challenges for digital transformation - towards a conceptual decision support guide for managers // Journal of Decision Systems. - 2018. - v. 27(1). - pp. 38-45.
58.Hodgson, M. On the Limits of Rational Choice Theory // Economic Thought.
- 2012. - pp. 94-108.
59.JastAdd [Электронный ресурс] - URL: https://jastadd.cs.lth.se/web/.
60.Kelly, S., Tolvanen J.-P. Domain-specific modeling: enabling full code generation. - Hoboken, New Jersey, USA: Wiley-IEEE ComputerSociety Press, 2008. - 444 p. - ISBN 978-0-470-03666-2.
61.Kessentini, W., Sahraoui, H., Wimmer, M. Automated metamodel/model co-evolution: A search-based approach // Information and Software Technology.
- 2019. - pp. 49-67.
62.Khelladi, D.E. et al. A semi-automatic maintenance and co-evolution of OCL constraints with (meta)model evolution / D.E. Khelladi, R. Bendraou, R. Hebig, M.-P. Gervais // Journal of Systems and Software. - 2017. - pp. 242260.
63.Köhler, H., Link, S. SQL schema design: foundations, normal forms, and normalization // Information Systems^ - 2018. - v. 76. - pp. 88-113.
64. Königs, A., Schürr, A. Tool Integration with Triple Graph Grammars - A Survey // ENTCS. - 2006. - v. 148. - pp. 113-150.
65.Kogalovsky M. R., Kalinichenko L. A. Conceptual and ontological modeling in information systems // Programming. - 2009. - v. 35 (5). - pp. 241-256.
66.Konyrbaev, N.B., Ibadulla, S.I., Diveev, A.I. Evolutional Methods for Creating Artificial Intelligence of Robotic Technical Systems // Procedia Computer Science. - 2019. - v. 150. - pp. 709-715.
67.Kosar, T., Bohra, B., Mernik, M.: Domain-Specific Languages: A Systematic Mapping Study // Information and Software Technology. - 2016. - pp.77-90.
68.Kosar, T. et al. A preliminary study on various implementation approaches of domain-specific language / T. Kosar, P. Martinez Lopez, P. Barrientos, M. Mernik // Information and Software Technology. - 2008. - pp. 390-405.
69.Küster, J. M., Abd-El-Razik, M. Validation of model transformations - first experiences using a white box approach // T. Kühne (ed.) MoDELS Workshops, LNCS. - 2006. - v. 4364. - pp. 193-204.
70.Laird, P., Barrett, S. Towards Dynamic Evolution of Domain Specific Languages // Software Language Engineering. - 2010. - pp. 144-153.
71.Lazareva, O.F., McInnerney, J., Williams, T. Implicit relational learning in a multiple-object tracking task // Behavioral Processes. - 2018. - v. 152. - pp. 26-36.
72.Leung, Y. Artificial Intelligence and Expert Systems // International Encyclopedia of Human Geography (Second Edition). - 2020. - pp. 209-215.
73.Lucassen, G. et al. Extracting conceptual models from user stories with Visual Narrator / G. Lucassen, M. Robeer, F. Dalpiaz, G.M. Werf, S. Brinkkemper // Requirements Engineering. - 2017. - v. 22(3). - pp. 339-358.
74.Luoma, J., Kelly, S., Tolvanen, J.-P. Defining domain-specific modeling languages: Collected experiences // Proceedings of the 4th OOPSLA Workshop on Domain-Specific Modeling (DSM'04). - 2004.
75.Chandy, K.M., Mani, K., Misra, J. Parallel Program Design: A Foundation. -Addison-Wesley, 1988. - 516 p. - ISBN 978-0-201-05866-6.
76.Mengerink, J.G.M. et al. Udapt Edapt Extensions for Industrial Application / J.G.M. Mengerink, A. Serebrenik, M. van den Brand, R.R.H. Schiffelers // ITSLE 2016 Industry Track for Software Language Engineering October 31, 2016, Amsterdam, Netherlands. - 2016. - pp. 21-22.
77.Mengerink, J.G.M. et al. A Complete Operator Library for DSL Evolution Specification / J.G.M. Mengerink, A. Serebrenik, R.R.H. Schiffelers, M.G.J. van den Brand // MDSE 32nd International Conference on Software Maintenance and Evolution, 2016. - 2016. - pp. 144-154.
78.Mens, T., Czarnecki, K., Gorp, P.V. A taxonomy of model transformations // Electronic Notes in Theoretical Computer Science. - 2006. - v. 152. - pp. 125-142.
79.Mernik, M., Heering, J., Sloane, A. When and how to develop domain-specific languages // ACM computing surveys (CSUR). - 2005. - v. 37, no. 4. - pp. 316-344.
80.MetaCase+ [Электронный ресурс] - URL: http://www.metacase.com/
81.MetaLanguage [Электронный ресурс] - URL: http://pespmc 1.vub.ac.be/METALARE.html.
82.Milne, C., Strachey, R. A Theory of Programming Language Semantics (2 Vol). - Chapman & Hall, 1976. - 868 p. - ISBN 978-0-412142-60-4.
83.Mohagheghi, P., Haugen, 0. Evaluating Domain-Specific Modelling Solutions // ER 2010 Workshops. - 2010. - pp. 212-221.
84.Nonaka, I. et al. Dynamic fractal organizations for promoting knowledge-based transformation - A new paradigm for organizational theory / I. Nonaka, M. Kodama, A. Hirose, F. Kohlbacher // European Management Journal. -2014. - v. 32(1). - pp. 137-146.
85.Parr, T. (2012). Language Implementation Patterns: Create Your Own Domain-Specific and General Programming Languages. - Pragmatic Bookshelf, 2012. - 389 p. - ISBN 978-1-934356-45-6.
86.Pereira, M.J.V. et al. Ontological approach for DSL development / M.J.V. Pereira, J. Fonseca, P.R. Henriques // Computer Languages, Systems & Structures. - 2016. - v. 45. - pp. 35-52.
87.Polyglot [Электронный ресурс] - URL: https : //www.cs. cornell. edu/proj ects/polyglot/.
88.Popovic, A.A. et al. DSL for modeling application-specific functionalities of business applications / A. Popovic, I. Lukovic, V. Dimitrieski, V. Djuki // Computer Languages, Systems & Structures. - 2015. - pp. 69-95.
89. Prud'homme, C. et al. Propagation engine prototyping with a domain specific language / C. Prud'homme, X. Lorca, R. Douence, N. Jussien // Constraints. - 2013. - pp. 57-77.
90.QVT (Query/View/Transformation) [Электронный ресурс] - URL: https://projects.eclipse.org/projects/modeling.mmt.qvt-oml.
91.Rahim, L.A., Whittle, J. A survey of approaches for verifying model transformations // Software & Systems Modeling. - 2015. - v. 14(2). - pp. 1003-1028.
92.Ruffolo, M., Sidhu, I., Guadagno, L. Semantic Enterprise Technologies // Proceedings of the First International Conference on Industrial Results of Semantic Technologies. - 2007. - v. 293. - pp. 70-84.
93.Sanders, B.A. Eliminating the substitution axiom from UNITY logic // Formal Aspects of Computing. - 1991. - v. 3. - pp. 189-205.
94.Schürr, A. Graph-Transformation-Driven Correct-by-Construction Development of Communication System Topology Adaptation Algorithms //
142
I. Schaefer, D. Karagiannis, A. Vogelsang, D. Méndez, C. Seidl (Eds.): Modellierung, LNI. - 2018. - pp. 15-29.
95.Shcherbina, O. Nonserial dynamic programming and tree decomposition in discrete optimization // Proceedings of Int. Conference on Operations Research. - 2007. - pp. 155-160.
96.SPIN model checker [Электронный ресурс] - URL: http : //spinroot.com/spin/whatispin.html.
97.Sprinkle, J. A domain-specific visual language for domain model evolution // Journal of Visual Languages & Computing. - 2004. - pp. 291-307.
98.Sprinkle, J. 2016 A safe autonomous vehicle trajectory domain specific modelling language for non-expert development // Proceedings of the International Workshop on Domain-Specific Modeling. - 2016. - pp. 42-48.
99.SQL Standard 2016 (ISO/IEC 9075-1:2016) [Электронный ресурс] - URL: https : //www. iso.org/committee/45342/x/catalogue/p/1/u/0/w/0/d/0.
100. Stoy, J.E. Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory. - MIT Press, 1985. - 450 p. - ISBN: 978-0262-69076-8.
101. Torres, A. et al. Twenty years of object-relational mapping: A survey on patterns, solutions, and their implications on application design / A. Torres, R. Galante, M.S. Pimenta, A.J.B. Martins // Information and Software Technology. - 2017. - v. 82. - pp. 1-18.
102. Ulitin, B., Babkin, E., Babkina, T. Combination of DSL and DCSP for decision support in dynamic contexts // Lecture Notes in Business Information Processing Issue 261: Perspectives in Business Informatics Research. - 2016. - pp. 159-173.
103. Ulitin, B., Babkin, E. Ontology and DSL co-evolution using graph transformations methods // Lecture Notes in Business Information Processing Issue 295: Perspectives in Business Informatics Research. - 2017. - pp. 233247.
104. Ulitin, B., Babkin, E., Babkina, T. A Projection-Based Approach for Development of Domain-Specific Languages // Lecture Notes in Business Information Processing Issue 330: Perspectives in Business Informatics Research. - 2018. - pp. 219-234.
105. Ulitin, B. et al. Automated Formal Verification of Model Transformations Using the Invariants Mechanism / B. Ulitin, E. Babkin, T. Babkina, A. Vizgunov // Lecture Notes in Business Information Processing Issue 365: Perspectives in Business Informatics Research. - 2019. - pp. 5973.
106. Ulitin, B., Babkin, E. Ontology-based reconfigurable DSL for planning technical services // IFAC-PapersOnLine. - 2019. - v. 52, no. 13. - pp. 11381144.
107. Ulitin, B., Babkin, E. Providing Models of DSL Evolution Using Model-to-Model Transformations and Invariants Mechanisms // Digital Transformation and New Challenges, Lecture Notes in Information Systems and Organisation. - 2020. - v. 40. - pp. 37-48.
108. Ulsamer, P., Fertig, T., Braun, P. Feature-oriented Domain-specific Languages // Dagstuhl Workshop MBEES: Modellbasierte Entwicklung eingebetteter Systeme XIV, Schloss Dagstuhl, Germany, 2018, Tagungsband Modellbasierte Entwicklung eingebetteter Systeme. - 2018. - pp. 31-40.
109. Varro, D. et al. Termination analysis of model transformations by petri nets / D. Varro, S. Varro-Gyapay, H. Ehrig, U. Prange, G. Taentzer // Graph transformations, lecture notes in computer science. - 2006. - v. 4178. - pp. 260-274.
110. Viatra Eclipse [Электронный ресурс] - URL: https : //www. eclipse. org/viatra/.
111. Wang, N., Wang, D., Zhang, Y. Design of an adaptive examination system based on artificial intelligence recognition model // Mechanical Systems and Signal Processing. - 2020. - v. 142. - pp. 1-14.
112. Wang, H., Wang, X., Zhang, X. Dynamic resource allocation for intermodal freight transportation with network effects: Approximations and algorithms // Transportation Research Part B: Methodological. - 2017. - pp. 83-112.
113. Wu, Y. et al. Computation of heterogeneous object co-embeddings from relational measurements / Y. Wu, T. Mu, P. Liatsis, J.Y. Goulermas // Pattern Recognition. - 2017. - v. 65. - pp. 146-163.
114. XText Eclipse [Электронный ресурс] - URL: https : //www. eclipse. org/Xtext/.
115. Yokoo, M. Distributed Constraint Satisfaction. - Springer, 2001. - 170 p. - ISBN 978-3-540-67596-9.
116. Zhang, Y., Xu, B. A survey of semantic description frameworks for programming languages // SIGPLAN Not. - 2004. - v. 39(3). - pp. 14-30.
Глоссарий
Предметно-ориентированный язык (ПОЯ) - компьютерный язык (в т.ч. программирования или моделирования) с ограниченными выразительными возможностями, ориентированный на некую конкретную предметную область [44].
Внешний ПОЯ - ПОЯ, отделенный от языка основного приложения (языка общего назначения), с которым он работает. Может быть как визуальным, так и текстовым [44].
Визуальный ПОЯ - ПОЯ, конкретный синтаксис которого представлен в графическом виде [60].
Текстовый ПОЯ - ПОЯ, конкретный синтаксис которого представлен в текстовом виде [67].
Внутренний ПОЯ - ПОЯ, представляющий собой специфический способ использования языка общего назначения и написанный на языке основного приложения [44].
Динамический контекст представляет собой и учитывает те аспекты окружающей среды относительно программного решения (языка в целом), которые могут привести к необходимости внесения изменений (адаптации) с течением времени или во время проводимой оценки, и без которых программное решение (язык в целом) не может быть использовано [36].
Семантика ПОЯ - набор правил для интерпретации (отображения) абстрактного синтаксиса ПОЯ в терминах формальной (семантической) модели предметной области [49].
Семантическая модель предметной области (СМПО) - информационная модель предметной области, содержащая множество концептов (терминов) предметной области и связей (отношений) между ними [28].
Онтология - репрезентативный артефакт, содержаний концептуальное представление предметной области в виде набора классов (понятий) и связей между ними с соответствующим набором ограничений [51, 52]. Может выступать в качестве СМПО.
Абстрактный синтаксис (метамодель) ПОЯ - артефакт, описывающий концепты (объекты) языка, отношения между ними и, опционально, ограничения на комбинацию концептов для соблюдения правил предметной области [28].
Конкретный синтаксис ПОЯ (нотация) - артефакт, описывающий правила отображения абстрактного синтаксиса ПОЯ в текстовое или графическое представление [31].
ПРИЛОЖЕНИЕ 1. UML-диаграмма классов БД
ПРИЛОЖЕНИЕ 2. Основные вкладки интерфейса
Документы Отчетность Конкурс Экспорт
№ л/д Фамилия Имя Отчество
Добавить Редактировать Удалит
Основная информация
№л/д Дата подачи заявления ■
Фамилия Пол - Гражданство
Имя Дата рождения ■ Нуждается в общежитии
Отчество
Сведения о возврате документов
Причина возврата документов
Дата возврата документов ■ Забрал документы
| Конк-ые группы | Вступ-ые испытания | Инд-ые достижения Привилегии 100 6. Образование | Адрес и Специальность Конкурсная группа Целевая организация Форма обучения
Паспорт и ИНН Допсведения |
Конкурсный балл Балл за ИД
Рис. 1: Основное окно приложения
Рис. 2. Окно добавления нового абитуриента
Справочники Документы Отчетность Конкурс Экспорт
Удалить Сохранить Добавить
Рис. 3. Вкладка Конкурсные группы
№ л/д Фамилия Имя Отчество
Основная информация
№л/д Дата подачи заявления
Фамилия Пол - Гражданство -
Имя Дата рождения ■ Нуждается в общежитии
Отчество
Сведения о возврате документов
Причина возврата документов •
Дата возврата документов ■ | Забрал документы
| Конк-ые группы | Вступ-ые I Вступительное испытание
тания | Инд-ые достижении | Привилегии | 100 6. | Образование | Адрес и к< Форма ВИ Язык ВИ Группа
кты | Паспорт и ИНН | Долсведения | Дата В И
Балл Имеет п
О
н о
| Нуждается в специальных условия* на ВИ
Добавить Редактировать Удалит
Сохранить
Рис. 4. Вкладка Вступительные испытания
Удалить Сохранить Добавить
Рис. 5. Вкладка Индивидуальные достижения
Документы Отчетность Конкурс Экспорт
№ л/д Фамилия Имя Отчество
Основная информация
№ л/д Дата подачи заявления
Фамилия Пол - Гражданство
Имя Дата рождения ■ Нуждается в общежитии
Отчество
Сведения о возврате документов
Причина возврата документов
Дата возврата документов ■ | Забрал документы
| Конк-ые группы | Вступ-ь
| Инд-ые достижения | Привилегии | 100 6. | Образование | Адрес и контакты | Паспорт и ИНН Допсведения |
Победитель олимпиады I уровь
Наименование документа
Добавить Редактировать Удалит
Рис. 6. Вкладка Привилегии
Рис. 7. Вкладка Право на 100 балов
Справочники Документы Отчетность Конкурс Экспорт
№ л/д Фамилия Имя Отчество
Основная информация
№л/д Дата подачи заявления
Фамилия Пол - Гражданство
Имя Дата рождения ■ Нуждается в общежитии
Отчество
Сведения о возврате документов
Причина возврата документов
Дата возврата документов ■ | Забрал документы
| Конк-ые группы | Вступ-ые испытания | Инд-ые достижения | Привилегии | 1006. | Образование | Адрес
I) | Паспорт и ИНН | Допсведения |
Уровень образования Среднее прс
Тип образования Базовое (Школа)
Название учебного заведения
Добавить Редактировать Удалит
Рис. 8. Вкладка Образование
Рис. 9. Вкладка Адрес и контакты
Справочники Документы Отчетность Конкурс Экспорт
№ л/д Фамилия Имя Отчество
1 Иванов Иван Ива
3 Иванов!
Основная информация
№ л/д Дата подачи заявления
Фамилия Пол - Гражданство
Имя Дата рождения ■ Нуждается в общежитии
Отчество
Сведения о возврате документов
Причина возврата документов
Дата возврата документов ■ | Забрал документы
| Конк-ые группы | Вступ-ые испытания | Инд-ые достижения | Привилегии | 1006. | Образование | Адрес и контакты | Паспорт и ИНН | Допсведения |
Паспорт гражданина РФ»
Сери,
Номер
Дата выдачи
Место рождения
Г
Добавить Редактировать Удалит
Рис. 10. Вкладка Паспортные данные и ИНН
Удалить Сохранить Добавить
Рис. 11. Вкладка Дополнительные сведения
Справочники Документы Отчетность Конкурс Экспорт
№ л/д Фамилия Имя Отчество
Основная информация
№л/д Дата подачи заявления
Фамилия Пол - Гражданство
Имя Дата рождения ■ Нуждается в общежитии
Отчество
Сведения о возврате документов
Причина возврата документов
Дата возврата документов ■ | Забрал документы
Конк-ые группы | Вступ-ь Категория допсведений
1ия | Инд-ые достижения Пр| Наименование документа
| 1006. | ОбразоЕ
Адрес и контакты | Паспорт и ИНН | Допсведения | Номер Кем выдан
Добавить Редактировать Удалит
(
»1
Рис. 12. Вкладка Дополнительные сведения
Рис. 13. Окно редактирования справочников
Рис. 15. Окно редактирования плана приема
ПРИЛОЖЕНИЕ 3. Пример обработчика МКК поля int
public class IntInputPatternController {
@FXMLprivate TextField fieldData;
@FXML private Text nameOfField;
public String getFieldData() { if (checkData() != 0)
return ""; else {
return fieldData.getText();
}
}
public void setFieldData(String data) { fieldData.setText(data);
}
public void setParameters(String originalNameOfField, String nameOfField) {
this.fieldOriginalName = originalNameOfField; this.nameOfField.setText(nameOfField);
}
public void setWidthHeight(Double paneWidth, Double paneHeight, Double labelWidth) {
this.flowPane.setPrefWidth(paneWidth); this.flowPane.setPrefHeight(paneHeight); this.nameOfField.setWrappingWidth(labelWidth); this.fieldData.setPrefWidth(paneWidth - labelWidth - 40.0); this.fieldData.setPrefHeight(paneHeight*0.714);
}
public void setEditable(Boolean editChoice) { this.fieldData.setDisable(!editChoice);
}
public int checkData(){
if(fieldData.getText().trim().isEmpty()) return 1;
if(Pattern.compile("(?!0)\\d+").matcher(fieldData.getText()).match
es() || Pattern.compile("(0)").matcher(fieldData.getText()).matches()) return 0; else return 2;
}
ПРИЛОЖЕНИЕ 4. Функция соответствия МКЕ объектно-
реляционной модели и МКК ПОЯ
for (int i = 0; i < countFields; i++) { switch (fieldsTypes[i]) { case "date":
loader = new FXMLLoader();
loader.setLocation(getClass().getResource("../patterns simpl e/DateInputPattern.fxml"));
newPane = (Pane) loader.load(); fieldsControllers[i] = loader;
childGridPane.add(newPane,2,0);
DateInputPatternController dateInputPatternController = loader.getController();
dateInputPatternController.setParameters(fields[i], ModelDBConnection.getTranslationOfField(fields[i], "AbiturientPassport"));
break; case "int":
if(Pattern.compile("(id t).*").matcher(fields[i]).matches()
){
loader = new FXMLLoader();
loader.setLocation(getClass().getResource("../patterns simple/ChoiceInputPattern.fxml"));
newPane = (Pane) loader.load(); fieldsControllers[i] = loader;
parentGridPane.add(newPane,0,0); ChoiceInputPatternController choiceInputPatternController = loader.getController();
choiceInputPatternController.setParameters(fields[i], ModelDBConnection.getTranslationOfField(fields[i], "AbiturientPassport"));
choiceInputPatternController.setFieldData(""); break;
}
break; case "varchar":
if(Pattern.compile("(series).*").matcher(fields[i]).matches(
) ){
loader = new FXMLLoader();
loader.setLocation(getClass().getResource("../patterns simple/TextInputPattern.fxml"));
newPane = (Pane) loader.load(); fieldsControllers[i] = loader;
childGridPane.add(newPane,0,0);
TextInputPatternController textInputPatternController = loader.getController();
textInputPatternController.setParameters(fields[i], ModelDBConnection.getTranslationOfField(fields[i], "AbiturientPassport")); break;
}
break; }
}
ПРИЛОЖЕНИЕ 5. иМЬ-диаграмма ресурсов ж/д станции
nPH^Q^EHHE 6. KpoccMoge^bHbie npeo6pa30BaHHH B ATL
rule OWLClass2DSLClass {
from a: OWL!OWLClass (not exists (select b|
b.isTypeOf (DSL!DSLClass) and a.name = b.name))
to b: DSL!DSLClass, c:DSL!Constructor
}
rule DropDeletedOWLClasslnDSLClass {
from b: DSL! DSL Class (not exists (select a|
a.isTypeOf (OWL!OWLClass) and a.name = b.name))
to drop
do { drop c: DSL!Constructor (c.name = b.name) } }
rule OWLClassAttributes2DSLClassAttributes { from a: OWL!OWLClass!OWLObjectProperty ( not exists (select b|
b.isTypeOf (DSL!DSLClass!DSLObjectProperty) and a.name = b.name)) to b: DSL!DSLClass!DSLObjectProperty (b.owner.name =
a.owner.name),
c: DSL!Constructor!DSLObjectProperty (b.owner.name =
c.owner.name) }
rule DropDeletedOWLClassAttributeslnDSLClassAttributes { from b: DSL!DSLClass!DSLObjectProperty ( not exists (select a|
a.isTypeOf (OWL!OWLClass!OWLObjectProperty) and a.name = b.name))
to drop
do { drop c: DSL!Constructor!DSLObjectProperty (c.name =
b.name) } }
rule OWLClassWithParents2DSLClassWithParents { from a: OWL!OWLClass (a.parent->exists()) to b: DSL!DSLClass (b.name = a.name),
do { b.parent.name = a.parent.name } }
rule DropDeletedOWLClassParentslnDSLClasses { from b: DSL!DSLClass (
not exists (select a| a.isTypeOf (OWL!OWLClass)
and a.name = b.name and a.parent.name = b.parent.name) to drop b.parent
do { drop c: DSL!Function!DSLObjectProperty(
c->getProperties()->contains(b.parent)) }
}
ПРИЛОЖЕНИЕ 7. Текстовый ПОЯ для ж/д станции
Объекты:
Trains
({id. type priority length timeArrival timeDeparture timeReserve [services] wagonsToService})* EndTrainsBlock;
Services
({name priority mayBelnParallel [skills] standartDuration timeReserve [equipment]})* endServiceBlock;
Brigades
({id [ skills ] capacity})* endBriga deBlock ;
Railways
((id type totalLength usefulLength [equipment]})* endRailwayBlock;
Appointments
( {idBrigade->idTrain timeStart timeEnd})* endAppointmentBlock;
Allocation
({idTrain->idRailway startNick timeStartOccupation timeEndOccupation})* endAllocationBlock;
Функции:
Relocate idTrain [from idOldRailway] to idNewRailway;
This command allows to move Train with identifier idTrain from railway with identifier idOldRailway to railway idNewRailway.
Move forward/back idTrain by countshifts;
This command allows to move Train within current railway forward or back by count of shifts equals to countShifis.
Put idTrain on newStartNick;
This command places the train with identifier idTrain on start nick with number newStartNick.
ChangePriority idTrain/nameService on newPriority;
This command allows to change priority of train or service on some new value newPriority
Appoint idBrigade on idTrain from startTime [to endTime] perform nameService;
This command allows to appoint brigade with identifier idBrigade for servicing nameService on Train idTrain within the period from startTime to endTime.
Get info on brigade/train/service/railway idEntity;
This command returns all the attributes for brigade, train, service or railway identified by idEntity.
Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.