Под условием понимается некоторое предложение – образец, по которому осуществляется поиск в базе знаний (БЗ), а под действиями – действия, совершаемые при успешном выполнении поиска.
БЗ состоит из набора правил (продукций). Программа, осуществляющая перебор правил, называется машиной вывода. Машина вывода запускается на основании исходных данных – фактов.
Примеры экспертных систем, в которых используются в качестве модели представления знаний продукционные модели:
- EXSYS
- ФИАКР
- ЭКСПЕРТ
Семантическая сеть – это ориентированный граф, вершины которого – понятия, а дуги – отношения между ними.
Понятиями обычно выступают абстрактные или конкретные объекты, а отношения – это связи типа:
- Это (this)
- Имеет частью (Has part)
- Принадлежит
- Любит
Обязательно наличие трех типов отношений:
- Класс – элемент класса
- Свойство – значение
- Пример элемента класса
Примеры экспертных систем, которые используют в качестве модели представления знаний семантические сети:
- PROSPECTOR
- CASNET
Фреймы – это структура знаний для представления какого-либо абстрактного образа или ситуации. Для представления знаний в какой-либо предметной области, как правило, используют сети фреймов. В качестве значения слота может выступать другой фрейм.
Примеры экспертных систем, которые используют в качестве модели представления знаний сети фреймов:
- ANALYST
- МОДИС
Формальные логические модели основаны на классическом исчислении предикатов первого порядка. В настоящее время при разработке ЭС эти модели практически не используются.
Экспертные системы – это программные комплексы, содержащие знания экспертов в конкретных предметных областях и тиражирующие этот опыт для консультаций менее квалифицированных пользователей.
Инструментальные средства построения экспертных систем:
- Традиционные языки программирования (С, С+, Паскаль и т.п.)
- Языки ИИ (LIPS, PROLOG)
- Специальный программный инструментарий (набор различных библиотек – KEE, KRL, ARTS и др.)
- «Оболочки», т.е. готовые ЭС без наполненной БЗ
Этапы разработки ЭС:
- Выбор подходящей проблемы
- Разработка прототипной системы (усеченный вариант ЭС)
- Развитие прототипа до промышленной ЭС
- Оценка системы
- Стыковка системы
- Поддержка системы
Существует несколько стратегий получения знаний:
- Приобретение знаний – автоматизированное построение БЗ посредством диалога эксперта и специальной программы (при этом структура знаний заранее закладывается в программу)
- Извлечение знаний – живой контакт инженера по знаниям и эксперта, в результате которого становится явным процесс рассуждений экспертов при принятии решений, структура их представлений о предметной области
- Формулирование знаний – использование различных моделей, методов и алгоритмов анализа данных для получения знаний и обучения
- Структурирование знаний – процесс создания полуформализованного описания предметной области в виде поля знаний
- Формализация знаний – реализация поля знаний на подходящем языке представления знаний
Технологии программирования
Технологии программирования – это технологии разработки программ для ЭВМ, которые будут использоваться людьми для решения различных задач на ЭВМ. В ТП рассматриваются все этапы программирования, их порядок и специфику.
Разработка ПО – это род деятельности (профессия) и процесс, направленный на создание и поддержание работоспособности, качества и надежности программного обеспечения, используя технологии, методологию и практики из информатики, управления проектами, математики, инженерии и других областей знания.
В технологический цикл разработки программной системы входит:
1. Постановка задачи, анализ и уточнение требований, предъявляемых к системе
2. Определение спецификаций и разработка системной архитектуры
3. Детальное проектирование модулей
4. Программирование (кодирование)
5. Тестирование и отладка
6. Эксплуатация и сопровождение
Техническое задание содержит следующие пункты:
- Требования к программе или программному изделию
- Требования к программной документации
- Технико-экономические показатели
- Стадии и этапы разработки
- Порядок контроля и приема
Проект включает:
1. Функции системы
2. Сфера применения
3. Отчеты
4. Программные средства
5. Режимы работы
6. Связь с внешней средой
7. Входные и выходные промежуточные данные
8. Управляющие параметры
9. Качество системы
10. Надежность функционирования
11. Защита и полнота информации
12. Документация по системе
Прием ПЕРТ-диаграммы.
ПЕРТ (от англ. «program evaluation review technique» — методика анализа и корректирования планов).
ПЕРТ-диаграмма представляет собой граф, содержащий описания работ и событий и характеризующий процесс взаимодействия работ во времени
В процесс проектирования входит:
- Определение различных потоков данных
(входные, промежуточные, выходные)
- Определение процессов
- Определение структур данных и их носителей
Методы разработки данных:
- Граф-диаграммы
- Функциональные схемы
- Диаграммы Варнье-Орра
Методы проектирования программ:
- Методы нисходящего проектирования
- Стратегия пошагового уточнения
- Анализ сообщений
Связность модуля определяется как мера независимости его частей. Чем выше связность модуля, тем лучше результат проектирования.
Типы связности модуля:
- Функциональная
- Последовательная
- Коммуникационная
- Процедурная
- Временная
- Логическая
- По совпадению
- Слабая связность
Сцепление модулей представляет собой меру относительной независимости модулей, которая определяет их читабельность и сохранность.
RAD (от англ. rapid application development – быстрая разработка приложений) — концепция создания средств разработки программных продуктов, уделяющая особое внимание быстроте и удобству программирования, созданию технологического процесса, позволяющего программисту максимально быстро создавать компьютерные программы.
Основные принципы RAD:
- Инструментарий должен быть нацелен на минимизацию времени разработки
- Создание прототипа для уточнения требований заказчика
- Цикличность разработки: каждая новая версия продукта основывается на оценке результата работы предыдущей версии заказчиком
- Минимизация времени разработки версии, за счёт переноса уже готовых модулей и добавления функциональности в новую версию
- Команда разработчиков должна тесно сотрудничать, каждый участник должен быть готов выполнять несколько обязанностей
- Управление проектом должно минимизировать длительность цикла разработки
В настоящее время RAD становится общепринятой схемой для создания средств разработки программных продуктов. Именно средства разработки, основанные на RAD, имеют наибольшую популярность среди программистов.
Среды разработки, использующие принципы RAD:
- Borland Delphi
- Borland С++ Builder
- Microsoft Visual Studio
- Macromedia Flash
- Macromedia Authorware
- Macromedia Director
- Omnis Studio
- Visual DataFlex
- IntraWeb
Причины популярности RAD:
- Высокая скорость разработки
- Низкая стоимость
- Высокое качество
Применение технологии RAD целесообразно, когда:
- Требуется выполнение проекта в сжатые сроки (90 дней). Быстрое выполнение проекта позволяет создать систему, отвечающую требованиям сегодняшнего дня. Если система проектируется долго, то весьма высока вероятность, что за это время существенно изменятся фундаментальные положения, регламентирующие деятельность организации, то есть, система морально устареет еще до завершения ее проектирования
- Нечетко определены требования к ПО. В большинстве случаев заказчик весьма приблизительно представляет себе работу будущего программного продукта и не может четко сформулировать все требования к ПО. Требования могут быть вообще не определены к началу проекта либо могут изменяться по ходу его выполнения
- Проект выполняется в условиях ограниченности бюджета. Разработка ведется небольшими RAD группами в короткие сроки, что обеспечивает минимум трудозатрат и позволяет вписаться в бюджетные ограничения
- Интерфейс пользователя (GUI) есть главный фактор. Нет смысла заставлять пользователя рисовать картинки. RAD технология дает возможность продемонстрировать интерфейс в прототипе, причем достаточно скоро после начала проекта
- Проект большой, но поддается разделению на более мелкие функциональные компоненты. Если предполагаемая система велика, необходимо, чтобы ее можно было разбить на мелкие части, каждая из которых обладает четкой функциональностью. Они могут выпускаться последовательно или параллельно (в последнем случае привлекается несколько RAD групп)
- ПО не обладает большой вычислительной сложностью
Процедура разработки интерфейса средствами RAD сводится к последовательному выполнению трех операций:
- Размещение компонентов интерфейса в нужном месте
- Задание моментов времени их появления на экране
- Настройка связанных с ними атрибутов и событий
Жизненный цикл ПО по методологии RAD состоит из четырех фаз: