Вы находитесь на странице: 1из 15

UML

Унифицированный язык
моделирования UML
• UML (Unified Modeling Language) – язык графического
описания для объектного моделирования
• UML используется для моделирования программного
обеспечения и бизнес-процессов, а также при
проектировании сложных систем
• UML позволяет сконцентрироваться на важных аспектах
архитектуры, а не на ее внешнем представлении
• Наглядность UML позволяет «разговаривать на одном
языке» заказчику и разработчику (системному архитектору
или программисту)
• UML появился в 1994 г., спецификация UML 2.0 была
опубликована в 2005 г.
• Авторами первой версии UML являются Буч, Рамбо и
Якобсон. В настоящий момент разработкой UML занимается
консорциум OMG (Object Management Group)
UML 2.0 – новые возможности
• В диаграммах классов был введен новый маркер
допустимости навигации для ассоциаций. Это
позволяет разработчикам отличить случай, когда
навигация явно запрещена, от случая, когда не
принято решение о запрете или разрешении
навигации
• Диаграммы последовательности в UML 2.0
дополнительно позволяют: именовать и ссылаться
на именованные фрагменты взаимодействия, а
также разбивать линии жизни участников с
внутренней структурой на отдельные
взаимодействия внутренних частей в контексте
диаграммы последовательности
• Семантика языка была значительно уточнена и
расширена для поддержки методологии Model Driven
Architecture (MDA)
Структурные диаграммы UML
• Class – диаграмма классов
• Object – диаграмма объектов
• Component – диаграмма компонент
системы
• Composite structure – диаграмма
составной структуры
• Deployment – диаграмма развертывания
• Package – диаграмма пакетов
Диаграммы поведения UML

• Use case – вариант использования


• Sequence – диаграмма последовательности
• Communication – диаграмма коммуникации
• Collaboration – диаграмма взаимодействия
• State – диаграмма состояний
• Activity – диаграмма деятельности
• Timing – диаграмма синхронизации
• Interaction overview – диаграмма обзора
взаимодействия
Взгляды на архитектуру

словарь, сборка системы,


Вид с точки зрения Вид с точки зрения управление
функциональность
проектирования реализации конфигурацией

поведение Вид с точки зрения


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

производительность, топология системы,


масштабируемость, Вид с точки зрения Вид с точки зрения распределение,
пропускная процессов развертывания поставка,
способность установка
Диаграмма деятельности:
нотация
Действие или Начальное Конечное Параллельное
деятельность состояние состояние разделение

ActionState1 Имя действия

Поток Поток Решение Параллельное


управления объектов соединение

Плавательная Область
дорожка расширения
Отдел продаж
Входной набор
Имя
дорожки

Выходной набор
Диаграмма деятельности:
пример
Отдел обслуживания клиентов Отдел продаж Склад

Заказать товар

Обработать заказ

Подобрать товар

Отгрузить товар

Получить заказ Выставить счет клиенту

Оплатить счет
Закрыть заказ
Нотация диаграмм классов
Класс Интерфейс Примечание
Customer Имя класса
(нота)
iSecureInformation
name
address
phone Атрибуты класса Имя интерфейса
«interface»
birthday iPaint
buy()
makeComplaint() Операции класса

Ассоциация Обобщение Аггрегация Композиция


Class A Роль А Роль Б Class B Shape University University

Зависимость 1 1
Class A Class B
Кардинальные
числа
1..* *
Реализация
Rectangle Faculty Student
Class A «interface»
Interface
Примеры диаграмм классов
Компания

Вуз Факультет
1 1 -состоит из name
name
address addInstructor() 0..1
1..* phone removeInstructor()
* 1 1..*
addStudent() getInstructor()
1..* getAllInstructors()
Офис removeStudent() 1..*
Отдел getStudent()
1 address
name getAllStudents() 1..*
voice
addDepartment()
removeDepartment()
getDepartment()
* * getAllDepartments()
-Начальник
-сотрудник

Штаб-квартира
1..*

-обучается в
1..* 1

-работает

-декан
Персона
name 1 1..* 1..* 0..1
employeeID
title Контактная информация
Студент -посещает Курс -читает Преподаватель
getPhoto()
name name
getSoundBite() name
studentID courseID
getContactInformation() * * * 1..*
getPersonalRecords()

Запись кадрового учета

iSecureInformation
Диаграмма
последовательностей: пример
s : Caller : Switch r : Caller

liftReceiver

setDialTone()
tone
dialDigit(d) {dialed – tone < 30 sec}
*
Время

dialed
routeCall(s,n)

"create"
c : Conversation

ring()

liftReceiver

connect(r,s)

connect(r) connect(s)

После соединения
абоненты r и s
могут обмениваться
информацией
Вариант использования: пример
Система проверки кредитных карточек

«uses» «uses»
Выполнение карточной транзакции

«uses»
«uses»

Торговые предприятия
Клиент
«uses»

Обработка счета клиента


«extends» «extends»

«uses» «uses»

Согласование транзакций

Индивидуальный клиент «uses»


Субсидирующие финансовые институты
Корпоративный клиент

Управление счетами клиентов


Rational Unified Process
• RUP (Rational Unified Process) – один из подходов к
организации жизненного цикла программного обеспечения
• RUP предлагает упорядоченный подход к способам
распределения заданий и обязанностей в организации
• RUP – это итерационный процесс, предполагающий
постепенное проникновение в суть проблемы путем
последовательных уточнений и пошагового наращивания
решений
• Присущая итерационному процессу внутренняя гибкость
позволяет включать в бизнес-цели новые требования и
тактические изменения
• Разработка в рамках RUP сконцентрирована на архитектуре,
управляется вариантами использования, поддерживает
объектно-ориентированные методы и обеспечивает
постоянный контроль качества и управление риском
Стадии и итерации RUP
UML 2.0 – новые
возможности
• В диаграммах классов был введен новый маркер допустимости
навигации для ассоциаций. Это позволяет разработчикам
отличить случай, когда навигация явно запрещена, от случая,
когда не принято решение о запрете или разрешении навигации
• Диаграммы последовательности в UML 2.0 дополнительно
позволяют: именовать и ссылаться на именованные фрагменты
взаимодействия, а также разбивать линии жизни участников с
внутренней структурой на отдельные взаимодействия
внутренних частей в контексте диаграммы последовательности
• Семантика языка была значительно уточнена и расширена для
поддержки методологии Model Driven Development (MDD)

Вам также может понравиться