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

41
Разработка ПО с помощью UML Юрий Солдаткин Ведущий разработчик C# 30 мая 2013 года

description

Открытый семинар для студентов в компании CUSTIS (30 мая 2013). Лектор: Юрий Солдаткин, ведущий разработчик C#. Аннотация: UML — это средство графического моделирования объектов при проектировании ПО. Из этого семинара вы узнаете, что из себя представляет этот инструмент, где он необходим, в каких случаях применяется, а также получите конкретные примеры его использования в разработке ИТ-систем. Видеозапись семинара: https://vimeo.com/67624786.

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

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

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

Юрий Солдаткин

Ведущий разработчик C#

30 мая 2013 года

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

Краткое содержание

Зачем нужен UML

Способы использования

TOP-4 диаграмм

Где заканчивается UML

и что с этим делать?

Практика

2/41

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

История UML

Наскальная живопись

Чертежи

UML

3/41

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

Программирование

(графическое

представление кода)

Эскизное

моделирование

(набросок от руки)

Способы использования UML

Проектирование

(чертеж)

Способы

использования

UML

Авторы UML

Практика

использования

+ Мартин Фаулер Избирательность

передачи

информации,

нестрогость

i

Полнота

i

Пока

недоразвитые

инструменты.

Эффективность?

i

Executable UML

4/41

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

Документирование

Способы использования UML

Бизнес-анализ (анализ требований)

Системная

архитектура (проектирование)

Понятия

из предметной области

i

Модель программы;

Понимание чужого кода

i

5/41

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

Какие бывают диаграммы

6/41

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

Диаграммы классов

Описывают типы объектов

и статические отношения между ними.

7/41

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

Классы

8/41

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

Знакомые слова

ПО UML Класс

(Class)

Класс

(Class)

Наследование

(Inheritance)

Обобщение

(Generalization)

Инстанцирование

(Instantiation)

Классификация

(Classification)

Свойство

(Property)

Атрибут

(Attribute)

Ссылка, связь

(Reference, link)

Ассоциация

(Association)

Метод

(Method)

Операция

(Operation)

Функциональность

(feature)

9/41

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

Атрибуты

10/41

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

Ассоциации

Направление ассоциации

Класс-ассоциация ВрЕменное отношение

Двунаправленная ассоциация

11/41

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

Атрибуты и ассоциации

Чтобы диаграмма

не была перегружена

«линиями»

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

Операции

видимость имя (список параметров): возвращ.тип {огранич.}

– вигимость: “+” – public, “-” – private, “#” – protected, “~” – package – список парамдтров (моедт быть пустым):

• направление имя : тип = значение по умолчанию – направлднид: in, out, inout (по умолчанию – in)

•Статичдская:

– погчдркивадтся

13/41

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

Агрегация и композиция

Агрегация (aggregation)

можно озвучить как

«часть – целое»

следует использовать

с особой осторожностью,

так как в нее вкладывают

разный смысл!

Композиция (composition)

это агрегация с доп.

ограничением:

нет совместного владения

в интерфейсе это

«мастер – деталь»

в XML: вложение тега одного

в другой

Можно и не указывать,

тогда предполагается 0..1

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

Классификация и обобщение

Не всегда слова естественного языка

обозначают одно и то же (это, является):

Шарик – овчарка

Овчарка – это собака

Собаки являются животными

Овчарка – это порода собак

Собака – это биологический вид

15/41

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

Дополнительные фишки

Параметризованный

класс (шаблон) Параметр

Подстановка

параметра

Перечисление

16/41

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

Как этим пользоваться?

Не пытайтесь задействовать сразу все

доступные понятия

Подходит для делового языка, но без

технических подробностей и все упрощая

Не надо строить модели для всего

на свете

17/41

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

Библиотека

18/41

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

Контакт?

19/41

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

20/41

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

Диаграммы последовательности …и как не выстрелить себе в ногу

Показывают поведения нескольких объектов,

упорядоченные по времени их проявления

в рамках одного прецедента.

Прецедент – набор шагов для достижения цели

пользователя.

i

21/41

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

Диаграммы последовательности

Участник

Найденное

сообщение

Сообщение

Возврат

Активация

Линия жизни

22/41

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

Когда применять?

Требуется рассмотреть поведение

нескольких объектов в рамках одного

прецедента

Не очень подходит для точного

определения поведения

23/41

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

Диаграммы деятельности

Описывают логику процедур,

бизнес-процессы и потоки работ,

в том числе параллельные.

24/41

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

Основные элементы

Начальный узел

Поток / ребро

Операция

Решение

Объединение

Ветвление

Окончание

деятельности

Слияние

Есть диаграмма

вложенной

деятельности

25/41

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

Декомпозиция операции

Входной параметр Выходной параметр

26/41

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

Разделы

27/41

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

Назначение

Диаграммы деятельности описывают

логику процедур, бизнес-процессы

и потоки работ

Диаграммы деятельности также

применяются для:

описания параллельных процессов

блок-схем алгоритмов

(в особенности параллельных алгоритмов)

визуальное программирование workflow

описания прецедентов (use case-ов)

28/41

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

Мартин Фаулер:

Мне часто приходилось видеть, как

диаграммы деятельности применялись для

описания прецедентов. Опасность такого

подхода состоит в том, что часто эксперты

в предметной области с трудом могут им

следовать. Если дело обстоит так, то лучше

обойтись простой текстовой формой.

29/41

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

Диаграммы состояний

Описывают поведение одного объекта

в нескольких прецедентах.

30/41

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

Основные элементы

Начальное

псевдосостояние

Конечное

состояние

Состояние

Переход

Внутренние

активности

31/41

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

Переходы и их метки

триггер [защита] / действие

Событие

или внешнее действие

Условия

осуществимости перехода

Внутренняя логика перехода

(реализация перехода)

Направление перехода

32/41

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

Состояния

Самопереход возвращает объект

в то же состояние

Внутренние активности не инициируют

entry и exit

33/41

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

Супер- и параллельные состояния

34/41

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

Когда применять?

Описание поведения одного объекта

в нескольких прецедентах

Плохо подходят для описания

взаимодействия нескольких объектов

Полезно применять для классов,

проявляющих интересное поведение

35/41

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

Не-UML

Сам по себе UML не предполагает

возможностей для расширения нотации

кстати, за это его очень часто критикуют

Применение по соглашению

(conventional use)

нет в стандарте

но широко используется

36/41

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

Не-UML

UML недостаточно!

«Команды разработчиков часто формируют

собственные локальные соглашения»

«Во многих случаях полезными могут оказаться

различные диаграммы, и не надо избегать

диаграмм, не имеющих отношения к UML,

если не нашлось диаграмм UML, подходящих

для ваших целей»

Примеры:

диаграмма потоков экранов

таблица решений

37/41

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

Инструменты

MS Visio

UML Graph

Violet

UMLet

ArgoUML

StarUML

…Есть и коммерческие продукты

38/41

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

Литература

39/41

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

Практика

40/41

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

Спасибо!

Вопросы?

Юрий Солдаткин

[email protected]

41/41