Основы визуального моделирования и UML. Объектная технология и её плюсы. Важность визуального моделирования и 4 его принципа. Какой процесс лучше подходит для UML. 4 принципа объектного-ориентирования (ООП). Полиморфизм и обобщение. Примеры некоторых диаграмм UML.
2. (1) Задачи семинара
• Поверхностно затронуть темы курса «Основы
системного анализа». Обсудить:
– Что такое объектная технология (ОТ) и в чем её
плюсы
– Важность визуального моделирования (ВМ) и
4 принципа ВМ
– Что предоставляет UML, и какой процесс подходит
лучше
– 4 принципа объектного-ориентирования (ОО),
полиморфизме и обобщении
• Показать примеры некоторых диаграмм UML
2
3. (2) Чем поможет?
Базовые знания для подготовки к получению
сертификатов:
• IBM Certified Solution Designer — IBM Rational
Unified Process v7.0
• IBM Certified Specialist for Rational (IBM Rational
Consultant) — Requirements Management with Use
Cases
• IBM Certified Solution Designer — Object Oriented
Analysis and Design, vUML 2
• OMG Certified UML Professional, Fundamental &
Intermediate
3
4. (3) Содержание семинара
• ОТ
– Что это?
– Сильные стороны
– Где используется?
• ВМ
– Что такое модель? Зачем?
– Команды разработки ПО
зачастую не моделируют
– 4 принципа визуального
моделирования
– Что такое UML?
– Для разработки системы нужен
процесс. А какой?
• ОО
– 4 принципа ОО
– Что такое класс? Атрибуты и
операции
– Полиморфизм и обобщение
– Организация элементов модели
• ВИ
– Что такое поведение системы?
– Модель ВИ и выгоды её
использования
– ВИ и актёр
• Примеры диаграмм
UML
4
5. Объектная технология — что это?
• Набор принципов разработки
ПО: абстракция,
инкапсуляция, модульность,
полиморфизм
• языки, БД и
• другие инструменты
поддержки этих принципов
Simula 1й ООЯ
1967
C ++
Late 1980s
Smalltalk
1я комм.ООсреда
1972
Java
1991
The UML
1996
UML 2
2004
C!
Oak!
5
6. Сильные стороны ОТ
1. Предоставляет единую систему
понятий
2. Облегчает переиспользование
архитектуры и кода
3. Более точно отражает модели
реального мира
4. Способствует стабильности
5. Приспособлена к изменениям
6
7. Где используется ОТ?
• Разработка клиент-
серверных систем и веб-
приложений
– ОТ позволяет компаниям
скрывать бизнес-информацию
в объектах и распределять
процессы по Сети
• Системы реального времени
– ОТ позволяет разрабатывать
более качественные и гибкие
системы реального времени
7
8. (4) Содержание семинара
• ОТ
– Что это?
– Сильные стороны
– Где используется?
• ВМ
– Что такое модель? Зачем?
– Команды разработки ПО
зачастую не моделируют
– 4 принципа визуального
моделирования
– Что такое UML?
– Для разработки системы нужен
процесс. А какой?
• ОО
– 4 принципа ОО
– Что такое класс? Атрибуты и
операции
– Полиморфизм и обобщение
– Организация элементов модели
• ВИ
– Что такое поведение системы?
– Модель ВИ и выгоды её
использования
– ВИ и актёр
• Примеры диаграмм UML
8
9. Модель – что это? Зачем?
• Модель — упрощение реальности
• Моделирование направлено на
достижение целей:
1. Помогает визуализировать систему
2. Позволяет описать структуру или
поведение системы
3. Предоставляет шаблон для построения
системы
4. Документирует принятые решения
• Мы строим модели сложной системы,
т.к. не можем осмыслить такую
систему целиком
• Мы строим модели для лучшего
понимания разрабатываемой системы
9
10. Команды разработки ПО зачастую
не моделируют
• Многие команды разработки ПО создают приложения
так, будто строят бумажный самолётик
– Начинают кодировать, опираясь на текстовые требования
– Работают дольше и создают больше кода
– Не имеют спланированной архитектуры
– Обречены на провал
• Моделирование — проверенный путь к успешным
проектам
Не важно Моделирование важно
10
11. 4 принципа
визуального моделирования
1. Создаваемые модели влияют на то, как
решается проблема
2. Каждую модель можно изобразить с
разным уровнем точности
3. Хорошие модели имеют отношение к
реальному миру
4. Нет одной достаточной модели
11
12. Модель проектированияМодель процессов
ВМ принцип 1.
Выбор модели важен
• Создаваемые модели сильно влияют на то, как
решается проблема и как формируется
решение
– В ПО выбор модели отражается на взгляде на
предметную область
– Разные углы зрения приводят к разным типам систем
Модель развертывания
12
13. ВМ принцип 2.
Уровни точности могут различаться
• Каждую модель можно изобразить с
разным уровнем точности
– Хорошие модели позволяют выбрать степень
детализации в зависимости от того
• Кто рассматривает модель
• Зачем ему нужна модель
Для проектировщиковДля потребителей
13
14. ВМ принцип 3.
Хорошие модели имеют
отношение к реальному миру
• Все модели упрощают реальность
• Хорошие модели отражают важные
неотъемлемые свойства
14
15. ВМ принцип 4.
Нет одной достаточной модели
• Любая нетривиальная система лучше всего м.б.
представлена небольшим набором почти независимых
моделей
– Создавайте модели, которые могут разрабатываться и
изучаться раздельно, но при этом взаимосвязаны
Process View Deployment View
Logical View
Use-Case View
Implementation View
End-user
Functionality
Programmers
Software management
Performance, scalability, throughput
System integrators System topology, delivery,
installation, communication
System engineering
Analysts/Designers
Structure
Предметная
область
Распределение
процессов и потоков
Вопросы разработки
Физическая
реализация
Требования
15
16. (Повторение) 4 принципа
визуального моделирования
1. Создаваемые модели влияют на то, как
решается проблема
2. Каждую модель можно изобразить с
разным уровнем точности
3. Хорошие модели имеют отношение к
реальному миру
4. Нет одной достаточной модели
16
17. (Повторение) Зачем моделируем?
• Мы строим модели, чтобы
• Моделирование направлено на достижение
целей:
1. Помогает визуализировать систему
2. Позволяет описать структуру или поведение
системы
3. Предоставляет шаблон для построения системы
4. Документирует принятые решения
лучше понять SuD, т.к. не можем осмыслить такую
систему целиком
17
18. Что такое UML?
• Это язык для
1. визуализации
2. подробного описания (спецификации)
3. построения
4. документирования
артефактов программных систем
Цели
18
19. Цель UML 1. Язык визуализации
a) Обсуждение концептуальных
моделей ведет к непониманиям и
ошибкам, если не все говорят на
едином языке
b) Некоторые вещи о системе сложно
понять, пока не построишь модель
c) Ясная модель облегчает общение
19
20. Цель UML 2. Язык спецификации
• UML позволяет строить модели
–Точными
–Недвусмысленными
–Полными
20
21. Цель UML 3. Язык построения
• Модели UML могут применяться для
множества языков программирования
– Могут использоваться для Java, C++, Visual Basic и др.
– Таблицы СУБДР или хранилища СУБДОО
– Позволяет производить forward engineering и reverse
engineering
21
23. Для разработки системы
нужен процесс. А какой?
• UML процессонезависим
• Однако наиболее подходящим
является процесс, который:
Язык моде
лирования
Unified
Process
Командная
разработка
1. Основан на вариантах
использования
2. Опирается на
архитектуру
3. Итеративный
(инкрементальный)
Характеристики
процесса
23
24. Признак процесса 1.
Основан на ВИ
• Выявленные для системы ВИ — основа всего
процесса разработки
• Выгоды ВИ:
– Лаконичны, просты, понятны для широкого круга
заинтересованных лиц
– Помогают синхронизировать содержимое разных
моделей
Получить деньги
Клиент
Проверить баланс
24
25. Признак процесса 2.
Опирается на архитектуру
• Архитектура системы – основной артефакт
осмысления, построения, управления,
развития SuD
• Выгоды:
– Контроль над и управление сложностью проекта,
поддержание целостности системы
– Хорошая основа для верхнеуровневого
переиспользования
– Основа для управления проектом
– Помощь в компонентной разработке
25
26. Признак процесса 3.
Итеративный (инкрементальный)
a) Первые итерации нацелены на критичные риски –
снимаются ранней обратной связью пользователей до
крупных вложений
b) Непрерывное тестирование и интеграция
c) Краткосрочные вехи — объективная мера
d) Прогресс измеряется оценкой объема реализованного
e) Частичные реализации могут быть внедрены с пользой
Время
Итерация 1 Итерация 2 Итерация 3
I
C
D
R
T
I
C
D
R
T
I
C
D
R
T
26
28. (5) Содержание семинара
• ОТ
– Что это?
– Сильные стороны
– Где используется?
• ВМ
– Что такое модель? Зачем?
– Команды разработки ПО
зачастую не моделируют
– 4 принципа визуального
моделирования
– Что такое UML?
– Для разработки системы нужен
процесс. А какой?
• ОО
– 4 принципа ОО
– Что такое класс? Атрибуты и
операции
– Полиморфизм и обобщение
– Организация элементов
модели
• ВИ
– Что такое поведение системы?
– Модель ВИ и выгоды её
использования
– ВИ и актёр
• Примеры диаграмм UML
28
29. Объект – это что?
По-простому, объект представляет
сущность: физическую, концептуальную
или программную
Объект
Операции
Атрибуты
Грузовик
Химический процесс
Связанный список
Формально, объект – сущность с
хорошо определенными границами и
индивидуальностью, скрывающая
состояние и поведение
• Атрибуты и отношения представляют
состояние
• Операции и методы представляют
поведение
• …
• …
• …
• …
• …
29
30. У объекта есть…
Name: А. Петренко
Employee ID: 567138
Date Hired: July 25, 1991
Maximum Course Load: 3 classes
Status: Tenured
Discipline: Finance
Поведение профессора Петренко
Submit Final Grades
Accept Course Offering
Take Sabbatical
Set Max Load
Профессор Петренко
Профессор Петренко
учит биологии
Профессор Петренко
учит биологии
Name: А. Петренко
Employee ID: 567138
Date Hired: 19910825
Discipline: Finance
Maximum Course
Load: 3 classes
SubmitFinalGrades()
AcceptCourseOffering()
TakeSabbatical()
SetMaxLoad()
30
32. ОО принцип 1. Абстракция
• Неотъемлемые характеристики сущности,
отличающие её от других типов сущностей
• Зависит от предметной
области и угла зрения
• Обозначает идею чего-либо
из реального мира
Курс
09:00
Пн-Ср-Пт
Студент
32
33. ОО принцип 2. Инкапсуляция
▪ Скрывает реализацию от клиента
▪ Клиенты зависят от интерфейса
33
34. ОО принцип 3. Модульность
• Разбиение сложного на малозависимые
управляемые куски
• Помогает понимать сложные системы
Система
расчетов
Каталог
курсов
Ведение БД
студентов
34
35. ОО принцип 4. Иерархия
Уменьшение
абстракции
Увеличение
абстракции
Имущество
Недвижимость
Сбер
Счет в банке
Текущий Акции
Ценная бумага
Обязательства
Элементы одного уровня иерархии
должны быть
на одном уровне абстракции 35
36. (Повторение) Объект и 4 принципа ОО
Объект — сущность с хорошо
определенными границами и
индивидуальностью, скрывающая
состояние и поведение
1. Абстракция
2. Инкапсуляция
3. Модульность
4. Иерархия
36
37. Класс — это что?
Класс — описание множества объектов с
одинаковыми атрибутами, операциями,
отношениями и семантикой
Какой принцип ОО и почему?
Класс — абстракция, т.к.
▪ Выделяет важные характеристики
▪ Опускает незначительные
характеристики
37
38. Атрибут и операция — что это?
• Атрибут — именованное свойство класса,
описывающее возможные принимаемые
экземпляром (объектом) значения
• Операция — услуга, которая может быть
запрошена у объекта для вызова поведения
38
39. Полиморфизм — это что?
Возможность скрывать разные реализации за
единым интерфейсом
Сони
Панасоник
Самсунг
Принцип OO — ?
Пульт
39
40. Обобщение — что это?
• Отношение между классами, когда один
класс предоставляет свою структуру и/или
поведение 1/более классам
• Определяет иерархию абстракций, в которой
подкласс наследует от 1/более надклассов
• Бывает
– Одиночное
– Множественное
• Отношение «вида»
Принцип OO — ?
Механизм — ?
Уточнение — ?
40
41. (6) Содержание семинара
• ОТ
– Что это?
– Сильные стороны
– Где используется?
• ВМ
– Что такое модель? Зачем?
– Команды разработки ПО
зачастую не моделируют
– 4 принципа визуального
моделирования
– Что такое UML?
– Для разработки системы нужен
процесс. А какой?
• ОО
– 4 принципа ОО
– Что такое класс? Атрибуты и
операции
– Полиморфизм и обобщение
– Организация элементов модели
• ВИ
– Что такое поведение
системы?
– Модель ВИ и выгоды её
использования
– ВИ и актёр
• Примеры диаграмм
UML
41
42. Поведение системы — это что?
• Поведение системы — как система
действует и отвечает на действия
актёров
• Как UML описывает поведение системы?
▪ Поведение системы собрано в ВИ
▪ ВИ описывают взаимодействие между
системой и её окружением
42
43. Модель ВИ — что это?
• Модель, описывающая
функциональные требования в виде ВИ
• Модель целевых функций системы
и её окружения
Просмотреть отчет
Студент
Зарегистрироваться
на курс
Логин
43
44. В чём выгоды модели ВИ?
Польз-ль Эксперт области Польз-ли
Проверка
Выявление
Варианты
использ.
Взаимодействие
44
45. Основные сущности
при моделировании ВИ
• Актёр — некто/нечто,
взаимодействующее с системой
• ВИ — описание
последовательности действий,
выполняемых системой, которая
приводит к ощутимому/значимому
результату для конкретного актёра
– «Что» или «Как»?
Актёр
Вариант
использования
45
46. (7) Содержание семинара
• ОТ
– Что это?
– Сильные стороны
– Где используется?
• ВМ
– Что такое модель? Зачем?
– Команды разработки ПО
зачастую не моделируют
– 4 принципа визуального
моделирования
– Что такое UML?
– Для разработки системы нужен
процесс. А какой?
• ОО
– 4 принципа ОО
– Что такое класс? Атрибуты и
операции
– Полиморфизм и обобщение
– Организация элементов модели
• ВИ
– Что такое поведение системы?
– Модель ВИ и выгоды её
использования
– ВИ и актёр
• Примеры
диаграмм UML
46
47. Какие диаграммы есть в UML?
Activity
Class
State machine
Composite structure
Sequence
Object
Use case
Package
Communication
Collaboration
Component
Interaction overview
Deployment
Timing
Какие из них структурные? 6 шт.
Какие поведения? 7 шт.
Какие взаимодействия? 4 шт.
47
48. Пример: Д. вариантов использования
View Report Card
Student
Register for Courses
Login
Select Courses to
Teach
Submit Grades
Professor
Registrar
Billing System
Maintain Professor
Information
Maintain Student
Information
Close Registration
Course Catalog
48
49. Пример: Д. деятельности
Synchronization
Bar (Fork)
Guard
Condition
Synchronization
Bar (Join)
Decision
Concurrent
Threads
Transition
Select Course
[ add course ]
Check
Schedule
Check
Pre-requisites
Assign to
Course
Resolve
Conflicts
Update
Schedule
Delete Course
[ checks completed ] [ checks failed ]
[ delete course ]
Activity/Action
49
52. Пример: Д. Классов
без атрибутов, операций, отношений
CloseRegistrationForm
LoginForm
Professor
BillingSystem
CloseRegistrationController
RegisterForCoursesForm
Course
CourseCatalogSystem
Student
RegistrationController
CourseOffering
Schedule
52
53. Пример: Д. коммуникаций 2
(поиск отношений и операций классов)
: CourseOffering
: RegistrationController
: Schedule
: Student
: PrimaryScheduleOfferingInfo
8: any conflicts?( )
: RegisterForCoursesForm
2: submit schedule( )
4: submit( )
3: save( )
7: still open?( )
9: add student(Schedule)
5: is selected?( )
10: mark as enrolled in( )
6: has pre-requisites(CourseOffering)
1: submit schedule( )
: Student
53
55. Пример: Д. компонентов
Организация компонентов и зависимости между
ними
ComponentA
<<component>>
ComponentC
<<component>>
ComponentB
<<component>>
ComponentD
<<component>>
55
56. Пример: Д. развертывания
без процессов
<<legacy RDBMS>>
Course Catalog
<<Campus LAN>>
<<Campus LAN>><<Campus LAN>>
<<application server>>
Registration Server
<<client workstation>>
PC
Billing
System
<<legacy>>
0..2000
1
1
1
1
1
56
57. Пример: Д. развертывания
с процессами
<<legacy RDBMS>>
Course Catalog
<<Campus LAN>>
<<Campus LAN>>
<<Campus LAN>>
<<application server>>
Registration Server
<<client workstation>>
PC
Billing
System
<<legacy>>
CourseCatalogSystemAccess
CourseRegistrationProcess
BillingSstemAccess
StudentApplication
0..2000
1
1
1
1
1
57
58. Использованные материалы
По большей своей части данный семинар
основан на материалах курса
Основы визуального моделирования с
использованием UML, принадлежащего
компании IBM Rational, и является
визитной карточкой этого курса
58