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