
- •Объектно-ориентированный анализ: моделирование мира в состояниях содержание
- •1 Краткий обзор объектно-ориентированного анализа
- •1.1 Установка для анализа
- •1.2 Информационные модели
- •1.3 Модели состояний
- •1.4 Модели процессов
- •1.5 Рабочие продукты ооа
- •1.6 Краткое содержание
- •2 Концепции информационного моделирования
- •2.1 Объекты Понятие объекта
- •Идентификация объектов
- •Описания объектов
- •2.2 Атрибуты Понятие атрибута
- •Домены и значения атрибутов
- •Идентификаторы
- •Представление
- •Табличная интерпретация
- •Типы атрибутов
- •Описание атрибутов и доменов
- •Правила атрибутов
- •2.3 Связи Понятие связи
- •Представление
- •Безусловные связи
- •Условные формы
- •Описания связи
- •2.4 Формализация связи
- •2.5 Композиция связей
- •2.6 Подтипы и супертипы
- •2.7 Рабочие продукты
- •3 Жизненные циклы объектов
- •3.1 Модели поведений в реальном мире
- •3.2 Жизненные циклы и диаграмма переходов в состояния
- •Жизненные циклы кок модели состояний
- •Завершение предписанного интервала для приготовления пищи.
- •Координация жизненных циклов
- •Модели состоянии против конечных автоматов
- •3.3 Состояния
- •Номера и названия состояний
- •Состояние создания
- •Заключительное состояние
- •Текущее состояние
- •Данные события
- •Данные событий и состояния
- •Абстрагирование событий из инцидентов
- •Спецификация события против экземпляров события
- •3.5 Действия Действия и экземпляры
- •Что может делать действие
- •Что должно делать действие
- •Описание действия
- •Действия, события и время
- •Запоминание событий
- •3.6 Переходы и таблица переходов в состояния Правила переходов
- •Наполнение ячеек
- •Роль таблицы переходов в состояния
- •3.7 Таймеры Понятие таймера
- •Условные обозначения псевдокода для Таймеров
- •Использование таймера
- •3.8 Общие формы жизненных циклов
- •3.9 Формирование жизненных циклов
- •3.10 Жизненные циклы для подтипов и супертипов
- •Миграция подтипов
- •Немигрирующие подтипы
- •3.11 Когда формируются жизненные циклы
- •3.12 Анализ отказов Анормальное поведение
- •Анализ отказов в ооа
- •Отказы во внешнем процессе и интерфейсном оборудовании
- •Идентификации отказов посредством ооа моделей
- •Заключительное замечание
- •3.13 Рабочие продукты Модели состояний
- •Список событий
- •4 Динамика связей
- •4.1 Динамика связей
- •4.2 Жизненные циклы связей
- •4.3 Динамические связи вне жизненных циклов
- •4.4 Конкурирующие связи: монитор Конкуренция в реальном мире
- •Конкуренция в ооа
- •Мониторы
- •Выбор экземпляра
- •4.5 Общий случай конкурирующей связи
- •4.6 Конкурирующие связи с жизненными циклами экземпляров
- •4.7 Советы по моделированию
- •5 Динамики систем
- •5.1 Модель взаимодействия объектов
- •5.2 Иерархическое представление объектов Интеллект, контекст и цель
- •Иерархическое представление на мво
- •5.3 Схемы взаимодействий
- •Типы событий
- •5.4 Каналы управления Понятие канала управления
- •Время и канал управления
- •Применение
- •5.5 Имитирование
- •Установление состояния системы
- •Выполнение имитирования
- •5.6 Как рассматривать время Интерпретации параллелизма
- •Правила времени ооа
- •Правила относительно действий
- •Правила непротиворечивых данных
- •Правила событий
- •5.7 Многократное управление
- •Определение частоты
- •6 Модели процессов
- •6.1 Определение действия
- •6.2 Диаграммы потоков данных действий
- •Процессы и потоки данных
- •Устойчивые данные
- •Получаемые события
- •Порождаемые события
- •Идентификаторы процессов
- •Потоки данных между процессами
- •Таймеры
- •Уничтожение экземпляров
- •Потоки управления
- •Неустойчивые данные
- •6.4 Многократное использование процессов
- •Критерии многократного использования
- •Что это значит: быть процессом ?
- •6.5 Формирование и определение процессов
- •Типы процессов
- •Аксессоры
- •Генераторы событий
- •Преобразования
- •Проверка
- •Когда объект имеет две модели состояний
- •6.6 Наименование и описание процессов
- •Аксессоры
- •Описание
- •Генераторы событий
- •Преобразования
- •Проверки
- •6.7 Таблица процессов состояний
- •6.8 Модель доступа к объектам Синхронное взаимодействие против асинхронного
- •Представление
- •6.9 Рабочие продукты
- •7 Домены
- •7.1 Понятие домена
- •7.2 Типы доменов
- •Прикладные домены
- •Сервисные домены
- •Архитектурный домен
- •Домены реализации
- •7.3 Мосты Мосты, пользователи и исполнители (клиенты и сервера)
- •Предложения и требования
- •7.4 Определение доменов Домены
- •Тестирование доменов
- •7.5 Использование ооа с множественными доменами Порядок работы
- •Работа над отчетом
- •8 Управление большим доменом
- •8.1 Понятие подсистемы
- •8.2 Начальное определение подсистем Проблема начальной инициализации
- •Заключительные замечания
- •8.3 Анализ большого домена
- •Уникальная идентификация элементов модели
- •Связи между подсистемами
- •Дублирование объектов
- •Расщепленные кластеры
- •Трудно поддающиеся контролю и обработке большие подсистемы
- •Приведение в порядок имен и описаний подсистем
- •8.4 Модели доменового уровня
- •Модель связей подсистем
- •Модель взаимодействий подсистем
- •Модель доступа к подсистемам
- •8.5 Проектная матрица Что представляет проектная матрица
- •Деятельность при анализе
- •8.6 Записная книжка подсистемы
- •1.4 Проектная матрица
- •9 Преобразование объектно-ориентированного анализа в объектно-ориентированное проектирование
- •9.1 Введение
- •Принцип проектирования
- •Терминология
- •9.2 Краткий обзор проектирования
- •9.3 Механизм конечного автомата архитектуры
- •Инкапсулированные данные
- •Теория операции: прохождение конечного автомата
- •Теория операции: инициализация
- •9.4 Класс Таймер
- •9.5 Диаграммы классов для прикладных классов Образцы
- •Пассивные классы
- •Компоненты экземпляра
- •Активные классы
- •Определительные классы
- •9.6 Наследование
- •Установление структуры данных
- •Подтип-Супертип
- •Сервисные домены
- •9.7 Схемы структуры класса для прикладных классов
- •9.8 Основная программа
- •Инициализация
- •Внешние события
- •Поток управления
- •Таймеры
- •9.9 Расширение и использование архитектуры Варьирование
- •Рабочие продукты
- •Многозадачный режим
- •9.10 Рекурсивное проектирование
- •Структурные элементы и правила архитектуры
- •Правила преобразования: от прикладных моделей к архитектуре
- •Правила преобразования: от архитектуры к реализации
- •A. Oodle: He зависимая от языка нотация для объектно-ориентированного проектирования
- •1.1 Что представлять
- •1.2 Стиль представления
- •Возможность ручного изображения
- •Никаких излишних различий
- •Однократный просмотр против многократных
- •Насыщенность информации
- •Правила непротиворечивости
- •Правила включения
- •Никаких сложных требований относительно размещения
- •Альтернативные представления
- •2 Компоненты нотации
- •3 Диаграмма класса
- •3.1 Назначение
- •3.2 Символика Класс
- •Логические компоненты
- •Общедоступные операции
- •Параметры
- •Базис операции и упорядочивание воков
- •Отсрочка
- •Связывание во время компиляции против связывания во время выполнения
- •Имена модулей
- •Первичные модули
- •Внешние модули
- •Данные экземпляра
- •Другие устойчивые данные
- •Полиморфизм
- •Исключения
- •4.3 Обсуждение
- •5 Диаграмма зависимостей
- •5.1 Зависимость
- •Пользователь-исполнитель (клиент-сервер)
- •Назначение диаграммы
- •5.2 Символика
- •5.3 Альтернативные представления и автоматизация
- •6 Диаграмма наследования
- •6.1 Назначение
- •6.2 Символика
- •6.3 Альтернативное представление и автоматизация
4.2 Жизненные циклы связей
В некоторых случаях отношение между предметами реального мира эволюционирует через отчетливые фазы, в которых применяются различные правила и линии поведения. В этом случае отношение абстрагируется как связь в форме ассоциативного объекта с атрибутом текущего состояния. В дальнейшем модель состояний формируется для формализации жизненного цикла связи.
Модель состояний предписывает поведение типичного неопределённого экземпляра связи. Все экземпляры связи выполняют одну и ту же модель состояний. Как и в случае с объектом, мы используем термин "конечный автомат", чтобы указывать на выполнение модели состояний частным экземпляром связи.
Пример. Дистрибьютор предлагает различные типичные образцы электронного оборудования для продажи. Отдел сбыта обрабатывает приходящие заказы покупателей на приобретение, помещая заказ в отдельный "пункт заказа", представляющий запрос на один предмет оборудования. В информационной модели (рис.4.2.1) связь Покупатель заказал Пункт Каталога сохраняется в ассоциативном объекте Пункт Заказа.
Рис. 4.2.1. Информационная модель работы дистрибъютера.
В работе дистрибъютера каждый пункт заказа обрабатывается отдельно: оборудование, необходимое для выполнения пункта заказа, получают со склада и затем упаковывают, отправляют и выписывают счет. Эта стратегия изменяется, потому что некоторое оборудование имеется в свободном распоряжении и может быть отправлено почти немедленно, в то время как для отправки другого может потребоваться несколько недель ожидания, пока оно не будет получено от изготовителя.
Жизненный цикл пункта заказа представлен на рис.4.2.2. Обратите внимание, что, хотя Пункт Заказа изменился вследствии связи, его модель состояний формируется точно таким же способом, как и модель состояний для объекта.
4.3 Динамические связи вне жизненных циклов
Если даже связь не имеет жизненного цикла, она может обладать динамическим поведением при условии, что экземпляры связи создаются или уничтожаются в пределах временной области анализа. Например, в банковских приложениях связь между клиентом и его счетом постоянна и не имеет стадий, в которых бы применялись различные правила. Однако всякий раз, когда клиент или счет появляется или исчезает, экземпляр Клиент владеет Счетом должен быть соответственно создан или удален.
Клиент - любой человек или организация, которые создали, по крайней мере, один счет.
Рис.4.2.2. Модель состояний для объекта Пункт Заказа.
Новые клиенты могут появляться в любое время.
Новые счета можно создавать в любое время.
Если клиент закрывает свой последний счет, он перестает быть клиентом.
Информационная модель представлена на рис.4.3.1.
Поскольку лишь динамическое поведение связи имеет отношение к созданию и удалению экземпляров связи, нет необходимости формировать модель состояний для связи. Вместо этого экземпляры связи создаются и уничтожаются моделями состояний участвующих объектов, как показано на рис.4.3.2.
Рис.4.3.1. Фрагмент информационной модели банка.
4.4 Конкурирующие связи: монитор Конкуренция в реальном мире
В реальном мире может существовать конкуренция, связанная с установлением связи. В примере Клиент-Пункт Заказа клиенты не должны конкурировать друг с другом, чтобы сделать Пункт Заказа. Дистрибьютер может принять достаточно много заказов. Подобным образом в примере с банком существует бесконечный запас новых счетов, и любое требование клиента об открытии нового счета может быть удовлетворено.
В противоположность этому рассмотрим ситуацию, в которой клиенты (пациенты, пассажиры и т.п.) конкурируют с целью овладеть вниманием ограниченного количества клерков (докторов, официанток или стюардесс). Когда клерк становится доступным, необслуживаемые клиенты пытаются завладеть вниманием клерка, чтобы сформировать экземпляр связи один-к-одному Клиент обслуживается Клерком. Поскольку клиенты, рассматриваемые теперь как экземпляры ООА, действуют одновременно, возможно, что два клиента обратятся к клерку в одно и то же время.
Проблемы конкуренции такого типа необходимо решать предоставлением одной контрольной точки, при проходе которой конкурирующие запросы преобразовываются в последовательную форму. В реальном мире это преобразование в последовательную форму может быть достигнуто различными механизмами: очередью клиентов (проявление стратегии, требующей, чтобы клиенты обслуживались в порядке их появления) или человеком, который определяет клиентов для клерков на основании какой-то другой стратегии (например, в комнате неотложной помощи больницы серьезность положения "клиента" должна, по всей вероятности, быть доминирующим соображением). В ООА преобразование в последовательную форму выполняется специальной моделью состояний для связи, в которой есть конкуренция.