Upload
custis
View
793
Download
1
Embed Size (px)
DESCRIPTION
Открытый семинар для студентов в компании CUSTIS (30 мая 2013). Лектор: Юрий Солдаткин, ведущий разработчик C#. Аннотация: UML — это средство графического моделирования объектов при проектировании ПО. Из этого семинара вы узнаете, что из себя представляет этот инструмент, где он необходим, в каких случаях применяется, а также получите конкретные примеры его использования в разработке ИТ-систем. Видеозапись семинара: https://vimeo.com/67624786.
Citation preview
Разработка ПО с помощью UML
Юрий Солдаткин
Ведущий разработчик C#
30 мая 2013 года
Краткое содержание
Зачем нужен UML
Способы использования
TOP-4 диаграмм
Где заканчивается UML
и что с этим делать?
Практика
2/41
История UML
Наскальная живопись
Чертежи
UML
3/41
Программирование
(графическое
представление кода)
Эскизное
моделирование
(набросок от руки)
Способы использования UML
Проектирование
(чертеж)
Способы
использования
UML
Авторы UML
Практика
использования
+ Мартин Фаулер Избирательность
передачи
информации,
нестрогость
i
Полнота
i
Пока
недоразвитые
инструменты.
Эффективность?
i
Executable UML
4/41
Документирование
Способы использования UML
Бизнес-анализ (анализ требований)
Системная
архитектура (проектирование)
Понятия
из предметной области
i
Модель программы;
Понимание чужого кода
i
5/41
Какие бывают диаграммы
6/41
Диаграммы классов
Описывают типы объектов
и статические отношения между ними.
7/41
Классы
8/41
Знакомые слова
ПО UML Класс
(Class)
Класс
(Class)
Наследование
(Inheritance)
Обобщение
(Generalization)
Инстанцирование
(Instantiation)
Классификация
(Classification)
Свойство
(Property)
Атрибут
(Attribute)
Ссылка, связь
(Reference, link)
Ассоциация
(Association)
Метод
(Method)
Операция
(Operation)
Функциональность
(feature)
9/41
Атрибуты
10/41
Ассоциации
Направление ассоциации
Класс-ассоциация ВрЕменное отношение
Двунаправленная ассоциация
11/41
Атрибуты и ассоциации
Чтобы диаграмма
не была перегружена
«линиями»
Операции
видимость имя (список параметров): возвращ.тип {огранич.}
– вигимость: “+” – public, “-” – private, “#” – protected, “~” – package – список парамдтров (моедт быть пустым):
• направление имя : тип = значение по умолчанию – направлднид: in, out, inout (по умолчанию – in)
•Статичдская:
– погчдркивадтся
13/41
Агрегация и композиция
Агрегация (aggregation)
можно озвучить как
«часть – целое»
следует использовать
с особой осторожностью,
так как в нее вкладывают
разный смысл!
Композиция (composition)
это агрегация с доп.
ограничением:
нет совместного владения
в интерфейсе это
«мастер – деталь»
в XML: вложение тега одного
в другой
Можно и не указывать,
тогда предполагается 0..1
Классификация и обобщение
Не всегда слова естественного языка
обозначают одно и то же (это, является):
Шарик – овчарка
Овчарка – это собака
Собаки являются животными
Овчарка – это порода собак
Собака – это биологический вид
15/41
Дополнительные фишки
Параметризованный
класс (шаблон) Параметр
Подстановка
параметра
Перечисление
16/41
Как этим пользоваться?
Не пытайтесь задействовать сразу все
доступные понятия
Подходит для делового языка, но без
технических подробностей и все упрощая
Не надо строить модели для всего
на свете
17/41
Библиотека
18/41
Контакт?
19/41
20/41
Диаграммы последовательности …и как не выстрелить себе в ногу
Показывают поведения нескольких объектов,
упорядоченные по времени их проявления
в рамках одного прецедента.
Прецедент – набор шагов для достижения цели
пользователя.
i
21/41
Диаграммы последовательности
Участник
Найденное
сообщение
Сообщение
Возврат
Активация
Линия жизни
22/41
Когда применять?
Требуется рассмотреть поведение
нескольких объектов в рамках одного
прецедента
Не очень подходит для точного
определения поведения
23/41
Диаграммы деятельности
Описывают логику процедур,
бизнес-процессы и потоки работ,
в том числе параллельные.
24/41
Основные элементы
Начальный узел
Поток / ребро
Операция
Решение
Объединение
Ветвление
Окончание
деятельности
Слияние
Есть диаграмма
вложенной
деятельности
25/41
Декомпозиция операции
Входной параметр Выходной параметр
26/41
Разделы
27/41
Назначение
Диаграммы деятельности описывают
логику процедур, бизнес-процессы
и потоки работ
Диаграммы деятельности также
применяются для:
описания параллельных процессов
блок-схем алгоритмов
(в особенности параллельных алгоритмов)
визуальное программирование workflow
описания прецедентов (use case-ов)
28/41
Мартин Фаулер:
Мне часто приходилось видеть, как
диаграммы деятельности применялись для
описания прецедентов. Опасность такого
подхода состоит в том, что часто эксперты
в предметной области с трудом могут им
следовать. Если дело обстоит так, то лучше
обойтись простой текстовой формой.
29/41
Диаграммы состояний
Описывают поведение одного объекта
в нескольких прецедентах.
30/41
Основные элементы
Начальное
псевдосостояние
Конечное
состояние
Состояние
Переход
Внутренние
активности
31/41
Переходы и их метки
триггер [защита] / действие
Событие
или внешнее действие
Условия
осуществимости перехода
Внутренняя логика перехода
(реализация перехода)
Направление перехода
32/41
Состояния
Самопереход возвращает объект
в то же состояние
Внутренние активности не инициируют
entry и exit
33/41
Супер- и параллельные состояния
34/41
Когда применять?
Описание поведения одного объекта
в нескольких прецедентах
Плохо подходят для описания
взаимодействия нескольких объектов
Полезно применять для классов,
проявляющих интересное поведение
35/41
Не-UML
Сам по себе UML не предполагает
возможностей для расширения нотации
кстати, за это его очень часто критикуют
Применение по соглашению
(conventional use)
нет в стандарте
но широко используется
36/41
Не-UML
UML недостаточно!
«Команды разработчиков часто формируют
собственные локальные соглашения»
«Во многих случаях полезными могут оказаться
различные диаграммы, и не надо избегать
диаграмм, не имеющих отношения к UML,
если не нашлось диаграмм UML, подходящих
для ваших целей»
Примеры:
диаграмма потоков экранов
таблица решений
37/41
Инструменты
MS Visio
UML Graph
Violet
UMLet
ArgoUML
StarUML
…Есть и коммерческие продукты
38/41
Литература
39/41
Практика
40/41