Разработка и реализация стратегии
использования Контекстной Среды в проектировании и управлении информационными
структурами
А.И. Разумовский,
с.н.с., к.т.н.,
ИПУ РАН, г. Москва
Исследование процесса
управления, на примере проектирования структур алгоритмов и программных систем
(ПС) является задачей, для которой всегда будет характерна актуальность.
Причиной тому все более охватывающая роль информационных технологий в жизни,
как человека- индивидуума, так и человечества в целом.
Программной системой
принято называть совокупность алгоритмов для осуществления определенных
действий над некоторым множеством данных. Сложность и жизненный цикл
программной системы определяются решаемыми ею задачами. Сложность проектируемой
задачи определенно влияет на результат создания ПС. Следовательно, главная
проблема процесса разработки ПС состоит в том, чтобы сохранить целостность
проекта [1]. Целостность характеризуется, прежде всего, согласованием локальных
и общих целей проекта и выражается, в совокупности, решением поставленной
задачи. Однако, даже способность программной системы обеспечить решение
первоначальной задачи, не гарантирует собственную ее целостность. Для задач с
уточняемыми условиями и недетерминированной средой функционирования не только
результат работы ПС, но и сама ее работоспособность находится под вопросом
именно по причине дисбаланса между формальными требованиями и их действительным
неформальным наполнением, существом, качеством.
Таким образом, генезис
целостности – есть единственная абсолютная перспектива проектирования. Примеры
реализации целостных систем следует искать в общественных науках, как
развивающихся издревле, с античных времен. Так, О. Конт, будучи одним из
основоположников социологии, создал концепцию общества, где оно рассматривается
не как механизм, а как особый организм, все части которого образуют целостность
[2]. Подобным же образом, говоря о
накоплении знаний, Конт фактически формулирует технический идеал науки:
«Объяснение фактов, приведенное к его действительным пределам, является отныне
только установлением связи между различными частными явлениями и некоторыми
общими фактами, число которых уменьшается все более и более по мере прогресса
науки». Говоря об установлении связи между произвольными элементами системы,
речь идет непосредственно о процессе ее проектирования.
Процесс проектирования
сложной программной системы заключается в разделении системы на части так,
чтобы каждая из них минимально воздействовала на иную. При этом каждое событие,
внешнее по отношению к программной системе, может перевести ее в новое
состояние, и, более того, переход из одного состояния в другое не всегда
детерминирован [3]. При неблагоприятных условиях внешнее событие может нарушить
текущее состояние системы из-за того, что ее создатели не смогли предусмотреть
все возможные варианты. Следовательно, поиск, градуирование и манипулирование
внутри и внесистемными событиями, объектами и сообщениями составляет содержание
процесса проектирования сложной программной системы. Для того, чтобы уменьшить
сложность ПС, ее элементы или фрагменты представляемых знаний, сгруппированные
в компоненты, стали называть объектами, причем этот термин изначально обозначал
то, что может иметь различные проявления, оставаясь целостным [4]. Отсюда берет свое начало
определение: ориентированная методология. В частности, распространены объектно-
ориентированная, проблемно– ориентированная, а в последнее время и аспектно-
ориентированная парадигмы.
Идеал проектирования и
разрешение сложности
Возможность и
эффективность проектирования диктуется и зависит от множественности окружающего
мира. Каждая решаемая проблема является заключением этого мира в суженное
пространство и, следовательно, определенным образом обнаруживает характерную
для мира всеобщую связность сущностей и идей между собой и друг с другом. Эта
связность есть основа соблюдения целостности при решении проблемы. Проектируя
решение отдельной частной задачи, следует обеспечить наибольшее сохранение оной
целостности. Не только в самом проекте, но и на этапах его создания и разработки.
Говоря о
множественности проектируемого мира, таковую можно условно разделить по лекалам
контроля над целостностью его содержания:
·
учёт
фактов и технических требований их обработки;
·
учёт
перемены значений (значимости, имени), то есть хаотичности содержания
проектируемого мира;
·
учёт
особенностей человеческого сознания - интеллектуальная ограниченность, косность
в принятии решений (инертность в перемене вывода).
Последнее свойство
имеет отношение к наличию у проектировщика стремления к завершенности вывода,
что тесно связано с чувством комфорта или удовлетворенности. Такое ощущение
комфорта выражается в ориентируемости сознания человека на «очевидность» и
«объясняемость» проектируемого мира. Также чувство комфорта может достигаться отсылкой к вероятностной оценке факторов
суждения, позволяющей их упорядочить. Таким образом, фактор обнаруживаемого
порядка можно считать необходимостью оценочно- выводного комфорта. Но напротив:
восприятие исследуемого пространства, как хаотического, деструктурирует оценочный
комфорт человека.
Сведение в единое
пространство управления последовательности выводов и элементарной базы знаний о
системе неминуемо означает упрощение поиска верного решения за счет построения
новых связей между доселе нестыкуемыми элементами проекта и, тем самым,
уменьшения пути доступа между ними на графе. Ориентация на результат и
стремление к уменьшению пути доступа на графе между элементами системы хорошо
согласуется с принципом оптимальности Р. Беллмана, утверждающем, что
оптимальное поведение системы характеризуется тем свойством, что каковы бы ни
были первоначальное состояние и решения до некоторого момента времени,
последующие решения должны составлять оптимальное поведение относительно
состояния, получающегося в результате принятых решений [5]. Оптимальным же
процесс проектирования, так или иначе, станет при максимально эффективном учете
всех ресурсов- параметров системы. Однако при возрастании числа параметров
растет и сложность их восприятия и обработки. Сложность проблемы
характеризуется обилием описывающих ее элементов, сообразуя этот набор с
информационной насыщенностью каждого из них. Кроме того, сложность – есть
комбинация двух обособленных частей: объективной или предметной и субъективной,
человеческой.
Объективный уровень
сложности проблемы всегда соответствует возможности проведения количественного
анализа и многокритериальной оптимизации. Результаты такого анализа могут быть
использованы для дальнейших сортировок с возможностью выстраивания
многоуровневых иерархий [6].
Многокритериальная
оптимизация представляет собой минимизацию некого вектора целей, на которой
могут быть наложены дополнительные ограничения. Известна концепция целевого
программирования, которая была разработана Чарнсом и Купером [7] и должна
рассматриваться как специальная (ad hoc) компромиссная модель
многокритериальной оптимизации.
Однако, сколь ни были
бы велики усилия по преодолению объективной сложности решаемой задачи, всякие
положительные успехи будут перечеркнуты одним лишь невниманием к естественно–
интеллектуальным возможностям при сооружении работоспособного организма
системы.
Субъективная сложность
проблемы - это факт возможного невосприятия исследуемого феномена, а также
неполнота связей с определенными
формальными элементами системы. Субъективная сложность согласуется с
оценочностью при количественном воплощении и внутренней адаптацией. Анализируя сложность как степень дезадаптации между
компонентами системы (в частности, между человеком и машиной), можно определить
направление и резервы возрастания таких критериев, как эффективность,
надежность, качество работы системы. В этом смысле методология анализа и
оптимизации сложности системы является важным дополнением и обобщением
методологии анализа и оптимизации эффективности. Обобщение понимается в том смысле,
что если анализ эффективности всегда связан с конкретной целевой функцией
системы и поиском частного оптимума по заданному критерию, то анализ сложности
может носить континуальный характер как процесс снижения сложности в процессе
взаимной адаптации компонентов системы между собой и системы в целом с внешней
средой. [8].
Используемое при
поиске решения моделирование или упрощение, изначально содержит ошибочные
представления и выводы, поэтому среда
разработки должна накапливать в себе нечто фиксирующее связь отбрасываемых и
принимаемых в модель данных. В этом случае, даже субъективная составляющая
сложности может быть локализована и минимизирована. Тогда следует уже говорить
о комплексной, человеко-машинной сложности, которую следует преобразовывать не
только аналитически- декомпозиционными способами, но и естественными
заложенными в человеке способностями. Таковые способности человека
контролируются его организмом на уровне отклонения от ощущаемого им состояния
комфорта, который одновременно включает в себя и простоту взаимодействия с
формальными образами, и понимание обобщенных средств и целей задачи.
Комфорт проектирования
Известно, что
следствием рассогласования, противоречивости разномодальных информационных
потоков относительно друг друга и сложившегося стереотипа поведения являются
различные иллюзии и искажения восприятия, нарушения пространственно-временной
ориентировки, разрушение познавательных структур и ощущения дискомфорта [9].
Напротив, понимание чего-либо (пусть даже и ошибочное) влечет за собой «компромисс с
удивительностью»: с пониманием мы обретаем больше комфорта в нашей роли во
вселенной и одновременно вселенная становится более полноцветной и загадочной
[10].
Специфика процесса
познания предполагает, прежде всего, искать именно неслучайные,
детерминированные закономерности, и только если их не удается найти, приходится
обращаться к статистическим, вероятностным закономерностям. Долго такого рода
закономерностям отказывали в праве на существование, что было сформулировано в
печально известном девизе – «наука враг
случайностей»,- по сути дела запрещающем использование статистических
закономерностей и во всяком случае исключающем их применение в науке [11].
Недетерминированные модели некомфортны для обыденного сознания человека. За
всякой случайностью всегда хочется увидеть скрытую невыясненную
детерминированную закономерность. Это желание вполне обоснованно, так как очень
часто явление считается случайным в силу его плохой изученности, по мере же
изучения удается построить его детерминированную модель [11].
Следовательно,
недетерминированность следует считать одним из признаков произвольной
исследуемой задачи и должна быть учтена при проектировании непосредственно, а
не со ссылкой на «объясненную случайность». Подобный учет в модели элементов
случайного или неявного, предположительного характера, привнесет в проект
комфортность ощущения полноты охвата требований и характеристик сложного
предмета.
Соответственно,
результат функционирования подобной комфортной ПС – это не результат работы программы,
а результат единого совместного действия человека и программного комплекса.
Подобная комфортная система должна быть ориентирована на визуальный анализ текущей
ситуации в условиях ограниченного времени! При этом, ориентирована
адресно, представляя посредством функциональных, структурных, фазово-
временных, пространственно- территориальных схем - «узкие» и «особые» места,
содействуя выбору предпочтительных решений.
Согласование элементов и
точки контроля
Соединение частных
решений со времен применения в технологиях проектирования и программирования
принципа «разделяй и властвуй» является рубежной проблемой, которая мало кем
фиксируется непосредственно и прямо, а между тем является одной из первопричин
неуспеха проекта. Эта проблема имеет свойство обращать на себя внимание на
завершающих стадиях проектирования и в частностях.
Неформализованное
знание часто соединяют с понятием «естественного языка», при общении на котором
человек воспринимает значительно больше информации, чем в нем ее явно выражено.
Добавочная информация появляется на основе сведений, накопленных человеком
ранее [14]. Интересно отметить, что совокупное естественное знание есть синтез
пресуппозиции и импликаций- умозаключений, которые можно назвать в случае ПС –
промежуточными результатами. Таковые результаты не только не учитываются в
канве разработки, но о них даже редко упоминают. Если бы процесс проектирования
задавался непрерывной функцией, то, в действительности, промежуточные
результаты были бы просто результатами расчета определенных значений в заданной
временной координате. Однако, процесс разработки ПС – есть процесс дискретный,
пошаговый, и, значит, требуется выверенный контроль не только на известных
стыковых участках проекта, но и во всех точках, где может образоваться промежуточный
результат.
Часто данные теряются
не только на этапе разработки, но и при функционировании, когда возникают
непредусмотренные в системе ситуации. Например, при большой размерности баз
данных может возникать так называемый «комбинаторный взрыв», при переполнении
хранилища данных можно получить
исключительный случай отказа записи и, следовательно, их потере.
Если представить
проектируемую структуру, например алгоритм, упрощенно в виде связки отдельных
функциональных звеньев, то можно наглядно увидеть необходимость качественного
индивидуального подхода к каждому из таких звеньев. Функциональное звено,
содержащее в себе два элемента и направленную связь между собой, удобно назвать
точкой взаимодействия. Контроль таких точек взаимодействия можно разделить на
автоматический, при существовании пути на графе структуры между заданными его
вершинами, и – интеллектуально-визуальный, при расстоянии между точками
контроля на графе структуры не более «магического числа» Миллера 7 +- 2 [12].
При увеличении числа
контролируемых элементов, при удалении от места контроля будет очевидно
происходить ослабление интеллектуально- визуального контроля и как следствие
тому, искажение структуры проекта. Для преодоления подобной антиномии
существуют технологические решения. Так, например, фундаментальное правило
технологии Microsoft COM выглядит так: «Если Вы смогли попасть куда-то хоть
откуда-нибудь, Вы можете попасть туда откуда угодно» [13]. Аналогичным образом
можно представить базис управления структурой алгоритма или ПС – каждый элемент
управления должен иметь полное «знание» о любом ином элементе.
Контекстная среда для
проектирования и контроля управляемых структур
В связи с
необходимостью сохранить качественный паритет между исходными и результирующими
элементами проекта, а также в соответствии с фильтрационной моделью памяти Д.
Бродбента [15], важно отметить, что не следует создавать категориальных
определений и выводов для группирования элементов задачи в предопределенные
наборы, но наоборот, нужно стремиться сохранить максимальную полноту
качественно- недетерминированного описания элементов ПС. Контроль структуры ПС
должен быть распространен также на этапы непосредственного проектирования,
функционирования и тестирования. Так как изначально декларируется открытая система
встраивания и внутреннего регулирования элементного материала. Как замечено в
[16]: «В открытой системе возможно состояние, когда энтропия уменьшается,
следовательно, появляется принципиальная возможность самопроизвольного движения
от хаоса к порядку».
Среда контроля
структуры ПС должна базироваться на следующих принципах:
- однородность
элементов, то есть представление элементов не ограничивает их возможность
связи;
- возможность перехода
от любого элемента системы к иному, вне зависимости от способа представления;
- возможность
организации любой группировки – как локальной замкнутой системы;
- ротационность
элементов группировки, связанная с необходимостью визуализации всего своего
набора.
Назовём такую среду разработки и функционирования ПС
контекстной средой (КС).
Фактом комфортного
восприятия или узнавания в КС может служить складывающийся в сознании образ-
артефакт, который соответствует определенному набору визуальных и определенно
свойственных этому набору (т.е. ассоциативных, причинных и пр.) сведений. Такой
факт узнавания следует зафиксировать созданием группировки объединенных этим
свойством элементов. Группировка может осуществляться на множестве визуальных
элементов, расположенных, например, на экране монитора – тогда организующую
роль в содержании и выборе способа и предмета группировки будет исполнять
человек непосредственно. Второй метод осуществления группировки – невидимый,
соответственно такой способ можно именовать автоматическим, и, следовательно,
стратегия его функционирования выбирается человеком косвенно, посредством
имеющегося функционального наполнения КС.
КС нельзя
рассматривать как программную или человеко-машинную (гибридную) систему, она
несет в себе черты исключительно человеческой системы, в которой роль человека
определяющая, направляющая и фундаментально- единственная. Структура КС
изображена на рисунке 1. Ядром КС является человек, организующий и оценивающий
процесс управления проектированием или функционированием. Его действия тесно
согласуются с визуализатором, которым может быть экран монитора плюс
интерфейсная интерактивная среда взаимодействия с функционалом. Среда
вычисления и среда хранения являются автоматическими и содержат функционал
обработки внешних управляющих сигналов. Результатом действия человека всегда является
отображаемая посредством визуализатора совокупность группировок. Элементы КС,
связанные с разработкой и функционированием ПС, сохраняются в среде хранения,
сгруппированные элементы также находятся в среде хранения и могут быть в
произвольный момент времени извлечены из нее и изменены. Сопутствующая
сервисная информация также имеет возможность быть соотнесенной с
соответствующим элементом или группировкой и затем записанной в среде хранения.
Основой КС является
множество связей.
Элементом же
образования среды становится пара
рис. 1 Структура КС рис. 2
а, б Равное расстояние между элементами КС
Достижимость между
элементами орграфа КС должна быть взаимной, а путь между ними, соответственно,
минимальным. Тогда, орграф КС – есть
сильный граф. Минимальность расстояний на графе КС между элементами достигается
через осуществление группировок человеком, а также автоматически, например,
сортировкой. Обосновывая минимальность пути доступа между элементами, а также
равенство этих путей, получаем, таким образом, что граф КС - звездный граф
(рис. 2).
Расстояние равного
доступа между элементами КС будет в реализации равно 2, если использовать
косвенную связь через диспетчера (рис. 2а). Иллюстрация возможности
существования контакта между любыми элементами КС изображается в виде двойного
турнира (рис. 2б).
Итак, КС (CE-
contextual environment) - это пространство расширенного восприятия смыслового
(когнитивного) и формально- аналитического поля структуры
Разработка модели
функционирования КС
При формировании
контекстной среды (КС) одной из основных задач является выявление взаимосвязей
между различными возникающими группировками внутри КС, возможной когнитивной
смежности элементов, а также организацией возможности замыкания внутри КС и
размыкания группировок с добавлением новых элементов, в том числе результатов
локальных контекстных и формально-алгоритмических действий. Эта задача
представляет тем большую сложность, чем более насыщена исходная задача и свод
требований к ее решению. Поэтому, - в процессе формирования группировок,
операций по добавлению и исключению элементов из них, различным внутренним
алгоритмам оптимизации, - привлекаются разнообразные математические и
технические модели и методы, которые вместе с автоматизацией позволяют
обеспечить, упростить и (или) ускорить этот процесс.
В качестве критерия
образования группировки может быть использовано комбинация соответствующих
когнитивных и формализованных данных, показывающих развитие или изменение КС
при изменении управляемой структуры
Положим, что
где
Для рассмотрения
преобразовательных действий среды, структуры и в них содержащихся элементов
необходимо использовать матрицу расстояний ОКС. Матрица расстояний необходима
для формирования подграфов, соответствующих группировкам КС.
Элементы матрицы
расстояний технологически трактуются как уровни близости к исходному элементу
на графе
где
Толковать это
выражение можно так, что два элемента, принадлежащие одному уровню, всегда связаны
отношениями внутри группировки, с другой стороны, если они принадлежат разным
уровням, то также могут быть связаны отношениями внутри группировки.
Матрица расстояний на
графе
где
Необходимо
оговориться, что постольку поскольку граф КС – звездный граф, с постоянным
расстоянием доступа между элементами КС, то внутренними расстояниями КС можно
пренебречь и исследовать лишь расстояния на графе управляемой структуры.
Вместо матрицы
расстояний, гораздо конструктивнее использовать списки смежности, которые
значительно компактнее хранят данные в памяти компьютера, и выглядят нагляднее
матрицы. Список смежности последовательно хранит данные для каждой вершины
графа, и при этом каждой вершине ставятся в соответствие номера смежных ей
вершин (5).
Если расстояние между
причем индекс
КС можно
рассматривать, как результат проецирования управляемой структуры (структуры
алгоритма, ПС, схемы функционирования или тестирования) на «плоскость» их
существования и применения. Поэтому КС функционирует как упорядоченный набор
элементов- образов целевой управляемой структуры. Этот упорядоченный набор
может выступать как вектор уровней близости согласованных элементов.
Рассмотрим теперь
упрощенную схему согласования двух элементов управляемой структуры и их
проекций в КС. Простым положительным результатом действия КС является
соединение в пару любых двух элементов посредством их проекций в КС. Тогда
осуществимо соединение двух любых элементов множества управляемой структуры в
пару. Такая единичная пара фактически означает контекстную зависимость
элементов этой пары друг от друга и обеспечивает через визуализацию их
совместное восприятие человеком.
Итак, если доступность
из
рис. 3 Доступ между элементами КС и
управляемой структуры
После того, как
группировка создана, можно принять решение по элементу
Важным моментом организации процесса управления является необходимость хранения всей имеющейся информации, и в первую очередь связей внутри управляемой структуры. Для решения этой задачи, однако, уже существует основа - следует при загрузке структуры в КС автоматически сохранять имеющиеся связи в виде списка смежности.
Заключение
Итак, Контекстная
Среда – среда взаимовидимости элементов и контроля доступа их в управляемой
структуре. Основные позиции действия КС таковы:
§
организации
границы связности элементов: это осуществляется через пространственную координацию
визуальных образов управляемой структуры;
§
организации
границы типа или способа представления: что обеспечивается посредством учета и
упорядочения инцидентных дуг самой управляемой структуры;
§
предложения
вставок – комплексное человеко- машинное действие, сочетающее в себе
автоматический подбор близких по исходной достижимости или когнитивному
свойству решений, способных изменить определенные качества управляемой
структуры;
§
осуществление
группировок – комплексное человеко- машинное действие, направленное на
формирование наиболее комфортной информации для наблюдения и принятии решения.
Важно отметить, что КС
осуществляет управление, главным образом, по естественным категориям, также как
и человек, – время, близость, возможность, равенство и др., - в отличии,
например, от парадигм «ориентации», типа
объектно–ориентированного проектирования (ООП) или средств CASE,
оперирующих определениями вида: класс, наследование, прецедент, артефакт и др.
Эффективность
использования КС определяется эффектом комфорта творческого восприятия и
заключается в том, что КС предоставляет человеку возможность восприятия и
соорганизации пространства идей и множества соответствующих им решений вместо
единственного, которое обычно ищется как оптимальное решение, а также, что посредством
КС имеется возможность фрагментировать
решения и пути к ним.
Литература
1.
Страуструп
Б, Язык программирования С++, 3-е изд., Спб.;М.; “Невский диалект” -
Издательство “БИНОМ”, 1999.
2.
Конт
О., Курс позитивной философии - Антология мировой философии. М., 1971. Т. 3. С.
553-556
3.
Буч.
Г., Объектно-ориентированный анализ и проектирование с примерами приложений на
С++, М.: "Бином", СПб: "Невский диалект", 1999. - 560 с.
4.
Yonezawa,
A. and Tokoro, M. 1987. Object-oriented concurrent programming. Cambridge, MA:
The MIT Press
5.
Беллман Р. Динамическое программирование. —
М.: Изд-во иностранной литературы, 1960
6.
Дуда
Р., Харт П. Распознавание образов и анализ сцен. М Мир 1976г. 512с.
7.
Charnes
A. Cooper W. W., Fair D. a. oth. Linear Programming and Profit Preference Scheduling
for a Manufacturing Firm // Journ. Operations Research Soc. Amer. 1953. Vol. 1.
May.
8.
Венда
В.Ф. Системы гибридного интеллекта: Эволюция, психология,
информатика, М., Машиностроение, 1990. 448 с: ил.
9.
Зинченко
Т.П. Когнитивная и прикладная психология, МОДЭК, МПСИ, 2000, 608 с
10.
Хокинс
Дж., Блейксли С., Об интеллекте, , 2007,
238 с.
11.
Растригин
Л.А. Адаптация сложных систем. – Рига, Зинатне, 1981.- 375 с.
12.
Miller,
G. The Magical Number Seven, Plus or Minus Two: Some Limits on Our
Capacity for Processing Information. The
Psychological Review vol.63(2), p.86., March.1956. (Миллер Дж. Магическое число
семь, плюс или минус два. - В кн.: Инженерная психология. М. 1964)
13.
Роджерсон
Д. Основы COM. М.: Русская редакция, 1997. — 376 с.
14.
Попов Э. В. Общение с ЭВМ на естественном
языке. М.: Наука. Главная редакция физико-математической литературы, 1982, 360
с.
15.
Бродбент
Д. Восприятие и коммуникация // Восприятие. Механизмы и модели. - М., 1974
16.
Емельянов В. В., Курейчик В. В., Курейчик В.
М. Теория и практика эволюционного моделирования. М.: ФИЗМАТЛИТ, 2003. - 432 с.