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

кандидата физико-математических наук
Занин, Виталий Витальевич
город
Москва
год
1998
специальность ВАК РФ
05.13.17
цена
450 рублей
Диссертация по информатике, вычислительной технике и управлению на тему «Иерархический кластерный анализ сложных программных систем»

Текст работы Занин, Виталий Витальевич, диссертация по теме Теоретические основы информатики

Московский физико-технический институт (Государственный университет)

На правах рукописи

Занин Виталий Витальевич

ИЕРАРХИЧЕСКИЙ КЛАСТЕРНЫЙ АНАЛИЗ СЛОЖНЫХ

ПРОГРАММНЫХ СИСТЕМ

05.13.17 - теоретические основы информатики

Диссертация на соискание ученой степени кандидата физико-математических наук

Научный руководитель: д.ф-м.н., профессор Столяров Л.Н. Научный консультант: д.т.н., профессор Габидулин Э.М. Соискатель:

Москва 1998

Содержание

Содержание........................................................................................................................1

Введение.............................................................................................................................2

Глава 1. Сложная программная система как объект анализа.......................................8

1.1. Место ПС в автоматизации бизнес процессов. Понятие нештатной ситуации................................................................................................................9

1.2. Обзор известных методов анализа сложных систем.......................................11

1.3. Качественная модель процесса коррекции нештатной ситуации, сравнение

с техническими системами................................................................................14

1.4. Введение в формальное описание элементов процесса коррекции нештатной ситуации в программной системе..................................................17

1.5. Введение в формальное описание модели коррекции нештатной ситуации 20

1.6. Гипотеза о причине............................................................................................21

1.7. Концепции формального получения правил....................................................21

1.8. Концепция классов близких ситуаций..............................................................22

1.9. Выводы................................................................................................................23

Глава 2. Модель коррекции нештатной ситуации в сложной программной системе26

2.1. Основные понятия..............................................................................................26

2.2. Пространство альтернатив. Строгая иерархия как средство установления отношений между элементами справочника прецедентов.............................32

2.3. Иерархическое расстояние между элементами расширенного кодового множества............................................................................................................46

2.4. Двумерный кластерный классификатор. Обобщенные переменные МКНС.55

2.5. Множество прецедентов в обобщенном представляющем пространстве. База знаний МКНС.............................................................................................66

2.6. Метод поиска ответа, основанный на метрических свойствах множества прецедентов.........................................................................................................69

2.7. Дополнение базы знаний новыми фактами......................................................76

2.8. Выводы................................................................................................................80

Глава 3. Иерархический кластерный анализ функционирования

автоматизированной банковской системы....................................................82

3.1. ACS-методика.....................................................................................................82

3.2. Пример построения и использования ASC-методики для анализа функционирования АБС....................................................................................88

3.3. Фрагмент системы кластерного анализа функционирования АБС. Построение конкретного представляющего набора.......................................91

3.4. Фрагмент системы кластерного анализа функционирования АБС. Кластерные классификаторы и обобщенный представляющий набор.........98

3.5. Фрагмент системы кластерного анализа функционирования АБС. Анализ вариантов базы знаний.....................................................................................105

3.6. Выводы..............................................................................................................111

Заключение..................................................................................................................... 113

Список литературы........................................................................................................118

Введение

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

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

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

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

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

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

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

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

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

Рис. 1 «Роль корпоративного пользователя как составляющей сложной программной системы»

«

§

Р

о ш

Ч б

Сложная программная система

Настройки системы

Корпоративный пользователь

л

.1

3 и Р я

В 2

4 Р

>>.8 со Ю « св О. О.

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

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

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

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

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

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

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

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

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

К внешним факторам можно отнести

• ошибки пользователя при вводе данных и настройке системы,

• нарушение пользователем технологии работы с системой,

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

Внутренние факторы:

• внутренние ошибки в коде программ,

• ошибки взаимодействия с операционной системой и аппаратными средствами,

• ошибки в самой среде программирования, с помощью которой создана ПС,

• нарушения целостности БД системы.

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

ISO 9000 или Capability Maturity Model for Software. К сожалению, никакое тестирование не в состоянии гарантировать отсутствие ошибок в сложном программном обеспечении, следовательно, необходимо бороться с нештатными ситуациями в работе программного обеспечения путем обхода ошибок в программах специальными мерами.

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

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

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

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

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

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

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

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

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

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

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

Крупные фирмы, производящие сложное программное обеспечение для широкого круга потребителей, как и крупные компании, использующие ПО собственной разработки, скорее всего, имеют специальные разработки, позволяющие копить опыт экспертов, консультирующих пользователей по вопросам устранения нештатных ситуаций, но эти наработки, даже если они существуют, являются "know how" этих производителей ПС. К сожалению, автору не удалось найти открытых публикаций на эту тему в России. Не известны формальные модели сложных программных систем, применяемые для целей идентификации и коррекции нештатных ситуаций.

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

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

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

Работа посвящена проблеме построения формальной модели, описывающей сложную програм