На главную страницу
Форум txt.version   



Статья :: 11.4. Сопровождение : Гради Буч

11.4. Сопровождение

Расширение функциональных возможностей

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

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

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

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

class Action { public:

Action(KnowledgeSource* who, BlackboardObject* what, char* why); Action(Controller* who, KnowledgeSource* what, char* why);

};

Экземпляр данного класса создается, например, при активизации контроллером какого-либо источника знаний. При этом в аргумент who (кто) заносится указатель на контроллер, в аргумент what (что) - активный источник знаний, а в аргумент why (почему) - какое-либо пояснение (например, приоритет предположения).

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

• методы, которые выдвигают предположения;

• методы, которые откатывают предположения;

• методы, которые активизируют источники знаний;

• методы, которые выполняют правила;

• методы, которые регистрируют высказывания от источников знаний.

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

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

Изменение технических требований

Если принятые проектные решения были реализованы правильно, то новые технические требования к системе могут быть удовлетворены при минимальных изменениях проекта. Допустим, что предъявлены три новые требования к данной системе:

• возможность дешифровки с иностранных языков;

• возможность дешифровки перестановочного и простого подстановочного шифра, использующего (одну) подстановку и перестановку;

• способность к самообучению.

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

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

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

Дополнительная литература

При рассмотрении архитектурных шаблонов Шоу (Shaw) [A 1991] обсуждает метафору информационной доски и другие базовые идеи.

Енглемор и Морган (Englemore and Morgan) [С 1988] дали исчерпывающее обсуждение информационных досок, включая их эволюцию, теорию, проектирование и приложение. Существует описание двух объектно-ориентированных систем информационных досок: ВВ1 из Стэнфорда и BLOB, разработанной для Британского министерства обороны. Другие полезные сведения относительно информационных досок могут быть найдены у Хайеса-Рота (Hayes-Roth) [J 1985] и Нии (Nii) [J 1986].

Подробное обсуждение индуктивного и дедуктивного подходов в системах формального вывода можно найти в работах Барра и Фейгенбаума (Barr and Feigenbamn) [J 1981], Брахмана и Левескье (Brachman and Levesque) [G 1985], Хайес-Рота, Ватермана и Лена (Hayes-Roth, Waterman, and Lenat) [J 1983], а также Винстона и Хорна (Winston and Horn) [G 1989].

Мейер и Матиас (Meyer and Matyas) [I 1982] рассмотрели сильные и слабые стороны разных шифров и алгоритмы их дешифровки.






11.4. Сопровождение : Гради Буч

страницы в данном разделе 
Объектно-ориентированный анализ и проектирование с примерами приложений на С++ : Гради Буч Предисловие : Гради Буч
ЧАСТЬ ПЕРВАЯ Концепции : Гради Буч 1.1. Сложность, присущая программному обеспечению : Гради Буч
1.2. Структура сложных систем : Гради Буч 1.3. Внесение порядка в хаос : Гради Буч
1.4. О проектировании сложных систем : Гради Буч Дополнительная литература : Гради Буч
Глава 2 Объектная модель : Гради Буч 2.1. Эволюция объектной модели : Гради Буч
2.2. Составные части объектного подхода : Гради Буч 2.3. Применение объектной модели : Гради Буч
Выводы : Гради Буч Дополнительная литература : Гради Буч
Глава 3 Классы и объекты : Гради Буч 3.1. Природа объекта : Гради Буч
3.2. Отношения между объектами : Гради Буч 3.3. Природа классов : Гради Буч
3.4. Отношения между классами : Гради Буч 3.5. Взаимосвязь классов и объектов. : Гради Буч
3.6. Качество классов и объектов : Гради Буч Дополнительная литература : Гради Буч
Глава 4 Классификация : Гради Буч 4.1. Важность правильной классификации : Гради Буч
4.2. Идентификация классов и объектов : Гради Буч 4.3. Ключевые абстракции и механизмы : Гради Буч
Дополнительная литература : Гради Буч 1.1. Сложность, присущая программному обеспечению : Гради Буч
1.2. Структура сложных систем : Гради Буч 1.3. Внесение порядка в хаос : Гради Буч
1.4. О проектировании сложных систем : Гради Буч Дополнительная литература : Гради Буч
1.1. Сложность, присущая программному обеспечению : Гради Буч 1.2. Структура сложных систем : Гради Буч
1.3. Внесение порядка в хаос : Гради Буч 1.4. О проектировании сложных систем : Гради Буч
Дополнительная литература : Гради Буч 2.1. Эволюция объектной модели : Гради Буч
2.2. Составные части объектного подхода : Гради Буч 2.3. Применение объектной модели : Гради Буч
Выводы : Гради Буч Дополнительная литература : Гради Буч
2.1. Эволюция объектной модели : Гради Буч 2.2. Составные части объектного подхода : Гради Буч
2.3. Применение объектной модели : Гради Буч Выводы : Гради Буч
Дополнительная литература : Гради Буч 3.1. Природа объекта : Гради Буч
3.2. Отношения между объектами : Гради Буч 3.3. Природа классов : Гради Буч
3.4. Отношения между классами : Гради Буч 3.5. Взаимосвязь классов и объектов. : Гради Буч
3.6. Качество классов и объектов : Гради Буч Дополнительная литература : Гради Буч
3.1. Природа объекта : Гради Буч 3.2. Отношения между объектами : Гради Буч
3.3. Природа классов : Гради Буч 3.4. Отношения между классами : Гради Буч
3.5. Взаимосвязь классов и объектов. : Гради Буч 3.6. Качество классов и объектов : Гради Буч
Дополнительная литература : Гради Буч 4.1. Важность правильной классификации : Гради Буч
4.2. Идентификация классов и объектов : Гради Буч 4.3. Ключевые абстракции и механизмы : Гради Буч
Дополнительная литература : Гради Буч 4.1. Важность правильной классификации : Гради Буч
4.2. Идентификация классов и объектов : Гради Буч 4.3. Ключевые абстракции и механизмы : Гради Буч
Дополнительная литература : Гради Буч ЧАСТЬ ВТОРАЯ Метод : Гради Буч
продолжение 70 : Гради Буч 5.1. Элементы обозначений : Гради Буч
5.2. Диаграммы классов : Гради Буч 5.3. Диаграммы состояний и переходов : Гради Буч
5.4. Диаграммы объектов : Гради Буч   5.5. Диаграммы взаимодействия : Гради Буч
5.6. Диаграммы модулей : Гради Буч 5.7. Диаграммы процессов. : Гради Буч
5.8. Применение системы обозначений : Гради Буч Глава 6 Процесс : Гради Буч
6.1. Основные принципы : Гради Буч 6.2. Микропроцесс проектирования : Гради Буч
6.3. Макропроцесс проектирования : Гради Буч Выводы : Гради Буч
Дополнительная литература : Гради Буч Глава 7 Практические вопросы : Гради Буч
7.1. Управление и планирование : Гради Буч 7.2. Кадры : Гради Буч
7.3. Управление релизами : Гради Буч 7.4. Повторное использование : Гради Буч
7.5. Качество и измерения : Гради Буч 7.6. Документация : Гради Буч
7.7. Инструменты : Гради Буч 7.8. Специальные вопросы : Гради Буч
7.9. Выгоды и опасности объектно-ориентированной разработки : Гради Буч Глава 5 Обозначения : Гради Буч
5.1. Элементы обозначений : Гради Буч 5.2. Диаграммы классов : Гради Буч
5.3. Диаграммы состояний и переходов : Гради Буч 5.4. Диаграммы объектов : Гради Буч
  5.5. Диаграммы взаимодействия : Гради Буч 5.6. Диаграммы модулей : Гради Буч
5.7. Диаграммы процессов. : Гради Буч 5.8. Применение системы обозначений : Гради Буч
продолжение 104 5.1. Элементы обозначений : Гради Буч
5.2. Диаграммы классов : Гради Буч 5.3. Диаграммы состояний и переходов : Гради Буч
5.4. Диаграммы объектов : Гради Буч   5.5. Диаграммы взаимодействия : Гради Буч
5.6. Диаграммы модулей : Гради Буч 5.7. Диаграммы процессов. : Гради Буч
5.8. Применение системы обозначений : Гради Буч 6.1. Основные принципы : Гради Буч
6.2. Микропроцесс проектирования : Гради Буч 6.3. Макропроцесс проектирования : Гради Буч
Выводы : Гради Буч Дополнительная литература : Гради Буч
6.1. Основные принципы : Гради Буч 6.2. Микропроцесс проектирования : Гради Буч
6.3. Макропроцесс проектирования : Гради Буч Выводы : Гради Буч
Дополнительная литература : Гради Буч 7.1. Управление и планирование : Гради Буч
7.2. Кадры : Гради Буч 7.3. Управление релизами : Гради Буч
7.4. Повторное использование : Гради Буч 7.5. Качество и измерения : Гради Буч
7.6. Документация : Гради Буч 7.7. Инструменты : Гради Буч
7.8. Специальные вопросы : Гради Буч 7.9. Выгоды и опасности объектно-ориентированной разработки : Гради Буч
7.1. Управление и планирование : Гради Буч 7.2. Кадры : Гради Буч
7.3. Управление релизами : Гради Буч 7.4. Повторное использование : Гради Буч
7.5. Качество и измерения : Гради Буч 7.6. Документация : Гради Буч
7.7. Инструменты : Гради Буч 7.8. Специальные вопросы : Гради Буч
7.9. Выгоды и опасности объектно-ориентированной разработки : Гради Буч ЧАСТЬ ТРЕТЬЯ Примеры приложений : Гради Буч
продолжение 142 : Гради Буч   8.1. Анализ : Гради Буч
8.2. Проектирование : Гради Буч 8.3. Эволюция : Гради Буч
8.4. Сопровождение : Гради Буч Глава 9 Среда разработки: библиотека базовых классов : Гради Буч
продолжение 148 : Гради Буч 9.1. Анализ : Гради Буч
9.2. Проектирование : Гради Буч 9.3. Эволюция : Гради Буч
9.4. Сопровождение : Гради Буч Глава 10 Архитектура клиент-сервер: складской учет : Гради Буч
продолжение 154 : Гради Буч 10.1. Анализ : Гради Буч
10.2. Проектирование : Гради Буч 10.3. Эволюция : Гради Буч
Глава 11 Искусственный интеллект: криптоанализ : Гради Буч продолжение 159 : Гради Буч
11.1. Анализ : Гради Буч 11.2. Проектирование : Гради Буч
11.3. Эволюция : Гради Буч 11.4. Сопровождение : Гради Буч
Глава 12 Управление: контроль за движением поездов : Гради Буч продолжение 165 : Гради Буч
12.1. Анализ : Гради Буч 12.2. Проектирование : Гради Буч
12.3. Эволюция : Гради Буч 12.4. Сопровождение : Гради Буч
Глава 8 Система сбора данных: метеорологическая станция : Гради Буч   8.1. Анализ : Гради Буч
8.2. Проектирование : Гради Буч 8.3. Эволюция : Гради Буч
8.4. Сопровождение : Гради Буч продолжение 175
  8.1. Анализ : Гради Буч 8.2. Проектирование : Гради Буч
8.3. Эволюция : Гради Буч 8.4. Сопровождение : Гради Буч
Глава 9 Среда разработки: библиотека базовых классов : Гради Буч 9.1. Анализ : Гради Буч
9.2. Проектирование : Гради Буч 9.3. Эволюция : Гради Буч
9.4. Сопровождение : Гради Буч продолжение 185
9.1. Анализ : Гради Буч 9.2. Проектирование : Гради Буч
9.3. Эволюция : Гради Буч 9.4. Сопровождение : Гради Буч
Глава 10 Архитектура клиент-сервер: складской учет : Гради Буч 10.1. Анализ : Гради Буч
10.2. Проектирование : Гради Буч 10.3. Эволюция : Гради Буч
продолжение 194 10.1. Анализ : Гради Буч
10.2. Проектирование : Гради Буч 10.3. Эволюция : Гради Буч
Глава 11 Искусственный интеллект: криптоанализ : Гради Буч 11.1. Анализ : Гради Буч
11.2. Проектирование : Гради Буч 11.3. Эволюция : Гради Буч
11.4. Сопровождение : Гради Буч продолжение 203
11.1. Анализ : Гради Буч 11.2. Проектирование : Гради Буч
11.3. Эволюция : Гради Буч 11.4. Сопровождение : Гради Буч
Глава 12 Управление: контроль за движением поездов : Гради Буч 12.1. Анализ : Гради Буч
12.2. Проектирование : Гради Буч 12.3. Эволюция : Гради Буч
12.4. Сопровождение : Гради Буч продолжение 213
12.1. Анализ : Гради Буч 12.2. Проектирование : Гради Буч
12.3. Эволюция : Гради Буч 12.4. Сопровождение : Гради Буч
А.1. Концепции : Гради Буч А.2. Smalltalk : Гради Буч
А.3. Object Pascal : Гради Буч А.4. C++ : Гради Буч
А.5. Common Lisp Object System (CLOS) : Гради Буч А.6. Ada : Гради Буч
A.7. Eiffel : Гради Буч А.1. Концепции : Гради Буч
А.2. Smalltalk : Гради Буч А.3. Object Pascal : Гради Буч
А.4. C++ : Гради Буч А.5. Common Lisp Object System (CLOS) : Гради Буч
А.6. Ada : Гради Буч A.7. Eiffel : Гради Буч
Словарь терминов : Гради Буч Литературные ссылки : Гради Буч

Разделы
Околокомпьютерная литература (375)
Программирование (102)
Программы (75)
ОС и Сети (49)
Интернет (29)
Аппаратное обеспечение (16)
Базы данных (6)
Flutter
React Native
Xamarin