- •Л.Р. Черняховская
- •Объектно-ориентированное моделирование систем искусственного интеллекта
- •Учебное пособие
- •По дисциплине “Технология объектно-ориентированного моделирования”
- •Список принятых сокращений
- •Введение
- •1. Основные принципы объектно-ориентированного моделирования систем искусственного интеллекта.
- •1.1. Основные характеристики систем искусственного интеллекта
- •1.2. Принципы объектно-ориентированного анализа и проектирования
- •1.3. Методология Rational Unified Process
- •1.4. Особенности объектно-ориентированного анализа и проектирования систем искусственного интеллекта
- •1.5. Описание программных средств, реализующих нотацию Unified Modeling Language
- •2. Моделирование требований к информационной системе. Диаграмма требований
- •2.1. Анализ требований к разрабатываемой информационной системе
- •2.2. Создание прецедентов на диаграмме использования системы (
- •2.3. Разработка диаграммы Вариантов Использования в Rational Rose
- •2.4 Анализ требования в Requisite Pro
- •3. Диаграммы классов
- •3.1. Определение объектов и классов предметной области
- •3.6. Определение отношений
- •3.2. Построение концептуальной модели
- •3.3. Операции и методы
- •Организация системы классов, используя наследование
- •4. Моделирование динамики поведения сппр.
- •4.1. Представление конечных автоматов. Диаграмма активности. Диаграмма состояний.
- •Состояния синхронизации.
- •Диаграмма состояний и переходов. Пример диаграммы: описание работы телефона.
- •4.2. Диаграммы деятельности (activity diagrams).
- •4.3. Диаграмма последовательности действий. Диаграммы кооперации
- •Диаграмма последовательности взаимодействия объектов. Описание времени жизни объектов.
- •Диаграмма кооперации объектов.
- •Диаграмма кооперации объектов. Взаимодействие активных объектов и их синхронизация.
- •5. Диаграммы компонентов и развертывания
- •5.1. Диаграммы компонентов
- •5.2. Диаграмма развертывания
- •Разработка Web - приложений с использованием uml
- •6. Проектирование баз данных с использованием uml Обзор возможностей современных субд
- •7. Примеры использования uml для построения исппр
- •Лекция 11. Uml-модели систем реального времени
- •14.2. Модели структуры информационной системы поддержки принятия решений
- •2.6. Модели динамики процесса управления в проблемных ситуациях
- •2.5. Модели динамики процесса управления в проблемных ситуациях
- •Список литературы
- •Приложение
- •6.2. Возможности jade
- •6.3. Прототип реализации агентной системы кспдо
- •Рис 12.Диаграмма взаимодействия классов Агента обучения с контролером, диспетчером и сервером агентов.
- •Рис 14. Диаграмма обмена сообщениями между агентами поиска, обучения, сообщений, mail.
3. Диаграммы классов
Диаграммы классов (class diagrams) описывают статическую структуру классов. Эти диаграммы могут описывать основные понятия предметной области на концептуальном уровне. С другой стороны, на детальном уровне (уровне спецификаций и уровне реализаций) диаграммы определяют структуру программных классов. Они используются для генерации каркасного программного кода на заданном языке программирования, а также для определения логической структуры реляционных баз данных.
3.1. Определение объектов и классов предметной области
В соответствии с определением, данным в первом разделе, под объектом (object) в UML понимается некоторое абстрактное представление конкретного объекта предметной области. Объект– это некоторая сущность реального мира или концептуальная сущность. Объектом называется концепция, абстракция или вещь с четко определенными границами и значением для системы [4].
Каждый объект имеет состояние, поведение и индивидуальность. Состоянием (state) объекта называется одно из условий, в котором он может находиться. Состояние системы обычно меняется во времени и определяется набором свойств, называемых атрибутами. Поведение объекта определяет, как объект взаимодействует с другими объектами. Индивидуальность означает, что каждый объект уникален и отличается от других объектов. Моделируя свойства и поведение какого-либо объекта, мы абстрагируемся от некоторых конкретных деталей, сохраняя только самые важные (в контексте проектируемой информационной системы) характеристики объекта.
Уточним приведенное ранее определение класса. Под классом понимается описание объектов, обладающих общими свойствами (атрибутами), поведением, общими взаимоотношениями с другими объектами и общей семантикой. Процедуры, описывающие поведение объектов, называются методами класса. Класс является шаблоном для создания новых объектов. Каждый объект является экземпляром конкретного класса и не может быть экземпляром нескольких классов.
Важнейшая цель методологии объектно-ориентированного моделирования - дать рекомендации по нахождению классов, на основе которых строится программная система. «Хороший» класс представляет одну и только одну абстракцию, то есть должен отражать одну основную сущность. Названия классов выбираются в соответствии с понятиями предметной области. Существует прием идентификации понятий, который состоит в выделении существительных из текстовых описаний регламентирующих моделируемые процессы в предметной области и их выборе в качестве «кандидатов» на понятие или атрибут. К сожалению, этот метод не слишком эффективен, так как либо помогает выделить только очевидные сущности, либо привносит слишком много субъективного контекста и неопределенностей, свойственных естественным языкам.
Концептуальную модель следует создавать согласно принципам картографии:
Использовать применяемые на данной территории названия.
Исключать несущественные детали.
Не добавлять объекты, которые отсутствуют на данной территории.
Класс не должен представлять физические "объекты" в наивном смысле. Он должен описывать абстрактный тип данных - множество программных объектов, характеризуемых хорошо определенными операциями и их формальными свойствами. Типы реальных объектов могут и не иметь двойников в программном мире - классов. Когда решается вопрос - стать ли некоторому понятию классом, определяющим критерием является соответствие данного понятия классу программной системы или оно покрывается уже существующими классами. Цель объектного анализа системы не в решении философской проблемы "моделирования мира", но в моделировании предметной области лишь в той мере, которая касается создаваемого информационного и программного обеспечения.
Если операция или свойство объекта не отвечают целям системы, то они и не включаются в состав класса, хотя и могут представлять интерес для других целей. Понятие Человек может включать такие компоненты, как «рост» и «вес», но для информационной системы университета для описания класса Студент они не нужны.
Каждый класс может иметь атрибуты (свойства). Так, на рис. 3.* класс Студент имеет атрибуты фио,пол, дата рождения и др. .
Кроме того, каждый класс может иметь методы – некоторые действия, описывающие поведение объектов класса. Например, класс Студент имеет методы, аттестация( ), анализ успеваемости(), перевод на курс().
Классы могут иметь взаимосвязи, называемые отношениями. В нотации UML имеются несколько типов отношений (см. табл. 3.1).
Отношение |
Функция |
Нотация |
Ассоциация (Association) |
Описание связей между экземплярами классов | |
Зависимость (Dependency) |
Отношение, существующее между двумя элементами модели | |
Обобщение (Generalization) |
Отношение между общим описанием и более специфическими его разновидностями; используется при наследовании и для объявления полиморфных типов | |
Реализация (Realization) |
Отношение между спецификацией и ее реализацией | |
Использование (Usage) |
Ситуация, когда для корректной работы одному элементу системы необходим другой элемент |
“kind” |
Отношение ассоциация описывает семантические связи между единичными объектами определенных классов. Основная задача ассоциации состоит в обеспечении взаимодействия объектов, принадлежащих разным классам. Все остальные виды отношений относятся к самим классификаторам, но не к их экземплярам.
Отношение обобщения описывает взаимосвязь между классами, когда один класс (подкласс) наследует структуру и/или поведение одного или нескольких классов, связывая классификаторы-предки (суперклассы) с их более специализированными потомками (подклассами). Полное описание классификатора строится с помощью механизма наследования, который основан на обобщении. Обобщение и наследование позволяют задавать общие атрибуты, операции и отношения для различных классификаторов, не повторяя их в каждом конкретном описании.
Отношение реализация связывает спецификацию и ее воплощение в программном коде. Так, интерфейс определяет поведение объекта, а структуру его реализации определяет класс. Несколько классов могут реализовывать один и тот же интерфейс, причем каждый класс будет включать в себя те операции, которые описываются этим интерфейсом.
Отношение зависимости связывает между собой классы, чье поведение или реализация влияют на другие классы. Помимо реализации, существуют еще такие виды зависимостей, как трассирование, уточнение (отношение между двумя различными уровнями понимания), использование и связывание.