Разработка информационной технологии синтеза диаграмм классов

И. И. Бикмуллина, И. А. Барков, А. П. Кирпичников РАЗРАБОТКА ИНФОРМАЦИОННОЙ ТЕХНОЛОГИИ СИНТЕЗА ДИАГРАММ КЛАССОВ

Ключевые слова: предметная область, UML, виды отношений, аксиома, синтез диаграммы классов.

Рассматривается создание информационной технологии синтеза диаграммы классов, основанной на использовании приема отделения простых синтаксических описаний от общего, в том числе семантического, описания рассматриваемой предметной области. Синтаксические определения являются основой входного языка информационной технологии, а семантические описания закладываются в программную систему как основа логического синтеза диаграмм классов. Данная информационная технология доведена до практической реализации в виде программы AvtosintezUML.

Key words: domain, UML, kinds of relationships, axiom, synthesis of class diagram.

We consider the creation information technology of class diagram synthesis based on the use of the reception of division of the simple syntactic descriptions from total (including semantically) descriptions of considered the subject area. Syntactical definitions are based on the input language information technology and semantic descriptions are placed in a software system as the basis of logical synthesis of class diagrams. This information technology brought to the practical implementation as of the program AvtosintezUML.

ИНФОРМАТИКА, ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА И УПРАВЛЕНИЕ

УДК 519.715, 681.3.06

Введение

В статье основное внимание уделено автоматическому синтезу структурных моделей систем на примере диаграмм классов языка UML [1], а также повышению уровня языка описания предметной области (ПрО) для привлечения к описанию ПрО экспертов. ЦМЬ является визуальным языком моделирования [2,3,4] общего назначения [1].

Данная статья являющаяся продолжением статей [5,6], где были выделены:

• объект исследования - автоматический синтез структурных моделей ИС с использованием ассоциативных отношений ПрО на примере диаграмм классов языка UML;

• предмет исследования - повышение уровня входного языка описания структурных отношений ПрО за счёт включения в описание только ассоциативных отношений ПрО с последующим синтезом на основе семантических моделей полноценных структурных отношений системы;

• цель исследования - вовлечение в построение структурных моделей экспертов ПрО благодаря повышению уровня входного языка описания структурных отношений и изменения характера труда системотехника за счёт перехода к выбору варианта структурной модели из множества автоматически сгенерированных вариантов.

Семантический синтез структурной модели состоит в получении описания ПрО. Подробно задача синтеза рассмотрена в [5, 6]. Содержанием задачи автоматического синтеза диаграммы классов является выделение классов и назначение структурных отношений между классами. Как правило, при проектировании информационной технологии могут быть построены несколько структурных моделей, поэтому в нашем случае решение задачи может быть вариантным. В исследовании с целью практического подтверждения теоретических результатов разрабатыва-

ется автоматическая система синтеза диаграмм классов - AvtosintezUML.

Информационная технология семантического моделирования диаграммы классов

Входные данные программы AvtosintezUML берутся из описания ПрО, глоссария, создаваемого экспертами из разных областей. Информационная технология семантического моделирования диаграммы классов подразумевает участие системотехника в принятии решения, так как данная технология направлена в первую очередь на улучшение и облегчение процесса моделирования в работе разработчика - программиста, системотехника. Информационная технология синтеза диаграмм классов включает следующие этапы:

1) Формирование экспертного описания ПрО. Формируется экспертом ПрО описание, включающее систему связанных ассоциативными отношениями понятий. Заполняется экспертом ПрО в дружественном приложении AvtosintezUML исходное описание ПрО.

Конвертор_1:

2) Проверка синтаксических ошибок. Осуществляется проверка на наличие ошибок (анализатор) и исправление их.

3) Выделение системы понятий. На данном этапе осуществляется переформирование и определение всех понятий участвующих в разработке и транслирование в позитивно - образованную формулу (ПоФ) [7],

4) Построение сети понятий. Определение используя ПоФ отношений ассоциаций между понятиями. Любое отношение определяемое между выбранными классами будет считаться вида ассоциация. Лишь в дальнейшем будут данные отношения уточняться и переопределяться в еще более точные подвиды.

5) Проверка корректности - транзитивности множества. Проверка на отсутствие неизвестных и лишних понятий и циклов в сети понятий.

6) Назначение целевого понятия. Если эксперт назначает для своей задачи главное понятие, то из сети понятий выделяется подмножество понятий. Конвертор_2:

7) Выделение классов из понятий. Сопоставление, выделение классов из понятий, включенных в подмножество сети понятий, осуществляется благодаря правилам порождения классов, создаваемых в исследовании.

Все классы, так или иначе, будут по двое перетасованы и проверены на наличие отношения между собой.

8) Построение ПоФ из данных шага 7-го.

9) Назначение определенного вида отношений между классами. Преобразование каждого ассоциативного отношения между классами в конкретный вид отношения. Виды отношений между классами:

1. Отношение взаимодействия классов:

а) агрегация,

б) композиция,

в) наследование,

г) зависимость,

д) реализация.

2. Отношения доступности:

а) без ограничений (public),

б) закрытое (private),

в) защищенное (protected).

Конвертор_1 имеет дело с понятиями[5, 6], а Кон-вертор_2 - имеет дело с классами и назначает виды отношений.

Главной единицей в Конвертор_1 является понятие. Понятие имеет структуру:

1) имя понятия - индекс в таблице 1 «Таблица имен понятий» <1,х>, где 1-номер таблицы в которую помещается имя понятия x.

2) массив параметров Параметр:

1. имя параметра - индекс <2,х>, где 2-номер таблицы «Таблица имен параметров», в которую помещается имя параметра x.

2. тип параметра - индекс <1,х> и <4,х>, где 1 и 4-номера таблиц в которые помещается тип параметра x, либо он уже существует в таблице 4 «Таблица стандартных типов».

3) массив операций Операция:

1. имя операции - индекс <3,х>, где 3-номер таблицы «Таблица имен операций», в которую помещается имя операции x.

2. массив входных параметров - ссылка на <2,х>, где 2-номер таблицы «Таблица имен параметров», в которой хранится параметр x.

3. выходные параметров - ссылка на <2,х>, где 2-номер таблицы «Таблица имен параметров», в которой хранится параметр x.

4) массив свойств Свойство (ограничение):

1. формула - индекс <5,х>, где 5-номер таблицы «Таблица свойств», в которую помещается свойство x.

Главной единицей в Конвертор_2 является класс [5, 6]. Класс имеет структуру:

1) имя класса - индекс в таблице 6 «Таблица имен классов» <6,х>, где 6-номер таблицы в которую помещается имя класс x.

2) массив атрибутов Атрибут:

1. имя атрибута - индекс <7,х>, где 7-номер таблицы «Таблица имен атрибутов», в которую помещается имя атрибута x.

2. тип атрибута - индекс <6,х> и <4,х>, где 6 и 4-номера таблиц, в которые помещается тип атрибута x, либо он уже существует в таблице 4 «Таблица стандартных типов».

5) массив операций Операция:

1. имя операции - индекс <3,х>, где 3-номер таблицы «Таблица имен операций», в которую помещается имя операции x.

2. массив входных атрибутов - ссылка на <7,х>, где 7-номер таблицы «Таблица имен атрибутов», в которой хранится атриубт x.

3. выходные параметров - ссылка на <7,х>, где 7-номер таблицы «Таблица имен атрибутов», в которой хранится атрибут x.

6) массив свойств Свойство (ограничение):

1. формула - индекс <5,х>, где 5-номер таблицы «Таблица свойств», в которую помещается свойство x.

Разработка архитектуры и структур данных AvtosintezUML

Данные программы AvtosintezUML хранятся в виде баз данных MSSQLServer2000. Так для Конвертор^ составляем базу данных:

1. Таблица имен понятий.

2. Таблица имен параметров.

3. Таблица имен операций.

4. Таблица стандартных типов.

5. Таблица сво йств.

6. Таблица имен классов.

7. Таблица имен атрибутов.

Данное программное обеспечение было выбрано для хранения данных по причине достаточно широкого использования данной системы, а также хорошего взаимодействия с средой Embarcadero RADStudioXE15.0.3890.34076

(C++BuilderXE), в которой была написана AvtosintezUML.

RAD (Rapid Application Development) - инструментарий быстрой разработки приложений. Результатом данного этапа является программное приложение, которое обладает требуемой функциональностью и способно решать задачу автоматизированного синтеза диаграммы классов в конкретной предметной области.

Алфавит языка AvtosintezUML

Алфавитом является набор символов, на основе которых образуется конструкция языка.

Перевод программы с одного языка на другой в общем случае состоит в изменении алфавита,

лексики и синтаксиса языка с сохранением семантики программы. Сюда входящий лексический анализ, переводящий программы на внутренний язык, удобный для последующей обработки, включает:

а) перекодировку символов из входного алфавита во внутренний алфавит;

б) удаление лишних пробелов и другие редактирования программы;

в) перевод лексем (допустимые слова языка) во внутренний код (token);

г) проведение лексического контроля, то есть проверку правильности написания лексем.

В результате программа из последовательности символов превращается в последовательность лексем. Например, в нашем случае лексемами являются: наименования классов, их атрибутов и свойств; служебные слова такие, как int, double, void, public, prívate, protected, public; знаки операций: = и !=; разделители: запятая и точка с запятой; открывающая и закрывающая скобки, кванторы всеобщности и существования, пустого множества.

Язык спецификации AvtosintezUML является промежуточным языком автоматизированной системы синтеза моделей (диаграмм классов) UML и предназначен для записи результатов формализации профессиональных, научных и потребительских представлений о ПрО. Для описания синтаксиса языка спецификации AvtosintezUML в исследовании используется метаязык. Язык, предназначенный для описания какого-либо языка, называется метаязыком.

В основе метаязыка лежит формальная грамматика, в которой применяются специальные синтаксические знаки и специальный шрифт. Все правила формальной грамматики набраны жирным шрифтом. Кроме того, они записываются с выступом. Сюда входящий синтаксический анализ исходного экспертного описания ПрО включает следующие уточнения: по разным местам приложения программы AvtosintezUML расставлены различного рода замечания написания той или иной информации; символы определяемого языка («,», «.», «:», «;», «[», «]», «{», «}», « », «!», «?») не используются при записи тех или иных наименований; символ определяемого языка («_») используется вместо пробела при записи тех или иных наименований. Символы определяемого языка («,», «.», «:», «;», «[», «]», «{», «7»), которые одновременно являются символами метаязыка, записываются курсивом. Часть описания, заключенная в квадратные скобки является не обязательной и появляется в тексте 0 или 1 раз. Описание, заключённое в фигурные скобки, может повторяться в тексте несколько раз. Отсюда, определяем последовательность однородных элементов.

Всякое порождающее правило состоит из следующих элементов, расположенных в указанном порядке:

• непустого нетерминального понятия;

• символа «:»;

• непустой последовательности альтернатив, разделенных символом «;»;

• символа «.».

Для порождения любого описания конечной длины потребуется только конечное число применений порождающего правила.

Формальным описанием семантического языка является описание свойств и особенностей ПрО с помощью рассмотренного метаязыка:

Описание ПрО представляет собой систему понятий.

1) Информационная единица описания есть понятие.

2) Описание сигнатур понятий Понятие <наименование_понятия> Описание сигнатур параметров

<имя_переменной>:{<тип_переменной>} Описание сигнатур операций Операции

[<Наименование операции> (<Наименование переменной на основе которой формируются данные>) ]:[<тип>]

[<Наименование операции>(<Откуда берутся данные> : {вектор [<Размер вектора>] из <тип подхватываемых данных>}): [<Наименование заполняемой переменной, её тип>]]

[<Наименование операции> (<Наименование переменной на основе которой формируются данные>) ]:[<Наименование заполняемой переменной, её тип>]

Описание сигнатур свойств(ограничений) Свойство [<Ограничения>]

3)Правила синтаксиса входного языка: Наименования понятий ведется с маленькой буквы. Наименования параметров обозначается с заглавной буквы и т.д.

Более подробно формальное описание семантического языка на конкретном примере рассмотрено в статьях[5,6].

Описание программной реализации AvtosintezUML

Структура программы AvtosintezUML включает следующие элементы:

1. Дружелюбное приложение для экспертного описания предметной области;

2. Конвертор_1 (2-6 этапы);

3. Конвертор 2 (7-9 этапы);

4. Problem Solver Basic;

5. Построение вариантов диаграммы классов. Где, как ранее рассматривалось в предыдущей главе, Конвертор_1 имеет дело с понятиями, а Конвертор_2 - назначает виды отношений и имеет дело с классами.

Структура каталогов описания системы понятий представлена ниже: Debug Win32

Projects Головной каталог для проектов slstFProjectsJob_1.txt Список наименований созданных проектов

slstFContentsExpertDiv.txt Список созданных экспертов

slstFContentsMod.txt Список

наименований подразделов проектов *.job Проектное задание *.job *.job

*.mod Модификация задания

*.mod *.mod

*.div Эксперты

*.div

*.div

slstFConcepts_3.txt Список наименований проекта *Понятие

Gone_slstFGConcept_5.txtНаименование понятия прародителя данного понятия

МАМЬШз_4_1.ШСписок типа, наименования атрибутов данного понятия

MVneshAtrib_4_2.txtСписок типа, наименования внешних атрибутов данного понятия

Log.txtИстория и данные о времени и успешности создаваемых проектов и их частей

Из выше сказанного следует, что модификация проектов(нескольких) и всех экспертов из всех проектов содержаться в одном месте. Но данные не являются общими для всех проектов, так в разных модификациях могут содержаться эксперты с одинаковыми именами, но с разными функциями — это плюс, так как если повторно вводится тот же эксперт, то сохраняется в уже существующую папку эксперта(М^),при этом не создается копия эксперта.

Структура файлов описания понятия (*.concept или папка) Договоренности:

а) если пункт нумерованный (А, 1, а, p), то это обязательный элемент

б) если пункт ненумерованный, то это альтернатива

в) если описание списка отсутствует, то отсутствует и соответствующий пункт

г) среди описателей не должен появляться символ «Enter»

д) описание структуры файла представляет собой дерево, в файле хранятся только терминальные элементы данного описания

е) первоначально файл является текстовым, после отладки программ станет типизированным

Описание структуры файла .concept (см. рис.1):

A) лексический код определяемого понятия Б) наследование:

1) тип наследования:

0, если отсутствует в противном случае:

1 - родительское понятие

2 - тождественное понятие

(а) наследуемое понятие:

[1] лексический код имени наследуемого понятия

[2] лексический код имени раздела наследуемого понятия

B) раздел «Параметры»:

1) список описателей параметров вида:

а) тэг:

1 - обязательный описатель

2 - необязательный описатель

б) лексический код имени

в) тип описания:

1 - базовый тип данных:

[1] лексический код имени

[2] тэг:

0 - нет значений 2 - конструкторское понятие:

[1] лексический код имени конструкторского понятия

[2] лексический код имени раздела конструкторского понятия

2) 0 Г) раздел «Состав»:

1) список описателей компонентов вида:

а) тэг:

1 - обязательный описатель

2 - необязательный описатель

б) лексический код имени

в) тип описания:

1 - структурные варианты:

[1] список описателей структурных вариантов:

[а] конструкторское понятие:

{1} лексический код имени конструкторского понятия {2} лексический код имени раздела конструкторского понятия

[б] список описателей фактических параметров:

{1} лексический код

имени {2} список описателей значений: {а} лексический код значения

{3} 0

[в] 0

[2] 0

2 - референциальное отношение:

[1] лексический код имени понятия

[2] местонахождение понятия:

1 - в разделе «Состав»

2 - в разделе «Атрибуты»

3 - в разделе «Внешние»

[3] конструкторское понятие:

[а] лексический код имени конструкторского понятия

[б] лексический код имени раздела конструкторского понятия

[4] список описателей фактических параметров:

А

А

[а] лексический код имени

[б] список описателей значений:

{1} лексический код значения

[в] 0 [5] 0

2) 0

Д) раздел «Атрибуты» и «Внешние»:

1) список описателей компонентов вида:

а) тэг:

1 - обязательный описатель

2 - необязательный описатель

б) лексический код имени

в) тип описания:

1 - структурные варианты:

[1] список описателей структурных вариантов:

[а] конструкторское понятие:

{1} лексический код имени конструкторского понятия {2} лексический код имени раздела конструкторского понятия

[б] список фактических параметров:

{1} лексический код

имени {2} описание списка значений:

{а} лексический код значения

{3} 0

[в] 0

[2] 0

2 - референциальное отношение:

[1] лексический код имени понятия

[2] местонахождение понятия:

1 - в разделе «Состав»

2 - в разделе «Атрибуты»

3 - в разделе «Внешние»

[3] конструкторское понятие:

[а] лексический код имени конструкторского понятия

[б] лексический код имени раздела конструкторского понятия

[4] список описателей фактических параметров:

[а] лексический код имени

[б] список описателей значений:

{1} лексический код значения

[в] 0

[5] 0

3 - базовый тип данных:

[1] лексический код имени

[2] тэг:

0 - нет значений

1 - перечисление:

{а}список описателей значений: <1>лексический код значения {б} 0

2 - диапазон целый:

{а}лексический код

левой скобки {б} лексический код

начала диапазона {в} лексический код

конца диапазона {г} лексический код правой скобки {д} шаг:

0 - значение установлено по умолчанию,

иначе:

лексический код значения шага

3 - диапазон вещественный:

{а}лексический код

левой скобки {б} лексический код

начала диапазона {в} лексический код

конца диапазона {г} лексический код

правой скобки {д} шаг: 0 - значение установлено по умолчанию, иначе:

лексический код значения шага

2) 0

Е) разделы «Функции», «Отношения», «Множества», «Свойства»:

1) список описателей функций, отношений, множеств, свойств

1 - если описание функции

(а) лексический код имени функции

(б) список аргументов вида:

[1] лексический код имени аргумента

[2] лексический код понятия

[3] лексический код раздела понятия

(в) 0

(г) лексический код типа результата

(д) лексический код раздела типа результата

(е) описание формулы

(ж) описание терма

2 - если описание отношения

(а) лексический код имени отношения

(б) список аргументов вида:

[1] лексический код имени аргумента

[2] лексический код понятия

[3] лексический код раздела понятия

(в) 0

(г) описание формулы

3 - если описание множества

(а) лексический код имени множества

(б) описание типа элементов

(в) список элементов множества вида:

[1] лексический код элемента

(г) 0

4 - если описание свойства

(а) описание формулы

(б) лексический код сообщения об ошибке

2) 0

Ж) Лексический код названия файла рисунка З) Описание источников

1) Ключ БД источников И) Описание примечаний

Ключ БД примечаний.

= j" —-J

О

Рис. 1 - Введения понятия в AvtosintezUML Экспериментальные исследования

Целью экспериментальных исследований является теоретическая и практическая проверка полученных в работе научных результатов. В соответствии с целью были проведены: теоретический эксперимент и практический эксперимент. Теоретический эксперимент заключался в описании семантики задачи синтеза диаграммы классов UML с помощью научно обоснованного аппарата ПоФ.

Практический эксперимент проведен в проектной организации - научно-производственной фирме ООО «Элина-компьютерс»; при разработке программы управления силовой установкой беспилотного летательного аппарата; на кафедре - КНИТУ-КАИ.

Автоматизированная система семантического моделирования диаграммы классов AvtosintezUML использовалась в технологии семантического моделирования диаграммы классов UML. С целью воспроизведения полученного опыта результаты диссертации использовались в учебном процессе Казанского национального исследовательского технического университета.

Результаты исследования были использованы при разработке программы управления испытательным стендом БПЛА, проведены эксперименты по разработке информационных систем связанных с эффективным функционированием коммерческих банков

Заключение

В статье предложен входной язык описания структурных моделей информационных систем, отличающийся простотой и инвариантностью к предметным областям, формально определен синтаксис данного входного языка, представлена реализация, в виде программного обеспечения, автоматического синтеза диаграмм классов UML (AvtosintezUML), рассмотрена её структура.

Литература

1. Simona Bernardi, Jos'eMerseguer, Dorina C. Petriu,

Dependability Modeling and Assessment in UML-Based Software Development. Article ID 614635. The Scientific World Journal, 2012. С. 11.

2. А.П. Кирпичников, С.А. Ляшева, М.П. Шлеймович, Обнаружение и сопровождение объектов в бортовых системах обработки изображений. Т. 17. № 13. Вестник Казан. технол. ун-та, 2014. С. 331-334.

3. А.П. Кирпичников, С.А. Ляшева, М.П. Шлеймович, И.В. Леонова, Проектирование автоматизированной системы обработки данных успеваемости студентов на основе нечеткой логики. Т. 17. № 22. Вестник Казан. технол. ун-та, 2014. С. 372-376.

4. Каев Э.А., Тахавова Э.Г. Автоматизация процесса разработки базы нечетких правил. В сб. Информационные технологии на службе общества материалы Международной научно-практической конференции. Издательство Казан. гос. технич. ун-та, Казань, 2014, С. 181-182.

5. И.А. Барков, И.И. Бикмуллина, Семантическое моделирование учебных задач в интеллектуальных образовательных средах. № 2. Вестник Казанского гос. технич. ун-та им. А. Н. Туполева, 2012. С. 216-220.

6. И.И. Бикмуллина, И.А. Барков, А.П. Кирпичников, Разработка методики автоматизированного синтеза информационных систем на основе семантических отношений предметной области. Т. 18. № 7. Вестник технологического университета, 2015. C. 236-242.

7. С.Н. Васильев, А.К. Жерлов, Е.А. Федосов, Б.Е. Федунов, Интеллектуальное управление динамическими системами. Физико-математическая литература, М., 2000. С. 352.

© И. И. Бикмуллина - аспирант кафедры автоматизированных систем обработки информации и управления КНИТУ-КАИ им А.Н. Туполева, elsiyar-b@yandex.ru; И. А. Барков - д-р техн. наук, доцент той же кафедры, barkov.asoiu@kstu-kai.ru; А. П. Кирпичников - д-р физ.-мат. наук, зав. каф. интеллектуальных систем и управления информационными ресурсами КНИТУ, kirpichnikov@kstu.ru.

© I. I. Bikmullina - postgraduate of the Department of Automated Information Processing Systems & Control, KNRTU named after A.N. Tupolev, elsiyar-b@yandex.ru; I. A. Barkov - Dr. Sci., Senior lecturer of the Department of Automated Information Processing Systems & Control, KNRTUnamed after A.N. Tupolev, barkov.asoiu@kstu-kai.ru; А. P. Kirpichnikov - Dr. Sci, Head of the Department of Intelligent Systems & Information Systems Control, KNRTU, kirpichnikov@kstu.ru.