Глава 9. Проектирование технологических процессов обработки экономической информации локальных ЭИС
9.1. Организация решения экономических задач
Содержание работ по проектированию процессов обработки экономической информации определяется особенностями, присущими экономической задаче, как основной единице обработки данных локальных ЭИС. Под экономической задачей принято понимать взаимосвязанную последовательность операций или действий, выполняемых над одним или несколькими файлами с целью получения хотя бы одного экономического показателя, выдаваемого в форме документа на бумажный носитель или записываемого на машинный носитель. Можно выделить следующие специфические особенности, свойственные экономическим задачам:
реализация с помощью решения экономических задач функций управления;
разрешимость задач (для любой задачи существует некоторое решение);
алгоритмизируемость задач (с этой точки зрения выделяют хорошо и слабо формализованные задачи);
структурированность алгоритма решения задачи и возможность разбиения его на блоки и модули;
преобладание последовательной отработки файлов с исходными данными;
невысокая степень использования математических методов (только 25% задач используют математические методы);
форматируемость входных и выходных данных в виде документов строго определенной формы и содержания;
связность экономических задач через общую информационную базу;
упорядоченность используемых данных по ключевым признакам;
регулярность решения (повторяемость);
выдача результатов решения задач к определенным срокам.
Экономические задачи характеризуются совокупностью групп параметров, согласно которым можно выделить классы задач. К числу этих групп параметров можно отнести следующие параметры:
Параметры, характеризующие использование входных данных:
количественные (например, объем файла, количество файлов, объем актуализации
и др.);
качественные (например, характер информации, время изменения файла, упорядоченность файла и др.);
Параметры, характеризующие получение выходных данных:
сложность структуры выходных данных;
срочность изготовления;
число экземпляров.
Параметры, характеризующие алгоритм решения задачи:
типы операторов (вычислительные, логические, операторы передачи управления, ввода, вывода);
частота использования операторов;
вероятность перехода по ветвям алгоритма;
число повторений в операторах циклов;
Параметры оценки сложности обработки:
время работы;
объем программы;
класс сложности программ (простые - 500 симв./оператор для задач оперативной обработки данных, средние - 5.000 симв./оператор для аналитических задач, сложные - 20.000 симв./оператор для задач, связанных решением проблем поддержки принятия решений).
Параметры, характеризующие технологию разработки программы реализации задачи на ЭВМ:
трудоемкость разработки;
стоимость разработки;
машинное время отладки.
Параметр, характеризующий степень связности задач, для чего используют коэффициент связности (Ксв), рассчитываемый как отношение суммы объемов вводимой внешней информации (Увнеш.) к объему внутренней обрабатываемой информации (Увнут.):
внеш.
Ксв =
внут.
С этой точки зрения можно выделить локальные задачи, для которых Ксв < 1, слабо и сильно связанные задачи, при Ксв = 1 и Ксв > 1);
Параметры регулярности решения задач, по которому выделяют оперативные задачи: регулярные (фоновые задачи) и нерегулярные (решение которых носит случайный характер).
Параметры оценки периодичности решения задач (в день, декаду, месяц, год).
Параметры оценки степени использования (с учетом прав доступа) и сроков использования результатов.
Параметр, характеризующий юридическую силу результатных документов, получаемых после решения задачи (требующих подписей ответственных лиц или не требующих таковых).
Параметры близости средств решения задач к непосредственным пользователям получаемых результатов (локальные и распределенные задачи).
Параметр, характеризующий режим обработки данных (пакетный, диалоговый, телеобработки, сетевой, реального масштаба времени или смешанный).
Все вышеперечисленные параметры должны учитываться проектировщиками в процессе разработки проектов автоматизированного решения экономических задач.
Обычно решение экономических задач объединяется в рамках автоматизированных рабочих мест (АРМ), предназначенных для реализации какой-либо цели или функции управления. АРМ проектируется, как правило, в виде функционального пакета прикладных программ на основе общей информационной базы. Автоматизированное рабочее место представляет собой рабочее место персонала автоматизированной системы управления, оборудованное средствами, обеспечивающими участие человека в реализации функций управления. АРМ является основным организационным компонентом ЭИС и представляет собой совокупность методических, языковых, программных, информационных и технических средств, обеспечивающих работу пользователя на ЭВМ в конкретной предметной области.
Методическое обеспечение АРМ составляет комплекс инструкционных материалов, регламентирующих поведение всех типов пользователей в условиях работы АРМ. Можно выделить два типа пользователей АРМ. Первый тип - специалист предметной области, второй тип - программист, который должен будет сопровождать программное обеспечение АРМ. Методическое обеспечение для первого типа пользователей включает в себя инструкционные материалы, которые отражают технологию включения АРМ в работу; обращения к АРМ и выполнения необходимых подготовительных операций; ведения баз данных; обработки и решения задач; поиска и выдачи справок; выключения АРМ в конце рабочего дня. Инструкционные материалы для второго типа пользователей содержат сведения о порядке установки пакета; о принятии решений в случае прерываний работы пакета, в случае сбоя в работе техники; о порядке исправления ошибок в пакете; о порядке сопровождения пакета; о порядке доработки пакета с целью адаптации к изменению внешних условий.
Языковые средства АРМ должны ориентироваться на специалистов трех типов: разработчика пакета, для которого лингвистическим обеспечением будет язык операционной системы и базовый язык разработки пакета; специалиста предметной области, работающего со входным языком пакета, который должен отражать словарную специфику предметной области и специфику технологии обработки в диалоговом языке типа «МЕНЮ», «запрос - ответ», и в языке подсказок; прикладного программиста, сопровождающего пакет, для которого языковым средством будут все три типа языка.
Информационное обеспечение АРМ включает в себя:
классификаторы и справочники,
средства перекодированная с естественного языка в язык обработки данных,
макеты входных и выходных документов,
структуры базы данных конкретной предметной области,
сценарий диалога в виде совокупности меню или информационных сообщений,
совокупность текстов помощи.
Если АРМ имеет функцию обучения, то в его состав включаются демонстрационные примеры и инструкции по технологии ее использования.
Технические средства АРМ могут включать ПЭВМ, средства локальных сетей и периферийные устройства (сканеры, стриммеры, плоттеры, факсмодемы и другие).
Программные средства АРМ разделяются на средства общего и специализированного назначения. К программным средствам общего назначения относятся: операционные системы, операционные оболочки, СУБД, трансляторы и средства разработки программ. К программным средствам специализированного назначения относятся:
методо-ориентированные ППП,
функционально-ориентированные ППП,
профессионально-ориентированные ППП.
К методо-ориентированным относят пакеты, реализующие, например, методы линейного и динамического программирования, статистической обработки информации и другие. К функционально-ориентированным пакетам относятся пакеты обработки бухгалтерских, финансовых документов, управления кадрами, маркетинговых исследований, контроля исполнения документов, технической подготовки производства и другие. В состав профессионально-ориентированных пакетов входят табличные процессоры, текстовые редакторы, интегрированные пакеты, пакеты деловой графики.
В составе задач, объединенных в одно АРМе, могут входить задачи, решаемые в разных режимах: пакетном, диалоговом, удаленного доступа. В последующих параграфах рассматриваются особенности проектирования иехнологических процессов рещения задач в пакетном и диалоговом режимах.
9.2. Проектирование технологических процессов решения оперативных задач в пакетном режиме
К числу задач, решаемых в пакетном режиме (запускаемых, как правило, в виде фоновых заданий), относятся задачи, характеризующиеся: слабой разветвленностью алгоритма, отсутствием необходимости вмешательства пользователя в ход решения задачи и выбора варианта ее решения, большими объемами обрабатываемых данных и длительным временем решения и получения результатной информации. К таким задачам относятся, например, задачи статистической обработки данных, планирования производственной программы, расчета заработной платы и др.
Процесс проектирования внутримашинной технологии решения задач в пакетном режиме, состоит из выполнения ряда операций, содержание и последовательность которых, а также состав получаемых проектных документов, зависит от методов и инструментальных средств проектирования, выбираемых на предпроектной стадии. В условиях использования оригинальной технологии и канонического проектирования к числу методов и инструментальных средств проектирования программного обеспечения задач относят: методы IPT технологии проектирования и процедурно-ориентированные языки программирования.
В первую группу входит совокупность взаимосвязанных методов проектирования, которые были разработаны фирмой IBM:
метод структурного проектирования;
метод модульного программирования;
метод проектирования «сверху-вниз»;
метод структурного программирования;
метод HIPO-документирования.
Все эти методы хорошо описаны в различных литературных источниках, например, в [ ]. Кратко остановимся на содержании каждого из них.
Основной задачей структурного проектирования является выделение полного состава функций, для выполнения которых предназначается разрабатываемые программные средства задачи. Выделяют два главных этапа структурного проектирования:
этап общего проектирования, после которого проектировщик получают полный состав функциональных блоков и связей между ними;
этап детального проектирования, задачей которого является определение полного состава программных блоков и связей между ними, показывающего, по какой технологии реализуются выявленные ранее функции.
Структурное проектирование позволяет на раннем этапе проектирования определить необходимые функции, которые должна реализовывать задача в процессе своей эксплуатации и убрать дублирующие.
Модульное проектирование дает возможность разбить программные и функциональные блоки на оптимальное количество модулей небольшой размерности (длиной до пятисот операторов), определить назначение каждого модуля и осуществить идентификацию его входных и выходных параметров.
По своему назначению модули делят на управляющие и исполнительные; а по степени общности на стандартные и оригинальные.
Метод модульного проектирования поддерживается методом проектирования «сверху-вниз». Традиционно применяемое проектирование методом «снизу-вверх» включает выполнение операций по разработке программного обеспечения в следующей последовательности: разработка отдельных компонент программы, кодирование этих компонент, отладка и интеграция, т.е. сборка их на последнем шаге, что приводит к вероятности выявления стольких неувязок в программе, сколько было в ней составных частей.
Проектирование методом «сверху-вниз» позволяет свести процесс разработки программы к выполнению двух операций: логическая разработка с одновременным интегрированием и выполнение кодирования с отладкой. При таком подходе вначале разрабатывается логическая структура программы в виде дерева программных модулей с установлением всех типов связей между ними, а затем идет кодирование и отладка модулей. При этом проектирование начинается с модулей, занимающих верхние уровни иерархии с одновременной проработкой связей их со всеми соподчиненными модулями, для которых разрабатываются временные заглушки с целью проведения их отладки.
Структурное программирование основывается на выполнении нескольких ограничений. Первый касается размеров модулей и сегментов, согласно которому, небольшой по размеру модуль (до 500 операторов) вначале сегментируется на небольшие разделы (сегменты) размером на один лист (до 60 операторов). Дальнейшая сегментация идет в пределах листа с выполнением расположения сегментов на листе со сдвигом слева направо для улучшения визуальных характеристик программы.
Другим ограничением, применяемом в этом методе является ограничение на типы используемых операторов и структур. Рекомендуется использование линейной структуры (последовательность взаимосвязанных операторов); иерархической структуры с оператором if и циклических (кольцевых) структур с использованием оператора do while. Не рекомендуется применение оператора go to.
Структурное программирование позволяет повысить степень читабельности программной документации и качество сопровождаемости программного продукта.
Для обеспечения качественного документирования разработки программного продукта в этой технологии предлагалось использование нескольких методов, в частности, например, использование стандартного пакета документов HIPO (иерархия-вход- процесс-выход), в который входят три типа документов:
Таблица содержания пакета, в которой рисуется иерархическая структура пакета, состоящего из полной совокупности соподчиненных функциональных блоков.
Обзорная схема каждой функции, в которой описывается документы, массивы, данные, идущие на вход функции, этапы обработки и перечень получаемых документов и массивов, получаемых на выходе функции.
Подробная схема функции (описывается вход, процесс и выход каждого программного блока и дается указание внешних и внутренних потоков информации).
Положительной стороной использования пакета HIPO является стандартность представления описания программных продуктов и возможность поддерживать хорошую читабельность его на этапе эксплуатации и сопровождения. К отрицательным сторонам можно отнести: трудность внесения изменений в документацию, поскольку документация включает большое количество схем; высокая сложность каждой схемы и большая степень связанности их; высокие требования к квалификации исполнителя.
Схема выполнения работ по проектированию технологического процесса обработки информации для конкретной задачи, решаемой в пакетном режиме, представлена на рис. 9.1. Содержанием первой операции является анализ описания задачи, полученного в результате выполнения предпроектной стадии, содержания «Технического задания» к ЭИС, состава предварительно выбранных на предпроектной стадии КТС и ОС, выработка требований к задаче и разработка «Технического задания» на проектирование задачи.
Рис. 9.1. Технологическая сеть проектирования процесса обработки информации в пакетном режиме
и 1.1 - Универсум методов разработки ПО Д 1.1 - Материалы обследования (описание задачи) Д 1.2 - Комплекс технических средств и операционная система Д 1.3 - Принципы организации информационной базы Д 1.4 - ТЗ на разработку Д 2.1 - Постановка задачи
И 3.1 - Универсум факторов выделения функциональных блоков и 3.2 - Универсум критериев выделения функциональных блоков И 3.3 - Универсум подходов к выделения функциональных блоков Д 3.1 - Функциональная блок-схема задачи
И 4.1 - Универсум критериев и методов разбиения функциональных блоков Д 4.1 - Схема взаимосвязи программных модулей и информационных файлов (укрупненный алгоритм)
И 5.1 - Универсум алгоритмических языков
Д 5.1 - Детальные блок-схемы программных модулей
Д 6.1 - Описание текста программ
Д 6.2 - Распечатка программы
Д 6.3 - Отлаженный текст программы
Д 7.1 - Исходные данные контрольного примера
Д 7.2 - Отлаженный текст программы
Д 7.3 - Описание контрольного примера
Д 8.1 - Документация по ПО
Д 9.1 - Технологическая документация
На вход данной операции поступают «Описание задачи», полученное на этапе анализа материалов обследования (Д1.1), описание выбранного комплекса технических средств и операционной системы (Д1.2), принципы организации информационной базы (Д1.2), универсум методов разработки программного обеспечения (И1.1).
На выходе операции получают «Техническое задание» на разработку программирование задачи (Д1.4). ТЗ должно отражать функции управления и операции обработки, выполняемые при решении данной задачи, состав и содержание документов, файлов информационной базы, особенности и параметры решаемой задачи.
На второй операции (П2) осуществляется разработка «Постановки задачи». Исходными данными для операции служит ТЗ на разработку (Д1.4), полученное на предыдущей операции. В результате выполнения этой операции получают документ - «Постановка задачи» (Д2.1), включающая, как об этом было сказано выше, описание цели и назначения решения задачи, экономическую и организационную сущность данной задачи, характеристику регулярности и периодичности счета, формализованный алгоритм решения, описание входных и выходных сообщений и документов.
Содержание следующих операций проектирования зависит в значительной степени от выбранных методов и инструмента проектирования. В случае использования методов 1РТ технологии и в качестве инструмента - процедурно-ориентированного языка программирования, содержанием следующей операции является функциональный анализ задачи (П3). Входными данными для данной операции служат «Постановка задачи» (Д2.1), «ТЗ на разработку» (Д1.4), описание выбранного средства разработки, универсумы методов разработки (И1.1), факторов выделения функциональных блоков (И3.1), критериев (И3.2) и подходов к выделению функциональных блоков (И3.3).
Результатом выполнения этой операции является описание общей структуры программного обеспечения задачи и состава функциональных блоков, реализующих основные функции, для которых предназначается данная задача, т. е. ее функциональная блок- схема (Д3.1).
Целью выполнения функционального анализа является выбор подхода, с точки зрения которого анализируется задача, и определение оптимального числа функциональных блоков. К основным мотивам, по которым осуществляют разбиение задачи на функциональные блоки можно отнести следующие:
достижение минимальных трудовых и стоимостных затрат на стадиях проектирования, внедрения и сопровождения проекта;
сокращение числа ошибок в тексте за счет повышения степени читабельности текстов программ.
К основным подходам, применяемым при разбиении задач на функциональные блоки, относят следующие:
подход от анализа результатной информации, который применяется, если задача связана с выдачей большого числа сводок;
подход, основанный на анализе состава входных файлов для задач, связанных с организацией загрузки и корректировки файлов информационной базы;
подход, базирующийся на анализе сложного алгоритма решения задачи, если в нем можно выделить блоки, реализующие функции управления и обработки;
от анализа структуры алгоритма, основывающемся на использовании экономико- математических методов и построении математической модели;
смешанный вариант.
В процессе функционального анализа в качестве критериев разбиения задачи на функциональные блоки выбирают: размерность задачи; территориальную рассредоточен- ность задачи; распределенность решения задачи во времени; количество входных файлов; количество файлов-корректур; количество функциональных связей и другие. При этом используют следующие методы разбиения:
по функциям и технологии управления, автоматизируемым с помощью решаемой задачи;
по операциям обработки;
смешанный вариант.
Выполнение четвертой операции (П4) связано с разработкой укрупненного машинного алгоритма решения задач, реализующего внутримашинный технологический процесс обработки данных.
Исходными данными для данной операции являются универсум критериев и методов разбиения функциональных блоков на программные блоки (И4.1), ТЗ (Д1.4) и общее описание задачи (Д 1.1), функциональная блок-схема задачи (Д3.1). Результатом выполнения операции являются укрупненные блок-схемы алгоритмов решения задачи по каждому функциональному блоку, представляющие собой схемы взаимосвязи программных модулей и информационных файлов (Д4.1).
Следует отметить, что причины и критерии, по которым производится разбиение функциональных блоков на программные модули, остаются те же, что и при выделении функциональных блоков. Блок-схемы алгоритмов функциональных блоков строятся с использованием двух подходов:
классический метод, который характеризуется установлением последовательной связи между программными блоками, реализующими типовые операции обработки экономической информации, что позволяет строить линейную структуру алгоритма, где связь между отдельными программными блоками осуществляется через данные;
подход, ориентированный на выделение оригинальных и стандартных программных модулей, к которым можно неоднократно обращаться как внутри одного функционального модуля, так и из других функциональных модулей.
При использовании первого подхода основной задачей проектировщика является определение состава обрабатываемых файлов с переменной и постоянной информацией, файлов с результатной информацией, состава и последовательности типовых операций обработки данных, к которым относят следующие:
чтение записей файлов с переменой информацией;
сортировка введенных файлов по ключевым признакам;
чтение записей файлов с постоянной информацией, необходимой для выполнения операций обработки;
выполнение операций обработки над записями с постоянной и переменной первичной информацией и получение файлов с результатной информацией;
чтение записей файлов со справочной информацией для формирования файлов результатной информации для выдачи ее на печать;
печать файла результатной информации и получение отчетов или сводных ведомостей.
Особенность второго метода заключается в необходимости построения иерархической структуры взаимосвязи функциональных и входящие в них программных блоков, в которой выделяют управляющие и исполнительные модули. Исполнительные модули, в свою очередь, могут быть подразделены на специальные модули, предназначенные для использования в определенных функциональных блоках, и стандартные модули, которые могут быть использованы при исполнении других функциональных блоков, реализуемых данной задачей. Передача управления между модулями в этом случае может осуществляться через данные и совокупность параметров.
При выполнении следующей операции (П5) осуществляется разработка детальных блок-схем программных модулей и их кодирование (Д5.1). На входе данной операции разработчик использует блок-схемы укрупненных алгоритмов функциональных блоков (Д4.1), разработанные на предыдущей операции, и универсум алгоритмических языков (И5.1). К основным критериям выбора алгоритмических языков относят следующие критерии:
мощность алгоритмического языка, то есть наличие достаточного количества языковых конструкций, покрывающих все потребности алгоритма решаемой задачи;
синтаксическая и семантическая ясность языка, что способствует его быстрому освоению;
объем алгоритма, размерность программы;
время написания программы;
время отладки, трансляции, решения задачи;
объем памяти, занимаемой разработанной программой;
диагностические возможности языка;
совместимость с другими языками;
возможность удаленной обработки информации;
возможность управления файлами;
степень готовности языка;
надежность языка.
Целью выполнения шестой операции (П6) является осуществление синтаксической и семантической отладки каждого программного модуля (Д6.3), которая осуществляется на основе описания текста (Д6.1) и распечатки (Д6.2) программы, а также блок-схем программных модулей (Д5.1).
На следующей операции (П7) выполняется комплексная отладка программных модулей на контрольном примере. На входе операции используют отлаженные тексты программных модулей (Д6.3) и исходные данные контрольного примера (Д7.1), на выходе получают полностью отлаженное программное обеспечение задачи (Д7.2) и описание контрольного примера (Д7.3).
В процессе отладки проектировщик может использовать несколько методов контроля правильности работы программы, такие как метод усеченного алгоритма; выхода на контрольные результаты; контроля времени решения задачи и другие.
Заключительной операцией при проектировании технологии обработки данных на ЭВМ является подготовка программной документации (П8), в состав которой входит: общее описание задачи, описание структуры программного обеспечения и назначения каждой из его составных частей, тексты программ, перечни используемых файлов информации, руководства пользователям, программистам и описание контрольного примера (Д8.1). По схеме взаимосвязи программных модулей и информационных файлов (Д4.1) формируется на соответствующей операции (П9) технологическая документация (Д9.1).
Если проектировщик выбирает в качестве инструментария одно из средств частичной автоматизации проектирования типовых операций обработки, то состав работ по проектированию процессов обработки данных будет зависеть от его типа.
Выделяют следующие виды средств частичной автоматизации проектирования типовых операций обработки данных:
библиотеки макрогенераторов;
библиотеки стандартных подпрограмм;
генераторы программ;
интерпретаторы, ориентированные на предметную область.
Суть метода использования библиотеки макрогенератора заключается в том, что проектировщики, исходя из опыта проектирования, выделяют в теле задач часто повторяющиеся последовательности операторов, реализующие небольшие функции обработки. На эти последовательности разрабатываются макрорасширения, имена которых обрабатываются макрогенератором, поэтому в тело программы включаются макрокоманды с параметрами, что значительно сокращает объем работ по программированию. В случае использования данного средства проектировщик должен выполнить следующие работы:
анализ алгоритма задачи;
анализ содержания библиотеки макроопределений (библиотека макрогенератора);
написание на базовом языке исходной программы;
включение в тело программы макрокоманд с параметрами (макроопределения);
подготовка программы к вводу;
ввод программы и ее обработка макрогенератором, который включает макрорасширения из библиотеки;
трансляция и редактирование программы;
испытание на контрольном примере, подготовка документации.
Если проектировщик использовал библиотеку стандартных подпрограмм, то в состав операций по проектирования должны входить такие операции как: декомпозиция задачи на функциональные блоки, выбор типовых процедур и состава стандартных подпрограмм, разработка принципов связи программных модулей, списков передаваемых параметров, разработка алгоритмов оригинальных программных модулей, выбор языка программирования, написание и отладка кодов программ, соединение типовых процедур и оригинальных программных модулей, разработка управляющих модулей, комплексная отладка на контрольном примере с разработкой программной документации (см. рис.9.2.).
Рис. 9.2. Технологическая сеть проектирования использования библиотек стандартных программ
Д 1.1. - Постановка задачи
Д 1.2. - Функциональная блок-схема
Д 1.3. - Укрупненная алгоритмическая блок-схема
и 2.1. - Библиотека типовых процедур
Д 2.1. - Состав типорвых процедур
Д 2.2. - Систав ориг. мод.
Д 3.1. - Состав операторов и список фактических параметров
Д 3.2. - Список файлов
И 4.1. - Универсум языков
Д 4.1. - Текст программных модулей
Д 4.2. - Блок схемы алгоритмов
Д 4.3. - Результаты отладки
Д 5.1. - Текст программных модулей
Д 5.2. - Полный состав программных модулей
Д 6.1. - Тексты программ
Д 6.2. - Программная документация
Дальнейшее развитие методика проектирования внутримашинной технологии обработки данных получила при использовании генераторов программ и программ интерпретирующего типа.
9.3. Проектирование технологических процессов обработки данных в диалоговом режиме
Диалог - это процесс обмена сообщениями между пользователем и ЭВМ, при котором осуществляется постоянная смена ролей информатора и реципиента (пользователя, принимающего информацию), причем, смена ролей должна быть достаточно оперативной. Процесс диалога должен удовлетворять следующим условиям:
существует единая цель информатора и реципиента;
осуществляется постоянная смена ролей пользователя и ЭВМ;
наличие общего языка общения;
наличие общей базы знаний (данных);
возможность пополнения базы знаний хотя бы одним из объектов (субъектов).
Для осуществления диалога необходимо разработать диалоговую систему (ДС), представляющую собой совокупность технического, информационного, программного, лингвистического обеспечения, предназначенных для выполнения функций управления диалогом, информирования пользователя, ввода информационных сообщений, обработки их с помощью прикладных программ и выдачи результатов.
Можно выделить несколько характеристик ДС, значения которых определяют процесс диалогового взаимодействия пользователя и ЭВМ. Важнейшей из них является степень оперативности диалога. При этом оперативность возможна двусторонняя или односторонняя - со стороны ЭВМ или человека. В первом случае диалог называется активным со временем ожидания до 2 сек., во втором - пассивным, время ожидания при нем может достигать 3 мин.
Другой характеристикой диалоговых систем служит способность к управлению. Она тесно связана с такими условиями выполнения диалога, как наличие знаний у партнеров и взаимопонимания между ними с помощью общего языка. Эта характеристика выражается в способности к выдаче таких команд партнеру, которые требуют выполнения некоторых действий, направленных на достижение цели диалога.
В процессе диалога возможно двустороннее управление на базе языка типа «запрос-ответ», одностороннее управление со стороны ЭВМ с языком общения типа «меню», «заполнение шаблона» и ответа по «подсказке» или одностороннее управление со стороны пользователя с использованием языка директив (команд).
Важной характеристикой является также способность партнеров к обучению (накоплению знаний) о предметной области и общего языка взаимодействия. Выделяют системы, которые обеспечивают двустороннее обучение партнеров, и системы с односторонним обучением: со стороны либо пользователя, либо ЭВМ.
Помимо вышеперечисленных существует и ряд других характеристик, к числу которых относят:
среднее время безотказной работы всей диалоговой системы;
вероятность безошибочного выполнения диалога;
коэффициент занятости системы;
стоимость эксплуатации и разработки диалоговой системы.
Диалоговые системы можно классифицировать по ряду признаков (см. рис. 9.3).
1
I
Без грамматики
Рис. 9.3. Схема классификации диалоговых систем
По сфере использования можно выделить системы, применяемые в процессах управления экономическими системами, в процессах проектирования сложных систем - в САПР, в обучающих системах, в системах управления данными и в информационно- поисковых системах.
По способу организации взаимодействия и наличию приоритета при организации этого взаимодействия выделяют системы с приоритетным взаимодействием (человека, ЭВМ) и без приоритетного взаимодействия. Бесприоритетные системы отличаются случайным характером ведения диалога и малой степенью его организованности. Такие системы не являются характерными для применения в экономических системах, в которых, как правило, используют приоритетные схемы взаимодействия человека или ЭВМ в пределах сценария или предметной области и выбранных средств общения.
С грамматикой
Если принять во внимание, что основу процесса
взаимодействия составляют операции информирования, то все диалоговые системы
можно разделить на классы по типу общения: с активным общением и с пассивным
общением, а по типу сценария все ДС де
лят на системы с гибким и с жестким сценарием диалога. Активная схема диалога
характеризуется проявлением инициативы с двух сторон, что создает возможность
регулирования человеком основных характеристик взаимодействия: периода
общения, количества этапов, структуры и содержания информационного потока,
следовательно, появляется возможность работать по гибкому сценарию диалога.
Схема пассивного диалога более проста по своей реализации и используется при
хорошей структурированности задачи, а также при лимите времени и средств ЭВМ.
По форме (языку общения) диалоговые системы подразделяются на системы с языком общения типа «запрос - ответ», «меню», «шаблонов», «подсказок», смешанные варианты. Выбор средств общения определяется требованиями, предъявляемыми к системе взаимодействия со стороны предметной области и режимами общения.
По типу сложности языка общения выделяют системы с формализованными языками (с грамматикой или без грамматики) и с естественными языками. В настоящее время с увеличением числа непрофессиональных пользователей диалоговых систем большое значение приобретает использование естественного языка общения, который обеспечивает доступность, удобство и высокое качество взаимодействия. Однако из-за трудностей реализации эффективных средств восприятия сообщений на естественном языке при использовании формы взаимодействия «запрос - ответ», «меню» и «шаблонов» применяют в основном формализованные языки с ограниченной лексикой и с грамматикой или без грамматики.
Все проблемы проектирования процессов обработки данных в диалоговом режиме можно объединить в две группы:
проблемы методологического характера, связанные с выбором принципов и методов проектирования диалоговых систем и разработки проекта на логическом уровне;
проблемы, связанной с реализацией конкретного варианта проекта диалоговой системы, т.е. проектированием на физическом уровне.
Проектирование диалоговой системы на логическом уровне включает выбор стратегии проектирования, методов проектирования и оценки системы, принципов и способов логической организации и реализации на ЭВМ процессов взаимодействия. Выбор логической структуры диалоговой системы, зависит от назначения диалоговой системы и используемого языка общения.
При выборе в качестве языка общения языка «директив» типовыми подсистемами ДС являются:
ввода-вывода данных;
ввода директив и их анализатор;
интерпретации директив.
При использовании для общения языка «меню» или языка «запросов» в диалоговой системе должна присутствовать система планирования и управления диалогом или диалоговый монитор. В функции системы входят:
управление процессом диалога;
обеспечение интерфейса пользователя;
обеспечение выполнения сервисных или справочных функций;
анализ и обработка ошибочных ситуаций;
вызов обрабатывающих программ;
обеспечение работы с библиотекой прикладных
программ и осуществление ведения протоколов работы системы.
При создании диалоговой системы основной проблемой является выбор логической структуры ДС и средств формализации диалога, т.е. модели ДС, которая должна описывать общую концепцию ее построения и должна использоваться как основа для детального проектирования системы. Эта проблема особенно остро стоит при разработке диалогового монитора для универсальной диалоговой системы, а также при разработке ДС с языком общения «запрос-ответ», что связано с необходимостью разработки алгоритма управления диалогом, в основе которого должно быть построение математической модели диалогового процесса.
Поскольку ДС такого типа должна характеризоваться высокой степенью адаптивности к изменению функций диалога, составу пользователей и т.д., то использование формальной модели при ее разработке позволяет обеспечить хорошие показатели эффективности работы на протяжении длительного времени. На этапе технического проектирования проектировщик на ее основе может выполнить следующие работы:
описать подсистемы ДС, определить интерфейсы между ними и согласовать с проблемными задачами и конкретной вычислительной средой;
выявить и учесть возможности и детали поведения ДС, а также определить сервисные возможности, предоставляемые пользователям;
выработать обобщенный взгляд на ДС в целом;
обеспечить взаимодействие заказчика и разработчика системы, а также определить базу для стандартизации ДС.
На этапе рабочего проектирования эта модель выполняет следующие функции:
служить основой для детального проектирования и реализации программного обеспечения и выбора аппаратных средств ДС;
использоваться как средство контроля хода проектирования;
служить средством анализа свойств ДС, оценки заданных параметров и ресурсов, необходимых для реализации системы, и их оптимизации.
При построении модели ДС в качестве формального аппарата описания организации и функционирования ДС применяют, например, теорию графов, теорию конечных автоматов, специальные языки формально-логического типа. Если же решают проблему выполнения анализа, оценок и оптимизации разработанной системы, то модели строятся с использованием вероятностно-статистических методов.
При использовании подхода, основанного на применении теории графов, математическая модель диалогового процесса представляется в виде графа (ГДП), описывающего логическую последовательность действий системы «пользователь-ЭВМ» [ ]. В вершинах графа отражаются сообщения, команды, информация в виде файлов данных, программы обработки и связи между ними.
т.е. элемент этой матрицы гу равен 1, если существует некоторая функция, которая переводит систему из состояния х1 в х] и гу равен 0, если не существует связи между х1 и х]
Для отображения структуры графа О (Х,Б) используется представление его в виде матрицы смежности первого порядка размерностью пхп, где п - число вершин:
где {у} е I = 1, ... п,
п - число вершин графа диалога,
1, если х] е Б(х1) 0, если х] £ Б(х1)
Основным оператором языка описания ГДП, на котором матрица смежности отображается в виде совокупности векторов (строк) Бк=(гк]}, где ке I, каждый из которых показывает, с какими вершинами в графе диалогового процесса связана вершина к. Язык описания графов диалоговых процедур предназначен для описания структуры различных графов и функций диалоговых процедур, кроме того, его средствами подключаются обрабатывающие программы для решения задач пользователя. Таким образом, язык предоставляет пользователю средства совместного описания структуры диалогового процесса и его функций на каждом шаге диалога. Основные конструкции такого языка предназначаются для описания вершин, структуры графа и функций, составляющих диалоговый процесс на каждом шаге.
Если диалоговая система строится на базе математической модели, использующей теорию графов, и специального языка описания ГДП, то помимо выше упомянутых программных средств в состав ДС будут входить также программы анализа и синтеза графов диалоговых процедур и транслятор с языка описания ГДП.
Эти программы предназначаются для ввода, контроля корректности описания структуры графов диалоговых процедур в синтаксическом и семантическом аспектах и корректности математической модели, корректировки описания структуры ГДП. Транслятор языка описания ГДП представляет собой ряд программ, предназначенных для обработки операторов языка описания в целях формирования диалоговых процедур для объектов с конкретной структурой и функциональной направленностью. Эти программы выполняют лексический и синтаксический анализ с последующим формированием описания шагов диалога на внутреннем языке ЭВМ.
Другим типом модели может служить математическая модель, основанная на теории конечных автоматов. В основе этой теории лежит положение о том, что диалоговый процесс представляет собой множество состояний и последовательный переход из одного состояния в другое, связанное с выполнением некоторой задачи (темы), причем характер переходов зависит от ответов пользователя.
Весь диалог предметной области, поддерживаемый диалоговой системой, разбивают на несколько тем, каждая из которых соответствует задаче и объединяет некоторое подмножество состояний, связанных между собой общей логикой обработки или общими данными. Таким образом, отдельную тему рассматривают как некоторое конечное множество состояний диалога, одно из которых является начальным, а состояния, в которых тема завершается, называются терминальными.
Далее все состояния разбивают на сигнальные и разговорные. В сигнальных состояниях система выполняет некоторые действия - программы обработки состояния, а также посылает пользователю сообщение и переходит в следующее состояние. В разговорных состояниях система посылает пользователю сообщение, ждет ответа и в зависимости от состояния и ответа пользователя выполняет программу обработки, после чего осуществляется переход по заранее составленному для данной темы правилу переходов - схемы или сценария диалога, представленного в виде графа, однозначно задающего переход от одного состояния к другому.
Полученный граф изображается диаграммой состояний, каждое из которых отображает результат определенной фазы деятельности пользователя. Эти фазы выделяются таким образом, чтобы им можно было поставить в соответствие инструкции пользователя, задаваемые каким-либо образом с монитора ЭВМ. При этом граф определяет лишь допустимые переходы (т.е. возможности пользователя), обеспечивая контроль действий пользователя.
Конечный детерминированный автомат, соответствующий такому представлению ДС, задают в виде отношения [ ]:
м = (х,у,о,Ф,п
где X ={х1} - множество входных сообщений (инструкций);
У ={у1} - множество выходных сообщений;
О ={qi} - множество состояний ДС ^0 - начальное состояние);
Ф : Х ^ О - функция переходов;
Х*0 ^ У - функция выходов (обычно О ^ У).
Для каждого состояния или входного сообщения разрабатывается программный модуль, непосредственно реализующий действие пользователя, заданное инструкцией Х^ т.е. вводится отображение 1:Х ^ А или 1:0 ^ А, где А={ак} N - набор из N реализующих модулей.
Находясь в состоянии qi, под действием инструкции х] система переходит в состояние q i+1= ф (х]^), выполняет действие ак = 1(х] или ак =I(qi), выдает пользователю сообщение Ур= ¥ (х^О и останавливается, ожидая следующей инструкции. Таким образом, состояния соответствуют местам прерывания автономной работы системы, когда для ее продолжения необходимо вмешательство пользователя.
Информационной базой, определяющей работу автомата, являются таблицы, задающие функции ¥ и ф, в которых в формальном виде описываются правила взаимодействия пользователей в системе. Эти таблицы используются программой контроля действий пользователей и диалоговым монитором для управления работой ДС. Информационное обеспечение системы, разработанной на основе модели конечного автомата, составляют файлы тем (задач), каждый из которых состоит из подфайлов: параметров тем, управляющей таблицы - сценария, файла сообщений, ответных реакций и файла «подсказок».
Технология взаимодействия функциональных и обеспечивающих средств ДС сводится к выполнению ряда шагов. Диалоговый монитор вызывается одной из программ пользователя. Каждая тема начинается с начального состояния, номер которого содержится в файле параметров темы. При достижении какого-либо разговорного состояния монитор по записи в управляющей таблице, характеризующей данное состояние, определяет номер соответствующего сообщения и, взяв его из файла сообщений, выдает на терминал и ждет ответа пользователя. Ответ анализируется и определяется, не является ли ответ пользователя высокоприоритетной директивой, например, вызовом новой темы, переходом в заданное состояние, запросом справки. В этом случае директива интерпретируется, после чего пользователь продолжает диалог.
В случае обычного ответа монитор осуществляет сопоставление ответа пользователя с возможным для данного состояния ответом. Если при анализе не установлено совпадение с одним из возможных ответов, система классифицирует ответ как неправильный. На все неправильные ответы система формирует соответствующие диагностические сообщения.
В случае правильного ответа монитор определяет из управляющей таблицы имя прикладной программы (ПП), вызывает ее из библиотеки обрабатывающих программ. После выполнения обрабатывающей ПП управление возвращается монитору и начинается следующий цикл. После завершения темы управление передается вызвавшей диалоговый монитор программе пользователя.
Последовательность работ по проектированию процессов обработки информации задач, решаемых в диалоговом режиме, начинается с анализа материалов обследования, определения параметров задач и получения описания полного комплекса автоматизируемых задач и их параметров.
Далее следует анализ параметров задач и выявление режимов обработки и определение следующих списков: задач, обрабатываемых в диалоговом режиме; задач, обрабатываемых в пакетном режиме; задач, решаемых с использованием смешанного режима.
Для комплекса задач, обрабатываемых в диалоговом режиме, осуществляется выбор стратегии разработки диалоговых систем из множества стратегий проектирования диалоговой обработки данных и получение решения о встраивании диалогов в программу либо решения о разработке автономной диалоговой системы.
Выбор стратегии проектирования диалоговой системы, зависит от основных параметров задач обработки данных, типа ЭВМ, операционной среды, а также от наличия средств автоматизации проектирования и других факторов. Например, проектировщик может принять решение о встраивании диалоговых модулей в основное тело программы или в вычислительные модули, если экономическая задача имеет небольшое количество диалоговых блоков, связана с несложным по структуре диалогом и выполнением большого количества математических действий.
Если выбрана стратегия встраивания диалоговых компонент в тело программы, то далее будут выполняться следующие работы:
Составление «Технического задания» на разработку программного обеспечения
задачи.
Разработка «Постановки задачи».
Разработка информационного обеспечения задачи, включая разработку системы классификаторов, документации по задаче, экранных форм ввода и вывода данных и файлов ИБ.
Выполнение функционального анализа задачи и получение функциональной блок-схема решения задачи.
Разработка блок-схем алгоритмов по каждому функциональному блоку и схемы взаимосвязи программных модулей и информационных файлов.
Разработка экранов сообщений и описание их структуры.
Выбор языка программирования. Написание текстов программы.
Отладка программных модулей, комплексная отладка всей программы и разработка программной и технологической документации.
Если проектировщику предстоит разработать в задаче большое количество диалоговых блоков, а сама задача характеризуется сложным алгоритмом обработки с многократным обращением к информационной базе, то в этом случае ему необходимо принимать решение о проектировании автономной диалоговой системы. Разработка автономной диалоговой системы, предполагающей отделение программных блоков, связанных с диалоговыми процедурами, от блоков, связанных с обработкой данных, имеет следующие преимущества:
обеспечивается концептуальная целостность диалога и соблюдается единство языка общения, что позволяет сократить время освоения диалоговой системы;
упрощается разработка, отладка, сопровождение большого количества диалоговых процедур, благодаря функциональной проработке их узкоспециализированными специалистами, которые не знают детали проблемных программ, что в свою очередь позволяет упростить управление проектом;
обеспечивается независимость прикладных программ от диалоговых процедур, от способа диалогового взаимодействия, с пользователем и от типа используемых терминов, что влечет за собой сокращение затрат на разработку и сопровождение прикладных программ;
- обеспечиваются хорошие адаптивные характеристики диалога к накоплению опыта пользователей и появляется возможность предоставления широких сервисных средств диалога (типа выдачи справок, подсказок документации). Помимо этого, для такой системы характерна хорошая приспособляемость к изменению функций управления и операций обработки.
Если проектировщиком выбрана стратегия построения автономной диалоговой системы обработки данных, то возникает проблема определения сферы применения диалоговых процедур для одной задачи или для задач некоторой предметной области. В этом случае применяют либо подход разработки индивидуальных диалоговых систем для отдельных задач или универсальной диалоговой системы типа оболочки или генератора, настраиваемых на обслуживание всех задач этой предметной области. В случае построения автономной диалоговой системы в состав работ по проектированию будет входить процесс определения сферы действия диалоговой системы и выработка решения о разработке индивидуальной диалоговой системы для каждой задачи либо о разработке универсальной диалоговой системы.
Далее следует осуществить выбор метода проектирования и инструментального средства проектирования. Наличие инструментальных средств проектирования или их отсутствие позволяет применять метод оригинального проектирования с помощью таких языков программирования, как языки программирования СУБД, Паскаль, С и другие, или автоматизированного проектирования с использованием, например, диалоговой оболочки или генераторов диалога. Технологическая сеть проектирования диалоговых систем с языком общения типа меню в случае выбора метода оригинального проектирования представлена на рис. 9.4.
П10 П11 П12
Рис. 9.4. Технологическая сеть проектирования диалоговых систем с языком общения типа меню
Д 1.1 - Техническое задание
Д 1.2 - Материалы обследования
Д 1.3 - Документ «Постановка задачи»
Д 2.1 - Функциональная структура задачи
и 3.1 - Универсум языков общения
Д 3.2 - Сценарий диалога
Д 4.1 - Дерево программных модулей
Д 5.1 - Система классификаторов
Д 5.2 - Система документации
Д 5.3 - Информационная база
Д 6.1 - Укрупненный алгоритм решения задачи
И7.1 - Разработка кодов программных модулей и выбор алгоритмического языка Д 7.1 - Коды программных модулей Д 8.1 - Совокупность отлаженных модулей Д 9.1 - Комплекс программных модулей Д 9.2 - Комплекс отлаженных программных модулей Д 9.3 - Результаты реализации контрольного примера Д 10.1- Совокупность документов Д 11.1 - Блок-схемы ТП
Д 12.1 - Комплект технологической документации и инструкционных карт
Первой операцией является разработка документа «Постановка задачи» (П1). На вход данной операции поступает документ «Техническое задание» (Д 1.1) и материалы обследования (Д1.2). Результатом выполнения операции является получение документа «Постановка задачи» (Д1.3).
Далее осуществляется операция (П2) - «Функциональный анализ задачи», выполнение которой позволяет определить состав функциональных блоков. Результатом этой операции служит функциональная блок-схема задачи (Д2.1).
На следующей операции осуществляется «Выбор языка общения и разработка сценария диалога» (П3). На вход операции поступает универсум языков общения (И3.1) и функциональная структура задачи (Д2.1). На выходе получают «сценарий диалога» (Д3.2).
Далее выполняется операция (П4) - «Разработка структуры программного обеспечения». В результате выполнения этой операции строится дерево программных модулей
(Д41).
Операция (П5) - «Разработка информационного обеспечения» должна включать проектирование системы классификаторов (Д5.1), системы документации (Д5.2) и информационной базы (Д5.3).
Элементы информационного обеспечения и состав программных модулей позволяет выполнить операцию «Разработка блок-схемы работы системы» (П6) и получить документ «Укрупненный алгоритм решения задачи» (Д6.1).
Операция «Разработка кодов программных модулей и выбор алгоритмического языка» (П7) осуществляется на основе универсума языка программирования (И7.1). На выходе получают документы с кодами программных модулей (Д7.1).
Разработанные программные модули (Д7.1) подвергаются «локальной отладке» (П8), в результате чего получают совокупность отлаженных модулей (Д8.1), а затем на базе исходных данных «Контрольного примера» (Д9.1) проходят «комплексную отладку» (П8), в результате чего получают результатные данные (Д9.3) и отлаженный комплекс программных модулей (Д9.2).
Далее следует разработка программной документации (П10) и получение всей совокупности документов (Д10.1), после которой разрабатывается блок-схема технологического процесса решения задачи в диалоговом режиме (П11) и получают документ - блок-схему ТП (Д 11.1), содержащей перечень ручных, машинно-ручных и автоматических операций, выполняемых в определенной последовательности пользователем при решении задачи.
Заключительной операцией (П12) является разработка и получение полного комплекта технологической документации и инструкционных карт (Д12.1).
При использовании средств частичной автоматизации проектирования диалоговой обработки данных, т.е. ППП генерирующего или интерпретирующего типа разработанные исполнительные программы с помощью диалоговых процедур объединяются в единую программную систему. В этом случае проектировщики будут выполнять следующий состав дополнительных работ:
Разработка управляющей таблицы, отражающей структуру сценария диалога, макетов сообщений, исполнительских программ.
Генерация сценария и формирование файла сценария для каждой задачи или настройка системы на параметры предметной области.
Формирование контрольных примеров и их отладка по каждой задаче.
Подготовка программной и технологической документации.
Каковы особенности экономических задач, влияющих на содержание проектирования технологии обработки данных?
Каков состав основных параметров и каковы классы экономических задач?
Каков состав операций проектирования технологии обработки информации при решении задачи в пакетном режиме?
Какие методы разработки программного обеспечения вы знаете?
Каковы методы выделения функциональных и программных блоков?
Каков типовой состав операций технологии обработки информации в пакетном режиме?
Каков состав критериев выбора алгоритмических языков?
Каков состав средств частичной автоматизации используется для проектирования процедур обработки данных для задач, решаемых в пакетном режиме?
Что такое «диалоговая система» и каковы классы диалоговых систем?
Каковы методы формализованного описания работы диалоговых систем и их содержание?
Каковы основные стратегии проектирования процессов обработки данных в диалоговом режиме и их содержание?