SlideShare a Scribd company logo
Разработка ПО с помощью 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
Спасибо!
Вопросы?
Юрий Солдаткин
soldatkin@custis.ru
41/41

More Related Content

PDF
Uml for students
ODP
Почему UML — плохой выбор для обучения аналитиков
PDF
Практический анализ и визуальное моделирование на UML
PPT
Babich Presentation
PPT
UML: Kinds of Diagram
PPT
Базовые принципы и понятия технологии разработки объектно-ориентированных инф...
PPTX
М.Бухарин -- DSM в архитектурном проектировании
PPTX
Проверка для DMN: проектирование мультиагентной интеллектуальной системы
Uml for students
Почему UML — плохой выбор для обучения аналитиков
Практический анализ и визуальное моделирование на UML
Babich Presentation
UML: Kinds of Diagram
Базовые принципы и понятия технологии разработки объектно-ориентированных инф...
М.Бухарин -- DSM в архитектурном проектировании
Проверка для DMN: проектирование мультиагентной интеллектуальной системы

What's hot (20)

PDF
UML: Первое знакомство
PPT
Понятия технологии разработки объектно-ориентированных информационных систем ...
PPT
tema1
PDF
С.Ковалёв -- теория категорий как математическое основание MBSE
PPT
МАСТЕР-КЛАСС. Моделирование на UML
PPTX
Нотация UML / UML Notation
PPT
Необъектные модели предметной области
PPTX
А.Левенчук -- системноинженерное мышление
PDF
Неотрефлексированный сдвиг парадигмы: от поколений языков программирования вы...
PPTX
Моделирование как метод познания
PPTX
язык Uml. диаграмма использования. (19)
PPT
Idef0
PPT
структура языка UML
PPT
МАПО 2013 Лекция 08 Бизнес-правила IDEF0
PDF
RDSDataSource: Построение UML диаграмм
PPTX
Software Engineering Knowledge Matrix
PPTX
Системный подход в стандартах
PDF
Лекция 3. UML (dynamic logical model)
PPT
Диаграмма развертывания
UML: Первое знакомство
Понятия технологии разработки объектно-ориентированных информационных систем ...
tema1
С.Ковалёв -- теория категорий как математическое основание MBSE
МАСТЕР-КЛАСС. Моделирование на UML
Нотация UML / UML Notation
Необъектные модели предметной области
А.Левенчук -- системноинженерное мышление
Неотрефлексированный сдвиг парадигмы: от поколений языков программирования вы...
Моделирование как метод познания
язык Uml. диаграмма использования. (19)
Idef0
структура языка UML
МАПО 2013 Лекция 08 Бизнес-правила IDEF0
RDSDataSource: Построение UML диаграмм
Software Engineering Knowledge Matrix
Системный подход в стандартах
Лекция 3. UML (dynamic logical model)
Диаграмма развертывания
Ad

Similar to Разработка ПО с помощью UML (20)

PPTX
UML_Yznaika.com.pptx
PPT
Денис Иванов
PDF
Essentials of Visual modeling and UML (rus) by SkillsCup.com
PPTX
Lekcia14
PPT
Нотации оформления требований
PPTX
Ddd happy dev-2013-tsepkov
PPT
Ddd softwarepeople-2013-tsepkov
PDF
03 - Практика UML. Прецеденты
PPT
Введення Uml
PPTX
Cистемная архитектура вместо требований
PPT
Ситуационная инженерия методов
DOC
Конспект лекций по курсу "Шаблоны разработки ПО"
PPT
п15 16
PPT
семинар Uml
PPT
Activity diagram
PPTX
Unified modeling language basic-part 1
PPTX
Киев, BA Con 2017
PPT
Модель системы — архитектура для Agile-разработки
PPT
Domain Driven Design: модель вместо требования
PPT
Prez
UML_Yznaika.com.pptx
Денис Иванов
Essentials of Visual modeling and UML (rus) by SkillsCup.com
Lekcia14
Нотации оформления требований
Ddd happy dev-2013-tsepkov
Ddd softwarepeople-2013-tsepkov
03 - Практика UML. Прецеденты
Введення Uml
Cистемная архитектура вместо требований
Ситуационная инженерия методов
Конспект лекций по курсу "Шаблоны разработки ПО"
п15 16
семинар Uml
Activity diagram
Unified modeling language basic-part 1
Киев, BA Con 2017
Модель системы — архитектура для Agile-разработки
Domain Driven Design: модель вместо требования
Prez
Ad

More from CUSTIS (20)

PDF
Три истории микросервисов, или MSA для Enterprise
PPTX
Долгоживущие ИТ в динамичном ритейле
PDF
Будущее уже наступило: от Agile к бирюзовым организациям
PDF
Как выбрать для проекта практики проектирования и работы с требованиями
PDF
Диаграммы учета как средство для наглядного и целостного отображения правил у...
PPTX
Сотрудничество с корпорациями: рецепты из практики
PPTX
Agile — ответ на вызовы третьей промышленной революции
PPTX
Опыт построения микросервисной архитектуры в цифровом банке
PDF
Золотая лихорадка MSA: почему нам не подошли микросервисы?
PPT
Барьеры микросервисной архитектуры
PPTX
Три истории микросервисов
PPTX
От монолитных моделей предметной области — к модульным
PPTX
Проблемы управления правами доступа к информационным системам крупной торгово...
PDF
Будущее omni-channel маркетинга: инструменты, кейсы и цифры
PPTX
Agile и управление знаниями в ИТ-проектах
PDF
State of the .Net Performance
PPTX
Ответственность за качество в разных ИТ-проектах: в чем она и как ее разделять
PDF
Опыт применения метода ATAM для оценки архитектуры
PPTX
Гибридный подход к управлению правами доступа: когда стандартного IDM не хватает
PPTX
Собираем кубик Рубика: восстановление архитектурного описания корпоративной р...
Три истории микросервисов, или MSA для Enterprise
Долгоживущие ИТ в динамичном ритейле
Будущее уже наступило: от Agile к бирюзовым организациям
Как выбрать для проекта практики проектирования и работы с требованиями
Диаграммы учета как средство для наглядного и целостного отображения правил у...
Сотрудничество с корпорациями: рецепты из практики
Agile — ответ на вызовы третьей промышленной революции
Опыт построения микросервисной архитектуры в цифровом банке
Золотая лихорадка MSA: почему нам не подошли микросервисы?
Барьеры микросервисной архитектуры
Три истории микросервисов
От монолитных моделей предметной области — к модульным
Проблемы управления правами доступа к информационным системам крупной торгово...
Будущее omni-channel маркетинга: инструменты, кейсы и цифры
Agile и управление знаниями в ИТ-проектах
State of the .Net Performance
Ответственность за качество в разных ИТ-проектах: в чем она и как ее разделять
Опыт применения метода ATAM для оценки архитектуры
Гибридный подход к управлению правами доступа: когда стандартного IDM не хватает
Собираем кубик Рубика: восстановление архитектурного описания корпоративной р...

Разработка ПО с помощью UML