
- •Объектно-ориентированный анализ: моделирование мира в состояниях содержание
- •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 Альтернативное представление и автоматизация
Домены реализации
Домены реализации включают в себя языки программирования, сети, операционные системы общие библиотеки классов. Эти домены обеспечивают концептуальные сущности, в которых будет реализована вся система. Например, предположим, что архитектурный домен приписал объектно-ориентированное проектирование, основывающееся на классах. В языке C++ для реализации архитектурной идеи о классе будет, несомненно, использоваться конструкция класса C++. Если же доменом реализации является Ada, то, вероятно, что архитектурный класс реализовывается как package, который создается определенным предписанным образом. Однако, если язык реализации - ФОРТРАН, класс в архитектурном домене будет обеспечен как набор подпрограмм, каждая из которых обращается к Common Block, который обозначается именем, уникальным для класса.
7.3 Мосты Мосты, пользователи и исполнители (клиенты и сервера)
Когда один домен использует механизмы и возможности, обеспечиваемые другим, мы говорим, что существует мост между двумя доменами. Два домена, соединенные мостом, играют различные роли по отношению один к другому и, следовательно, обозначаются различными терминами: домен, который использует возможности, известен как пользователь, в то время как домен, который их обеспечивает, - как исполнитель. Например, в системе Управления Железной Дорогой прикладной домен (как пользователь) обращается к домену Сигнал (как исполнителю) для сообщения о появлении условий, вызывающих беспокойство. Домен Сигнал (теперь действующий как пользователь), в свою очередь, использует домен
Пользовательский Интерфейс (исполнитель), для того чтобы привести отображения текущих вызывающих беспокойство условий для оператора.
Предложения и требования
Во время анализа мост между двумя доменами представляет набор предложений (с точки зрения пользователя) и набор требований (с точки зрения исполнителя):
-
пользователь рассматривает мост как набор предложений, которые, как он считает, будут обеспечиваться другим доменом. Пользователя не интересует, какой домен обеспечивает эти возможности;
-
исполнитель думает о мосте как о наборе требований. Исполнитель не заботится о том, какой домен нуждается в обслуживании и, следовательно, не делает никаких предположений относительно пользователя.
Механизмы ООА. Прикладные и сервисные домены считают, что механизмы ООА (архив данных, передача события и т.п.) предоставляются в некоторой форме. Это предположение формирует требование для Архитектурного домена: Архитектурный домен должен обеспечивать механизмы для сохранения и восстановления данных, для передачи событий и для функционирования таймеров. Обратите внимание, что механизмы не должны быть имитацией формализации ООА: в 9-й главе мы будем исследовать архитектуру, в которой события представлены не как асинхронная задача взаимодействия сообщений, а как синхронные вызовы.
Атрибуты, основанные на показаниях приборов. Прикладной домен считает, что основанные на показаниях приборов атрибуты, типа Бак Для Приготовления.Действительная Температура, имеют значения в данный момент времени. Это требование определено для домена ПВВ.
События, выходящие за границу. Когда модели домена пользователя в ООА показывают, что событие порождается для сущности вне границ системы, считается, что существует механизм, который может брать событие и преобразовывать его в форму,понятную для получателя. Это составляет требование для домена ПВВ (если,событие направлено на физическое оборудование) или для сервисного домена, который непосредственно или косвенным образом взаимодействует с оператором: обычно это домен Пользовательский Интерфейс или Сигналы. Аналогично, когда модели прикладного домена в ООА показывают, что событие порождается внешней сущностью, считают, что доме}! ПВВ или Пользовательский Интерфейс может обеспечивать это событие в форме, понимаемой прикладным доменом.
Как показано на рис.7.3.1, домены пользователя и исполнителя могут иметь различные взгляды на то же самое событие: метка и набор данных события могут различаться. По этой причине мы формально не сопоставляем события, которые передаются между двумя доменами, но оставляем это как задачу для проектирования, так как проблема различных взглядов обычно включает проблему типизации данных.
Двойники. Хотя объект в одном домене не требует существования объекта в другом, экземпляр объекта в одном домене может иметь двойника в другом. Например, поезд (в домене Управление Железной Дорогой) может иметь двойника (пиктограмму поезда) в домене Пользовательский Интерфейс. Цель пиктограммы поезда - представлять поезд для оператора. Следовательно, расположение пиктограммы на экране (экранные координаты) зависит от местоположения поезда в реальном мире.
Это налагает на домен Пользовательский Интерфейс определенное требование: должно быть возможным такое управление дисплеем, при котором позиция пиктограммы определяется с помощью атрибутов экземпляра двойника в другом домене.