Среда когнитивно-контекстного проектирования программных систем: от концепции к реализации

А.И. Разумовский,

с.н.с., к.т.н.,

ИПУ РАН, г. Москва

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

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

·         информационные элементы (ИЭ) однородны по их когнитивному восприятию (что обеспечит равное время доступа внимания со стороны проектировщика к каждому такому элементу);

·         ИЭ однородны по координате, иначе говоря – одинаковы по виду хранения с единым общим приоритетом;

·         каждая задача содержит неповторимый уникальный набор ИЭ;

·         решение каждой задачи индивидуально в зависимости от исполнителя.

Главным фактором построения концепции являются следующие атрибуты информации – индивидуальная известность, узнаваемость, освоенность элементов проекта. Так, например, использование шаблонов проектирования (design pattern - DP) возможно лишь при наличии надлежащего опыта обращения с конкретными, индивидуально известными шаблонами, в то время как применение малопонятных, неясных шаблонов затруднительно  для построения действенной концепции. Кроме того, может в любой момент потребоваться рассмотрение атомарных данных, с тем, чтобы достичь лучшего их понимания.Следовательно, хранение, визуализация и возможность восприятия информации составляют необходимый  базис построения концепции, представляя собой своего рода опорные атрибуты контекста проектирования. Заметим по ходу, что в противоположность анализу (или анализу на ранних стадиях проекта),  построение концепции не затрагивает практических лекал конкретного решения задачи. Речь идет о создании особых условий, удобств проектирования, где фундаментом будут выступать индивидуально известные, освоенные элементы и их композиции. Тогда очевидно можно будет ожидать большей уверенности в принятии решений, а также более значительной гибкости в их исправлении.

Итак, определим термином «концепция» проекта – установление уникального информационного контекста, то есть особого порядка расположения ИЭ среди произвольного набора исходных и вторичных данных жизненного цикла  (ЖЦ) ПС, вполне удобного для восприятия, оценки и принятия решений.

Концепция имеет целью сформировать комфортный содержательный и описательный  контекст для проведения реализационных мероприятий. Концептуально оформленная контекстная среда способна  объединить в едином поле восприятия как формальные, так и  не преобразованные к формальному или полуформальному виду элементы решаемой задачи, то есть их исходное содержание, облеченное в комфортную индивидуально узнаваемую форму. Кроме того, концепция организации контекста позволит сочетать как аналитические, так и синтетические, - т.е. действенные, конструктивные – характеристики и решения. Таким образом, этап формирования концепции непосредственно готовит почву для процессов реализации - в виде написания программного кода, отладки или построения тестирующих схем. Структуру ЖЦ ПС в русле указанных целей можно выразить рисунком 1.

рис.1 Структура ЖЦ контекстно-когнитивного проектирования ПС

Рисунок 1 отражает тот крайне важный факт, что сформированные при создании концепции условия и возможности контекстной среды проектирования не только определяют порядок и качество реализации ПС, но и повышают восприимчивость к изменениям решений. Изменению принятых решений будет способствовать, во-первых,  накопление в контекстной среде вторичных данных, возникающих на всех этапах ЖЦ, которыми являются, например, результаты функционирования и тестирования ПС, а во-вторых, соорганизация [1] произвольных информационных элементов в едином контексте.

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

Рисунок 2 изображает информационную модель контекстно-когнитивного проектирования. Главным фокусом данной модели является выработка индивидуального опыта, как факта, определяющего возможность когнитивно согласованной  реализации проекта. Здесь важно подчеркнуть, что только в условиях восприятия соответствующих элементов проектирования как целое, можно добиться повышения качества ПС на всем пути его ЖЦ. Любое нарушение когнитивной целостности влечет за собой дискомфорт выработки верных решений и как следствие потерю качества ПС.

рис.2 Информационная модель контекстно-когнитивного проектирования

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

рис.3 Информационная модель реализации ПС

Информационная модель реализации ПС (рис. 3) определяет последовательность вырабатываемой когнитивной согласованности проекта, которая с одной стороны зависит от набора и качества восприятия ИЭ, а с другой – от динамики образования результатов, вместе с которыми исходные ИЭ готовят почву для очередной итерации разработки ПС.  Первым этапом реализации является наступление момента интуитивной готовности реализации, когда восприятие имеющейся совокупности ИЭ оказывается достаточно для понимания начальных путей проектных решений. Следом, наступает момент возможности обобщения или, иными словами, устанавливаются условия объединения ИЭ в обобщающие унификации (ОУ): группы, структуры данных, алгоритмические последовательности, классы, шаблоны и т.д. Нужно заметить, что без надлежащей освоенности ИЭ этап производства ОУ – затруднен, хотя бы по причине невозможности в полноте опираться на поверхностные или неясные знания об ИЭ. Хуже того, этот момент будет возникать вновь и вновь на каждой последующей итерации разработки, со все менее эффективной выработкой решений. Напротив, при восприятии хорошо узнаваемых, усвоенных, индивидуально знакомых ИЭ наступит момент когнитивной согласованности проекта. Это знаковая ситуация, наступление которой обеспечивает контроль когнитивной целостности проекта или локального решения. Наличие подобного контроля невозможно переоценить, ибо он формирует у проектировщика ощущение удовлетворенности выполненной работой и предотвращает действия вслепую. Последующие два этапа соответствуют выработке функционала для получения конечного результата, ориентируясь на который осуществляется переход к новой итерации разработки ПС.

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

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

Рассмотрим пример контекстно-когнитивного проектирования некоторых атрибутов иерархической файловой системы, взяв для сравнения аналогичный пример, иллюстрирующий использование шаблона COMPOSITE [3]. Проектирование лучше всего начать с приблизительных оценок качества участников файловой системы, причем не отделяя при этом функциональной от информационной стороны. Таких участников всего пять: «Файл», «Каталог», «Взять данные» (GET), «Поместить данные» (PUT), «Произвольная операция» (Operation) (рис. 4).

 

рис.4-а,б,в,г Пример проектирования иерархии файловой системы

Основная задача контекстно-когнитивного проектирования таким образом, - это сохранить когнитивную целостность проекта, иначе говоря – персептивную связность не только с формальными, но и с реальными объектами задачи. Поэтому расположим каждый из участников проектирования на «Доске» независимо друг от друга (рис. 4-а). Далее проведем осмысленные связи между элементами проекта (рис. 4-б). Из рисунка видно, что такие связи возможны лишь между некоторыми, но не всеми элементами.  Следующим этапом, следует выделить намечающуюся общность среди множества элементов проекта, и наконец осознанно провести формальное их обобщение, то есть объединение в группу по некоторому определенному, конкретно значимому признаку. Хорошо видно, что по факту общей связности «Файла», «Каталога» с элементом Operation можно их объединить в составной ИЭ – «Component» (рис. 4-в). Таким образом, мы получили конечный результат проектирования, опираясь лишь на простые оценочные характеристики системы, строя осмысленные связи и делая обобщения по индивидуально  осмысленному признаку. Подобный подход сохраняет когнитивную согласованность ИЭ.

Рисунок 4-г изображает структуру собственно шаблона COMPOSITE, который, как указано в [3], позволяет создать костяк приложения и выразить основные характеристики иерархической файловой системы с помощью объектно-ориентированных понятий. Сравнивая структуру шаблона  COMPOSITE со структурой результата когнитивно- контекстного проектирования,  обнаруживается общность конечного решения, что свидетельствует о достоверности когнитивно- контекстного подхода. Однако в отличие от проектирования через DP в среде комфортной когнитивной согласованности каждый ИЭ осознан, сознательно узнаваем и усвоен, а следовательно надежен в принятии решений и оценке результатов. При этом, заметим, что конечная структура иерархической файловой системы (рис. 4-в) не обязательно трактуется в объектно-ориентированном смысле, но подчеркивает лишь объединительное право при обобщении по некоторому признаку. Иначе говоря, сознание разработчика в среде, опирающейся на когнитивную согласованность, не будет перегружено различными косвенными и неосвоенными сущностями, но окажется в узнаваемой опытной среде, в которой легче принять творчески конкретное, индивидуально осознанное решение.

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

Использование унифицированных технологий, таких как PD, требует от проектировщика:

·      опоры на существующую архитектуру;

·      формирование проекта в рамках объектно–ориентированного подхода, а не произвольным образом;

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

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

В заключении, обратим внимание на вектор применения когнитивно- контекстного проектирования. Есть два основных направления практического применения стратегии контекстно-когнитивного проектирования. Во-первых, это проектирование трудно детерминированных систем, которые изначально содержат в условиях задачи факторы неясной сложности  и неоднозначности выбора решений. Здесь главное состоит в том чтобы, придерживаясь порядка накопления информационных элементов произвольного этапа ЖЦ ПС, не боятся совершать опрометчивых оценок и действий, но при этом последовательно ожидать прояснения определенности выбора соответствующих решений, сознавая при этом, что каждое такое решение – лишь временная вынужденная мера в динамике процесса разработки ПС. Во-вторых, очевидным приложением является проектирование эвристических алгоритмов, где факт обоснованности верного решения не является определяющим в выборе и поиске операций, но для которых достаточно лишь приемлемость конечных результатов, ориентируясь на качество которых и строится сам алгоритм.  

Литература

1.   Разумовский А.И. Соорганизация элементов информационного пространства проектирования алгоритмов и программных систем / Труды материалов  международной конференции CAD/CAM/PDM-2010, М.: ИПУ РАН, 2010.  с. 40-43

2.   Сергин В.Я.  Природа осознания: нейронные механизмы и смысл - Открытое образование. 2009. № 2. С. 33-47.

3.   Влиссидес Джон. Применение шаблонов проектирования. Дополнительные штрихи. С-П. - Издательский дом "Вильямс", 2003, 144 с.

статистика