Открытый семинар для студентов в компании CUSTIS (30 мая 2013 года).
Лектор: Юрий Солдаткин, ведущий разработчик C#.
Аннотация: UML — это средство графического моделирования объектов при проектировании ПО. Из этого семинара вы узнаете, что из себя представляет этот инструмент, где он необходим, в каких случаях применяется, а также получите конкретные примеры его использования в разработке ИТ-систем.
Видеозапись семинара: https://vimeo.com/67624786.
4. Программирование
(графическое
представление кода)
Эскизное
моделирование
(набросок от руки)
Способы использования UML
Проектирование
(чертеж)
Способы
использования
UML
Авторы UML
Практика
использования
+ Мартин Фаулер
Избирательность
передачи
информации,
нестрогость
i
Полнота
i
Пока
недоразвитые
инструменты.
Эффективность?
i
Executable UML
4/41
13. Операции
видимость имя (список параметров): возвращ.тип {огранич.}
– вигимость: “+” – public, “-” – private, “#” – protected, “~” – package
– список парамдтров (моедт быть пустым):
• направление имя : тип = значение по умолчанию
– направлднид: in, out, inout (по умолчанию – in)
•Статичдская:
– погчдркивадтся
13/41
14. Агрегация и композиция
Агрегация (aggregation)
можно озвучить как
«часть – целое»
следует использовать
с особой осторожностью,
так как в нее вкладывают
разный смысл!
Композиция (composition)
это агрегация с доп.
ограничением:
нет совместного владения
в интерфейсе это
«мастер – деталь»
в XML: вложение тега одного
в другой
Можно и не указывать,
тогда предполагается 0..1
15. Классификация и обобщение
Не всегда слова естественного языка
обозначают одно и то же (это, является):
Шарик – овчарка
Овчарка – это собака
Собаки являются животными
Овчарка – это порода собак
Собака – это биологический вид
15/41
17. Как этим пользоваться?
Не пытайтесь задействовать сразу все
доступные понятия
Подходит для делового языка, но без
технических подробностей и все упрощая
Не надо строить модели для всего
на свете
17/41
21. Диаграммы последовательности
…и как не выстрелить себе в ногу
Показывают поведения нескольких объектов,
упорядоченные по времени их проявления
в рамках одного прецедента.
Прецедент – набор шагов для достижения цели
пользователя.
i
21/41
23. Когда применять?
Требуется рассмотреть поведение
нескольких объектов в рамках одного
прецедента
Не очень подходит для точного
определения поведения
23/41
25. Основные элементы
Начальный узел
Поток / ребро
Операция
Решение
Объединение
Ветвление
Окончание
деятельности
Слияние
Есть диаграмма
вложенной
деятельности
25/41
28. Назначение
Диаграммы деятельности описывают
логику процедур, бизнес-процессы
и потоки работ
Диаграммы деятельности также
применяются для:
описания параллельных процессов
блок-схем алгоритмов
(в особенности параллельных алгоритмов)
визуальное программирование workflow
описания прецедентов (use case-ов)
28/41
29. Мартин Фаулер:
Мне часто приходилось видеть, как
диаграммы деятельности применялись для
описания прецедентов. Опасность такого
подхода состоит в том, что часто эксперты
в предметной области с трудом могут им
следовать. Если дело обстоит так, то лучше
обойтись простой текстовой формой.
29/41
32. Переходы и их метки
триггер [защита] / действие
Событие
или внешнее действие
Условия
осуществимости перехода
Внутренняя логика перехода
(реализация перехода)
Направление перехода
32/41
35. Когда применять?
Описание поведения одного объекта
в нескольких прецедентах
Плохо подходят для описания
взаимодействия нескольких объектов
Полезно применять для классов,
проявляющих интересное поведение
35/41
36. Не-UML
Сам по себе UML не предполагает
возможностей для расширения нотации
кстати, за это его очень часто критикуют
Применение по соглашению
(conventional use)
нет в стандарте
но широко используется
36/41
37. Не-UML
UML недостаточно!
«Команды разработчиков часто формируют
собственные локальные соглашения»
«Во многих случаях полезными могут оказаться
различные диаграммы, и не надо избегать
диаграмм, не имеющих отношения к UML,
если не нашлось диаграмм UML, подходящих
для ваших целей»
Примеры:
диаграмма потоков экранов
таблица решений
37/41