Лекция № 10. Новые технологии решения задач экспертизы и диагностирования.

Для вычислительной техники 60—70-е годы были периодом бурного развития разнообразных систем обработки информации в различных сферах применения ЭВМ. В это время были созданы и опробованы методы и средства реализации таких систем, усовершенствована технология их применения. Еще более интенсивно в этот же период развивались средства вычислительной техники. Резко повысились производительность, надежность ЭВМ, существенно увеличились объемы оперативной и внешней памяти, расширились номенклатура периферийных устройств, функциональные возможности системного программного обеспечения. Все это происходило в условиях непрерывной миниатюризации технических средств ЭВМ и снижения их стоимости.

Характерным результатом этих процессов явилось создание в начале 80-х годов персональных ЭВМ (ПЭВМ). В настоящее время ПЭВМ имеет такие габариты, что свободно размещается на небольшом письменном столе, при этом ее технические характеристики и функциональные возможности во многом превосходят характеристики и возможности больших ЭВМ 60—70-х годов. Иначе говоря, вычислительная техника стала гораздо доступнее для пользователей, существенно расширилась сфера ее потенциального применения. Там, где прежде использование ЭВМ было слишком дорого и, следовательно, неэффективно, теперь оно становится целесообразным и желательным. Более того, как и для любого промышленного продукта, для ЭВМ направление и интенсивность развития определяются тем, насколько широко, разнообразно и эффективно она будет применяться.

Однако к началу 80-х годов развитие средств вычислительной техники и ее применений все больше сдерживается традиционной технологией решения задач на ЭВМ. Для пояснения этого явления необходимо подробное рассмотрение организации решения задачи на ЭВМ и жизненного цикла программного обеспечения.

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

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

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

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

Основными знаниями системного аналитика являются знания о методах постановки различных задач для решения на ЭВМ. Кроме того, он должен обладать некоторыми знаниями об области профессиональной деятельности пользователя, обеспечивающими возможность проведения с ним диалога, и представлять, хотя бы на обобщенном уровне, процесс составления программы. В процессе диалога с пользователем системный аналитик выбирает адекватный задаче метод, определяет требуемую выбранным методом организацию данных и строит схему решения задачи на ЭВМ. При этом, в случае если задача относится к информационно-поисковому типу, основное внимание он должен уделять именно организации данных. Уже после построения схемы решения происходит почти полное «отчуждение» конечного пользователя от дальнейшего процесса решения задачи.

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

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

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

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

После разработки и оформления программной системы как изделия она поступает к пользователям. Однако дальнейшая работа с ней по ряду причин не ограничивается применением для решения прикладных задач.

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

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

Таким образом, сопровождение прикладной программной системы выполняется на протяжении всего ее жизненного цикла. Процесс сопровождения в традиционной технологии требует по крайней мере такого же количества ресурсов, как и разработка программы. В частности, удваивается число специалистов по программному обеспечению, обслуживающих потребности пользователей. В условиях неуклонного расширения сферы применения ЭВМ потребности в таких специалистах не могут быть реально удовлетворены. Все сказанное выше и обусловливает необходимость изменения технологии использования ЭВМ.

1.2 Основные идеи новой технологии решения задач на ЭВМ

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

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

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

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

правило, не совпадают.

Это различие и является основной причиной затруднений, возникающих при взаимодействии пользователя с ЭВМ в процессе решения задачи.

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

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

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

Методы решения проблемы интерпретации в рамках традиционной технологии можно условно разделить на частные и систематические.

Частные методы улучшают процесс взаимодействия пользователя с ЭВМ лишь в отдельных аспектах. К ним можно отнести, например, эффективные методы документирования программных систем, различного рода системы помощи пользователю (help-системы) и т. п.

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

— взаимодействие на основе системы понятий предметной области для жестко ограниченного круга прикладных задач;

— оперативное расширение этого круга задач сопровождающим программистом.

В традиционной технологии систематические методы поддерживаются использованием различного рода диалоговых систем с архитектурой «меню» и средств генерации таких систем, а также некоторых современных языков программирования. Такие системы получили широкое распространение и быстро развиваются. Однако всем им органически присущ один недостаток — необходимость регулярного сопровождения программы для каждого конечного пользователя. Новая информационная технология ставит своей целью обеспечение простоты процесса взаимодействия пользователя с ЭВМ с исключением необходимости регулярного сопровождения.

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

В идеале подобный подход должен обеспечить пользователю возможность самостоятельного изменения системы понятий предметной области, определения новых понятий через «известные» системе. Пользователь получает возможность формулирования своего видения предметной области, выделения в ней объектов и взаимосвязей, существенных для решения задачи и удобных для рассуждения в процессе решения. Описанный подход к проблеме противоположен традиционному подходу, рассматривающему задачу упрощения взаимодействия пользователя с ЭВМ как важную, но все же второстепенную.

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

При этом термины «интеллектуальный» и «интеллектуализация» не предполагают обязательного определения понятия «интеллект», а только подчеркивают, с одной стороны, нетривиальность функций, выполняемых интеллектуальным интерфейсом в общей системе вычислительных средств, с другой — то, что выполнение этих функций до последнего времени являлось прерогативой человека.

Функционирование средств интеллектуального интерфейса опирается на развитые методы работы со знаниями:

их представление, хранение, преобразование и т. п.

Под термином знания пря этом понимается вся совокупность информации, необходимой для решения задачи, включающая в себя в том числе информацию:

1) о системе понятий предметной области, в которой

решаются задачи;

2) о системе понятий формальных моделей, на основе которых решаются задачи;

3) о соответствии систем понятий, упомянутых выше;

4) о текущем состоянии предметной области;

5) о методах решения задач.

При этом система знаний должна быть организована в ЭВМ таким образом, чтобы обеспечить взаимодействие вычислительной системы (ВС) с пользователем в системе понятий и терминов предметной области.

Знания о предметной области, организованные на основе тех или иных методов и средств представления знаний, называются моделью предметной области (МПО).

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

При новой технологии в зависимости от типа решаемой задачи должны обеспечиваться адекватные формы представления всех видов информации, которой обмениваются пользователь и вычислительная система.

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

При использовании новой информационной технологии конечный пользователь должен затрачивать минимальное время на обучение. Само обучение в основном должно сводиться к овладению работой с терминалом: «как узнать», «что нажать», «куда сказать», «куда посмотреть» — и ознакомлению с возможностями системы. При этом пользователь в случае затруднений должен получать помощь от системы, позволяющую преодолеть возникшие трудности. Следует подчеркнуть, что при этом речь идет о «случайном» конечном пользователе. Для конечного пользователя, регулярно использующего ЭВМ в своей деятельности, должна быть разработана более широкая система обучения, т. е. и при новой информационной технологии должен сохраняться принцип: «Чем больше знаешь, тем больше можешь получить».

Основное требование к вычислительной системе, определяющее новую информационную технологию решения задач с использованием ЭВМ и обобщающее остальные требования, — превращение машины в удобного партнера конечного пользователя при решении задач, возникающих в ходе его профессиональной деятельности. Удобство программного продукта для пользователя в общем случае является более важным качеством, чем производительность ЭВМ.

Интеллектуальный интерфейс, обеспечивающий в составе единой человеко-машинной решающей системы непосредственное взаимодействие конечного пользователя и ЭВМ при решении задачи, должен выполнять три группы функций:

— обеспечение для пользователя возможности постановки задачи для ЭВМ путем сообщения только ее условий без задания программы решения. При этом должна сохраняться возможность детального разбиения задачи на последовательность подзадач, обеспечивающая, в свою очередь, возможность косвенного указания пути решения задачи:

— обеспечение для пользователя возможности самостоятельного формирования операционной среды решения задачи с использованием только терминов и понятий из области профессиональной деятельности пользователя;

— обеспечение для пользователя естественных для него форм представления информации, которой он обменивается с ВС в процессе решения задачи, а также выбор приемлемых для него способов организации диалога при этом обмене;

— возможность изменения по желанию пользователя структуры диалога, при этом спектр возможных изменений должен предусматривать диалог типа «меню», различные формы анкетно - форматного типа, обмен произвольными (не регламентированными заранее) сообщениями.

Из неподготовленности пользователя, его «случайного» характера вытекает требование обеспечения работы ВС в условиях ошибок, допускаемых пользователем в сообщениях. Эта же неподготовленность требует включения в состав средств интеллектуального интерфейса, обеспечивающих процесс общения, средств, объясняющих пользователю его ошибки и непонятные места в ходе решения задачи.

1.3 Место интеллектуального интерфейса в вычислительной системе

Для лучшего понимания места, которое интеллектуальный интерфейс должен занимать в общей системе аппаратных и программных средств ЭВМ, сделаем ретроспективный анализ развития вычислительной техники. Такой анализ позволяет утверждать, что вычислительная техника постоянно развивается в двух направлениях.