1 из 42 Проект ВИРТУОЗ Н.Новгород, 2004г. SE201. Мод.11: Виды диаграмм, их назначение, последовательность построения © Бабич А.В. 2004г Модуль 11 Курс SE201 Введение в программную инженерию Проект ВИРТУОЗ, ННГУ, Н.Новгород, 2004 г. Бабич А.В., Полтава, Украина, ПГПУ, _____________________________________________________ : Виды диаграмм, их назначение, последовательность построения
2 из 42 Проект ВИРТУОЗ Н.Новгород, 2004г. SE201. Мод.11: Виды диаграмм, их назначение, последовательность построения © Бабич А.В. 2004г Виды диаграмм, их назначение, последовательность построения О разновидностях диаграмм и о том, как применение UML вписывается в процесс ООП Унифицированный язык моделирования © Бабич А.В. 2004
3 из 42 Проект ВИРТУОЗ Н.Новгород, 2004г. SE201. Мод.11: Виды диаграмм, их назначение, последовательность построения © Бабич А.В. 2004г О чем мы узнаем… Почему нужно несколько видов диаграмм Виды диаграмм ООП и последовательность построения диаграмм
4 из 42 Проект ВИРТУОЗ Н.Новгород, 2004г. SE201. Мод.11: Виды диаграмм, их назначение, последовательность построения © Бабич А.В. 2004г Почему нужно несколько видов диаграмм
5 из 42 Проект ВИРТУОЗ Н.Новгород, 2004г. SE201. Мод.11: Виды диаграмм, их назначение, последовательность построения © Бабич А.В. 2004г Понятие диаграммы и модели (Буч) Диаграмма - графическое представление множества элементов. Обычно изображается в виде графа с вершинами (сущностями) и ребрами (отношениями). С помощью диаграмм можно визуализировать систему с различных точек зрения. Моделью называется семантически замкнутая абстракция системы система рассматривается с разных точек зрения с помощью моделей, многообразные представления которых отображены в форме диаграмм.
6 из 42 Проект ВИРТУОЗ Н.Новгород, 2004г. SE201. Мод.11: Виды диаграмм, их назначение, последовательность построения © Бабич А.В. 2004г Почему нужно несколько видов диаграмм Сложную систему можно представить в виде набора небольших и почти независимых моделей Ни одна из моделей не является достаточной Каждая модель выражает разный уровень абстракции Каждая модель соответствует некоторой точке зрения на проектируемую систему
7 из 42 Проект ВИРТУОЗ Н.Новгород, 2004г. SE201. Мод.11: Виды диаграмм, их назначение, последовательность построения © Бабич А.В. 2004г Почему нужно несколько видов диаграмм Диаграммы – лишь средство визуализации модели Одна отдельная диаграмма не является моделью Лишь набор диаграмм составляет модель системы и наиболее полно ее описывает
8 из 42 Проект ВИРТУОЗ Н.Новгород, 2004г. SE201. Мод.11: Виды диаграмм, их назначение, последовательность построения © Бабич А.В. 2004г Виды диаграмм
9 из 42 Проект ВИРТУОЗ Н.Новгород, 2004г. SE201. Мод.11: Виды диаграмм, их назначение, последовательность построения © Бабич А.В. 2004г Виды диаграмм Виды диаграмм: –диаграмма прецедентов –диаграмма классов –диаграмма объектов –диаграмма последовательностей –диаграмма взаимодействия –диаграмма состояний –диаграмма активности –диаграмма развертывания –… Не всегда нужно строить все диаграммы Правильный выбор нужных диаграмм позволит сформулировать вопросы о системе и выявить ее «скользкие» моменты, которые необходимо учесть
10 из 42 Проект ВИРТУОЗ Н.Новгород, 2004г. SE201. Мод.11: Виды диаграмм, их назначение, последовательность построения © Бабич А.В. 2004г Диаграмма прецедентов (use case diagram) Прецедент (use case) – описание отдельного аспекта поведения системы с точки зрения пользователя (Буч) Прецедент Прецедент позволяет сформировать пользовательские требования к системе Пример:
11 из 42 Проект ВИРТУОЗ Н.Новгород, 2004г. SE201. Мод.11: Виды диаграмм, их назначение, последовательность построения © Бабич А.В. 2004г Пример диаграммы прецедентов
12 из 42 Проект ВИРТУОЗ Н.Новгород, 2004г. SE201. Мод.11: Виды диаграмм, их назначение, последовательность построения © Бабич А.В. 2004г Пример диаграммы прецедентов
13 из 42 Проект ВИРТУОЗ Н.Новгород, 2004г. SE201. Мод.11: Виды диаграмм, их назначение, последовательность построения © Бабич А.В. 2004г Диаграмма классов (class diagram) Класс – категория вещей, которые имеют общие атрибуты и операции (Буч) Класс Диаграмма классов – конечный результат проектирования и отправная точка процесса разработки Диаграммы классов полезны также при анализе предметной области Пример: 12
14 из 42 Проект ВИРТУОЗ Н.Новгород, 2004г. SE201. Мод.11: Виды диаграмм, их назначение, последовательность построения © Бабич А.В. 2004г Пример диаграммы классов
15 из 42 Проект ВИРТУОЗ Н.Новгород, 2004г. SE201. Мод.11: Виды диаграмм, их назначение, последовательность построения © Бабич А.В. 2004г Еще пример
16 из 42 Проект ВИРТУОЗ Н.Новгород, 2004г. SE201. Мод.11: Виды диаграмм, их назначение, последовательность построения © Бабич А.В. 2004г Диаграмма объектов (Object diagram) Объект – экземпляр класса Объект На диаграмме объектов показаны объекты и их отношения в некоторый момент времени Пример:
17 из 42 Проект ВИРТУОЗ Н.Новгород, 2004г. SE201. Мод.11: Виды диаграмм, их назначение, последовательность построения © Бабич А.В. 2004г Пример диаграммы объектов
18 из 42 Проект ВИРТУОЗ Н.Новгород, 2004г. SE201. Мод.11: Виды диаграмм, их назначение, последовательность построения © Бабич А.В. 2004г Еще пример
19 из 42 Проект ВИРТУОЗ Н.Новгород, 2004г. SE201. Мод.11: Виды диаграмм, их назначение, последовательность построения © Бабич А.В. 2004г Диаграмма последовательностей (sequence diagram) Диаграмма последовательностей отображает взаимодействие объектов в динамике Диаграммы последовательностей часто используются для точного определения логики сценария Пример:
20 из 42 Проект ВИРТУОЗ Н.Новгород, 2004г. SE201. Мод.11: Виды диаграмм, их назначение, последовательность построения © Бабич А.В. 2004г Пример диаграммы последовательностей
21 из 42 Проект ВИРТУОЗ Н.Новгород, 2004г. SE201. Мод.11: Виды диаграмм, их назначение, последовательность построения © Бабич А.В. 2004г Еще пример
22 из 42 Проект ВИРТУОЗ Н.Новгород, 2004г. SE201. Мод.11: Виды диаграмм, их назначение, последовательность построения © Бабич А.В. 2004г Диаграмма взаимодействия (collaboration diagram) Диаграммы взаимодействия показывают как элементы системы работают совместно для достижения общих целей Диаграммы взаимодействия аналогичны диаграммам последовательностидиаграммам последовательности Пример:
23 из 42 Проект ВИРТУОЗ Н.Новгород, 2004г. SE201. Мод.11: Виды диаграмм, их назначение, последовательность построения © Бабич А.В. 2004г Пример диаграммы взаимодействия
24 из 42 Проект ВИРТУОЗ Н.Новгород, 2004г. SE201. Мод.11: Виды диаграмм, их назначение, последовательность построения © Бабич А.В. 2004г Еще пример
25 из 42 Проект ВИРТУОЗ Н.Новгород, 2004г. SE201. Мод.11: Виды диаграмм, их назначение, последовательность построения © Бабич А.В. 2004г Диаграмма состояний (statechart diagram) Объекты имеют как поведение, так и состояниесостояние В каждый момент времени объект находится в некотором определенном состоянии Диаграмма состояний показывает, как объект переходит из одного состояния в другое Пример:
26 из 42 Проект ВИРТУОЗ Н.Новгород, 2004г. SE201. Мод.11: Виды диаграмм, их назначение, последовательность построения © Бабич А.В. 2004г Пример диаграммы состояний
27 из 42 Проект ВИРТУОЗ Н.Новгород, 2004г. SE201. Мод.11: Виды диаграмм, их назначение, последовательность построения © Бабич А.В. 2004г Более сложная диаграмма
28 из 42 Проект ВИРТУОЗ Н.Новгород, 2004г. SE201. Мод.11: Виды диаграмм, их назначение, последовательность построения © Бабич А.В. 2004г Диаграмма активности (activity diagram) Диаграммы деятельности – частный случай диаграмм состояний Такие диаграммы детализируют особенности алгоритмической и логической реализации операций, выполняемых системой. Пример
29 из 42 Проект ВИРТУОЗ Н.Новгород, 2004г. SE201. Мод.11: Виды диаграмм, их назначение, последовательность построения © Бабич А.В. 2004г Примеры диаграмм активности
30 из 42 Проект ВИРТУОЗ Н.Новгород, 2004г. SE201. Мод.11: Виды диаграмм, их назначение, последовательность построения © Бабич А.В. 2004г Еще пример
31 из 42 Проект ВИРТУОЗ Н.Новгород, 2004г. SE201. Мод.11: Виды диаграмм, их назначение, последовательность построения © Бабич А.В. 2004г Диаграмма развертывания (deployment diagram) Диаграммы развертывания предназначены лишь для распределенных компьютерных систем Диаграмма развертывания показывает физическую архитектуру компьютерной системы Пример:
32 из 42 Проект ВИРТУОЗ Н.Новгород, 2004г. SE201. Мод.11: Виды диаграмм, их назначение, последовательность построения © Бабич А.В. 2004г Пример диаграммы развертывания
33 из 42 Проект ВИРТУОЗ Н.Новгород, 2004г. SE201. Мод.11: Виды диаграмм, их назначение, последовательность построения © Бабич А.В. 2004г Еще пример
34 из 42 Проект ВИРТУОЗ Н.Новгород, 2004г. SE201. Мод.11: Виды диаграмм, их назначение, последовательность построения © Бабич А.В. 2004г Тот же пример в краткой форме
35 из 42 Проект ВИРТУОЗ Н.Новгород, 2004г. SE201. Мод.11: Виды диаграмм, их назначение, последовательность построения © Бабич А.В. 2004г ООП и последовательность построения диаграмм
36 из 42 Проект ВИРТУОЗ Н.Новгород, 2004г. SE201. Мод.11: Виды диаграмм, их назначение, последовательность построения © Бабич А.В. 2004г Выбор необходимых диаграмм (Г. Буч) Какие именно виды диаграмм лучше всего отражают архитектуру системы и возможный технический риск, связанный с проектом? Какие из диаграмм удобнее всего превратить в инструмент контроля за разработкой системы? На всякий случай сохраняйте даже забракованные диаграммы!
37 из 42 Проект ВИРТУОЗ Н.Новгород, 2004г. SE201. Мод.11: Виды диаграмм, их назначение, последовательность построения © Бабич А.В. 2004г Последовательность построения диаграмм Если у вас нет опыта объектно-ориентированной разработки, воспользуйтесь следующими рекомендациями: –Начинайте применять идею абстрагирования в отношении конкретных моделей. Очень полезны коллективные упражнения с анализом прецедентов –Постройте модель простой статической части задачи с помощью классов, зависимостей, обобщений и ассоциаций –Примените простые диаграммы последовательностей или кооперации для моделирования динамической части задачи. Хорошо начать с построения модели взаимодействия пользователя с системой.
38 из 42 Проект ВИРТУОЗ Н.Новгород, 2004г. SE201. Мод.11: Виды диаграмм, их назначение, последовательность построения © Бабич А.В. 2004г Последовательность построения диаграмм (продолжение) В соответствии с принципами ООП, диаграммы можно строить в такой последовательности: –диаграмма прецедентов –диаграмма классов –диаграмма объектов –диаграмма последовательностей –диаграмма взаимодействия –диаграмма состояний –диаграмма активности –диаграмма развертывания Существуют разные подходы к последовательности построения диаграмм. Не всегда нужно строить все диаграммы!
39 из 42 Проект ВИРТУОЗ Н.Новгород, 2004г. SE201. Мод.11: Виды диаграмм, их назначение, последовательность построения © Бабич А.В. 2004г Вопросы ? ?
40 из 42 Проект ВИРТУОЗ Н.Новгород, 2004г. SE201. Мод.11: Виды диаграмм, их назначение, последовательность построения © Бабич А.В. 2004г Вопросы и упражнения Вопросы: –Почему нужно строить разные диаграммы при моделировании системы? –Какие диаграммы соответствуют статическому представлению о системе? –Какие диаграммы представляют систему в динамике? Упражнения: –Вы разрабатываете компьютерную программу для игры в шахматы. Какая диаграмма UML была бы полезной в этом случае? Почему? –Составьте список вопросов потенциальному пользователю такой программы? Объясните, почему вы хотели бы задать именно их?
41 из 42 Проект ВИРТУОЗ Н.Новгород, 2004г. SE201. Мод.11: Виды диаграмм, их назначение, последовательность построения © Бабич А.В. 2004г Использованные материалы При разработке представленных материалов с разрешения авторов или правообладателей использовались следующие источники: Г.Буч, А. Джекобсон, Дж. Рамбо. UML: Руководство пользователя Унифицированный язык моделирования ПО. Scott W. Ambler Copyright © 1998 Software Development magazine Леоненков. Самоучитель по UML Дж. Шмулер. Освой самостоятельно UML за 24 часа, 2-е издание: пер. с англ. – М.: Изд. Дом «Вильямс», Sample: The UML © Dr. Richard J. Botting, California State University OMG Unified Modeling Language Specification. Copyright © 2000, Object Management Group
42 из 42 Проект ВИРТУОЗ Н.Новгород, 2004г. SE201. Мод.11: Виды диаграмм, их назначение, последовательность построения © Бабич А.В. 2004г О проекте ВИРТУОЗ Цель проекта "Виртуоз" - подготовка преподавателей к внедрению в ВУЗах России и других стран СНГ новой специальности – "Информационные технологии". Основная задача проекта - совершенствование методологии преподавания программной инженерии. Реализация этой программы направлена на создание надёжной образовательной основы для дальнейшего развития отечественной ИТ-индустрии. В рамках проекта (август-декабрь 2004 г.) - обучение современным методикам программной инженерии, передовым информационным технологиям, получение опыта работы по созданию учебных курсов, соответствующих международным образовательным стандартам IEEE/ACM Computing Curricula 2001: Computer Science и Software Engineering, а также прохождение стажировки в корпорации Intel. Проект "Виртуоз" выполнялся в Нижегородском государственном университете им. Н.И. Лобачевского по инициативе компании Intel при поддержке Microsoft, IBM, Borland, Лаборатория Касперского и др.