uml for students
DESCRIPTION
Презентация к семинару "Проектирование с использованием UML"TRANSCRIPT
![Page 1: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/1.jpg)
Проектирование с использованием UML
Владислав Иофе
28 апреля 2011 г.
![Page 2: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/2.jpg)
2 из 48
Что обещано?
Мы расскажем о том, что такое UML: для чего он задумывался, и для
чего используется.
Вместе с вами мы рассмотрим:
наиболее употребимые виды диаграмм с примерами
инструменты работы с UML
UML-анекдот
и ответим на вопросы:
почему UML не достаточно
блок-схема – это UML?
После чего вы попрактикуетесь в проектировании небольшой
информационной системы с помощью UML.
![Page 3: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/3.jpg)
3 из 48
Что такое UML
Объектно-ориентированное
программирование
Объектно-ориентированное
проектирование Графическая
нотация
![Page 4: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/4.jpg)
4 из 48
История
1988-92 – основные работы по языкам графического
моделирования, десятки языков
1994 – и
1995 – Unified Method 0.8
1995 – “Three Amigos”
1996 – разработка стандарта переходит к
новый язык объектно-
ориентированного
моделирования
![Page 5: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/5.jpg)
5 из 48
История
1997 – UML 1.0
2001 – UML 1.4.2, сейчас это международный
стандарт ISO
2005 – UML 2.0
2010 – UML 2.3, пока это последняя версия
![Page 6: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/6.jpg)
6 из 48
Способы использования UML
Способы
использования
UML
Эскизное
моделирование (набросок от руки)
Проектирование (чертеж)
Программирование (граф.представление кода)
Практика
использования
+ Мартин Фаулер
Авторы
UML
Executable UML
Избирательность
передачи
информации,
нестрогость
Полнота
Пока
недоразвитые
инструменты.
Эффективность
?
![Page 7: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/7.jpg)
7 из 48
Способы использования UML
Документирование
Бизнес-анализ (анализ требований)
Системная
архитектура (проектирование)
Понятия из
предметной области
Модель программы;
Понимание чужого кода
![Page 8: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/8.jpg)
8 из 48
Виды диаграмм
![Page 9: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/9.jpg)
9 из 48
Допустимый UML
Сам по себе UML не предполагает возможностей для расширения нотации кстати, за это его очень часть критикуют
Распространены соглашения, которых нет в стандарте
UML не достаточно «Команды разработчиков часто формируют собственные
локальные соглашения»
«… не надо избегать диаграмм, не имеющих отношения к UML, если не нашлось диаграмм UML, подходящих для ваших целей»
![Page 10: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/10.jpg)
Диаграммы классов
Описывают типы объектов и
статические отношения между
ними
![Page 11: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/11.jpg)
11 из 48
Основные понятия диаграмм классов
ПО UML
Класс
(Class)
Класс
(Class)
Наследование
(Inheritance)
Обобщение
(Generalization)
Инстанцирование
(Instantiation) Классификация
Свойство
(Property)
Функциональность
(Feature)
Свойство
(Property)
Атрибут
(Attribute)
Ссылка, связь
(Reference, link)
Ассоциация
(Association)
Метод
(Method)
Операция
(Operation)
![Page 12: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/12.jpg)
12 из 48
Типичная диаграмма классов
![Page 13: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/13.jpg)
13 из 48
Основные элементы: классы
![Page 14: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/14.jpg)
14 из 48
Основные элементы: обобщения и классификации
Дискриминатор
![Page 15: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/15.jpg)
15 из 48
Классификация vs. обобщение
Не всегда слова естественного языка
обозначают одно и то же (это, является):
Шарик – овчарка
Овчарка – это собака
Собаки являются животными
Овчарка – это порода собак
Собака – это биологический вид
![Page 16: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/16.jpg)
16 из 48
Основные элементы: атрибуты
видимость имя: тип [кратность] = нач.значение {огранич.}
видимость: “+” – public, “-” – private, “#” – protected, “~” – package
кратность: [0..1] – необязательный,
[1] – обязательный,
[*] – множественный (массив, список)
ограничения: {frozen}, {readOnly}, {ordered}, {unique}, {nonunique}
Вычислимый (производный) атрибут: впереди ставится слеш (“/”)
Статический: подчеркивается
![Page 17: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/17.jpg)
17 из 48
Основные элементы: операции
видимость имя (список параметров): возвращ.тип {огранич.}
видимость: “+” – public, “-” – private, “#” – protected, “~” – package
список параметров (может быть пустым):
направление имя : тип = значение по умолчанию направление: in, out, inout (по умолчанию – in)
Статическая: подчеркивается
![Page 18: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/18.jpg)
18 из 48
Основные элементы: ассоциации
Направление ассоциации
Двунаправленная ассоциация
Класс-ассоциация Временное отношение
![Page 19: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/19.jpg)
19 из 48
Основные элементы: ассоциации vs. атрибуты
ПО UML
Класс
(Class)
Класс
(Class)
Наследование
(Inheritance)
Обобщение
(Generalization)
Инстанцирование
(Instantiation) Классификация
Свойство
(Property)
Функциональность
(Feature)
Свойство
(Property)
Атрибут
(Attribute)
Ссылка, связь
(Reference, link)
Ассоциация
(Association)
Метод
(Method)
Операция
(Operation)
![Page 20: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/20.jpg)
20 из 48
Основные элементы: ассоциации vs. атрибуты
Чтобы диаграмма
не была перегружена
«линиями»
![Page 21: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/21.jpg)
21 из 48
Агрегация и композиция
Агрегация (aggregation) можно озвучить как
«часть – целое»
следует использовать с особой осторожностью, так как в нее вкладывают разный смысл!
Композиция (composition) это агрегация с доп.
ограничением:
нет совместного владения
в интерфейсе это «мастер – деталь»
в XML: вложение тега одного в другой
Можно и не указывать,
тогда
предполагается 0..1
![Page 22: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/22.jpg)
22 из 48
Композиция: полушутя-полусерьѐзно
«Нельзя объять необъятное».
Козьма Прутков
Опровержение:
![Page 23: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/23.jpg)
23 из 48
Основные элементы: перечисление
Перечисление
![Page 24: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/24.jpg)
24 из 48
Модель предметной области Scrum
Sprint
имеет номер
на спринт обязательно формулируется цель!
начинается в определенную дату
заканчивается в назначенный день
а еще на Sprint фиксируется время Daily Scrum Meeting-ов (DSM)
и обязательно назначается время и место демонстрации (чтобы могли придти все желающие)
![Page 25: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/25.jpg)
25 из 48
в Scrum-е работу выполняет команда
команда состоит из сотрудников, есть Scrum Master
не каждый сотрудник обязан быть приписан к определенной команде
при планировании Sprint-а фиксируется степень участия сотрудника
исходя из этого (и длины спринта) вычисляется итоговое количество рабочих часов
при помощи планируемого Focus factor-а (FF) эти часы пересчитываются в общее количество Story point-ов (SP) на Sprint
Модель предметной области Scrum
![Page 26: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/26.jpg)
26 из 48
Модель предметной области Scrum
![Page 27: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/27.jpg)
27 из 48
Пример кода на C#
public abstract class Backlog
{
public Employee ProductOwner { get; set; }
public Team Team { get; set; }
}
public abstract class BacklogItem
{
public long Id { get; set; }
public string Name { get; set; }
// ...
}
public class ProductBacklog : Backlog
{
public ProductBacklogItem[] Items { get; set; }
}
public enum ProductBacklogItemState
{
None,
InSprint,
Done
}
public class ProductBacklogItem : BacklogItem
{
public ProductBacklog Backlog { get; set; }
public ProductBacklogItemState State { get; set; }
![Page 28: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/28.jpg)
28 из 48
Основные элементы диаграммы классов Примечание
Операции
Атрибуты
«Производные»
атрибуты
Обобщение
Класс
Ассоциация
Композиция
Кратность
![Page 29: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/29.jpg)
Переменка
10 минут
![Page 30: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/30.jpg)
Диаграммы последовательности
Показывают поведение
нескольких объектов,
упорядоченные по времени их
проявления в рамках одного
прецедента *
* Прецедент – набор шагов для
достижения цели пользователя
![Page 31: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/31.jpg)
31 из 48
Диаграммы последовательности: Google Checkout
Найденное
сообщение
Сообщение
Возврат
Активация
Самовызов
Линия жизни
Участник
Параметр
![Page 32: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/32.jpg)
32 из 48
Диаграммы последовательности: Google Checkout
Примерно та же диаграмма
в исполнении Google:
Из официальной
документации
Не UML
Но не менее понятна
Выделяет
дополнительные
аспекты
(напр., границы разных
API)
![Page 33: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/33.jpg)
33 из 48
Анекдот из Преисподней
Один политик, один вор и один
работник аудиторской компании
умерли и попали прямо в ад…
umljokes.com
![Page 34: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/34.jpg)
Диаграммы состояний
Описывают поведение одного
объекта в нескольких
прецедентах
![Page 35: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/35.jpg)
35 из 48
Диаграммы состояний: основные элементы
Начальное
псевдосостояние
Конечное
состояние
Состояние
Переход
Внутренние
активности
![Page 36: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/36.jpg)
36 из 48
Основные элементы: переходы и их метки
Событие или
внешнее действие
Условия осуществимости
перехода
Внутренняя логика перехода
(реализация перехода)
Направление перехода
![Page 37: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/37.jpg)
37 из 48
Основные элементы: состояния
Самопереход возвращает объект в то же состояние
Внутренние активности не инициируют entry и exit
![Page 38: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/38.jpg)
38 из 48
Продвинутые элементы: супер- и параллельные состояния
![Page 39: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/39.jpg)
Диаграммы деятельности
Описывают логику процедур,
бизнес-процессы и потоки работ,
в т.ч. параллельные.
![Page 40: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/40.jpg)
40 из 48
Основные элементы
Начальный узел
Поток / ребро
Операция
Решение
Объединение
Ветвление
Конец
деятельности
Слияние
Есть диаграмма
вложенной
деятельности
![Page 41: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/41.jpg)
41 из 48
Основные элементы: декомпозиция операции
Входной параметр Выходной параметр
![Page 42: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/42.jpg)
42 из 48
Основные элементы: разделы
![Page 43: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/43.jpg)
Не-UML
• Диаграммы планов счетов
![Page 44: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/44.jpg)
44 из 48
Когда UML не достаточно
UML
НЕ-UML
Диаграмма плана счетов: личные финансы
![Page 45: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/45.jpg)
45 из 48
Что мы не рассмотрели?
Диаграммы пакетов
Диаграммы прецедентов
Полезно в качестве самообразования
![Page 46: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/46.jpg)
46 из 48
Инструменты
![Page 47: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/47.jpg)
47 из 48
Инструменты
• MS Visio http://softwarestencils.com/uml/
• UML Graph http://www.umlgraph.org
• Violet http://www.horstmann.com/violet/
• UMLet http://www.umlet.com/
• ArgoUML http://argouml.tigris.org/
• StarUML http://staruml.sourceforge.net/en/
• Есть и коммерческие продукты
![Page 48: Uml for students](https://reader033.vdocuments.us/reader033/viewer/2022042814/555e2272d8b42a384f8b4ba1/html5/thumbnails/48.jpg)
48 из 48
Литература