Создание Интеллектуальной Компьютерной Среды (ИКС) призвано устранить недостатки, присущие традиционной разработке программных продуктов автоматизации расчетно-конструкторской деятельности. Поэтому, чтобы лучше понять сущность ИКС, рассмотрим традиционный метод создания программного продукта (ПрП) и метод создания ПрП, использующий ИКС в рамках CASE-технологии.
Причины перехода к CASE-технологии
Традиционный подход к созданию программных продуктов
Традиционный подход к созданию ПрП обычно проходит по следующей схеме:
- Конечный пользователь формирует свои требования к будущему программному продукту на языке требований L1. В них он указывает для каких целей нужен ПрП, его общие характеристики, платформу, на которой будет выполняться данный продукт, и т.д.
- Специалист в предметной области (ПрО) на основе требований пользователя и своих знаний создает спецификацию на языке спецификаций L2, в которой он в виде таблиц, формул и других зависимостей определяет решение поставленной задачи.
- Разработчик-аналитик на основе спецификации составляет алгоритм решения задачи на языке проектирования L3 (частный случай - язык структурных схем).
- Разработчик-программист готовит алгоритм решения задачи на языке реализации L4 (чаще всего исходный текст на языке высокого уровня). После этого средствами системы программирования (СП) производится синтаксическая и семантическая отладка. В конце концов СП автоматически формирует конечный программный код. Здесь следует отметить, что исходный текст программы и документация на нее создаются человеком и являются порождением различных процессов .
- Пользователь общается с полученной программой на языке общения L5.
В этой схеме создания ПрП можно отметить следующие недостатки:
- оторванность специалиста предметной области от процесса написания программ;
- наличие большого количества специалистов, участвующих в создании ПрП, следствием чего является: большое время разработки; дороговизна создания ПрП; появление эффекта "неисправного телефона", при котором после долгого и дорогостоящего процесса проектирования пользователь может обнаружить и получить совсем не то, что ему нужно на самом деле.
Вследствие жесткости связей между специалистами возникают сложности при отладке и сопровождении ПрП. Например, если пользователь захотел добавить в ПрП новую функциональную возможность, он должен заново запустить весь процесс создания программы.
Традиционный подход несет в себе также и недостатки традиционных средств создания программ, а именно:
1.Алгоритмичность программы. Основное внимание в традиционных СП уделяется не описанию предметной области, а написанию фиксированного алгоритма решения конкретной задачи, что приводит к следующим ограничениям:
- жесткое деление переменных на входные и выходные;
- решение задачи представляется в виде строгой последовательности процедур;
- отсутствие модульности при построении системы;
- невозможность работы программы с не полностью определенными данными.
Если мы изменим постановку задачи нам нужно будет полностью или частично переписать программу.
2. Сложность взаимодействия с другими программами.
3. Документация на программу и собственно программа абсолютно разные объекты.
Создание ПрП средствами CASE-технологии
Выходом из создавшейся ситуации является переход к разработке программ средствами CASE- технологии. В нашем случае в качестве CASE- технологии используется отечественная разработка - Интеллектуальная Компьютерная Среда (ИКС). ИКС - это совокупность связанных между собой инструментальных программных средств, предназначенных для поддержки процесса разработки, модификации и эксплуатации множества постоянно развивающихся и взаимосвязанных задач по обработке данных и знаний на ЭВМ при минимальном участии профессиональных программистов [1].
Рассмотрим схему создания ПрП, предлагаемую системой ИКС:
- Конечный пользователь формирует свои требования к будущему программному продукту на языке требований L1.
- Специалист в ПрО формирует спецификацию на программный продукт, описывая свои знания на специальном формализованном языке спецификаций L2F. Он использует при этом максимально привычные для себя формы представления знаний (формулы, таблицы).
- Система ИКС на основе спецификации автоматически формирует конечный программный продукт, полностью исключая процесс написания и отладки программ.
- Пользователь общается с ПрП на языке общения L5F.
При этом:
- Создается модель объекта реального мира, что дает нам такие преимущества как :
- модульность системы;
- переменные являются характеристиками конкретного объекта ПрО;
- нет жесткого разделения переменных на входные и выходные, т.е. переменная при одной постановке задачи может оказаться входной, а при другой - выходной.
- Отсутствие такой структурной единицы, как разработчик программы, что дает:
- уменьшение времени разработки ПрП (в 10-15 раз);
- уменьшение числа ошибок, сокращение времени отладки и модификации программы.
- Появляется легкость взаимодействия с другими программами.
- Документация на программу получается автоматически вместе с программой из языка спецификаций.
Использование ИКС
Информационная модель объекта реального мира имеет структуру, состоящую из следующих частей:
- Понятия - представляют собой выделяемые свойства объекта предметной области, характеризующие последний в рамках информационной модели на ЭВМ. Понятия заносятся в словарь с помощью ИКС/ССС и в дальнейшем используются при описании событий и отношений.
- Отношения - задают взаимосвязи между отдельными понятиями в объекте. Допустимы следующие виды отношений:
- Таблицы. Отношения задаются в виде традиционных таблиц, из которых можно сделать выбор, как в диалоге с пользователем, так и программно (с помощью запросов). Таблица может быть использована для интерактивного ввода и редактирования данных.
- Блоки Принятия Решений (БПР). Они дают возможность пользователю, не владеющему языками программирования, сформулировать правила решений в привычной для себя форме (аналитически или перечислением) [ 2].
- Параметризованные графические образы. Отношения задаются в виде геометрических соотношений между различными свойствами и/или элементами объекта.
- Состояния. Отношения либо задают, либо отображают информацию о текущих характеристиках объекта:
- Формирование формализованного технического задания. Это есть не что иное как запись исходных данных о моделируемом объекте в терминах словаря понятий.
- Конечное решение. На его основании пользователь может получить конкретные рекомендации по изготовлению и эксплуатации объекта в виде спецификаций, сборочных или деталировочных чертежей, расчетно-пояснительной записки и другой конструкторско-технологической документации, принятой в ПрО.
Рассмотрим как с помощью ИКС реализуется на практике приведенная выше схема разработки программных продуктов на примере объекта "Наружная резьба". Этот объект является составной частью модели крепежных изделий (болтов, винтов, шпилек и т.д.).
При решении предметных задач ИКС использует следующие модули:
- cистема словарей и справочников ИКС/ССС;
- генератор программ по блокам принятия решений ИКС/БПР;
- редактор таблиц ИКС/РТ;
- планировщик действий ИКС/ПЛ.
Система словарей и справочников ИКС/ССС
Система словарей и справочников (ССС) предназначена для создания и ведения на ЭВМ единой концептуальной модели представления ПрО. В рамках ИКС/ССС описывается множество понятий, используемых в предметной области, и отношения между ними. Пользователь имеет возможность расширения данной среды с учетом специфики решаемой задачи. Эта компонента обеспечивает пользователю возможность общаться с системой не на языке идентификаторов переменных, а на языке "деловой прозы" предметной области.
Вокруг этой компоненты организована работа всех остальных модулей по обработке данных и знаний. Словарь понятий содержит список свойств объекта ПрО, их внутреннее имя, наименование и шаблон. Для нашего примера словарь понятий содержит атрибуты различных типов данных (целые, вещественные и символьные; для последнего типа данных перечислены допустимые значения в форме ассоциативного списка).
Генератор программ по блокам принятия решений ИКС/БПР
Кроме словаря понятий модель содержит декларативные знания о ПрО, хранящиеся в виде блоков принятия решений, в которых описываются взаимосвязи между свойствами объекта, определенными в словаре понятий. Язык БПР позволяет пользователю, не владеющему языками программирования, сформулировать правила проектирования в привычной для себя форме, т. е. в виде таблиц, аналитических выражений, которые имеются в справочниках, стандартах или другой научно-технической литературе.
Для каждой зависимости в БПР задается: условия применения зависимости; схема зависимости, то есть определение входа и выхода в терминах словаря понятий; собственно реализация зависимости.
Генератор программ автоматически транслирует зависимости, определенные в блоках принятия решений, в исходный текст программы на языке высокого уровня (Си) и средствами стандартного компилятора этого языка готовит объектный модуль, реализующий данную зависимость на ПЭВМ.
Отдельные БПР можно объединить в вычислительную модель. Пример состава вычислительной модели приведен ниже.
Здесь по алфавиту перечислены все понятия, входящие в вычислительную модель. Для каждого понятия записано из каких блоков принятия решений и на основании каких исходных данных оно может быть найдено. Эти исходные данные помечены знаками "<". Параметры, которые являются независимым и для данной вычислительной модели, отмечены знаками "***". Эти параметры должны обязательно присутствовать в исходных данных вычислительной модели.
Процесс построения вычислительной модели полностью автоматизирован. Генератор программ ИКС/БПР позволяет сократить время создания программ в 10-15 раз.
Редактор таблиц ИКС/РТ
На основе словаря понятий создаются таблицы базы данных. Структура всех таблиц описывается в списке таблиц. При этом для каждой таблицы указывается имя, ее наименование и перечисляется набор колонок из словаря понятий. После описания структуры базы данных в списке таблиц пользователь заполняет ее. При этом редактирование ведется не в терминах строк и столбцов, а в терминах словаря понятий. В ходе редактирования таблиц параметры, типа ассоциативных списков, редактируются посредством выбора из списка допустимых значений. Параметры других типов редактируются как отдельные поля ввода. При этом автоматически происходит проверка правильности ввода на синтаксис и семантику. С помощью таблиц входных и выходных значений формулируется также запрос к вычислительной модели.
Планировщик действий ИКС/ПЛ
Расчетно-логические действия пользователя при решении задач в машиностроении обычно можно представить как цепочку выполняемых друг за другом модулей. Планировщик действий предназначен для динамического формирования этих цепочек в зависимости от того "ЧТО НУЖНО ПОЛУЧИТЬ" и "ЧТО ДАНО" в терминах словаря понятий. С помощью планировщика не только можно решить задачу, но и узнать из протокола всю цепочку действий, которая привела к решению (а в случае если задача была не решена или решена не полностью, то указываются причины этого). Планировщик позволяет пользователю с помощью одной модели объекта решать множество задач различного типа, тогда как в традиционных ПрП программа решает одну задачу или фиксированный набор задач.
В нашем примере, в первом случае задается тип резьбы и ее наружный диаметр, а во втором - тип резьбы и ее шаг. В обоих случаях получается решение задачи. Цепочки действий, обеспечивающих решение обоих задач, представлены ниже в виде протокола.
При этом в протоколе входные параметры блока обозначаются "<". Цепочка действий в этих задачах будет разная, т. к. различны наборы входных параметров.
Заключение
В силу своей простоты и мощности Интеллектуальная Компьютерная Среда несомненно заинтересует специалистов, желающих создавать программные продукты в стиле экспертных систем для автоматизации инженерной деятельности в области машиностроения. Особенно это касается проектировщиков, которые в своей деятельности часто используют инженерные расчеты, работы с таблицами, параметризованные чертежи.
Литература
- Евдокимов С.А., Рыбаков А.В. Особенности интеграции прикладных систем в машиностроении. Конструкторско-технологическая информатика. Труды конгресса КТИ-96, М.:СТАНКИН, с.118-119
- Евдокимов С.А., Рыбаков А.В. Программно-компьютерная среда для автоформализации знаний. - Вестник машиностроения, 1990, #7, с. 40 - 44.