Диссертация (1090776), страница 12
Текст из файла (страница 12)
Создание для каждой прикладной программыотдельнойинформационноймодели(EXPRESS-схемы);Рисунок 3.2. Модельжизненного циклаобъединения прикладныхпрограмм2.Объединениеэкспертоминформационныхмоделейприкладныхпрограмм (EXPRESS-схем) в единую информационную модель среды;3. Загрузка полученной EXPRESS-модели в PDM-систему (настройкаPDM-системы);4.Разработкаконвертеровдляприкладныхпрограмм(реализацияSDAI-взаимодействия).Основные этапы организации единого информационного пространства [58,64, 121, 122] представлены на рисунках 3.2 – 3.4.86Рисунок 3.3. Основные этапы организации единого хранилища данныхРисунок 3.4. Основные этапы объединения ПО на основе CALS-технологийДля поддержки создания единого хранилища данных созданы [25, 59, 62,95] три утилиты: синтезатор, анализатор и загрузчик.
Синтезатор EXPRESS-схемпо БД прикладной программы создаёт его информационную модель в видеEXPRESS-схемы. Анализатор EXPRESS-схем выполняет проверку и разбор87созданной экспертом единой информационной модели. Загрузчик EXPRESS-схемпо объектному файлу сформированным анализатором, загружает исходнуюEXPRESS-схему в PDM-систему, формируя необходимые структуры данныхполученной модели для их хранения.ТаккакидеологияCALSподразумеваетоткрытостьсистемповзаимодействию на всех этапах жизненного цикла продукта, то разрабатываемоеПО должно быть открыто, т е. общедоступно для просмотра и изменения, поэтомутри утилиты – синтезатор, анализатор и загрузчик – написаны на скриптовомязыке сценариев Microsoft Visual Basic Script Edition (VBScript) [24, 101].Скриптовые языки позволяют быстро выполнять доработку кода и нетребуют компиляции. Исходный код, написанный на языке VBScript, готов квыполнению.
Открытость языка позволяет всем желающим более полноиспользовать программный код для своих нужд, в случае необходимостимодифицируя его.Для взаимодействия прикладных программ с единым хранилищем данныхразработан SDAI-интерфейс, для PDM-системы – Party Plus. В среде Visual StudioнаписанаCOM-библиотека стандартных функцийSDAI.SDAI-интерфейсвыполнен на основе привязки SDAI ISO 10303-24, доступ к даннымобеспечивается через ADO, в нём реализованы контроль вызовов, механизмтранзакций. Согласно ГОСТ Р ИСО 10303-22 [6] созданный интерфейссоответствуют 5-му классу реализации.Разработка единой EXPRESS-схемыПоследовательность разработки единой EXPRESS-схемы приведена нарисунке 3.5. Вначале на основе БД объединяемого прикладного ПО получаютEXPRESS-схемы их БД с помощью синтезатора EXPRESS-схем.
Далее оператораналитик на основе документации и имеющегося опыта дорабатывает созданныесинтезатором EXPRESS-схемы БД прикладных программ с учётом их работы.Затем он объединяет их в единую EXPRESS-схему.88ВпроцессекорректностисозданияиспользуетEXPRESS-схеманализатораналитикEXPRESS-схем,дляпроверкикоторыйихвыполняетлексическую, синтаксическую и семантическую их проверку.Рисунок 3.5. Разработка единой EXPRESS-схемыЗагрузка EXPRESS-схемы в PDM-системуСозданная экспертом единая EXPRESS-схема среды взаимодействияприкладного ПО с помощью загрузчика EXPRESS-схем загружается в PDM LotsiaSoft, реализуя тем самым единое информационное пространство.Разработка конвертеров прикладного ПОЧтобы прикладные программы могли работать с единым информационнымпространством, взаимодействуя с ним через SDAI-интерфейс, для каждой из нихнеобходим конвертер данных (процессор).Процесс разработки процессора конвертирования (рисунок 3.6) состоит изсоздания процессора конвертирования, его подключения к прикладной программе(внесение в них изменений) и тестирования всей системы целиком.89Рисунок 3.6.
Разработка процессора конвертирования для прикладнойпрограммыВ ходе разработки процессора конвертирования создаётся алгоритм егоработы (конвертирования одного формата данных в другой), он записывается наязыке программирования, подключается к прикладной программе и тестируется.3.2. Разработка анализатора EXPRESS-схемК задачам разработанного анализатора EXPRESS-схем (рисунок 3.7)относятся [11, 61, 65, 81, 89, 109, 118]:- разбор исходной EXPRESS-схемы на составные части языка EXPRESS;- выдача пользователю сообщений о найденных ошибках;- формирование, в случае успешного разбора, промежуточногопредставления модели данных.Для упрощения реализации анализа работа анализатора разбита на три фазы[61] :1. лексический анализ, при котором поток символов исходной программысчитывается слева направо и группируется в лексемы;902. синтаксический анализ, который включает группирование лексемисходного текста программы (схемы) в грамматические фразы (выражения иоператоры) и проверку их синтаксиса (того как должна выглядеть программа);3.
семантический анализ, при котором осуществляется проверка наличиясемантических ошибок - проверка смыслового соответствия синтаксическихконструкций(проверкасоответствиятиповфактическихиформальныхпараметров; проверка единственности: объект может быть определен только одинраз – проверка идентификаторов и меток; проверка использования объявленныхобъектов;проверка наличия объявлений сущности предметной области,используемой в качестве атрибута другой сущности предметной области).Рисунок 3.7.
Фазы анализа EXPRESS-схемРазбор схемы производится в два прохода: при первом проходевыполняется лексический и синтаксический анализ, при втором проходе –семантический анализ.Диспетчер таблицы символов служит для ведения таблицы символов,обеспечивающей хранение всех найденных в модели лексем EXPRESS-схемы (вначале работы в него загружаются лексемы ключевых слов языка EXPRESS сатрибутами).91На этапе лексического анализа происходит добавление найденных лексем в случае их отсутствия - в таблицу символов.
В процессе синтаксического исемантического анализа дополнительная информация о лексемах вносится втаблицу символов (информация о лексемах в таблице символов хранится в видеатрибутов) и используется различными способами (для выполнения анализа).На каждой фазе анализа могут встретиться ошибки, которые передаютсяобработчику ошибок для дальнейшей их выдачи пользователю.На этапе лексического анализа выявляются ошибки, при которых символыиз входного потока не формируют ни одной из лексем языка, соответствующихправилам языка. Ошибки, при которых последовательность лексем нарушаетструктурные правила (синтаксис) языка, определяются на фазе синтаксическогоанализа. В процессе семантического анализа проверяется смысл конструкций,корректных с точки зрения синтаксиса.
Например, попытка сложения двухидентификаторов, один из которых — имя массива, а второй — имя процедуры,должна вызвать семантическую ошибку.Анализатор написан на скриптовом языке высокого уровня сценариевMicrosoft Visual Basic Script Edition (VBScript), работающем в операционнойсистеме Microsoft Windows 2000/XP. Это позволяет быстро выполнять доработкуего кода и не требует компиляции.Таблица символов - структура данных, предназначена для храненияинформации по каждой лексеме (их роли в языке, набор атрибутов: название, типданных, инициализируемое значение). В программе она реализуется с помощью5-ти массивов.
Для возможности работы с таблицей символов созданыподпрограммы поиска, добавления лексем, чтения / установки значения атрибута.Перед анализом таблица символов заполняется ключевыми словами языкаEXPRESS.92Реализация лексического анализатораЛексический анализатор считывает символы EXPRESS-схемы из входногопотока, группирует их в лексему; в случае отсутствия лексемы добавляет её втаблицу, доопределяя ее роль; передает синтаксическому анализатору целоечисло соответствующее порядковому номеру (id) расположения лексемы втаблице (рисунок 3.8).Рисунок 3.8. Информационные потоки лексического анализатораИдентификация лексемы лексическим анализатором осуществляется поправилу, построенному в соответствии со структурой лексем языка EXPRESS.Разбор лексем по этому правилу в анализаторе реализуется с помощью конечногоавтомата.Для уменьшения количества состояний автомата входные символысгруппированы в классы (таблица 3.1), для формирования которых в лексическийанализатор дополнительно введен транслитератор (рисунок 3.9).Рисунок 3.9.
Лексический анализатор93Таблица. 3.1Классы символов языка EXPRESSНа рисунке 3.10 представлена диаграмма переходов конечного автоматалексического анализатора. Цифрами обозначены состояния, стрелками –переходы, над стрелками указан символ, с приходом которого происходитпереход. Двойной обводкой обозначено конечное состояние.94Рисунок 3.10. Диаграмма переходов конечного автомата лексическогоанализатораСостояние, помеченное * , обозначает, что это состояние должно вернуть вовходной поток последний считанный символ. Состояние, имеющее двойную95границу, является завершающим, и по его достижении лексический анализаторвозвращает найденную лексему синтаксическому анализатору.Обозначения в диаграмме: start - начальное состояние, GetToken - возвратидентификатора лексемы синтаксическому анализатору, DecForward - возвратпоследнего символа обратно в буфер, GetBinary - возврат двоичного литерала,GetNumber - возврат числового литерала, GetString - возврат простогострокового литерала, GetCodeString - возврат кодированного строковоголитерала, UniteInteger - сборка целой части числа, UniteFloat - сборкадействительной части числа, UniteDegree - сборка порядка числового литерала.Диаграмма переходов конечного автомата в программе кодируется в видетаблицы переходов и вызовов LexCrossingTable[состояние, входной символ](таблица 3.2) и хранится в двумерном массиве.