
- •Объектно-ориентированный анализ: моделирование мира в состояниях содержание
- •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 Альтернативное представление и автоматизация
Модель взаимодействий подсистем
Рамка подсистемы на модели взаимодействии подсистем (MBП) представляет собой модель взаимодействия объектов для частной подсистемы. Если модель состояний и одной подсистеме порождает событие, которое принимается моделью состояний и другой, то рисуют стрелку из подсистемы, и которой событие порождается, к подсистеме, принимающей его. Обозначают стрелку идентификатором события(й) и, если на диаграмме достаточно места, значением события, как показано на рис. 8.4.3.
Рис.8.4.3. Модель взаимодействия подсистем для домена Работа Железной Дороги.
Модель доступа к подсистемам
Рамка подсистемы на модели доступа к подсистемам (МДП) представляет собой модель доступа к объектам для одной из подсистем в домене. Если модель состояния в одной подсистеме (А) использует процесс аксессор, определенный для объекта в другой (В), рисуют стрелку из подсистемы А к подсистеме В. Обозначают стрелку идентификаторами аксессора, как показано на рис.8.Л.4.
Рис.8.4.4. Модель доступа к подсистемам для домена Работа Железной Дороги.
8.5 Проектная матрица Что представляет проектная матрица
Проектная матрица [1] - простое представление планирующего и организационного фрейма, обеспечиваемого подсистемами и ООА. В проектной матрице (рис.8.5.1) каждая строка матрицы - это этап в методе ООА и каждый столбец -подсистема. Ячейки, которые образуются пересечением строк и столбцов, представляют собой отдельные модули работы, которую необходимо выполнить. В результате Вы можете связать некоторые информационные сведения с каждой данной рамкой:
-
сотрудники, определенные для выполнения работы, представленной ячейкой;
-
рабочие продукты, которые должны быть созданы как результат выполнения работы;
-
предполагаемые трудозатраты, требуемые для выполнения работы;
-
текущее состояние работы: завершена, выполняется, будет проделана;
-
ожидаемые даты начала и конца работы;
-
трудозатраты, которые действительно потребовались для выполнения работы.
Вследствии того что матрица обеспечивает компактный и интегрированный просмотр планов и состояния проекта, многие проекты поддерживают на доске или плакате образец проектной матрицы большого размера, полностью аннотированный вышеупомянутой информацией для хранения всех проделанных на сегодняшний день разработок.
Деятельность при анализе
До этого момента мы основной упор делали на рабочих продуктах ООА: что они собой представляют, и какие правила должны соблюдаться для того, чтобы гарантировать их lie-противоречивость. Этот раздел представляет альтернативную точку зрения: ООА является процессом, состоящим из анали-зационной деятельности, которая требуется для обеспечения формализованных моделей. Процесс описывается во фрейме, данном проектной матрицей.
Строка информационной модели. Работа, связанная с рамкой в строке информационной модели, подразделяется на несколько отчетливых видов деятельности:
-
исследование;
-
разработка модели;
-
интеграция;
-
просмотр.
Исследование. Первая задача, перед необходимостью решения которой поставлен аналитик, - собрать и усвоить подходящую информацию о реальном (или гипотетическом) мире для анализа. Многое из такой информации может быть доступно в документах как в общих работах, имеющихся в библиотеках, так и в специализированных, созданных и поддерживаемых организацией заказчика: в руководстве по производству и в руководящих принципах, инженерных чертежах и документах, бланках данных, фотографиях, обучающих материалах и т.п. Возможно, что дополнительную информацию необходимо будет получить прямо от представителей организации заказчика, людей, которые, как ожидается, будут операторами системы, и различных экспертов предметных областей.
Рис.8.5.1. Проектная матрица для Автоматизированной Системы Управления Железной Дорогой.
На протяжении этапа исследования аналитик может легко стать жертвой переизбытка информации, лишь малая часть которой существенна для анализа. Мы считаем, что наиболее эффективным подходом мри рассмотрении этого является классическая инженерная запись: короткое связанное с одной темой техническое замечание или записка. Для усвоения и сжатого выражения информации, которую необходимо рассмотреть для построения информационной модели, записывают каждую беседу пли совокупность относящихся к делу добытых из документов сведений в техническом замечании.
Разработка модели. Как только Вы хорошо разобрались с предметной областью, может начинаться работа над созданием формализованных моделей. Начните с эскизной зарисовки первого проекта графической информационной модели.
При формировании графика проекта используйте ячейки проектам матрицы как модули планируемой работы
Заполните ее атрибутами и связями, предложенными техническими замечаниями.
Как только у Вас будет довольно законченный проект графической информационной модели, начните подготовку описании атрибутов и объектов. Эта деятельность может потребовать решение дополнительных вопросов. Продолжите совершенствование модели и исследование вопросов по мере их возникновения до тех пор, пока не выясните все подробности.
Часто бывает так, что некоторые фундаментальные вопросы не могут быть рассмотрены достаточно быстро, поскольку зависят от решений, которые еще предстоит принять заказчику или другому отделу в Нашей организации. В этом случае у Вас есть возможность приостанавливать работу над частной подсистемой до тех пор, пока не будут получены ответы. Альтернативно наилучший выход может быть в том, чтобы продолжать, готовя техническое замечание, документирующее опции. В дальнейшем выберите одну из опции, зафиксируйте Ваш выбор как предположение в документе, озаглавленном "Контекст для просмотра подсистемы" (как описано в разделе 8.6), и продолжите анализ. Несмотря на то что эта стратегия песет с собой риск, связанный с возможной необходимостью переработки части анализа, она, вероятно, облегчит процесс принятия решений, так как законченный анализ обнаружит любые вовлечения опций, которые Вы выбрали для исследования, и может пролить некоторый свет на другие опции.
Интеграция. Как только работа над информационной моделью и связанными с ней текстовыми документами закончена, постройте (пли модифицируйте) модель связей подсистем для домена, в котором подсистема содержится.
Просмотр. Вследствии того что информационная модель -основа для всего анализа и проектирования - еще создается, мы проводим детализированный технический просмотр работы в этой точке. При этом мы преследуем две цели: проверить, что существенные аспекты реального мира были точно сохранены в формальных моделях, и проконтролировать соответствие модели правилам ООА, которые состоят в том, что каждый объект имеет идентификатор, все связи формализованы и описаны и т.д. Команда для просмотра должна, следовательно, включать как экспертов предметной области (для обеспечения первой цели), так и экспертов по моделированию (для второго. Если Вы не можете предоставить экспертов предметной области для просмотра, замените их аналитиками, не работавшими над этой частной моделью. Снабдите аналитиков-рецензентов техническими замечаниями, которые могут в дальнейшем использоваться как описание действительности, с которой сверяется модель.
Строка моделей состояний. Деятельность, связанная с рамкой в строке моделей состояний, - это разработка модели, верификация взаимных действий, интеграция и просмотр.
Разработка модели. Начните работу с моделью состояний эскизной зарисовкой грубой модели взаимодействия объектов для установления иерархического представления объектов, как описано в 5-й главе. Затем формируйте одну за другой модели состояний (ДПС и ТПС) н накапливайте в процессе работы список событий. Может быть, будет необходимо провести некоторые дополнительные исследования, чтобы определить тонкости поведения различных объектов. В таком случае запишите полученные сведения в технические замечания.
В процессе построения моделей состояний вы будете, вероятно, идентифицировать некоторые дополнительные атрибуты, которые должны быть добавлены к информационной модели. Чтобы не выполнять лишнюю работу, сохраните список этих модификаций и обновите информационную модель всю сразу, когда модели состояний будут закончены.1
Верификация взаимных действий. Если взаимные действия между моделями состояний нелегко понять из ДПС н единственной модели взаимодействия объектов, проиграйте взаимные действия, используя автоматизированный имитатор или ручную процедуру, описанную в 5-й главе. Альтернативно опишите взаимные действия на схеме каналов управления. В любом случае подготовьтесь для объяснения взаимных действий различных моделей состояний в просмотре для этой ячейки.
Интеграция. Как только модели состояний н модель взаимодействия объектов завершены, сформируйте (или модифицируйте) модель взаимодействия подсистем для этого домена.
Просмотр. При рассмотрении рабочих продуктов ячейки в строке моделей состояний, в равной степени особое значение придают оценке того, правильно или нет отображено действие реального мира, и верификации непротиворечивости моделей состояний, модели взаимодействия объектов и модели взаимодействия подсистем.
Строка моделей процессов. Работа, связанная с рамкой в строке моделей процессов, требует трех видов деятельности: разработки модели с последующей интеграцией и обзором. Эта работа вполне простая и обычно выполняется очень быстро.
Разработка модели и интеграция. Разделите работу так, чтобы каждый аналитик отвечал за создания ДПДД для некоторого количества моделей состояний. Во время этой работы каждый аналитик может поддерживать отдельную таблицу процессов состояний. Когда ДПДД закончены, объедините отдельные таблицы процессов состояний и устраните все расхождения в именах и идентификаторах процессов. Затем создайте модель доступа к объектам для подсистемы и модифицируйте модель доступа к подсистемам для всего домена.
Просмотр. Просмотр для рамки моделей процессов дает возможность убедиться в том, что действия моделей состояний точно отображены на ДПДД. Поскольку никакой новой информации по предметной области на этом этапе не поступает, верификация лучше всего выполняется аналитиками.