SlideShare a Scribd company logo
1 of 27
UML. Взгляд со стороны
или
«Как UML удерживает аналитиков в
прошлом»
Гиматдинов Ильдар
ООО «НПО ВС»
ildar.gimatdinov@gmail.com
О себе
11летвIT:
• 4годакакразработчик,
• 3каканалитик,
• 4какархитектор.
Специализация:
• Управлениетребованиями;
• Планированиеиорганизацияработ;
• Госсектор.
2
Чем занимаются аналитики
• Изучаютпредметнуюобласть,описываютеев
видемодели
• Выявляютиформализуюттребования
• Формируютмодельпрограммнойсистемы
• Пишутразличнуюдокументацию
3
История создания и развития UML
Ada/Booch State Charts
2017
2015
2010
2005
2000
1997
1995
1990
Booch 91
Booch 93
OMT
OMT 94
OOSE
OOSE 94 Fusion
RDD
OBA OOA
OODA
OOSA
Fusion Team
SOMA
OPEN/OML
MOSES
RD
UML 0.8
UML 0.9
UML 1.1
UML 1.4
UML 2.0
UML 1.5
UML 2.1
UML 2.2
SysML 1.1
xUML
UML 2.5
UML 2.3
UML 2.4
UML 1.3
SysML 1.2
SysML 1.3
SysML 1.4
SoaML 1.0
FUML 1.0
FUML 1.1
FUML 1.2
Unified
Process
История UML
4
Взгляд со стороны
• ВсеметодикииспользованияUML«ходятвокруг»
UseCaseDrivenDevelopment.
• МоделямнаUMLнехватаетцелостности.
• Объектно-ориентированныйподходUML
ограничиваетвозможностианалитика.
5
Аспекты представления
SeqDUCD
Системный вариант
использования 2
Системный вариант
использования 1
Актер 2
Актер 3
Актер 1
Группа 1
Системный вариант
использования 4
Системный вариант
использования 5
Системный вариант
использования 3
«include»
«include»
«include»
Актер 4
Актер 5
Объект 1 Объект 2 Объект 3 Объект 4
yyy
StateDClassD
Статус 1 Статус 2 Статус 3
Статус 4
Статус 5
Статус 7Статус 6
поле 1
поле 2
поле 3
поле 4
Класс 1
поле 1
поле 2
поле 3
поле 4
Класс 2
поле 1
поле 2
поле 3
поле 4
Класс 3
поле 1
поле 2
поле 3
поле 4
Класс 4
поле 1
поле 2
поле 3
поле 4
Класс 6
«used»
поле 1
поле 2
поле 3
поле 4
«enumeration»
Класс 5
«used»
6
Гибридная диаграмма
SeqDUCD
Системный вариант
использования 2
Системный вариант
использования 1
Актер 2
Актер 3
Актер 1
Группа 1
Системный вариант
использования 4
Системный вариант
использования 5
Системный вариант
использования 3
«include»
«include»
«include»
Актер 4
Актер 5
Объект 1 Объект 2 Объект 3 Объект 4
yyy
StateDClassD
Статус 1 Статус 2 Статус 3
Статус 4
Статус 5
Статус 7Статус 6
поле 1
поле 2
поле 3
поле 4
Класс 1
поле 1
поле 2
поле 3
поле 4
Класс 2
поле 1
поле 2
поле 3
поле 4
Класс 3
поле 1
поле 2
поле 3
поле 4
Класс 4
поле 1
поле 2
поле 3
поле 4
Класс 6
«used»
поле 1
поле 2
поле 3
поле 4
«enumeration»
Класс 5
«used»
Требование 1 Требование 2 Требование 3
Системный вариант
использования
«trace» «trace» «trace»
Web форма 1
«realize»
Компонент 1
«realize»
7
Уровни представления
Уровень бизнеса
Уровень приложений
UCD
Бизнес вариант
использования 2
Бизнес вариант
использования 1
Актер 2
Актер 3
Актер 4
Актер 1
Группа 1
Бизнес вариант
использования 4
Бизнес вариант
использования 5
Бизнес вариант
использования 3
«include»
«include»
«include»
AD
Action 1
Action 2
[yyy]
[xxx]
Action 3
[zzz]
[www]
Action 4
[rrr]
[qqq]
Action 5 Action 6 Action 7
Action 8
SeqDUCD
Системный вариант
использования 2
Системный вариант
использования 1
Актер 2
Актер 3
Актер 1
Группа 1
Системный вариант
использования 4
Системный вариант
использования 5
Системный вариант
использования 3
«include»
«include»
«include»
Актер 4
Актер 5
Объект 1 Объект 2 Объект 3 Объект 4
yyy
8
Связь между уровнями
Уровень бизнеса
Уровень приложений
UCD
Бизнес вариант
использования 2
Бизнес вариант
использования 1
Актер 2
Актер 3
Актер 4
Актер 1
Группа 1
Бизнес вариант
использования 4
Бизнес вариант
использования 5
Бизнес вариант
использования 3
«include»
«include»
«include»
AD
Action 1
Action 2
[yyy]
[xxx]
Action 3
[zzz]
[www]
Action 4
[rrr]
[qqq]
Action 5 Action 6 Action 7
Action 8
SeqDUCD
Системный вариант
использования 2
Системный вариант
использования 1
Актер 2
Актер 3
Актер 1
Группа 1
Системный вариант
использования 4
Системный вариант
использования 5
Системный вариант
использования 3
«include»
«include»
«include»
Актер 4
Актер 5
Объект 1 Объект 2 Объект 3 Объект 4
yyy
9
Требование 1 Требование 2 Требование 3
Системный вариант
использования
«trace» «trace» «trace»
Web форма 1
«realize»
Компонент 1
«realize»
Archimate. Уровни и аспекты
10
Сотрудник
туроператора
«Бизнес-процесс»
Продажа тура
«Бизнес-сервис»
Оформление договора
«Бизнес-функция»
Подготовка договора
«Программная функция»
Поверка удостоверения
личности
Исполняет
Используется в
Используется в Используется в
Интернет
«Программный сервис»
Банковское обслуживание
Используется для
«Бизнес-функция»
Прием оплаты
Используется для
безналичных платежей
Сервер
«Компонент»
Система ведения договоров
«Бизнес-функция»
Поверка личности
Используется в
«Технологический сервис»
Хостинг приложений
Используется для
Реализует
Терминал
Сервер приложений
«Программный сервис»
Взаимодействие с МВДРеализует
Договор
Сервис-ориентированная архитектура
Бизнес-процесс 1 Бизнес-процесс 2
Сервис 1 Сервис 2 Сервис 3
Операция 1 Операция 2 Операция 3 Операция 4 Операция 5
11
ОО моделирование
(Уровень приложений)
12
+ продать(:Название товара, :Деньги) :Товар
«interface»
Умеющий продавать
type
МагазинЧеловек
СО моделирование на SoaML
Бизнес-архитектура
13
«ServiceArchitecture»
Архитектура розничной сети
:Продажа товара
покупатель продавец
:Магазин:Человек
СО моделирование на SoaML
Бизнес-процесс
14
продавец :Продавецпокупатель :Покупатель
Продажа товара
СО моделирование на SoaML
Бизнес-сервис
15
«ServiceContract»
Договор купли-продажи
продавец :Продавецпокупатель :Покупатель
продать ( )
«Provider»
Продавец
«Consumer»
Покупатель
СО моделирование на SoaML
Бизнес-процесс (Уровень приложений)
16
продавец :Продавецпокупатель :Покупатель
продать(:Название товара, :Деньги)
:Товар
СО моделирование на SoaML
Сервисы (Уровень приложений)
17
«Participant»
Магазин
«Participant»
Человек
Умеющий продавать
:Желание
продавать
:Потребность
покупать
+ продать(:Название товара, :Деньги) :Товар
«interface»
Умеющий продавать
«ServiceInterface»
Желание продавать
«ServiceInterface»
Потребность покупать
«use»
Сравнение ОО и СО
моделирования на SoaML
18
МагазинЧеловекООМ
СОМ
Умеющий продавать
«Participant»
Магазин
«Participant»
Человек
Умеющий продавать
:Желание
продавать
:Потребность
покупать
СО моделирование на SoaML
Общий вид
Уровень бизнеса
Уровень приложений
SoaML
«ServiceArchitecture»
Dealer Network Architecture
ps :Purchasing Service
dealer :Dealer
ship :Shipstatus :Ship Status
shipper :Shipper
mfg :Manufacturer
buyer
enquire
ship info agent
from
seller
SoaML
«Participant»
Manufacturer
«Service» :Purchasing
orderProcessor :OrderProcessor
«Service» :Purchasing
:Invoicer
:Productions
:Shipper
«Service» :Purchasing
«Service» :InvoisingService
«Service» :ShippingService
«Request» :InvoisingService
«Request» :ShippingService
«Request» :Purchasing
19
Парадигмы
20
Сервис-
ориентированная
парадигма
Компонентно-
ориентированная
парадигма
Объектно-
ориентированная
парадигма
Сервис-
ориентированная
парадигма
Компонентно-
ориентированная
парадигма
Объектно-
ориентированная
парадигма
UML + SoaML В действительности
Объектно-ориентированная модель
21
гулять(:Собака)
ЧеловекСобака
Сервис-ориентированная модель
22
ЧеловекСобака
Сервис
«Гулять»
«Реализует»«Кто использует»
Сравнение ОО и СО
моделирования
23
гулять(:Собака)
ЧеловекСобака
ЧеловекСобака
Сервис
«Гулять»
«Реализует»«Кто использует»
ООМ
СОМ
ОО + СО моделирование
24
спать()
танцевать()
Человек
лаять()
Собака
Сервис
«Гулять»
«Реализует»«Кто использует»
Archimate. СО моделирование
25
Сотрудник
туроператора
«Бизнес-процесс»
Продажа тура
«Бизнес-сервис»
Оформление договора
«Бизнес-функция»
Подготовка договора
«Программная функция»
Поверка удостоверения
личности
Исполняет
Используется в
Используется в Используется в
Интернет
«Программный сервис»
Банковское обслуживание
Используется для
«Бизнес-функция»
Прием оплаты
Используется для
безналичных платежей
Сервер
«Компонент»
Система ведения договоров
«Бизнес-функция»
Поверка личности
Используется в
«Технологический сервис»
Хостинг приложений
Используется для
Реализует
Терминал
Сервер приложений
«Программный сервис»
Взаимодействие с МВДРеализует
Договор
Вместо заключения
• Осмысленновыбирайтеподходакописанию
предметнойобласти.
• Изучайтеновыетехнологии,онипредоставляют
возможностьвзглянутьнапривычныезадачис
новойточкизрения.
• Нефиксируйтесвоюточкузренияв
«железобетонныеконструкции».
26
Спасибо за внимание
Гиматдинов Ильдар
ООО «НПО ВС»
ildar.gimatdinov@gmail.com

More Related Content

What's hot

Бизнес-анализ: грани разумного
Бизнес-анализ: грани разумногоБизнес-анализ: грани разумного
Бизнес-анализ: грани разумногоSQALab
 
Управление знаниями в IT-компаниях
Управление знаниями в IT-компаниях Управление знаниями в IT-компаниях
Управление знаниями в IT-компаниях SQALab
 
Как построить системный анализ в продуктовых Agile-командах
Как построить системный анализ в продуктовых Agile-командахКак построить системный анализ в продуктовых Agile-командах
Как построить системный анализ в продуктовых Agile-командахSQALab
 
Оценка трудозатрат аналитика: практика применения
Оценка трудозатрат аналитика: практика примененияОценка трудозатрат аналитика: практика применения
Оценка трудозатрат аналитика: практика примененияSQALab
 
Очередность требований: от хаоса к FIFO
Очередность требований: от хаоса к FIFOОчередность требований: от хаоса к FIFO
Очередность требований: от хаоса к FIFOSQALab
 
Внедрение системы управления требованиями. Опыт пользователя
Внедрение системы управления требованиями. Опыт пользователяВнедрение системы управления требованиями. Опыт пользователя
Внедрение системы управления требованиями. Опыт пользователяSQALab
 
Коммуникация при различной структуре мышления - таксономия против фолксономии
Коммуникация при различной структуре мышления - таксономия против фолксономииКоммуникация при различной структуре мышления - таксономия против фолксономии
Коммуникация при различной структуре мышления - таксономия против фолксономииSQALab
 
Как Skillset-аналитика способствует развитию одной команды аналитиков в Сберб...
Как Skillset-аналитика способствует развитию одной команды аналитиков в Сберб...Как Skillset-аналитика способствует развитию одной команды аналитиков в Сберб...
Как Skillset-аналитика способствует развитию одной команды аналитиков в Сберб...SQALab
 
Моделирование корпоративной архитектуры
Моделирование корпоративной архитектурыМоделирование корпоративной архитектуры
Моделирование корпоративной архитектурыSQALab
 
Как из хаоса рождается порядок
Как из хаоса рождается порядокКак из хаоса рождается порядок
Как из хаоса рождается порядокSQALab
 
BI быстро, качественно, недорого
BI быстро, качественно, недорогоBI быстро, качественно, недорого
BI быстро, качественно, недорогоSQALab
 
Иди и рисуй! Моделирование в работе аналитика
Иди и рисуй! Моделирование в работе аналитикаИди и рисуй! Моделирование в работе аналитика
Иди и рисуй! Моделирование в работе аналитикаSQALab
 
Путь Jama для управления требованиями
Путь Jama для управления требованиямиПуть Jama для управления требованиями
Путь Jama для управления требованиямиSQALab
 
Как аналитик может помочь в планировании выпуска версий
Как аналитик может помочь в планировании выпуска версийКак аналитик может помочь в планировании выпуска версий
Как аналитик может помочь в планировании выпуска версийSQALab
 
Управление виртуальной командой аналитиков
Управление виртуальной командой аналитиковУправление виртуальной командой аналитиков
Управление виртуальной командой аналитиковSQALab
 
Отделяем зёрна от плевел: работа с заявками на развитие функционала
Отделяем зёрна от плевел: работа с заявками на развитие функционалаОтделяем зёрна от плевел: работа с заявками на развитие функционала
Отделяем зёрна от плевел: работа с заявками на развитие функционалаSQALab
 
Найти 6 системных аналитиков за год и выжить
Найти 6 системных аналитиков за год и выжитьНайти 6 системных аналитиков за год и выжить
Найти 6 системных аналитиков за год и выжитьSQALab
 
Большому аналитику - большие данные
Большому аналитику - большие данныеБольшому аналитику - большие данные
Большому аналитику - большие данныеSQALab
 
Лайфхаки Confluence для разработки требований
Лайфхаки Confluence для разработки требованийЛайфхаки Confluence для разработки требований
Лайфхаки Confluence для разработки требованийSQALab
 
2 щербин projects-rbru final
2 щербин projects-rbru final2 щербин projects-rbru final
2 щербин projects-rbru finalBankir_Ru
 

What's hot (20)

Бизнес-анализ: грани разумного
Бизнес-анализ: грани разумногоБизнес-анализ: грани разумного
Бизнес-анализ: грани разумного
 
Управление знаниями в IT-компаниях
Управление знаниями в IT-компаниях Управление знаниями в IT-компаниях
Управление знаниями в IT-компаниях
 
Как построить системный анализ в продуктовых Agile-командах
Как построить системный анализ в продуктовых Agile-командахКак построить системный анализ в продуктовых Agile-командах
Как построить системный анализ в продуктовых Agile-командах
 
Оценка трудозатрат аналитика: практика применения
Оценка трудозатрат аналитика: практика примененияОценка трудозатрат аналитика: практика применения
Оценка трудозатрат аналитика: практика применения
 
Очередность требований: от хаоса к FIFO
Очередность требований: от хаоса к FIFOОчередность требований: от хаоса к FIFO
Очередность требований: от хаоса к FIFO
 
Внедрение системы управления требованиями. Опыт пользователя
Внедрение системы управления требованиями. Опыт пользователяВнедрение системы управления требованиями. Опыт пользователя
Внедрение системы управления требованиями. Опыт пользователя
 
Коммуникация при различной структуре мышления - таксономия против фолксономии
Коммуникация при различной структуре мышления - таксономия против фолксономииКоммуникация при различной структуре мышления - таксономия против фолксономии
Коммуникация при различной структуре мышления - таксономия против фолксономии
 
Как Skillset-аналитика способствует развитию одной команды аналитиков в Сберб...
Как Skillset-аналитика способствует развитию одной команды аналитиков в Сберб...Как Skillset-аналитика способствует развитию одной команды аналитиков в Сберб...
Как Skillset-аналитика способствует развитию одной команды аналитиков в Сберб...
 
Моделирование корпоративной архитектуры
Моделирование корпоративной архитектурыМоделирование корпоративной архитектуры
Моделирование корпоративной архитектуры
 
Как из хаоса рождается порядок
Как из хаоса рождается порядокКак из хаоса рождается порядок
Как из хаоса рождается порядок
 
BI быстро, качественно, недорого
BI быстро, качественно, недорогоBI быстро, качественно, недорого
BI быстро, качественно, недорого
 
Иди и рисуй! Моделирование в работе аналитика
Иди и рисуй! Моделирование в работе аналитикаИди и рисуй! Моделирование в работе аналитика
Иди и рисуй! Моделирование в работе аналитика
 
Путь Jama для управления требованиями
Путь Jama для управления требованиямиПуть Jama для управления требованиями
Путь Jama для управления требованиями
 
Как аналитик может помочь в планировании выпуска версий
Как аналитик может помочь в планировании выпуска версийКак аналитик может помочь в планировании выпуска версий
Как аналитик может помочь в планировании выпуска версий
 
Управление виртуальной командой аналитиков
Управление виртуальной командой аналитиковУправление виртуальной командой аналитиков
Управление виртуальной командой аналитиков
 
Отделяем зёрна от плевел: работа с заявками на развитие функционала
Отделяем зёрна от плевел: работа с заявками на развитие функционалаОтделяем зёрна от плевел: работа с заявками на развитие функционала
Отделяем зёрна от плевел: работа с заявками на развитие функционала
 
Найти 6 системных аналитиков за год и выжить
Найти 6 системных аналитиков за год и выжитьНайти 6 системных аналитиков за год и выжить
Найти 6 системных аналитиков за год и выжить
 
Большому аналитику - большие данные
Большому аналитику - большие данныеБольшому аналитику - большие данные
Большому аналитику - большие данные
 
Лайфхаки Confluence для разработки требований
Лайфхаки Confluence для разработки требованийЛайфхаки Confluence для разработки требований
Лайфхаки Confluence для разработки требований
 
2 щербин projects-rbru final
2 щербин projects-rbru final2 щербин projects-rbru final
2 щербин projects-rbru final
 

Viewers also liked

Бережливый бизнес-аналитик: как устранять 8 видов потерь
Бережливый бизнес-аналитик: как устранять 8 видов потерьБережливый бизнес-аналитик: как устранять 8 видов потерь
Бережливый бизнес-аналитик: как устранять 8 видов потерьSQALab
 
As large as life. Полнота требований и способы ее проверки
As large as life. Полнота требований и способы ее проверкиAs large as life. Полнота требований и способы ее проверки
As large as life. Полнота требований и способы ее проверкиSQALab
 
Дизайн-мышление. Что это и могут ли аналитики его применять?
Дизайн-мышление. Что это и могут ли аналитики его применять?Дизайн-мышление. Что это и могут ли аналитики его применять?
Дизайн-мышление. Что это и могут ли аналитики его применять?SQALab
 
Аналитик 2.0. Расширенная версия
Аналитик 2.0. Расширенная версияАналитик 2.0. Расширенная версия
Аналитик 2.0. Расширенная версияSQALab
 
Все грани рецензирования требований
Все грани рецензирования требованийВсе грани рецензирования требований
Все грани рецензирования требованийSQALab
 
Аналитик с синдромом самозванца: не дай себя остановить!
Аналитик с синдромом самозванца: не дай себя остановить!Аналитик с синдромом самозванца: не дай себя остановить!
Аналитик с синдромом самозванца: не дай себя остановить!SQALab
 
PM vs BA vs World
PM vs BA vs WorldPM vs BA vs World
PM vs BA vs WorldSQALab
 

Viewers also liked (7)

Бережливый бизнес-аналитик: как устранять 8 видов потерь
Бережливый бизнес-аналитик: как устранять 8 видов потерьБережливый бизнес-аналитик: как устранять 8 видов потерь
Бережливый бизнес-аналитик: как устранять 8 видов потерь
 
As large as life. Полнота требований и способы ее проверки
As large as life. Полнота требований и способы ее проверкиAs large as life. Полнота требований и способы ее проверки
As large as life. Полнота требований и способы ее проверки
 
Дизайн-мышление. Что это и могут ли аналитики его применять?
Дизайн-мышление. Что это и могут ли аналитики его применять?Дизайн-мышление. Что это и могут ли аналитики его применять?
Дизайн-мышление. Что это и могут ли аналитики его применять?
 
Аналитик 2.0. Расширенная версия
Аналитик 2.0. Расширенная версияАналитик 2.0. Расширенная версия
Аналитик 2.0. Расширенная версия
 
Все грани рецензирования требований
Все грани рецензирования требованийВсе грани рецензирования требований
Все грани рецензирования требований
 
Аналитик с синдромом самозванца: не дай себя остановить!
Аналитик с синдромом самозванца: не дай себя остановить!Аналитик с синдромом самозванца: не дай себя остановить!
Аналитик с синдромом самозванца: не дай себя остановить!
 
PM vs BA vs World
PM vs BA vs WorldPM vs BA vs World
PM vs BA vs World
 

Similar to UML. Взгляд со стороны

Essentials of Visual modeling and UML (rus) by SkillsCup.com
Essentials of Visual modeling and UML (rus) by SkillsCup.comEssentials of Visual modeling and UML (rus) by SkillsCup.com
Essentials of Visual modeling and UML (rus) by SkillsCup.comDmitry SkillsCup.com
 
Принципы построения современных систем управления жизненным циклом
Принципы построения современных систем управления жизненным цикломПринципы построения современных систем управления жизненным циклом
Принципы построения современных систем управления жизненным цикломAnatoly Levenchuk
 
ИТ-проекты и ИТ-результаты - Сергей Нужненко
ИТ-проекты и ИТ-результаты - Сергей Нужненко ИТ-проекты и ИТ-результаты - Сергей Нужненко
ИТ-проекты и ИТ-результаты - Сергей Нужненко Kirill Gaydamaka
 
Проектируем среду проектирования. Процесс взаимодействия Бизнеса, ИТ и постав...
Проектируем среду проектирования. Процесс взаимодействия Бизнеса, ИТ и постав...Проектируем среду проектирования. Процесс взаимодействия Бизнеса, ИТ и постав...
Проектируем среду проектирования. Процесс взаимодействия Бизнеса, ИТ и постав...SQALab
 
А.Левенчук -- управление жизненным циклом актива
А.Левенчук -- управление жизненным циклом активаА.Левенчук -- управление жизненным циклом актива
А.Левенчук -- управление жизненным циклом активаAnatoly Levenchuk
 
Статья «Применение Agile Scrum в проектах SAP»
Статья «Применение Agile Scrum в проектах SAP»Статья «Применение Agile Scrum в проектах SAP»
Статья «Применение Agile Scrum в проектах SAP»ph.d. Dmitry Stepanov
 
Как выжить глобальной корпорации?
Как выжить глобальной корпорации?Как выжить глобальной корпорации?
Как выжить глобальной корпорации?CEE-SEC(R)
 
RST2014_Petrozavodsk_OptiSawmill
RST2014_Petrozavodsk_OptiSawmillRST2014_Petrozavodsk_OptiSawmill
RST2014_Petrozavodsk_OptiSawmillRussianStartupTour
 
2013 12 design-design-environment
2013 12 design-design-environment2013 12 design-design-environment
2013 12 design-design-environmentDmitry Bezuglyy
 
Технология моделирования бизнес процессов
Технология моделирования бизнес процессовТехнология моделирования бизнес процессов
Технология моделирования бизнес процессовOlya Kollen, PhD
 
Особенности Системного Анализа особо крупных проектов построенных на базе Bus...
Особенности Системного Анализа особо крупных проектов построенных на базе Bus...Особенности Системного Анализа особо крупных проектов построенных на базе Bus...
Особенности Системного Анализа особо крупных проектов построенных на базе Bus...SQALab
 
Почему размер имеет значение
Почему размер имеет значениеПочему размер имеет значение
Почему размер имеет значениеSQALab
 
Лучшие практики исполнения проекта в соответствии с методологией IBM Rational
Лучшие практики исполнения проекта в соответствии с методологией IBM RationalЛучшие практики исполнения проекта в соответствии с методологией IBM Rational
Лучшие практики исполнения проекта в соответствии с методологией IBM RationalLuxoftTraining
 
Тимур Лукин - Архитектура и проектирование ПО
Тимур Лукин - Архитектура и проектирование ПОТимур Лукин - Архитектура и проектирование ПО
Тимур Лукин - Архитектура и проектирование ПОYandex
 
Современные методы конструирования в ПТКИ Укркранэнерго
Современные методы конструирования в ПТКИ УкркранэнергоСовременные методы конструирования в ПТКИ Укркранэнерго
Современные методы конструирования в ПТКИ УкркранэнергоTanya Gadzevych
 
САПР и ГИС
САПР и ГИССАПР и ГИС
САПР и ГИСSoftline
 
Быстро о быстром
Быстро о быстромБыстро о быстром
Быстро о быстромRoman Dvornov
 

Similar to UML. Взгляд со стороны (20)

Essentials of Visual modeling and UML (rus) by SkillsCup.com
Essentials of Visual modeling and UML (rus) by SkillsCup.comEssentials of Visual modeling and UML (rus) by SkillsCup.com
Essentials of Visual modeling and UML (rus) by SkillsCup.com
 
Принципы построения современных систем управления жизненным циклом
Принципы построения современных систем управления жизненным цикломПринципы построения современных систем управления жизненным циклом
Принципы построения современных систем управления жизненным циклом
 
ИТ-проекты и ИТ-результаты - Сергей Нужненко
ИТ-проекты и ИТ-результаты - Сергей Нужненко ИТ-проекты и ИТ-результаты - Сергей Нужненко
ИТ-проекты и ИТ-результаты - Сергей Нужненко
 
Проектируем среду проектирования. Процесс взаимодействия Бизнеса, ИТ и постав...
Проектируем среду проектирования. Процесс взаимодействия Бизнеса, ИТ и постав...Проектируем среду проектирования. Процесс взаимодействия Бизнеса, ИТ и постав...
Проектируем среду проектирования. Процесс взаимодействия Бизнеса, ИТ и постав...
 
А.Левенчук -- управление жизненным циклом актива
А.Левенчук -- управление жизненным циклом активаА.Левенчук -- управление жизненным циклом актива
А.Левенчук -- управление жизненным циклом актива
 
Статья «Применение Agile Scrum в проектах SAP»
Статья «Применение Agile Scrum в проектах SAP»Статья «Применение Agile Scrum в проектах SAP»
Статья «Применение Agile Scrum в проектах SAP»
 
Как выжить глобальной корпорации?
Как выжить глобальной корпорации?Как выжить глобальной корпорации?
Как выжить глобальной корпорации?
 
Kumskov
KumskovKumskov
Kumskov
 
RST2014_Petrozavodsk_OptiSawmill
RST2014_Petrozavodsk_OptiSawmillRST2014_Petrozavodsk_OptiSawmill
RST2014_Petrozavodsk_OptiSawmill
 
2013 12 design-design-environment
2013 12 design-design-environment2013 12 design-design-environment
2013 12 design-design-environment
 
Технология моделирования бизнес процессов
Технология моделирования бизнес процессовТехнология моделирования бизнес процессов
Технология моделирования бизнес процессов
 
Особенности Системного Анализа особо крупных проектов построенных на базе Bus...
Особенности Системного Анализа особо крупных проектов построенных на базе Bus...Особенности Системного Анализа особо крупных проектов построенных на базе Bus...
Особенности Системного Анализа особо крупных проектов построенных на базе Bus...
 
Почему размер имеет значение
Почему размер имеет значениеПочему размер имеет значение
Почему размер имеет значение
 
Киев, BA Con 2017
Киев, BA Con 2017Киев, BA Con 2017
Киев, BA Con 2017
 
Лучшие практики исполнения проекта в соответствии с методологией IBM Rational
Лучшие практики исполнения проекта в соответствии с методологией IBM RationalЛучшие практики исполнения проекта в соответствии с методологией IBM Rational
Лучшие практики исполнения проекта в соответствии с методологией IBM Rational
 
Мария Лютикова. Холдинг Агропромкомплектация. Проектный офис с нуля
Мария Лютикова. Холдинг Агропромкомплектация. Проектный офис с нуляМария Лютикова. Холдинг Агропромкомплектация. Проектный офис с нуля
Мария Лютикова. Холдинг Агропромкомплектация. Проектный офис с нуля
 
Тимур Лукин - Архитектура и проектирование ПО
Тимур Лукин - Архитектура и проектирование ПОТимур Лукин - Архитектура и проектирование ПО
Тимур Лукин - Архитектура и проектирование ПО
 
Современные методы конструирования в ПТКИ Укркранэнерго
Современные методы конструирования в ПТКИ УкркранэнергоСовременные методы конструирования в ПТКИ Укркранэнерго
Современные методы конструирования в ПТКИ Укркранэнерго
 
САПР и ГИС
САПР и ГИССАПР и ГИС
САПР и ГИС
 
Быстро о быстром
Быстро о быстромБыстро о быстром
Быстро о быстром
 

More from SQALab

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировкуSQALab
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаSQALab
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиSQALab
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияSQALab
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...SQALab
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testingSQALab
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженSQALab
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииSQALab
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовSQALab
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовSQALab
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsSQALab
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеSQALab
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииSQALab
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеSQALab
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестированиеSQALab
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"SQALab
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовSQALab
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных системSQALab
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросSQALab
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...SQALab
 

More from SQALab (20)

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировку
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщика
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержки
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testing
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нужен
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихии
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советов
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестов
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIs
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджменте
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестирование
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектов
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных систем
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопрос
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
 

UML. Взгляд со стороны

  • 1. UML. Взгляд со стороны или «Как UML удерживает аналитиков в прошлом» Гиматдинов Ильдар ООО «НПО ВС» ildar.gimatdinov@gmail.com
  • 2. О себе 11летвIT: • 4годакакразработчик, • 3каканалитик, • 4какархитектор. Специализация: • Управлениетребованиями; • Планированиеиорганизацияработ; • Госсектор. 2
  • 3. Чем занимаются аналитики • Изучаютпредметнуюобласть,описываютеев видемодели • Выявляютиформализуюттребования • Формируютмодельпрограммнойсистемы • Пишутразличнуюдокументацию 3
  • 4. История создания и развития UML Ada/Booch State Charts 2017 2015 2010 2005 2000 1997 1995 1990 Booch 91 Booch 93 OMT OMT 94 OOSE OOSE 94 Fusion RDD OBA OOA OODA OOSA Fusion Team SOMA OPEN/OML MOSES RD UML 0.8 UML 0.9 UML 1.1 UML 1.4 UML 2.0 UML 1.5 UML 2.1 UML 2.2 SysML 1.1 xUML UML 2.5 UML 2.3 UML 2.4 UML 1.3 SysML 1.2 SysML 1.3 SysML 1.4 SoaML 1.0 FUML 1.0 FUML 1.1 FUML 1.2 Unified Process История UML 4
  • 5. Взгляд со стороны • ВсеметодикииспользованияUML«ходятвокруг» UseCaseDrivenDevelopment. • МоделямнаUMLнехватаетцелостности. • Объектно-ориентированныйподходUML ограничиваетвозможностианалитика. 5
  • 6. Аспекты представления SeqDUCD Системный вариант использования 2 Системный вариант использования 1 Актер 2 Актер 3 Актер 1 Группа 1 Системный вариант использования 4 Системный вариант использования 5 Системный вариант использования 3 «include» «include» «include» Актер 4 Актер 5 Объект 1 Объект 2 Объект 3 Объект 4 yyy StateDClassD Статус 1 Статус 2 Статус 3 Статус 4 Статус 5 Статус 7Статус 6 поле 1 поле 2 поле 3 поле 4 Класс 1 поле 1 поле 2 поле 3 поле 4 Класс 2 поле 1 поле 2 поле 3 поле 4 Класс 3 поле 1 поле 2 поле 3 поле 4 Класс 4 поле 1 поле 2 поле 3 поле 4 Класс 6 «used» поле 1 поле 2 поле 3 поле 4 «enumeration» Класс 5 «used» 6
  • 7. Гибридная диаграмма SeqDUCD Системный вариант использования 2 Системный вариант использования 1 Актер 2 Актер 3 Актер 1 Группа 1 Системный вариант использования 4 Системный вариант использования 5 Системный вариант использования 3 «include» «include» «include» Актер 4 Актер 5 Объект 1 Объект 2 Объект 3 Объект 4 yyy StateDClassD Статус 1 Статус 2 Статус 3 Статус 4 Статус 5 Статус 7Статус 6 поле 1 поле 2 поле 3 поле 4 Класс 1 поле 1 поле 2 поле 3 поле 4 Класс 2 поле 1 поле 2 поле 3 поле 4 Класс 3 поле 1 поле 2 поле 3 поле 4 Класс 4 поле 1 поле 2 поле 3 поле 4 Класс 6 «used» поле 1 поле 2 поле 3 поле 4 «enumeration» Класс 5 «used» Требование 1 Требование 2 Требование 3 Системный вариант использования «trace» «trace» «trace» Web форма 1 «realize» Компонент 1 «realize» 7
  • 8. Уровни представления Уровень бизнеса Уровень приложений UCD Бизнес вариант использования 2 Бизнес вариант использования 1 Актер 2 Актер 3 Актер 4 Актер 1 Группа 1 Бизнес вариант использования 4 Бизнес вариант использования 5 Бизнес вариант использования 3 «include» «include» «include» AD Action 1 Action 2 [yyy] [xxx] Action 3 [zzz] [www] Action 4 [rrr] [qqq] Action 5 Action 6 Action 7 Action 8 SeqDUCD Системный вариант использования 2 Системный вариант использования 1 Актер 2 Актер 3 Актер 1 Группа 1 Системный вариант использования 4 Системный вариант использования 5 Системный вариант использования 3 «include» «include» «include» Актер 4 Актер 5 Объект 1 Объект 2 Объект 3 Объект 4 yyy 8
  • 9. Связь между уровнями Уровень бизнеса Уровень приложений UCD Бизнес вариант использования 2 Бизнес вариант использования 1 Актер 2 Актер 3 Актер 4 Актер 1 Группа 1 Бизнес вариант использования 4 Бизнес вариант использования 5 Бизнес вариант использования 3 «include» «include» «include» AD Action 1 Action 2 [yyy] [xxx] Action 3 [zzz] [www] Action 4 [rrr] [qqq] Action 5 Action 6 Action 7 Action 8 SeqDUCD Системный вариант использования 2 Системный вариант использования 1 Актер 2 Актер 3 Актер 1 Группа 1 Системный вариант использования 4 Системный вариант использования 5 Системный вариант использования 3 «include» «include» «include» Актер 4 Актер 5 Объект 1 Объект 2 Объект 3 Объект 4 yyy 9 Требование 1 Требование 2 Требование 3 Системный вариант использования «trace» «trace» «trace» Web форма 1 «realize» Компонент 1 «realize»
  • 10. Archimate. Уровни и аспекты 10 Сотрудник туроператора «Бизнес-процесс» Продажа тура «Бизнес-сервис» Оформление договора «Бизнес-функция» Подготовка договора «Программная функция» Поверка удостоверения личности Исполняет Используется в Используется в Используется в Интернет «Программный сервис» Банковское обслуживание Используется для «Бизнес-функция» Прием оплаты Используется для безналичных платежей Сервер «Компонент» Система ведения договоров «Бизнес-функция» Поверка личности Используется в «Технологический сервис» Хостинг приложений Используется для Реализует Терминал Сервер приложений «Программный сервис» Взаимодействие с МВДРеализует Договор
  • 11. Сервис-ориентированная архитектура Бизнес-процесс 1 Бизнес-процесс 2 Сервис 1 Сервис 2 Сервис 3 Операция 1 Операция 2 Операция 3 Операция 4 Операция 5 11
  • 12. ОО моделирование (Уровень приложений) 12 + продать(:Название товара, :Деньги) :Товар «interface» Умеющий продавать type МагазинЧеловек
  • 13. СО моделирование на SoaML Бизнес-архитектура 13 «ServiceArchitecture» Архитектура розничной сети :Продажа товара покупатель продавец :Магазин:Человек
  • 14. СО моделирование на SoaML Бизнес-процесс 14 продавец :Продавецпокупатель :Покупатель Продажа товара
  • 15. СО моделирование на SoaML Бизнес-сервис 15 «ServiceContract» Договор купли-продажи продавец :Продавецпокупатель :Покупатель продать ( ) «Provider» Продавец «Consumer» Покупатель
  • 16. СО моделирование на SoaML Бизнес-процесс (Уровень приложений) 16 продавец :Продавецпокупатель :Покупатель продать(:Название товара, :Деньги) :Товар
  • 17. СО моделирование на SoaML Сервисы (Уровень приложений) 17 «Participant» Магазин «Participant» Человек Умеющий продавать :Желание продавать :Потребность покупать + продать(:Название товара, :Деньги) :Товар «interface» Умеющий продавать «ServiceInterface» Желание продавать «ServiceInterface» Потребность покупать «use»
  • 18. Сравнение ОО и СО моделирования на SoaML 18 МагазинЧеловекООМ СОМ Умеющий продавать «Participant» Магазин «Participant» Человек Умеющий продавать :Желание продавать :Потребность покупать
  • 19. СО моделирование на SoaML Общий вид Уровень бизнеса Уровень приложений SoaML «ServiceArchitecture» Dealer Network Architecture ps :Purchasing Service dealer :Dealer ship :Shipstatus :Ship Status shipper :Shipper mfg :Manufacturer buyer enquire ship info agent from seller SoaML «Participant» Manufacturer «Service» :Purchasing orderProcessor :OrderProcessor «Service» :Purchasing :Invoicer :Productions :Shipper «Service» :Purchasing «Service» :InvoisingService «Service» :ShippingService «Request» :InvoisingService «Request» :ShippingService «Request» :Purchasing 19
  • 23. Сравнение ОО и СО моделирования 23 гулять(:Собака) ЧеловекСобака ЧеловекСобака Сервис «Гулять» «Реализует»«Кто использует» ООМ СОМ
  • 24. ОО + СО моделирование 24 спать() танцевать() Человек лаять() Собака Сервис «Гулять» «Реализует»«Кто использует»
  • 25. Archimate. СО моделирование 25 Сотрудник туроператора «Бизнес-процесс» Продажа тура «Бизнес-сервис» Оформление договора «Бизнес-функция» Подготовка договора «Программная функция» Поверка удостоверения личности Исполняет Используется в Используется в Используется в Интернет «Программный сервис» Банковское обслуживание Используется для «Бизнес-функция» Прием оплаты Используется для безналичных платежей Сервер «Компонент» Система ведения договоров «Бизнес-функция» Поверка личности Используется в «Технологический сервис» Хостинг приложений Используется для Реализует Терминал Сервер приложений «Программный сервис» Взаимодействие с МВДРеализует Договор
  • 26. Вместо заключения • Осмысленновыбирайтеподходакописанию предметнойобласти. • Изучайтеновыетехнологии,онипредоставляют возможностьвзглянутьнапривычныезадачис новойточкизрения. • Нефиксируйтесвоюточкузренияв «железобетонныеконструкции». 26
  • 27. Спасибо за внимание Гиматдинов Ильдар ООО «НПО ВС» ildar.gimatdinov@gmail.com

Editor's Notes

  1. Здравствуйте, уважаемые коллеги. Меня зовут Гиматдинов Ильдар, я представляю компанию «НПО ВС», город Казань. Мой доклад посвящен UML и особенностям его применения в настоящее время.
  2. Мой общий опыт в IT 11 лет, из них 4 года как разработчик, 3 как аналитик, 4 как архитектор.
  3. И так как я работал аналитиком, то хорошо представлю чем занимаются аналитики. Думаю, наиболее распространен следующий типовой список задач: В общем: изучают, анализирую, формализуют, моделируют, описывают. Обращение к залу: Какой язык моделирования наиболее популярен у аналитиков? Что должен знать каждый уважающий себя аналитик? Конечно, это UML. Его можно использовать в каждом пункте этого списка. И для описании бизнес, и для моделирования программных систем.
  4. Немного исторических сведений. Совсем немного, только основные моменты: UML зародился в 90-х годах как результат работы по создания языка объектно-ориентированного моделирования. Спецификация 1.0 вышла в 1997 году. Спецификация 2.0 вышла в 2005 году. На сегодняшний день версия UML 2.5, развитее получили несколько профилей, такие как SysML и SoaML. Обращение к залу: Если посмотреть, как применял тогда и сейчас и это обдумать, то можно сделать следующий вывод: Пусть версия UML сейчас 2.5, но с первой версии принципы использования языка не изменились. И как следствие, аналитики используют концепцию описания программных систем, которая была заложена более 20 лет назад.
  5. Если дальше продолжить этот анализ а также соотнести UML с требований текущего времени, то выводы такие: Язык сам навязывает методику Use Case Driven Development. Про нее я ничего говорить не буду, полное воплощение ее это Rational Unified Process. Выбранный подход раздельного описания аспектов структуры и поведения, уровней бизнеса и приложений усложняет восприятие моделей в целом. UML является объектно-ориентированным языком, это затрудняет с помощью него выражать другие концепции. Далее я продемонстрирую последние два пункта.
  6. UML состоит из множества диаграмм. Каждая из которых подчиняется своим правилам, использует элементы и стрелки в своем понимании. И со стороны выглядит это не как унифицированный язык, а как набор из различных представлений, который часто преподносится как возможность посмотреть на предметную область с различных точек зрений. С тем же успехом можно назвать швейцарский нож унифицированным инструментом, который по сути является набором состоящем из лезвий, отверток, открывашек, ложки, вилки с одной ручкой. Обращение к залу: Что делает аналитик, когда пытается увязать все диаграммы в одну модель?
  7. Он начинает строить гибридные диаграммы и таблицы связей. В результате получается не единая модель, а множество диаграмм к которому добавились еще диаграммы и таблиц.
  8. Допустим бизнес-аналитик описал предметную область с помощью диаграмм UML. И теперь системному аналитику или тому же самому аналитику требуется сформировать модель программной системы. Если аналитик ориентирован на UML, то начнет создавать представления соответствующие сделанным ранее, но уже в рамках системы. Это будет выглядеть опять в виде аналогичных диаграмм. Обращение к залу: А что будет делать аналитик, когда захочет сопоставить описание предметной области и модели системы?
  9. Он опять начинает строить гибридные диаграммы, таблицы связей и трассировки. В результате опять получается множество диаграмм и таблиц. Тут еще нужно заметить, UML старый язык и для него имеется огромное количество книг и старых примеров. В которых в основном описываются случаи перехода от неавтоматизированного бизнеса к автоматизированному. И аналитики учатся на этих примерах. Но ведь на сегодняшний день информационные технологии проникли повсюду. Подход «Бизнес отдельно, ИТ отдельно» уже неприемлем.
  10. Теперь давайте посмотрим на пример с более современным подходом. Archimate – язык моделирования архитектуры предприятия. Итак в чем же особенность данной модели. Во-первых: Отображены три уровня представления: Бизнес уровень – желтый цвет, Уровень приложений – голубой цвет, Технологический уровень – зеленый цвет. Во-вторых: Отображены три аспекта моделирования: Активные структуры – это те кто выполняет работу: Люди, Роли, Компоненты. Поведение – это элементы которые описывают работу: Функции, Сервисы, Бизнес-процессы. Пассивные структуры – это то над чем производится работа: Бизнес-объекты, Объекты данных, Материалы. И в-третьих: Всё это на одной диаграмме. Использую стандартный набор диаграмм, элементов и соблюдая правила UML вы не сможете просто описать данную схему. Вам потребуется несколько диаграмм и дополнительное пояснение, как они связаны.
  11. UML является объектно-ориентированным языком, это затрудняет с помощью него выражать другие концепции. Например сервис-ориентированные. В стандартном профиле UML нет понятия «Сервис», но есть профиль SoaML, который преподносится как язык моделирования сервис-ориентированной архитектуры. Давайте я очень коротко расскажу про сервис-ориентированную архитектуру, чтобы далее было понятно почему SoaML не подходит для сервис-ориентированного моделирования. Существует три основных уровня абстракции в сервис-ориентированной архитектуре: Бизнес-процессы, сервисы, операции. Бизнес-процесс - это длительный набор действий или мероприятий, проводимых с конкретными бизнес-целями. На системном уровне процесс обычно представляется как ряд операций, которые выполняются в порядке следования в соответствии с определенным набором бизнес-правил. Операция представляет собой логическую единицу работы. Сервис - это логическая группа операций. Бизнес-процессы, как правило, охватывают вызовов нескольких сервисов. Посмотрим как всё это моделируется на SoaML?
  12. Заодно посмотрим, как будет отличаться объектно-ориентрованное моделирование на UML и сервис-ориентированное моделирование на SoaML. Задача простая, описать модель взаимодействия людей и магазинов. Люди тут выступают не как пользователи, а как некие системы. Объектно-ориентированный подход, я думаю, всем понятен и прост. Чтобы не тратить время не будем рассматривать бизнес-уровень. Думаю, все могут представить в голове советующий Use Case и его детализацию в виде диаграммы деятельности или диаграммы последовательности. В результате, на уровне приложений мы получим примерно следующую компонентную диаграмму. Компонент Человек и компонент Магазин, которому назначен интерфейс «Умеющий продавать» с одним методом «продать». Еще раз поясняю, человек выступает не как пользователь, а как одна из сторон взаимодействия.
  13. Теперь решим данную задачу с помощью SoaML. На этой диаграмме мы определяем сообщество взаимодействующих, это Магазин и Человек. Определяем действующий между ними бизнес-процесс «Продажа товара», в котором Магазин выступает как «продавец», а Человек как «покупатель».
  14. С использованием обозначенных ролей описываем бизнес-процессы, у нас он один.
  15. На основе бизнес-процесса мы теперь можем идентифицировать следующий бизнес-сервис, в SoaML для этого используется классификатор ServiceContract. В рамках данного сервиса: Продавец выступает как provider, а Покупатель как consumer. Продавец как поставщик предоставляет одну операцию «продать». Бизнес-анализ в принципе закончен, переходим на уровень приложений.
  16. Нам нужно смоделировать на уровне приложений обновленную версию нашего бизнес-процесса по продаже товара. Для этого я выбрал диаграмму последовательности, можно использовать любую другую поведенческую диаграмму.
  17. Из обновленного бизнес-процесса можно выделить одну операцию «продать», оформим ее в базовый интерфейс «Умеющий продавать». Далее нам нужно описать сервисные интерфейсы, которые будут использованы для реализации сервиса. Получаем следующие сервисные интерфейсы: «Желание продавать», который наследуется от интерфейса «Умеющий продавать»; «Потребность покупать», который зависит от интерфейса «Умеющий продавать». Теперь можно представить модель целевого сервиса. Она находится в нижней части слайда, по чертой, в виде диаграммы композитной структуры.
  18. Сравним результаты объектно-ориентрованного моделирования на UML и сервис-ориентированного моделирования на SoaML. Визуально вся разница вот в этих маленьких квадратиках на границе компонентов. Обращение к залу: Неужели разницы нет? Разница между объектно-ориентированным и сервис-ориентированным моделирование есть, просто тут SoaML свел всё к объектам. Но об этом позже.
  19. А сейчас закончим рассмотрение SoaML на более сложном случае, тогда получаться у нас будут примерно следующие схемы. Что же не так, по моему мнению, с SoaML. Во-первых: Опять проблемы с целостностью языка и связью между уровнем бизнеса и уровнем приложений, вы сами видели как сложно всё соотносится друг с другом. Во-вторых: Сервис описывается как объект структуры, это нехорошо. В русской речи распространена фраза «Поставщик представляет сервис», вот это компонент-ориентированный подход, который реализован в SoaML. Но в случае с сервис-ориентированной парадигмой правильнее говорить «Поставщик оказывает сервис». А если по другому перевести «Сервис» на русский язык, то всё сразу встает на свои места: «Поставщик оказывает УСЛУГУ». С этой точки зрения «Сервис» это не «Объект», это «Поведение». В-третьих: На слайде о сервис-ориентированной архитектуре я рассказал об уровнях абстракции: Процессы, Сервисы, Операции. Рассматривать и описывать их через призму объектно-ориентированного подхода является, мягко говоря, напряженной задачей.
  20. Вернемся к UML. UML в рамка своей парадигмы пытается описать другие парадигмы, как показано в левой части слайда. И если с компонентно-ориентированной парадигмой всё получается, она может быть представлена как логическое продолжение объектно-ориентированной. То с сервис-ориентированной получилось нехорошо. В данном случае выражать одну парадигму через другую неудачная идея. Использование такой концепции я продемонстрировал с SoaML на примере задачи «Человек и Магазин». Относится к парадигмам лучше как обозначено в правой части слайда. Сейчас я продемонстрирую, чем отличается сервис-ориентированное моделирование, от объектно-ориентированного.
  21. Задача простая: Нужно построить простую модель взаимодействия, в которой Человек гуляет с Собакой. Данную задачу не задумываясь, наверное, решит любой студент технического факультета. В ВУЗах на соответствующих специальностях объектно-ориентированное программирование является обязательным. Объектно-ориентированный подход представлен на слайде. Обращение к залу: А как будет выглядеть модель с сервис-ориентированным подходом? Не знаю, ответит ли такой вопрос студент.
  22. Вот что я хотел бы получить. Нужно понимать, что это простая задача и это простая модель. Но она отражает суть сервис-ориентированного подхода. Человек реализует для Собаки сервис «Гулять». Можно вспомнить историю объектно-ориентированного программирования. Как к нему скептически относились в начале его появления даже очень авторитетные люди, такие как Эдсгер Дейкстра и Никлаус Вирт. И до сих пор некоторые люди считают ООП недостойным внимания. Ну так вот, данная модель тоже может вызвать усмешки. Дело в том что сервис-ориентированная парадигма не имеет достаточной поддержки на начальном уровне программирования и проектирования. Для программистов поддержка осуществляется только фреймворками, например, Java Enterprise Edition или Spring. Распространено, что сервис-ориентированная архитектура смешивается со смежной темой «Интеграционная шина предприятия». Молодые программисты добираются до них с головой, уже отформатированной под объектно-ориентированный подход. Аналитики строят свое представление о сервис-ориентированной архитектуре и проектирование по статьям в интернете, которые по-разному понимают, что такое СОА, а некоторые статьи без глубокого погружения в специфику и технические детали вообще малопонятны. В результате аналитики возвращаются к общепринятым Use Case между системой и пользователями. Распространено также, что архитектура системы и ее компонентный состав уже зафиксированы архитектором или обусловлены выбранной платформой. И тогда аналитики опять просто описывают Use Case между системой и пользователями.
  23. Сравним объектно-ориентированный подход и эту, казалось бы, смешную схему, где Человек оказывает Собаке услугу «Гулять». Когда она перестанет быть для вас смешной, а будет смешным казаться объектно-ориентированный подход, где Человек реализует метод «гулять» на вход которому подается Собака. Вот тогда к вам пришло понимание сервис-ориентированной парадигмы.
  24. Еще нужно заметить, что эти парадигмы вполне совместимы. Человек по-прежнему может выполнять свойственные ему действия: спать и танцевать, а Собака лаять. Еще один момент: В этом примере я ввел новое понятие «Сервис». При этом я пока четко не определил правила его использования, но оно отличается от того что в SoaML. Тут нужно быть аккуратным, не стоит этим сильно увлекаться, так как такого рода расширения относятся к метамоделированию. Может так получиться, что создаваемые модели окажутся противоречивыми и малопонятными.
  25. Посмотрим еще раз на пример с моделью на Archimate. Тут: Отображены три уровня абстракции сервис-ориентированной архитектуры: Процессы, Сервисы, Операции. Отображены три уровня представления: Бизнес уровень – желтый цвет, это бизнес-процесс, бизнес-сервисы и бизнес функции. Уровень приложений – голубой цвет, это программные сервисы и функции. Технологический уровень – зеленый цвет, это сервисы инфраструктуры. Всё это на одной диаграмме. Использую стандартный набор диаграмм, элементов и соблюдая правила UML вы не сможете выразить смысл данной модели.
  26. UML ограничивает возможности аналитика в выборе подхода к моделированию. Если загнать всё в одну парадигму или выразить предметную область несвойственным для нее подходом, то ваше представление может оказаться искажением. Поэтому выбирайте подходящие языки моделирования. Не отрывайтесь далеко от разработчиков в знании современных технологий и направлений их развития. Лучше иметь знания глубже, чем просто в общих чертах. Иначе вы не сможете построить модели соответствующие новым подходам в информационных технологиях. Проблемы подобные имеющимся в UML можно найти в любом языке моделирования. Любая парадигма, любая модель ущербна относительно реального мира. Учитесь мыслить с различными подходами, в отличии от текущей версии UML, человек способен это делать.