9. Губанов Д.А., Д.А. Новиков, Чхаришвили А.Г. Социальные сети: модели информационного
влияния, управления и противоборства / Под ред. Корр. РАН Д.А. Новиков. - М. Издательство физико-математической литературы, 2010 - 228 с. (ISBN 9785-94052-194-5)
10. Пёрл Дж. Вероятностные рассуждения в интеллектуальных системах. Нью-Йорк: Морган Кауфманн, 1988. 552 с.
11. Koller Д., Фридман Н. Вероятностные графические модели. Принципы и методы. Кэмбридж, Массачусетс, МТИ Пресс, 2009.
УДК 681.31
АНАЛИЗ ДИАГРАММАТИЧЕСКИХ МОДЕЛЕЙ В ПРОЦЕССЕ ПРОЕКТИРОВАНИЯ
АВТОМАТИЗИРОВАННЫХ СИСТЕМ12
Афанасьев Александр Николаевич, д.т.н., профессор, проректор по дистанционному и дополнительному образованию, Ульяновский государственный технический университет, Россия,
Ульяновск, [email protected]
Войт Николай Николаевич, заместитель директора по научно-исследовательской работе института дистанционного и дополнительного образования УлГТУ. Россия, Ульяновск, [email protected] Воеводин Евгений Юрьевич, заведующий лабораторией «Развитие инновационных образовательных технологий, Ульяновский государственный технический университет, Россия,
Ульяновск, [email protected]
Гайнуллин Ринат Фаязович, ведущий специалист, ООО «Эквид», Россия, г.Ульяновск,
Введение
Одной из основных проблем в проектировании автоматизированных систем (АС) является успешность, под которой понимают достижение заданной функциональности при временных и финансовых ограничениях. Несмотря на успехи в программной инженерии, в настоящее время только 35-40% разработок заканчиваются успехом. Системное использование диаграмматических моделей в артефактах визуальных языков (UML, IDEF, eEPC, ER, DFD, BPMN и др.) способствует повышению успешности, так как является формальным инструментом производственного процесса проектирования и служит для увеличения взаимопонимания разработчиков, средством документирования и источником автоматической генерации программного кода.
Анализ и контроль топологии (синтаксиса) диаграмм в инструментальных комплексах технологий проектирования (например, RUP и ARIS) реализован достаточно хорошо, хотя требует, как правило, нескольких проходов, при которых реализуются определенные правила контроля, в ряде случаев не определяются ошибки, связанные со сложными структурами ветвления-распараллеливания-соединения. А вот проблема семантического контроля, связанная с анализом текстовой атрибутики, которая присутствует в любой диаграмматической модели, не решена.
Целью данной работы является разработка метода анализа и контроля семантики диаграмм. Отличительной особенностью метода является его автоматная интерпретация, основанная на применении авторских графических грамматик.
В качестве примера рассматриваются UML-диаграммы.
1. Многоуровневые RV-грамматики
Основой предлагаемого метода является семейство автоматных графических RV-грамматик [1 - 3].
12 Исследование выполнено при финансовой поддержке РФФИ в рамках научного проекта № 15-07-08268 а.
124
При коллективном проектировании модели имеют сложную иерархическую структуру (комплексные UML-диаграммы), количество термов в них увеличивается многократно. Классическая RV-грамматика становится громоздкой, ее разработка усложняется, не обеспечивается контроль взаимосвязанных вершин и диаграмм комплексных моделей. Для устранения этих недостатков предлагаются многоуровневые RVM-грамматики.
Многоуровневой RVM-грамматикой является кортеж вида:
RVM =< n, Еп, RVn, r0 >,
где п - индекс грамматики;
Еп - алфавит n-й грамматики;
RVn - множество продукций n-й грамматики;
r0 - аксиома грамматики верхнего уровня.
Грамматика RV содержит в качестве одного из состояний грамматику RV}. Грамматика RV} также может быть составной.
RVn - грамматикой языка L(G) является упорядоченная пятерка непустых множеств G = (V,Е,Е,R,ro), где
V = {Vl,l = 1,L} - алфавит операций над внутренней памятью;
Е = {at, t = ЦТ} - терминальный алфавит графического языка (множество примитивов графического языка);
~ = {~t,t = 1,Т} - квазитерминальный алфавит, являющийся расширением терминального алфавита. Алфавит включает:
• квазитермы графических объектов, не являющихся продолжателями анализа,
• квазитермы графических объектов, имеющих более одного входа,
• квазитермы связей - меток с определенными для них семантическими различиями,
• квазитерм для завершения анализа;
R = {rt,i = 1,1} - схема грамматики G (множество имен комплексов продукций, причем каждый комплекс ri состоит из подмножества Pj продукций ri = {Pj, j = 1,j});
r0 e R аксиома RV-грамматики (имя начального комплекса продукций), rk е R -
заключительный комплекс продукций. Продукция Pij е ri имеет вид:
У *
£„(„1,-,„n)
■> r
где yn) - n-арное отношение, определяющее вид операции над внутренней
памятью в зависимости от у е {0, 1, 2, 3};
rm е R - имя комплекса продукции - преемника.
В структуру внутренней памяти входят стеки для обработки графических объектов, имеющих более одного выхода, и эластичные ленты для обработки графических объектов, имеющих более одного входа.
Система RVM получает с входной ленты символы терминального алфавита и передает их на соответствующий уровень. Элементы, которые переводят грамматику на другой уровень, назовем «сабтермами». Тогда описание RVn- грамматики примет вид:
G = (V, Е, Е, Е, R, ro),
где Е - множество сабтермов, т. е. элементов грамматики, переводящих автомат на следующий более низкий уровень.
Продукция, содержащая сабтерм, имеет вид:
125
- W („ )
at £ £ n > > C,
n+1
n+1
где r0 - комплекс-преемник - начальный комплекс грамматики следующего уровня,
rm - комплекс-преемник, к которому производится переход при достижении rk В таблице 1 приведена грамматик диаграммы активности UML.
n+1
№ Комплекс Квазитерм Комплекс -преемник RV - отношение
1 г0 label r3 0
2 Г1 label r3 0
3 г2 labelP r3 W2(blm )
4 labelW r3 W2(b2m)
5 labelR r3 W2(b3m)
6 labelL r3 W2(b4m )/W3(mt (2) == kt(3))
7 г3 A r1 0
8 P r1 Wl(tlm)
9 W r2 W1(1t (1), t2m )/W2(et (1))
10 W r2 W1(2t (1)) /W2(1t (1))
11 R r1 W1(t3m<kl> )/W3(k > 1)
12 L r2 W1(1t (2), kt (3), t4m )/W2(et (2))
13 L r2 W(inc(mt(2)))/W3(mt(2) <kt(3))
14 AK rk 0
2. Семантический анализ и контроль
При коллективном проектировании важным является контроль онтологической согласованности комплекса проектируемых диаграмм. Ошибки такого типа являются семантическими, для их анализа и контроля предлагается использовать многоуровневую грамматику. Верхним уровнем многоуровневой грамматики является грамматика диаграмм вариантов использования, так как разработка АС, согласно методологии RUP, начинается именно с этой диаграммы. В процессе анализа накапливается семантическая информация о предметной области в виде графа связей между семантическими понятиями (текстовой информацией), нагруженными к блокам и связям диаграмм. Каждая новая диаграмма анализируется на условия непротиворечивого расширения понятий предметной области.
При построении первых диаграмм проверяется только семантическая непротиворечивость внутри диаграммы: возможность использования понятий в
семантической паре. При добавлении новых диаграмм проверяется согласованность диаграммы обособлено и на согласованность комплексной модели проектируемой АС.
126
Для проверки комплексной модели необходимо построить граф семантических связей между элементами АС. Для решения данной задачи используется адаптированный метод лексико-синтаксических шаблонов.
Предложенный метод позволяет диагностировать следующие семантические ошибки: Большая синонимия, Антонимия объектов, Конверсивность отношений.
Разработанные методы анализа и контроля позволяют диагностировать ошибки, разделенные контекстом, а также семантические ошибки, которые не определяются в большинстве современных редакторов.
На рис. 1 приведена схема анализа UML-диаграмм.
Рис. 1 - Схема онтологического анализа UML-диаграмм
В процессе исследования были выявлены следующие классы ошибок, встречающиеся в диаграммах UML (таблица 2).
В таблице использованы следующие сокращения: ДИ - диаграмма использования, ДА -диаграмма активности, ДП - диаграмма последовательности, ДК - диаграмма классов, ДР -диаграмма развертывания.
Известные инструменты позволяют обнаруживать первые 16 из перечисленных типов ошибок. Авторский аппарат RVM-грамматик позволяет обнаруживать 4 дополнительных типа ошибок: множественная связь, кольцевые связи, синхронный вызов до получения ответа, ошибка удаленного контекста.
Ошибкой удаленного контекста называется ошибка, возникающая в парных элементах, например, условное ветвление и слияние условных ветвей, и характеризующаяся возможным присутствием неограниченного количества блоков и связей между ними. Примером такой ошибки может служить условное ветвление на диаграмме активности, которое предполагает исполнение только одной из возможных ветвей, и парное ему слияние параллельных ветвей, которое передает управление только при достижении всех входных связей. Такое сочетание элементов никогда не позволит достигнуть конца диаграммы.
3. Программные средства анализа и контроля
Разработаны программные средства анализа и контроля [4]: анализатор
диаграмматических моделей потоков бизнес-процессов вопросно-ответной системы моделирования АС, синтаксически-ориентированный анализатор UML-диаграмм для MS Visio, сетевая система анализа и контроля диаграмматических моделей, предлагающая полный набор функциональности для анализа и контроля синтаксических и семантических ошибок.
127
Таблица 2. Классы ошибок UML-диаграмм
№ Тип ошибки ДИ ДА ДП ДК ДР
1 Отсутствие связи + + + + +
2 Ошибка передачи управления
3 Ошибка кратности входов + +
4 Ошибка кратности выходов +
5 Недопустимая связь + + + + +
6 Ошибка связи + + +
7 Ошибка уровня доступа +
8 Ошибка передачи сообщения + +
9 Ошибка делегирования управления +
10 Количественная ошибка элементов диаграммы + +
11 Исключающие связи неверного типа +
12 Вызов, направленный в линию жизни +
13 Несвязанная связь + + + + +
14 Нарушение кратности зависимостей + +
15 Взаимоисключающие связи +
16 Множественная связь +
17 Бесконечный цикл +
18 Кольцевые связи +
19 Синхронный вызов до получения ответа +
20 Ошибка удаленного контекста +
Инструментарий последней системы позволяет выполнять следующие основные функции для пользователя:
• создание диаграмм моделей бизнес-процессов с использованием различных графических языков;
• добавление новых нотаций в графические языки;
• анализ построенных диаграмм, с использованием аппарата RVM-грамматик, по предварительно загруженным в систему описаниям языка и правилам анализа;
• добавление новых алгоритмов анализа с помощью плагинов;
• добавление синтаксических и семантических правил графических языков, для использования в RVM-анализаторе;
• создание взаимосвязи между построенными проектировщиками диаграммами;
• одновременный доступ нескольких проектировщиков к базе данных построенных диаграмм.
Заключение
В статье предложен метод анализа и контроля ошибок диаграмматических UML-моделей в составе комплексной диаграммы, созданной в процессе коллективного проектирования, на основе автоматных графических RVM-грамматик. RVM-грамматики позволяют обнаруживать 4 дополнительных типа ошибок, что составляет 20% от общего числа ошибок. Разработаны инструментальные средства анализа и контроля диаграмматических моделей.
Литература
1. Шаров, О. Г. Синтаксически-ориентированная реализация графических языков на основе автоматных графических грамматик / О. Г. Шаров, А. Н. Афанасьев // Программирование. -2005. - № 6. -С. 56 -66.
128
2. Шаров, О. Г. Нейтрализация синтаксических ошибок в графических языках / О. Г. Шаров, А. Н. Афанасьев // Программирование. - 2008. - № 1. - С. 61 -66.
4. Шаров, О. Г. Методы и средства трансляции графических диаграмм / О. Г. Шаров, А. Н. Афанасьев // Программирование. - 2011. - № 3. - С. 65 - 76.
5. Афанасьев, А. Н. Программная система анализа диаграммных языков / А. Н. Афанасьев, Р. Ф. Гайнуллин, О. Г. Шаров // Программные продукты и системы. - 2012. - № 3. - С. 138 - 141.
УДК 519.688, 004.42
ОБЪЕКТНО-ОРИЕНТИРОВАННЫЙ СИМУЛЯТОР МАШИНЫ ТЬЮРИНГА
Штанюк Антон Александрович, к.т.н., доцент кафедры программной инженерии Нижегородского государственного университета им. Н.И. Лобачевского, [email protected]
Введение
Цель данной работы состоит в построении программного симулятора машины Тьюринга (МТ) с использованием объектно-ориентированного языка программирования C++ [1]. Программа может быть полезной в рамках учебного процесса при изучении и программировании МТ. Цель состояла в том, чтобы создать максимально простую программную реализацию, которую легко изучать и развивать. Для упрощения программирования самой МТ команды машины были описаны в виде строк на достаточно простом языке, соответствующем классическому представлению команд [2].
1. Описание МТ
Машина Тьюринга является теоретическим компьютером и широко используется при исследовании алгоритмов, знакомстве с процессами вычислений на самом низком, «механическом» уровне.
Необходимыми компонентами такого устройства является лента с ячейками, при этом в каждой ячейке находится только один символ. Имеется указатель, «обозревающий» одну ячейку, а также устройство, позволяющее двигать указатель вдоль ленты. Впрочем, широко распространено эквивалентное представление в виде неподвижного указателя и лентопротяжного механизма (как в катушечном магнитофоне).
Указатель имеет возможность просматривать содержимое ячеек, менять свое состояние, а также перезаписывать содержимое ленты.
Математически машина полностью описывается набором следующих множеств:
129