СЕМАНТИЧЕСКИЙ АНАЛИЗ ФУНКЦИОНАЛЬНЫХ ДИАГРАММ ИНФОРМАЦИОННЫХ СИСТЕМ СРЕДСТВАМИ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ЛОГИЧЕСКОГО ПРОГРАММИРОВАНИЯ

Морозов А.А., Обухов Ю.В.
Институт радиотехники и электроники РАН

Email: morozov@mail.cplire.ru

В докладе рассказывается о разработке средств объектно-ориентированного логического программирования для семантического анализа функциональных диаграмм при интерактивном проектировании информационных систем.

Функциональные диаграммы - это графические изображения проектируемых систем, состоящие из функциональных блоков и соединяющих их дуг. Они создаются на ранних этапах проектирования систем для того чтобы помочь проектировщику выявить основные функции и составные части проектируемой системы и, по возможности, обнаружить и устранить существенные ошибки. Современные методы структурного анализа и проектирования (SADT, IDEF0 и др.) предоставляют разработчику определённые синтаксические и графические средства проектирования функциональных диаграмм информационных систем, однако существующие технологии проектирования и анализа таких систем (Design/IDEF фирмы Meta Software, BPwin фирмы Logic Works, CASE.Аналитик фирмы MacroProject и др.) обеспечивают лишь синтаксическую правильность диаграмм проектируемых систем. В докладе обсуждается задача обеспечения семантической правильности функциональных диаграмм, а именно разработки средств семантического анализа функциональных диаграмм.

В понятие "семантический анализ", в отличие от синтаксического анализа, мы будем вкладывать следующий смысл. Предположим, что каждому блоку диаграммы ставится в соответствие некоторая дополнительная (неграфическая) информация - числовые параметры блока, правила его соединения с другими блоками, информация о зависимости параметров проектируемой системы от параметров рассматриваемого блока и т. п. Семантическим анализом функциональной диаграммы мы будем называть анализ, в котором используется такая дополнительная информация, поскольку она соответствует "смысловому наполнению" диаграммы. Необходимо отметить, что семантический анализ представляет особый интерес именно в контексте современных концепций проектирования, таких как объектно-ориентированное проектирование или концепция открытых систем, поскольку они, в сущности, ориентированы на использование модулей, взаимодействующих через жёстко специфицированные интерфейсы, и это как раз та область, где семантический анализ может принести практическую пользу.

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

Для обеспечения корректной логической интерпретации функциональных диаграмм мы создали объектно-ориентированный логический язык - Акторный Пролог, поддерживающий основные принципы ООП (инкапсуляцию, наследование, полиморфизм). Он позволяет описывать объекты и связи функциональных диаграмм с помощью специальных синтаксических конструкций и механизмов управления, основными из которых являются классы, наследование, логические акторы, недоопределённые множества [1_4]. Программы на Акторном Прологе, описывающие функциональные диаграммы, мы будем называть "семантическими моделями".

Использование перечисленных средств языка в процессе функционального моделирования основано на следующих принципах:

  1. Каждый функциональный блок диаграммы описывается экземпляром некоторого класса логического языка, содержимым которого являются логические правила, описывающие семантику блока. При этом логические правила оказываются сокрытыми в отдельных классах, которые можно использовать как "чёрные ящики".
  2. Связи между блоками функциональной диаграммы описываются правилами второго порядка [1], имитируемыми в Акторном Прологе с помощью недоопределённых множеств. Такая логическая интерпретация связей функциональных диаграмм позволяет создавать и использовать для доказательства логических теорем объектно-ориентированное пространство поиска, топология которого соответствует структуре проектируемой функциональной диаграммы.
  3. Логические акторы и основанный на них механизм повторного доказательства подцелей логической программы служат для поддержки интерактивного проектирования функциональных диаграмм. В семантических моделях, поддерживающих интерактивный режим проектирования, все изменения, вносимые проектировщиком в параметры отдельных блоков и в структуру функциональной диаграммы, вызывают повторное доказательство соответствующих подцелей. В процессе повторного доказательства проверяется, каким образом внесённые изменения влияют на параметры информационной системы, на корректность соединений между отдельными блоками и всей системы в целом.

Определения отдельных блоков функциональной диаграммы разрабатываются проектировщиком вручную, в то же время описание связей между блоками легко построить автоматически, с помощью трансляции графической функциональной диаграммы. Объединённые между собой, они образуют готовую семантическую модель - программу на Акторном Прологе, которая может быть исполнена, и которая в процессе исполнения:

  1. проверяет правильность соединения функциональных блоков;
  2. вычисляет параметры проектируемой системы;
  3. поддерживает интерактивный режим проектирования.

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

Таким образом, реализация в логическом языке описанных средств ООП позволяет использовать преимущества ООП при проектировании и семантическом анализе функциональных диаграмм, а именно:

  1. Позволяет локализовать и "спрятать" составные части семантической модели в отдельные блоки, так чтобы затем эти блоки можно было использовать в процессе разработки функциональной диаграммы в качестве "чёрных ящиков", не вникая в их логическую "начинку".
  2. Позволяет использовать при разработке семантических моделей функциональных диаграмм принципы абстракции и наследования (а также допускают повторное использование описаний функциональных блоков - в других диаграммах).
  3. Позволяет в значительной степени автоматизировать разработку семантических моделей с помощью автоматической трансляции графических функциональных диаграмм в текст на объектно-ориентированном логическом языке.
  4. Позволяет реализовать интерактивный режим работы с проектировщиком или читателем функциональной диаграммы.

Литература

  1. Морозов А. А. Акторный Пролог // Программирование. - 1994. - N5. - С. 66_78.
  2. Морозов А. А., Обухов Ю. В., Олейников А. Я. Логическое программирование открытых систем // Логика, методология, философия науки: Тез. докл. XI межд. конф. - Обнинск, 1995. - Т. 2. - С. 153_156.
    (http://www.cplire.ru/Lab144/obninsk.html)
  3. Морозов А. А., Обухов Ю. В. Логическая акторная модель прикладных открытых систем // Развитие и применение открытых систем: Тез. докл. II межд. конф. - Петрозаводск, 1995. - С. 28_30.
  4. Морозов А. А., Обухов Ю. В. Акторный Пролог. Определение языка программирования. - Москва, 1996. - Препринт ИРЭ РАН 2(613) от 14.06.96. - 57 с.
    Электронная версия определения Акторного Пролога - http://www.cplire.ru/Lab144/index.html (сервер http://www.cplire.ru/, раздел research divisions, biomedical diagnostic systems).

ЛИНИЯ

Copyright © 1997 Интернет-центр "ИНФОРИС" ®
All rights reserved