Программирование на языке CLIPS

Информац. системы

Критерии надежности
Задачи
Расчет характеристики
Типовые примеры
Отказы изделия
Аналит. определение
Постоянное резервир.
Резервирование замещением
Расчет надежности
Скользящее резервирование
Расчет показателей
Учебник JAVA
Базовые понятия
Объектно-ориентированное
программирование
Работа со строками и классами
Графические примитивы
Обработка событий в JAVA
Апплеты
Создание сетевых приложений
Сетевые средства в JAVA
Экспертные системы
Учебник Delphi
Компьютерные сети
Топология сетей
Адресация
Структура сети
Сетевые службы
Маршрутизаторы
Технологии ISDN
Протоколы маршрутизации
Модель OSI
Корпоративные сети
Стек протоколов TCP/IP
Коммутация каналов
Коммутация пакетов
Удаленный доступ
Система доменных имен
Моделирование
Основы кодирования
Теория информ. процессов
Обмен информацией
Количество информации
Энтропия
Кодирование
Квантование и дискретизация
Теорема Котельникова
Ошибки дискретизации
Учебник по FrontPage
Информационный подход
SQL язык запросов
Ос новные понятия
Выборка данных

Манипулирование данными

Создание базы данных
Устройство ПК
Архитектура ПК
Классификация элементов
Центральный процессор
Внешние устройства
Программное обеспечение

Что такое экспертная система? Обзор исследований в области искусственного интеллекта

Представление знаний Символические вычисления

Системы, основанные на знаниях Ассоциативные сети и системы фреймов

Объектно-ориентированное программирование Логическое программирование

Представление неопределенности знаний и данных Приобретение знаний

Эвристическая классификация

Иерархическое построение и проверка гипотез

Решение проблем конструирования

Средства формирования пояснений Инструментальные средства разработки экспертных систем

Системы с доской объявлений Система отслеживания истинности предположений интегрирование по частям Математика Примеры решения задач

Формирование знаний на основе машинного обучения Сети доверия Adobe Illustrator Редактор векторной графики

Рассуждения, основанные на прецедентах Гибридные системы

Программирование на языке CLIPS

Особенности объектно-ориентированного подхода
Стремление избавиться от недостатков традиционного структурного подхода привело к развитию идей, основанных на объектной декомпозиции. Такой подход к разработке программных систем получил название объектно-ориентированного. В основе его лежат понятия "объект" и "класс" [1, 4, 11]. В реальном мире, а точнее в интересующей разработчика проблемной среде, в качестве объектов могут рассматриваться конкретные предметы, а также абстрактные или реальные сущности. Например, объектами могут быть покупатель, фирма, производящая определенные товары, банк, заказ на поставку.
Объект обладает индивидуальностью и поведением, имеет атрибуты, значения которых определяют его состояние. Так, конкретный покупатель, делая заказ, может оказаться в состоянии, когда денег на его счете не хватает для оплаты, а его поведение в этом случае заключается в обращении в банк за кредитом.
Каждый объект является представителем некоторого класса однотипных объектов. Класс определяет общие свойства для всех его объектов. К таким свойствам относятся состав и структура данных, описывающих атрибуты класса и соответствующих объектов, и совокупность методов - процедур, определяющих взаимодействие объектов этого класса с внешней средой. Например, описание класса "магазины" может включать такие атрибуты, как название и адрес, которые индивидуальны для каждого объекта этого класса - конкретного магазина; штат сотрудников; размер текущего счета, определяющий состояние объектов; методы: формирование заказов на поставку товаров, передача товара со склада в торговую секцию и т.д. Объекты и классы обладают характерными свойствами, которые активно используются при объектно-ориентированном подходе и во многом определяют его преимущества.
Инкапсуляция - скрытие информации [3]. При объектно-ориентированном программировании имеется возможность запретить любой доступ к атрибутам объектов, кроме как через его методы. Внутренняя структура объекта в этом случае скрыта от пользователя, объекты можно считать самостоятельными сущностями, отделенными от внешнего мира. Для того чтобы объект произвел некоторое действие, ему извне необходимо послать сообщение, которое инициирует выполнение нужного метода. Инкапсуляция позволяет изменять реализацию любого класса объектов без опасения, что это вызовет нежелательные побочные эффекты в программной системе. Тем самым упрощается процесс исправления ошибок и модификации программ.
Наследование - возможность создавать из классов новые классы по принципу "от общего к частному". Наследование позволяет новым классам при сохранении всех свойств классов-родителей (называемых в дальнейшем суперклассами) добавлять свои характеристики, отражающие их индивидуальность [3]. Сообщения, обработка которых не обеспечивается собственными методами класса, передаются суперклассу. Наследование позволяет создавать иерархии классов, являясь эффективным средством внесения изменений и дополнений в программные системы.
Полиморфизм - способность объектов выбирать метод на основе типов данных, принимаемых в сообщении [2]. Каждый объект может реагировать по-своему на одно и то же сообщение. Полиморфизм позволяет упростить исходные тексты программ, обеспечивает их развитие за счет введения новых методов обработки.
Объектно-ориентированная декомпозиция заключается в представлении системы в виде совокупности классов и объектов предметной области. При этом иерархический характер сложной системы отражается в виде иерархии классов, а ее функционирование рассматривается как взаимодействие объектов. Такой подход позволяет описать сложную систему наиболее естественным образом.
Жизненный цикл разработки приложения при использовании объектно-ориентированного подхода
Жизненный цикл объектно-ориентированной разработки программных систем содержит несколько этапов, но в отличие от структурного подхода в нем нет строгой последовательности их выполнения. Процесс принципиально носит итеративный характер, что полностью отвечает потребностям разработчиков (рис. П1.1).
Разработка начинается с этапа обследования - объектно-ориентированного анализа. Здесь определяются требования к системе и осуществляется анализ проблемной среды, в ходе которого определяются основные классы и объекты, которые составляют словарь проблемной среды. Результат обследования должен представлять достаточно полную модель системы.
После обследования начинается объектно-ориентированное проектирование, в ходе которого детализируется представление классов и объектов, полученных на этапе анализа. Определяются структуры данных, методы, отношения между классами, разрабатываются сценарии взаимодействия объектов. При проектировании системы могут вводиться новые классы и объекты, если это требуется для решения поставленных проблем. Результатом проектирования должны быть детальная модель системы, спецификации объектов, классов и отношений, достаточные для их программирования.

Рис.П1.1. Цикл разработки программного обеспечения с использованием объектно-ориентированного подхода
Программирование, тестирование и сборку системы Г.Буч [11] рассматривает как единый этап, называемый эволюцией системы. При объектно-ориентированном подходе имеется возможность быстрого создания прототипов проектируемой системы, постепенное развитие которых приводит к конечному результату. На этом этапе также возможно введение новых классов, изменение структур данных, добавление новых методов. Следует отметить, что программирование и тестирование отдельных компонентов системы возможно до завершения проектирования, что экономит время разработки. Современные объектно-ориентированные инструментальные средства, применяемые при разработке программных систем, обычно обладают достаточными возможностями по автоматизации действий, выполняемых на этом этапе. В частности, существует возможность автоматической генерации кодов программ.
Модификация системы может рассматриваться как отдельный этап. Для сложных систем возможность внесения изменений является естественным свойством, обеспечивающим их развитие. При объектно-ориентированном подходе модификация не требует полного пересмотра проекта, затрагивая лишь необходимые для этого классы и объекты.
Главная особенность жизненного цикла при объектно-ориентированном подходе заключается в том, что нет строгой последовательности выполнения отдельных этапов. При проектировании может выясниться необходимость дополнительного обследования, программирование и последующее тестирование могут потребовать возврата к проектированию. Такой метод, названный Г.Бучем возвратным, отражает итеративный характер процесса проектирования.
Математический анализ, лекции по физике Компьютерные сети