Слайд 1Университет машиностроения
Кафедра «Автоматика и процессы управления»
Информатика. 2 семестр. Тема 13.
UML
Дисциплина
Информационные технологии
Тема 13
Unified Modeling Language
2 семестр
Унифицированный язык моделирования
Слайд 2Визуальное моделирование
Визуальным моделированием (visual modeling) называется способ представления идей и
проблем реального мира с помощью моделей.
Модель помогает понять проблему
всем участникам, задействованным в реализации проекта на различных этапах.
Модель обеспечивает более точную оценку необходимых ресурсов, чёткую проработку планов и эффективное функционирование создаваемых систем.
Модель (model) – это абстракция, описывающая суть сложной проблемы или структуры без акцента на несущественных для рассмотрения деталях, тем самым делая её более понятной.
Принятые обозначения, используемые для построения модели, являются нотациями (notation).
Информатика. 2 семестр. Тема 13. UML
Слайд 3Треугольник успеха
Средства, необходимые для успешного проекта:
Знание нотации без умения её
применения для описания процессов провоцирует ошибки;
Неумение описывать даже хорошо организованные
процессы не позволит завершить проект;
Неверное определение орудий труда (инструментов) приведет к неудаче в реализации проекта.
Информатика. 2 семестр. Тема 13. UML
Слайд 4Роль нотации
Нотация является важной составляющей любой модели – она служит
связующим звеном между процессами.
Является языком для описания взаимодействий, которые
неочевидны или не могут быть получены непосредственно из кода;
Обеспечивает достаточную семантику, позволяющую охватить важные стратегические и тактические решения;
Предлагает конкретную форму, помогающую человеку рассуждать о предметной области, а средствам моделирования воплощать описанные идеи.
Информатика. 2 семестр. Тема 13. UML
Нотация выполняет три функции:
Унифицированный язык моделирования (Unified Modeling Language, UML) – расширяемая нотация, используемая на этапах анализа и проектирования
Слайд 5Информатика. 2 семестр. Тема 13. UML
Итеративная и инкрементальная разработка
Разработка с
использованием итеративного и инкрементального жизненного цикла состоит из создании серии
версий, которые развиваются в направлении конечной системы
Риск – это степень нашего незнания какого-либо аспекта функционирования системы
Риски закреплены за каждой версией таким образом, чтобы успешное завершение версии уменьшало риск, закреплённый за ней
Слайд 6Методология Rational Unified Process
Методика RUP используется для поддержки управления
итеративным и инкрементальным жизненным циклом разработки
Время (разделение жизненного цикла на
фазы и версии);
Компоненты процесса (создание необходимого набора средств для выполнения чётко определённых задач);
Информатика. 2 семестр. Тема 13. UML
Два направления структурирования:
Слайд 7Структурирование по времени
Задумка (inception) – определение общей идеи проекта;
Проработка
(elaboration) – планирование необходимых работ и ресурсов, указание особенностей и
создание архитектуры;
Создание (construction) – построение продукта при помощи серии последовательных версий;
Переходный период (transition) – поставка продукта пользователям (производство, распространение, обучение).
Информатика. 2 семестр. Тема 13. UML
Работа над проектом состоит из следующих временных этапов:
Слайд 8Структурирование по компонентам процесса
Построение бизнес-модели (business modeling) – определение
необходимых возможностей системы и потребностей пользователей;
Определение требований к системе (requirements)
– изложение общей идеи системы совместно с функциональными и нефункциональными условиями её работы;
Анализ (analysis) – описание способов исполнения системы на этапе реализации (формализация требований);
Проектирование (design) – описание способов исполнения системы на этапе реализации (определение структуры объектов и последовательности операций);
Реализация (implementation) – кодирование и генерация работающих программных модулей системы;
Тестирование (test) – проверка функционирования системы;
Внедрение (deployment) – поставка системы конечным пользователям и их обучение.
Информатика. 2 семестр. Тема 13. UML
Работа над проектом состоит из следующих стадий:
Слайд 9Стадии разработки
Информатика. 2 семестр. Тема 13. UML
Распределение объемов работ по
стадиям разработки
Версии системы (прототипы) используются для проверки аналитических решений в
области архитектуры системы
Слайд 10Начало проекта
Информатика. 2 семестр. Тема 13. UML
Определение «правильного» проекта
Простой, но
достаточно сложный и важный вопрос:
«Правильна ли создаваемая система?»
Никому не нужна
система, которая ничего не автоматизирует или автоматизирует неправильные вещи…
Для начала проекта нужна идея:
«Наша система делает…»
Собираются и документируются идеи;
Предварительно описываются риски;
Описываются внешние интерфейсы;
Планируется общая функциональность системы;
Создаются тестовые прототипы для проверки общей концепции (proof of concept prototypes).
Слайд 11Цели и задачи этапа (начало проекта)
Информатика. 2 семестр. Тема 13.
UML
Основная цель – оформление (описание) процессов
Решаемые задачи:
бизнес-требований;
доступных ресурсов;
возможностей использования различных
технологий;
идей и пожеланий конкретных пользователей.
Анализ:
профессиональные и научные исследования
мозговой штурм;
анализ эффективности;
анализ функциональности;
создание прототипов.
Выработка целевой концепции системы, описание задач и приоритетов:
Первичное сокращение ресурсов и времени
Слайд 12Последовательность этапов проектирования
Информатика. 2 семестр. Тема 13. UML
при создании информационной
системы
1. Составить общее словесное описание системы:
Техническое (рабочее) наименование, отвечающее на
вопрос «что делающая?»
Краткое описание, определяющее преимущества и особенности (ограничения);
Интерпретация основного процесса на естественном языке с предполагаемым распределением ролей.
2. Определить риски
3. Записать известные особенности работы системы:
Что могут делать пользователи (использование);
Какая информация выдается системой (содержание);
Какие ограничения на множества известны (количества);
Этапы (шаги) основного процесса;
Условия возникновения альтернативных процессов.
Слайд 13Последовательность этапов…
Информатика. 2 семестр. Тема 13. UML
4. Создать прецеденты (Use
cases)
Определить актёров (actor) и их роли (возможности, обязанности) в
системе;
Определить для актёров направления потоков данных (инициации взаимодействия);
Описать возможности взаимодействия актёров с системой (диалоги актёр-система) как прецеденты;
Записать потоки событий для прецедентов.
5. Установить отношения прецедентов
(продолжение)
6. Составить диаграммы прецедентов
7. Составить диаграммы действий (Activity diagram) как схем решения каких-нибудь задач в системе
ДД могут затрагивать сразу нескольких актёров, включать основные и альтернативные потоки событий прецедентов
Анализ поведения
Слайд 14Последовательность этапов…
Информатика. 2 семестр. Тема 13. UML
8. Определить классы и
объекты
Классы задают структуру объектов и их поведение
В рамках ООП работа
системы описывается через операции объектов над объектами
10. При большом количестве классов создать пакеты
(продолжение)
11. Исследовать реализацию прецедентов через сценарии (scenario) – одиночные проходы по потоку событий
Стереотип устанавливает принцип использования объектов данного класса в системе
9. Определить стереотипы классов
Анализ структуры
Изучение взаимодействия объектов
Слайд 15Последовательность этапов…
Информатика. 2 семестр. Тема 13. UML
(продолжение)
12. Отобразить сценарии через
диаграммы взаимосвязи (interaction diagrams) :
диаграммы последовательности действий (sequence diagrams)
– для просмотра сценария во времени;
диаграммы взаимодействий (collaboration diagrams) – для анализа взаимодействия объектов.
Определение отношений объектов
13. Проанализировать семантические отношения
ассоциативные;
агрегационные.
14. Определить мощность (multiplicity) отношений
15. При наличии в проекте пакетов, между ними отображаются отношения зависимости.
16. Определить поведение и структуру для классов
Слайд 16Примерный проект (описание)
Информатика. 2 семестр. Тема 13. UML
Система регистрации учебных
курсов для университета
Описание:
Учебный процесс построен на свободной записи студентов на
учебные курсы. Контролируется общее количество учебных часов.
Организация процесса регистрации:
Перед началом семестра преподаватели решают, какие курсы они будут вести. Служба регистрации вносит информацию в каталог курсов. Студент заполняет регистрационную форму.
После сбора заявлений выполняется процедура распределения студентов по курсам. Возможна корректировка информации о студентах.
По окончании распределения студентам высылается расписание для проверки.
Повторяются операции сбора заявлений и распределения
Преподаватель получает список студентов для каждого курса
Слайд 17Постановка задачи регистрации курсов
Информатика. 2 семестр. Тема 13. UML
Главные риски:
Порядок
работы системы:
Эффективность сохранения и получения информации об учебных планах и
учёта студентов
В начале студенты могут запросить каталог курсов;
Информация о курсе должна содержать фамилию преподавателя, название факультета и краткое описание, помогающее студенту сделать выбор;
Студент должен выбрать четыре курса;
Также студенту нужно указать ещё два варианта, на случай, если курсы будут переполнены или отменены;
На каждый курс должно быть записано не менее трёх и не более десяти студентов;
Курс, на который запишутся менее трёх студентов, будет отменён;
По завершении регистрации система направляет информацию в систему оплаты для выставления счетов.
Слайд 18Начало проектирования
Создание прецедентов
Информатика. 2 семестр. Тема 13. UML
Поведение разрабатываемой системы
описывается с помощью функциональной модели, отображающей системные прецеденты (use cases),
системное окружение (актёры – actors) и связи между прецедентами и актёрами (диаграммы прецедентов – use cases diagrams)
Нотация языка UML для изображения актёра
Актёры
Актёры не являются частью системы – они представляют собой кого-то или что-то, то должно взаимодействовать с системой
Актёры могут:
только снабжать информацией систему;
только получать информацию из системы;
обмениваться информацией с системой.
Слайд 19Актёры в системе регистрации курсов
Информатика. 2 семестр. Тема 13. UML
Регистрация
актёра в Rational Rose
Возможности актёров:
Студент хочет зарегистрироваться на курсы;
Преподаватель хочет выбрать курсы, которые будет читать;
Регистратор должен создать учебный план и составить каталог на семестр;
Регистратор должен хранить информацию о курсах, преподавателях и студентах;
Система оплаты должна получать информацию из системы регистрации.
Слайд 20Описание актёров
Информатика. 2 семестр. Тема 13. UML
Описание актёра студент
Возможный список
актёров:
Студент – человек, который регистрируется для посещения занятий в
университете;
Преподаватель – человек, который читает лекции в университете;
Регистратор – человек, управляющий системой регистрации курсов;
Система оплаты – внешняя система, выполняющая функции расчётов за курсы.
Слайд 21Прецеденты
Информатика. 2 семестр. Тема 13. UML
Нотация языка UML для прецедента
С
помощью прецедентов (use cases) моделируется диалог между актёром и системой,
определяются возможности, обеспечиваемый системой для актёра.
Регистрация прецедента в Rational Rose
Слайд 22Поток событий прецедента
Информатика. 2 семестр. Тема 13. UML
Поток событий (flow
of events) прецедента – это последовательность событий, необходимых для обеспечения
требуемого поведения.
Поток событий описывается в терминах того, «что» система должна делать, а не «как» она должна это делать.
То есть поток описывается на языке предметной области, а не терминами реализации.
Поток событий должен определять:
когда и как прецедент начинается и заканчивается;
как он взаимодействует с актёром;
какие данные ему нужны;
нормальную последовательность событий для прецедента
описание потоков в альтернативных и исключительных ситуациях
Слайд 23Реализация потока событий
Информатика. 2 семестр. Тема 13. UML
Стандартный шаблон описания
потока:
Х. Поток событий для прецедента .
X.1. Предусловия.
Х.2. Главный поток.
Х.3. Под-потоки
(если применимы).
Х.4. Альтернативные потоки
Слайд 24Пример потока событий для прецедента
Информатика. 2 семестр. Тема 13. UML
1
Поток событий для прецедента «Выбор курсов для преподавателя»
1.1 Предусловия
Перед началом
должен быть выполнен под-поток создание учебных курсов прецедента управление информацией о курсах
1.2 Главный поток
Прецедент начинает выполняться, когда преподаватель подключается к системе регистрации и вводит свой пароль.
Система проверяет правильность пароля (E-1) и просит преподавателя выбрать текущий или будущий семестр (E-2).
Преподаватель вводит нужный семестр.
Система предлагает выбрать требуемую операцию: добавить, удалить, посмотреть, напечатать или выйти.
Если выбрана операция добавить: выполняется поток добавить учебный курс (S-1).
Если выбрана операция удалить: выполняется поток удалить учебный курс (S-2).
Если выбрана операция посмотреть: выполняется поток посмотреть расписание (S-3).
Если выбрана операция напечатать: выполняется поток напечатать расписание (S-4).
Если выбрана операция выйти: прецедент завершается.
Слайд 25Пример потока событий (продолжение)
Информатика. 2 семестр. Тема 13. UML
1.3 Под-потоки
S-1:
добавить учебный курс
Система отображает диалоговое окно, содержащее поле для ввода
названия и номера предмета. Преподаватель вводит название и номер предмета (E-3).
Система отображает список учебных курсов для указанного предмета (E-4).
Преподаватель выбирает учебный курс. Система закрепляет за преподавателем выбранный учебный курс (E-5). Затем прецедент начинается сначала.
S-2: удалить учебный курс
Система отображает диалоговое окно, содержащее поле для ввода названия и номера учебного курса. Преподаватель выбирает название и номер учебного курса (S-6).
Система удаляет взаимосвязь курса с преподавателем (E-7).
Затем прецедент начинается сначала.
S-3: посмотреть расписание
Система …
S-4: напечатать расписание
Система …
Слайд 26Пример потока событий (продолжение)
Информатика. 2 семестр. Тема 13. UML
1.4 Альтернативные
потоки
E-1: введен неверный идентификационный номер преподавателя
Преподаватель должен повторить ввод идентификационного
номера или завершить прецедент.
E-2: введен неверный семестр
Преподаватель должен повторить ввод семестра или завершить прецедент.
E-3: введено неверное название или номер предмета
Преподаватель должен повторить ввод или завершить прецедент.
E-4: список учебных курсов не может быть отображён
Пользователю сообщается, что данная команда в настоящий момент недоступна. Прецедент начинается сначала.
E-5: преподаватель не может быть прикреплён к выбранному учебному курсу
Информация сохраняется, система осуществит прикрепление позже. Выполнение прецедента продолжается.
E-6: введено неверное название или номер учебного курса
Преподаватель должен повторить ввод или завершить прецедент.
E-7: система не может удалить связь курса с преподавателем
Информация сохраняется, система осуществит прикрепление позже. Выполнение прецедента продолжается.
Слайд 27Прикрепление описание потока событий
Информатика. 2 семестр. Тема 13. UML
Файл описания
потока событий должен быть сопоставлен с прецедентом
Желательно подготовить несколько файлов
с разной степенью подробности описания потока событий. Хорошей практикой является использование скетчей (набросков) интерфейса и прототипирование, для анализа удобства использования системы
Связанный документ с описанием потока событий в Rational Rose
Слайд 28Отношения прецедентов
Информатика. 2 семестр. Тема 13. UML
Отношения прецедентов
Ассоциативная связь между
актёром и прецедентом называют коммуникативной ассоциацией (communicate association).
Ассоциативная связь может
быть односторонней или двухсторонней. Направление указывает на инициатора связи.
Отношения между прецедентами бывают двух типов:
включает (include relationship) создаётся, если один из прецедентов использует другой;
дополняет (extend relationship) применяется для альтернативных потоков, запускаемых по выбору актёра, или режимов, возникающих при определенных условиях.
Стереотип (stereotype) – это способ добавления новых свойств к базовым элементам языка UML.
Имя стереотипа заключается в двойные треугольные скобки и помещается рядом с элементом.
Слайд 29Диаграммы прецедентов (use cases diagrams)
Информатика. 2 семестр. Тема 13. UML
Главная
диаграмма прецедентов
Слайд 30Диаграммы прецедентов (use cases diagrams)
Информатика. 2 семестр. Тема 13. UML
Дополнительная
диаграмма прецедентов
Слайд 31Диаграммы действий (activity diagrams)
Информатика. 2 семестр. Тема 13. UML
Элементы диаграмм
действий
Созданная диаграмма действий прецедента «Создание каталога» (Catalogue Creation)
Регистрация диаграммы действий
в Rational Rose
Слайд 32Действия (Activity)
Информатика. 2 семестр. Тема 13. UML
Размещение действий на диаграмме
действий
Действия – это исполнение определенного поведения в потоке управления системы
Слайд 33Переходы (State Transition)
Информатика. 2 семестр. Тема 13. UML
Переходы – это
пути, изображающие передачу потока управления от действия к действию.
Переход выполняется
по завершении очередного действия.
Размещение переходов на диаграмме действий
Слайд 34Элементы выбора (Decision)
Информатика. 2 семестр. Тема 13. UML
Элементы выбора служат
для отображения разделения управляющих потоков на основе условного выбора.
Размещение элемента
выбора на диаграмме действий
Для элемента выбора в качестве обязательного параметра (Specification) выступает условие (Guard Condition)
Слайд 35Условные переходы
Информатика. 2 семестр. Тема 13. UML
Условные переходы представляют собой
направления передачи потока управления в зависимости от результатов проверки условия
в элементе выбора.
Условный переход на диаграмме действий
Для условного перехода необходимо определить условие перехода
Слайд 36Прямолинейный (Rectilinear) режим отображения
Информатика. 2 семестр. Тема 13. UML
«Прямоугольный» режим
отображения переходов
Во многих случаях гораздо «привычнее» использовать «прямоугольный» (прямолинейный) режим
отображения линий перехода
Слайд 37Линии синхронизации
Информатика. 2 семестр. Тема 13. UML
Применение линий синхронизации для
обозначения одновременных процессов
Линии синхронизации указывают на необходимость одновременного начала или
завершения отдельных потоков управления
Слайд 38Секции
Информатика. 2 семестр. Тема 13. UML
Использование секций для задания зон
ответственности
Секции (swimlanes) делят диаграммы на отдельные участки по зонам ответственности
за выполнение действий.
Слайд 39Начальное и конечное состояния
Информатика. 2 семестр. Тема 13. UML
Завершённая диаграмма
действий
Символы начального и конечного состояния используются для обозначения границ потока
управления.
Обычно в потоке существует одно начальное и несколько конечных состояний – для каждого альтернативного направления
Слайд 40Объекты и классы
Информатика. 2 семестр. Тема 13. UML
Нотация языка UML
для обозначения объекта
Объект (object) – это некая сущность реального мира
или концептуальная сущность.
Объектом называется концепция, абстракция или вещь с чётко определёнными границами и значением для системы.
Каждый объект в системе имеет три характеристики:
Состояние;
Поведение;
Индивидуальность.
Слайд 41Состояние, поведение и индивидуальность
Информатика. 2 семестр. Тема 13. UML
Состоянием (state)
объекта называется одно из условий, в которых он может находиться.
Состояние меняется со временем и определяется набором свойств, называемых атрибутами (attribute), значений свойств и отношений между объектами.
Поведение (behavior) определяет, как объект реагирует на запросы других объектов и что может делать сам объект.
Поведение реализуется с помощью наборов операций (operation) для объекта.
Индивидуальность (identity) означает, что каждый объект уникален, даже если его состояние идентично состоянию другого объекта.
Слайд 42Объекты и классы (продолжение)
Информатика. 2 семестр. Тема 13. UML
Класс (class)
– это описание группы объектов с общими свойствами (атрибутами), поведением
(операциями), отношениями с другими объектами и семантикой.
Фактически, класс представляет собой шаблон для создания объекта. Каждый объект является экземпляром конкретного класса и не может быть экземпляром нескольких классов.
Класс учебный курс (CourseOffering) может определяться следующими характеристиками:
атрибуты – место занятий, время занятий;
операции – получить место занятий, получить время занятий, добавить студента на курс.
«Алгебра 101, раздел 1» и «Алгебра 101, раздел 2» – это объекты, принадлежащие классу учебный курс.
Слайд 43Обозначение и регистрация классов
Информатика. 2 семестр. Тема 13. UML
Нотация языка
UML для обозначения класса
Нотация для обозначения класса содержит три секции:
имя класса, структуру (атрибуты) и поведение (операции).
Регистрация класса в разделе LogicalView модели в Rational Rose
Слайд 44Стереотипы классов
Информатика. 2 семестр. Тема 13. UML
Классы со стереотипами
Стереотип класса
определяет его тип – характер использования.
Базовые стереотипы классов – это
класс-сущность, граничный класс, управляющий класс.
Собственные стереотипы задаются двойными треугольными скобками вокруг наименования стереотипа. UML допускает использование собственных обозначений (значков) для стереотипов классов.
Слайд 45Стереотипы классов
Информатика. 2 семестр. Тема 13. UML
Класс-сущность (entity class) используется
для моделирования данных и поведения с длинным жизненным циклом. Как
правило, такие классы представляют сущности реального мира или внутренние элементы системы.
Часто классы-сущности называют классами предметной области, потому что они представляют абстракции предметов реального мира.
Граничные классы (boundary class) обеспечивают взаимодействие между окружающей средой и внутренними элементами системы. Граничные классы предоставляют интерфейс для пользователя или другой системы (актёров).
Управляющие классы (control class) служат для моделирования последовательного поведения одного или нескольких прецедентов и координации событий, реализующих заложенное в них поведение. Управляющие классы «исполняют» прецедент и определяют его динамику.
Слайд 46Определение стереотипа и описание класса
Информатика. 2 семестр. Тема 13. UML
Установка
стереотипа и описание класса в Rational Rose
Документирование (описание) класса поясняет
его назначение, а не структуру. Трудности с описанием класса, скорее всего, свидетельствуют о том, что он – недостаточно хорошая абстракция.
Слайд 47Пакеты
Информатика. 2 семестр. Тема 13. UML
Нотация язык UML для пакета
Пакет
(package) в логическом представлении модели – это набор классов и
других связанных пакетов.
Каждый пакет содержит интерфейс, реализуемый набором его общедоступных классов (public classes) – тех, с которыми могут общаться классы из других пакетов.
Остальные классы пакета – это классы реализации (implementation classes), которые не взаимодействуют с классами в других пакетах.
Регистрация пакета и перемещение класса
Слайд 48Объекты и классы в системе регистрации курсов
Информатика. 2 семестр. Тема
13. UML
(Для сценария добавление учебного курса – внутреннего потока прецедента
выбор предметов для преподавания)
Граничные классы
Прецедент взаимодействует только с актёром преподаватель.
Интерфейс преподавателя: параметры курса преподавателя, и добавление учебного курса.
Классы для сценария
Классы-сущности
Предмет, курс, преподаватель (данные)
Управляющие классы
Нужен всего один класс для обработки потока событий для прецедента – менеджер курсов преподавателя
Слайд 49Создание пакетов в системе регистрации курсов
Информатика. 2 семестр. Тема 13.
UML
Нужно выделить классы и объединить их в логические группы
Классы
Предмет, учебный
курс, преподаватель, параметры курса преподавателя, добавление учебного курса, менеджер курсов преподавателя.
Пакеты
Группы
Объекты, специфические для университета;
Объекты, содержащие информацию о людях;
Интерфейсы для актёров.
Пакеты
Интерфейсы
Объекты университета
Сведения о людях
Слайд 50Диаграммы классов
Информатика. 2 семестр. Тема 13. UML
Диаграммы классов (class diagrams)
используются для представления классов в модели
Главная диаграмма классов отображает пакеты
системы
Главная диаграмма классов
Слайд 51Диаграммы классов (продолжение)
Информатика. 2 семестр. Тема 13. UML
Главная диаграмма классов
пакета Объекты университета
Каждый пакет также имеет свою главную диаграмму классов,
которая содержит общедоступные классы пакета
Слайд 52Диаграммы классов с отображением пакета
Информатика. 2 семестр. Тема 13. UML
Диаграмма
классов, отражающая видимость пакетов
Для диаграмм классов может быть настроен режим
«видимости пакета» в котором данный класс описан
Слайд 53Реализация прецедентов
Информатика. 2 семестр. Тема 13. UML
Нотация языка UML для
реализации прецедента
Диаграмма прецедентов отражает внешний вид системы.
Выполнение прецедентов показывается потоком
событий.
Для отображения реализации прецедентов за счёт взаимодействия групп объектов используются сценарии.
Сценарий (scenario) – это элемент прецедента, представляющий собой одиночный проход по потоку событий для прецедента.
Каждый прецедент – это сплетение первичных (нормальный поток прецедента) и вторичных сценариев (ветвления, исключения, альтернативные потоки), порождаемых различными состояниями системы.
Начальный поиск сценариев ведётся примерно до 80% покрытия.
Регистрация реализации
Слайд 54Диаграмма реализации прецедентов
Информатика. 2 семестр. Тема 13. UML
Диаграмма реализаций прецедентов
Слайд 55Связь реализации с представлением
Информатика. 2 семестр. Тема 13. UML
Связь реализации
с представлением прецедента
Слайд 56Диаграммы последовательности действий
Информатика. 2 семестр. Тема 13. UML
Наименования объектов и
классов на диаграмме последовательности действий
Диаграмма последовательности действий (sequence diagram) –
отображает взаимодействие объектов упорядоченное по времени.
Слайд 57Диаграммы последовательности действий
Информатика. 2 семестр. Тема 13. UML
Нотация языка UML
для объектов и сообщений на диаграмме последовательности действий
Взаимодействие объектов
Слайд 58Диаграммы последовательности действий
Информатика. 2 семестр. Тема 13. UML
Диаграмма последовательности действий
Диаграмма
для сценария создание учебного предмета
Слайд 59Диаграммы последовательности действий
Информатика. 2 семестр. Тема 13. UML
Диаграмма последовательности действий
с объектом, присвоенным классу
Диаграмма для сценария создание учебного предмета
Слайд 60Диаграммы последовательности действий и граничные классы
Информатика. 2 семестр. Тема 13.
UML
Граничные классы добавляются на диаграмму для индикации взаимодействия с пользователем
или другой системой.
На стадии анализа назначение граничных классов заключается в описании требований к интерфейсу, но не в описании реализации (программной) интерфейса.
Взаимодействие граничных классов и актёров описывается с помощью сообщений, назначение и последовательность которых зависят от структуры приложения и определяются на стадии проектирования.
Применение граничного класса
Слайд 61«Сложность»
Информатика. 2 семестр. Тема 13. UML
диаграмм последовательности действий
Основное правило:
Сохраняйте
диаграмму простой
Так как главное назначение диаграммы последовательности действий – отображение
объектов, их взаимодействия, сообщений между ними и функциональности, задаваемой сценарием
Моделирование условной логики (ЕСЛИ-ТО-ИНАЧЕ):
Если логика проста и требует небольшого количества сообщений, то её можно разместить на одной диаграмме с указанием выбора, который нужно сделать.
Как правило, лучше строить отдельные диаграммы для каждого варианта выбора (одну для ТО и одну для ИНАЧЕ)
Слайд 62Диаграммы взаимодействий
Информатика. 2 семестр. Тема 13. UML
На диаграмме взаимодействий отображают:
объекты в виде прямоугольников;
связи между объектами в виде линий;
сообщения в виде текста и стрелки, направленной от клиента к поставщику.
Нотация языка UML для объектов, связей и сообщений на диаграмме взаимодействий
Диаграмма взаимодействий (collaboration diagram) – отображает организацию взаимодействия объектов и связи между ними.
Слайд 63Диаграммы взаимодействий (продолжение)
Информатика. 2 семестр. Тема 13. UML
Диаграмма последовательности действий
отображает хронологию событий, а диаграмма взаимодействий – общую картину сценария
на основе взаимодействия связанных друг с другом объектов.
Диаграмма взаимодействий
Диаграмма последовательности действий и диаграмма взаимодействий отображают сценарий с разных точек зрения.
Слайд 64Диаграммы для сценария добавление учебного курса
Информатика. 2 семестр. Тема
13. UML
Диаграмма последовательности действий для сценария
Слайд 65Диаграммы для сценария добавление учебного курса
Информатика. 2 семестр. Тема
13. UML
Схема классов, участвующих в прецеденте
Слайд 66Резюме
Информатика. 2 семестр. Тема 13. UML
Диаграмма прецедентов представляет внешний вид
системы.
Поток событий отображает выполнение прецедента.
Сценарий описывает реализацию прецедента в
виде взаимодействия групп объектов. Сценарий – это экземпляр прецедента, одиночный «проход» по потому событий прецедента. Прецедент – это «сплетение» сценариев.
Сценарий используется для выделения объектов, классов и взаимодействия объектов, необходимые для исполнения единичного действия, определённого прецедентом.
Поток событий для прецедента описывается словами, а сценарий – диаграммами взаимосвязи:
Диаграмма последовательности действий отображает взаимодействие объектов, упорядоченное по времени.
Диаграмма взаимодействий показывает взаимодействие объектов, организованное вокруг самих объектов и их связи друг с другом.
Слайд 67Определение отношений
Информатика. 2 семестр. Тема 13. UML
Ассоциативные отношения
Нотация языка UML
для ассоциативного отношения
Необходимость отношений
Система состоит из большого числа классов
и объектов.
Её поведение обеспечивается взаимодействием объектов.
Взаимодействие объектов часто описывают как отправку сообщений.
На этапе анализа выделяют два типа отношений – ассоциация и агрегация.
Ассоциация (association) – это двунаправленная семантическая связь между классами. Количество связанных объектов определяется мощностью связи.
Ассоциативная связь не указывает характер потока данных между объектами, а лишь указывает на наличие между ними связи.
Слайд 68Ассоциативные отношения
Информатика. 2 семестр. Тема 13. UML
Ассоциативное отношение на схеме
классов
Слайд 69Агрегационные отношения
Информатика. 2 семестр. Тема 13. UML
Нотация языка UML для
агрегационного отношения
Агрегационное отношение – это специальная форма ассоциации между целым
и его частью или частями.
Агрегация описывается через фразы «часть от» или «содержит».
Класс-агрегат обозначается ромбом на линии связи.
Ассоциативная связь становится агрегационной, если можно утвердительно ответить на вопросы:
Можно ли применить фразу «часть от», чтобы описать отношение?
Происходит ли автоматическое применение некоторых операций над целым к его частям?
Существует ли выраженная асимметрия в отношении, когда один класс подчинён другому?
Например, отношение между предметом и учебным курсом моделируется как агрегация – предмет содержит несколько учебных курсов.
Слайд 70Агрегационные отношения
Информатика. 2 семестр. Тема 13. UML
Ассоциативное и агрегационное отношение
на схеме классов
При выборе типа связи необходимо учитывать предметную область.
Как связаны объекты в рамках моделируемых процессов?
Например, Автомобиль и шины в автомастерской связаны как «целое-и-часть», но в автомагазине отношение будет ассоциативным
Наименование ассоциативной связи должно быть ненаправленным.
Агрегационная связь всегда направлена – «имеет», «включает».
Слайд 71Роли классов в ассоциации
Информатика. 2 семестр. Тема 13. UML
Определение наименования
роли в ассоциации
Вместо наименовании связи на диаграмме классов может указываться
роль ассоциации, указывающей как один класс выступает в связи с другим классом.
Обычно роль может читаться в двух направлениях:
преподаватель играет роль учителя для учебного курса;
учебный курс имеет отношение к преподавателю, играющему роль учителя.
Слайд 72Мощность отношений
Информатика. 2 семестр. Тема 13. UML
Определение мощности отношения
Мощность (multiplicity)
отношения определяет допустимое количество объектов, участвующих в отношении с каждой
стороны.
Индикаторы мощности размещаются с каждой стороны линии связи.
1 – ровно один;
0…* – ноль или больше;
1…* – один или больше;
5…8 – диапазон (5,6, 7 или 8);
4…7, 9 – комбинация (4,5,6,7 или 9).
Слайд 73Возвратные отношения
Информатика. 2 семестр. Тема 13. UML
Возвратное отношение
Возвратная (reflexive) ассоциация
или агрегация определяет взаимодействие объектов одного класса.
Для описания возвратных отношений
используется название роли.
Например: один объект предмет, выступающий в качестве вводного курса (prerequisite), связан с нулём или большим количеством объектов предмет.
Слайд 74Отношения в системе регистрации учебных курсов
Информатика. 2 семестр. Тема 13.
UML
Отношения в сценарии добавить учебный курс
Для сценария добавить учебный курс
можно определить следующие взаимодействующие объекты и типы отношений:
Слайд 75Отношения между пакетами
Информатика. 2 семестр. Тема 13. UML
Отношение между пакетами
Отношение
зависимости между пакетами возникает, если один или несколько классов в
пакете А инициируют связь с одним или более общедоступными классами в пакете В.
Пакет А в этом случае называется пакетом-клиентом (client package)
Пакет В – пакетом-поставщиком (supplier package)
Слайд 76Отношения между пакетами в системе регистрации учебных курсов
Информатика. 2 семестр.
Тема 13. UML
Отношение между пакетами для сценария добавить учебный курс
В
сценарии добавить учебный курс класс добавление учебного курса отправляет сообщение классу менеджер курсов преподавателя. Это указывает на наличие связи между пакетами Интерфейсы и Объекты университета.
Слайд 77Анализ поведения и структуры классов
Информатика. 2 семестр. Тема 13. UML
Класс
реализует ряд обязанностей, от которых зависит поведение (behavior) производных от
него объектов. Обязанности исполняются с помощью определённых для класса операций. В правильно спроектированных классах операция выполняет только одну задачу.
Структура (structure) объекта описывается атрибутами класса. Каждый атрибут – это поле данных, содержащееся в объекте класса. Объект, созданный на основе класса, наделён значениями всех атрибутов класса.
Если какой-либо объект класса не наделён атрибутами (не установлены значения), то необходимо проверить определение класса. Это может означать отсутствие целостности класса и необходимости его разделения.
Общее правило:
Класс должен представлять одну сущность.
Наименование операции должно использовать термины класса, выполняющего операцию, а не класса, запрашивающего её выполнение
Слайд 78Добавление поведения и структуры
Информатика. 2 семестр. Тема 13. UML
Диаграмма последовательности
действий с операциями
Слайд 79Документирование операций
Информатика. 2 семестр. Тема 13. UML
Регистрация операций
Описание операции выбрать
преподавателя
Сигнатура операции (operation signature) представляется её входными и выходными параметрами.
Описание операции должно отражает ёё функциональность и содержать комментарии о параметрах и возвращаемом значении.
Слайд 80Создание и документирование атрибутов
Информатика. 2 семестр. Тема 13. UML
Регистрация атрибутов
Описание
атрибута название
Предварительный список атрибутов формируется на основе анализа предметной области.
Описание атрибута должно содержать информацию о назначении атрибута, а не о его структуре.
Слайд 81Отображение атрибутов и операций
Информатика. 2 семестр. Тема 13. UML
Отображение атрибутов
и операций на диаграмме классов
Слайд 82Ассоциативные классы
Информатика. 2 семестр. Тема 13. UML
Ассоциативный класс оценка на
диаграмме классов
Отношение между классами также может иметь структуру и поведение.
Такое отношение моделируется с помощью ассоциативного класса (association class) который ведёт себя так же обычные классы и тоже может иметь отношения.
Слайд 83Информатика. 2 семестр. Тема 13. UML
Университет машиностроения
Кафедра «Автоматика и процессы
управления»
Блок дисциплин
Информатика и информационные технологии
Спасибо за внимание !!!
Контакты:
mami.testolog.ru
timid@mami.ru
inform437@gmail.com
Содержание:
Основы
проектирования САУ
Метод структурных диаграмм (блок-схемы)
Метод CRC-карточек
Технология структурного анализа и проектирования
UML
Основы ООП
…