- •С.М. Шаврин, л.Н. Лядова, с.И. Чуприна Моделирование и проектирование информационных систем
- •Содержание
- •I. Организационно-методический раздел 5
- •II. Содержание курса 6
- •Место курса в системе основной образовательной программы
- •II. Содержание курса Связь между разделами
- •Конспект лекций
- •Введение
- •Понятие информационной системы
- •III. Примерное распределение часов курса по формам и видам работ 153
- •IV. Форма итогового контроля 156
- •V. Учебно-методическое обеспечение курса 156
- •I. Организационно-методический раздел Цели и задачи курса
- •Требования к уровню освоения содержания курса
- •Проблемы сложных задач
- •Введение в теорию моделирования
- •Понятие моделирования и модели. Принципы моделирования и классификация моделей
- •Метамоделирование
- •Классификация информационных систем по уровню и составу моделей
- •Жизненный цикл программного обеспечения
- •Понятие жизненного цикла. Процессы жизненного цикла
- •Модели жизненного цикла
- •Структурный подход
- •Сущность и основные принципы структурного подхода
- •Метод функционального моделирования sadt
- •Моделирование потоков данных
- •Моделирование структур данных
- •Объектный подход
- •Сущность и основные принципы объектного подхода
- •Пример объектно-ориентированного анализа и проектирования
- •Унифицированный язык моделирования uml
- •Обзор языка uml
- •Моделирование функциональных требований и диаграммы прецедентов
- •Типичные ошибки
- •Моделирование бизнес-процессов и диаграммы активностей
- •Элементы диаграммы активностей
- •Концептуальное моделирование и диаграммы понятий
- •Понятие
- •Ассоциации
- •Атрибуты
- •Ограничения
- •Обобщение
- •Прямые и косвенные экземпляры
- •Абстрактные понятия
- •Многомерная множественная классификация
- •Агрегация
- •Правила идентификации отношения агрегации
- •Порядок построения концептуальной модели
- •Рекомендации по построению диаграмм понятий
- •Моделирование поведения системы и диаграмма последовательностей
- •Модель поведения системы
- •Объекты
- •Сообщения
- •Описание системных операций
- •Типичные ошибки
- •Рекомендации по построению диаграмм последовательностей
- •Проектирование поведения системы и диаграммы сотрудничества
- •Диаграммы взаимодействия
- •Диаграмма сотрудничества
- •Работа с коллекциями объектов
- •Сообщения классу
- •Видимость объектов
- •Типичные ошибки
- •Рекомендации по построению диаграмм сотрудничества
- •Проектирование статической структуры системы и диаграмма классов
- •Диаграмма классов
- •Операции
- •Информация о типах
- •Информация об области видимости
- •Вычислимые атрибуты
- •Направление навигации
- •Зависимости
- •Рекомендации по построению диаграмм классов
- •Модель реализации и диаграмма компонентов
- •Модель реализации
- •Диаграмма компонентов
- •Компоненты
- •Стереотипы
- •Пиктограммы
- •Интерфейсы
- •Зависимости
- •Рекомендации по построению диаграммы компонентов
- •Модель и диаграмма развертывания
- •Модель развертывания
- •Диаграмма развертывания
- •Стереотипы
- •Шаблоны проектирования
- •Введение в шаблоны проектирования
- •Обязанности
- •Дополнительная информация
- •Шаблоны проектирования grasp
- •Шаблоны graps
- •Шаблон Expert (Эксперт)
- •Шаблон Creator (Создатель)
- •Шаблон Low Coupling (Низкое Связывание)
- •Шаблон High Cohesion (Высокое Зацепление)
- •Шаблон Controller (Контроллер)
- •Вопрос для итоговой аттестации
- •III. Примерное распределение часов курса по формам и видам работ
- •Учебное задание
- •Примерный перечень вопросов к зачету по всему курсу
- •IV. Форма итогового контроля
- •V. Учебно-методическое обеспечение курса Рекомендуемая литература (обязательная)
- •Рекомендуемая литература (дополнительная)
- •Список адресов в Интернет
- •Моделирование и проектирование информационных систем Учебно-методическое пособие
Сообщения
В языке UML определено следующих три типа сообщений: синхронные, асинхронные и ответные.
Определение. Синхронное сообщение – это сообщение, после отправки которого отправитель дожидается завершения его обработки.
Определение. Асинхронное сообщение – это сообщение, после отправки которого отправитель может выполнять другие действия, не дожидаясь завершения его обработки.
Определение. Ответное сообщение – это сообщение, уведомляющее отправителя о завершении обработки его сообщения. Может использоваться для передачи результата.
Синхронные сообщения обозначаются при помощи сплошной линии с закрашенным треугольником на конце, асинхронные – сплошной линией со стрелкой на конце, а ответные –пунктирной линией со стрелкой на конце (рис. 66).
Рис. 66. Типы сообщений
Каждое сообщение кроме ответных сообщений имеет имя и, при необходимости, параметры. Имена сообщений должны содержать глаголы в повелительном наклонении и отражать те действия, которые должны быть выполнены в ответ на сообщение (рис. 67).
Рис. 67. Имена и параметры сообщений
На приведенном выше рисунке используется необязательный элемент, который называется периодом активации (белый прямоугольник на линии жизни объекта). Период активации иллюстрирует действия объекта по обработке сообщения (время владения потоком управления). Данный элемент позволяет повысить наглядность диаграммы, особенно в тех случаях, когда используются асинхронные сообщения.
Рис. 68. Повторяющиеся сообщения
При анализе взаимодействия между объектами нередко встречается такая ситуация, когда некоторое сообщение отправляется несколько раз, причем обычно заранее неизвестно сколько. Для отражения такой ситуации на диаграммах последовательностей используется символ «*» перед именем сообщения, который означает, что сообщение может быть отправлено ноль, один или более раз (рис. 68).
Если требуется изобразить на диаграмме последовательностей сразу два или более сценариев, которые отличаются только некоторыми шагами, то для этого можно использовать условные сообщения – сообщения, которые отправляются только при выполнении определенного условия. Условие отправки на диаграмме записывается перед именем сообщения в квадратных скобках и может быть сформулировано в произвольной форме (рис. 69).
Рис. 69. Условные сообщения
Чаще всего условные сообщения встречаются в тех случаях, когда в зависимости от некоторого условия отправляется либо одно, либо другое (или одно из нескольких) сообщение. Такие сообщения называются альтернативными и изображаются на диаграмме при помощи условных сообщений, начала которых соединены (см. рис. 70).
Строго говоря, на рис. 70 изображены два параллельных сообщения с взаимоисключающими условиями отправки. Параллельность сообщений означает, что порядок их отправки неважен, в том числе допускается их одновременная отправка, что и иллюстрируется совмещенным началом соответствующих стрелок на диаграмме.
Рис. 70. Альтернативные сообщения
Описание системных операций
Каждому системному сообщению соответствует системная операция. Функциональность системы определяется набором системных операций. Прежде чем приступать к реализации системы (или ее части), необходимо определить все системные операции. Для этого можно использовать описания системных операций.
Определение. Описание системной операции – это документ, описывающий предполагаемые результаты ее выполнения; он составляется в декларативной форме и акцентирует внимание на том, что должно произойти, а не на том, как этого достичь.
В UML не определяется стандарта для описания системных операций. На практике рекомендуется использовать шаблон со следующими полями:
имя – имя системной операции;
обязанности – краткое описание того, за что отвечает данная системная операция;
ссылки – прецеденты, в которых используется данная системная операция;
примечание – комментарии, замечания о реализации и т.д.;
исключения – возможные исключительные ситуации и реакции на них;
предусловия – условия, которые должны быть выполнены перед началом операции;
постусловия – описание изменений в системе, которые должны произойти после выполнения системной операции.
Самым главным разделом описания является раздел постусловий. Принцип его формирования следующий: необходимо сравнить состояние до выполнения операции с требуемым состоянием после ее выполнения и выделить все изменения. Все изменения на уровне данных можно свести к созданию/удалению экземпляров, формированию/разрыву связей и изменению значений атрибутов. При описании постусловий рекомендуется каждое изменение явно относить к одному из вышеописанных классов.
Рис. 71. Концептуальная модель продажи
Рассмотрим описание системных операций на примере операции «ввестиТоварнуюПозицию». Пусть данная операция используется в прецеденте «Продажа товара» для некоторой системы розничной торговли. На рис. 71 приведена часть концептуальной модели, которая понадобится для описания.
Имя: ввестиТоварнуюПозицию(код, количество)
Обязанности: Добавить товарную позицию к текущей продаже.
Ссылки: Прецедент «ПокупкаТовара»
Примечание: Использовать самый быстрый доступ к БД.
Исключения: Если код товара не известен, то запросить повторный ввод.
Предусловия: нет
Постусловия:
Для новой продажи создан объект :Продажа (создание экземпляра).
Для новой продажи объект :Продажа связан с объектом :СистРознТорговли (формирование связи).
Создан объект :ТоварнаяПозиция (создание экземпляра).
Объект :ТоварнаяПозиция связан с объектом :Продажа (формирование связи).
Атрибут :ТоварнаяПозиция.Кол-во принял значение «количество» (модификация атрибута).
Объект :ТоврнаяПозиция связан с объектом :ОписаниеТовара на основе соответствия кода товара (формирование связи).
На этапе анализа нет необходимости генерировать полный и точный набор постусловий. Некоторые интересные детали прояснятся на этапе проектирования. Новые открытия инициируют новые итерации. Это одно из преимуществ итеративной разработки.
Наиболее типичной ошибкой при описании системных операций является невключение формирования связей в число постусловий операции. Установка связей играет особо важную роль при создании новых экземпляров.
Описание системных операций является достаточно трудоемкой задачей и в относительно простых задачах обычно не используется. Однако стоит заметить, что кроме своего непосредственного назначения описания системных операций можно использовать для тестирования системы.
Вопросы для самоконтроля
В чем разница между системным сообщением и системной операцией? Что общего между ними?
В чем заключается принцип «черного ящика»?
Какие виды сообщений бывают и чем они различаются?
Задания для самостоятельной работы
Постройте концептуальную модель диаграммы последовательностей.
Постройте диаграммы последовательностей для учебного задания. При необходимости опишите системные операции.
