SlideShare a Scribd company logo
1 of 59
Download to read offline
Визуальное моделирование

и UML. Введение в основы
SkillsCup.com

Октябрь 2011
(1) Задачи семинара
• Поверхностно затронуть темы курса «Основы
системного анализа». Обсудить:
– Что такое объектная технология (ОТ) и в чем её
плюсы
– Важность визуального моделирования (ВМ) и

4 принципа ВМ
– Что предоставляет UML, и какой процесс подходит
лучше
– 4 принципа объектного-ориентирования (ОО),
полиморфизме и обобщении
• Показать примеры некоторых диаграмм UML
2
(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
(3) Содержание семинара
• ОТ
– Что это?
– Сильные стороны
– Где используется?
• ВМ
– Что такое модель? Зачем?
– Команды разработки ПО
зачастую не моделируют
– 4 принципа визуального
моделирования
– Что такое UML?
– Для разработки системы нужен
процесс. А какой?
• ОО
– 4 принципа ОО
– Что такое класс? Атрибуты и
операции
– Полиморфизм и обобщение
– Организация элементов модели
• ВИ
– Что такое поведение системы?
– Модель ВИ и выгоды её
использования
– ВИ и актёр
• Примеры диаграмм
UML
4
Объектная технология — что это?
• Набор принципов разработки
ПО: абстракция,
инкапсуляция, модульность,
полиморфизм
• языки, БД и
• другие инструменты
поддержки этих принципов
Simula 1й ООЯ
1967
C ++
Late 1980s
Smalltalk
1я комм.ООсреда
1972
Java
1991
The UML
1996
UML 2
2004
C!
Oak!
5
Сильные стороны ОТ
1. Предоставляет единую систему
понятий
2. Облегчает переиспользование
архитектуры и кода
3. Более точно отражает модели
реального мира
4. Способствует стабильности
5. Приспособлена к изменениям
6
Где используется ОТ?
• Разработка клиент-
серверных систем и веб-
приложений
– ОТ позволяет компаниям
скрывать бизнес-информацию
в объектах и распределять
процессы по Сети
• Системы реального времени
– ОТ позволяет разрабатывать
более качественные и гибкие
системы реального времени
7
(4) Содержание семинара
• ОТ
– Что это?
– Сильные стороны
– Где используется?
• ВМ
– Что такое модель? Зачем?
– Команды разработки ПО
зачастую не моделируют
– 4 принципа визуального
моделирования
– Что такое UML?
– Для разработки системы нужен
процесс. А какой?
• ОО
– 4 принципа ОО
– Что такое класс? Атрибуты и
операции
– Полиморфизм и обобщение
– Организация элементов модели
• ВИ
– Что такое поведение системы?
– Модель ВИ и выгоды её
использования
– ВИ и актёр
• Примеры диаграмм UML
8
Модель – что это? Зачем?
• Модель — упрощение реальности
• Моделирование направлено на
достижение целей:
1. Помогает визуализировать систему
2. Позволяет описать структуру или
поведение системы
3. Предоставляет шаблон для построения
системы
4. Документирует принятые решения
• Мы строим модели сложной системы,
т.к. не можем осмыслить такую
систему целиком
• Мы строим модели для лучшего
понимания разрабатываемой системы
9
Команды разработки ПО зачастую

не моделируют
• Многие команды разработки ПО создают приложения
так, будто строят бумажный самолётик
– Начинают кодировать, опираясь на текстовые требования
– Работают дольше и создают больше кода
– Не имеют спланированной архитектуры
– Обречены на провал
• Моделирование — проверенный путь к успешным
проектам
Не важно Моделирование важно
10
4 принципа

визуального моделирования
1. Создаваемые модели влияют на то, как
решается проблема
2. Каждую модель можно изобразить с
разным уровнем точности
3. Хорошие модели имеют отношение к
реальному миру
4. Нет одной достаточной модели
11
Модель проектированияМодель процессов
ВМ принцип 1.

Выбор модели важен
• Создаваемые модели сильно влияют на то, как
решается проблема и как формируется
решение
– В ПО выбор модели отражается на взгляде на
предметную область
– Разные углы зрения приводят к разным типам систем
Модель развертывания
12
ВМ принцип 2.

Уровни точности могут различаться
• Каждую модель можно изобразить с
разным уровнем точности
– Хорошие модели позволяют выбрать степень
детализации в зависимости от того
• Кто рассматривает модель
• Зачем ему нужна модель
Для проектировщиковДля потребителей
13
ВМ принцип 3.

Хорошие модели имеют
отношение к реальному миру
• Все модели упрощают реальность
• Хорошие модели отражают важные
неотъемлемые свойства
14
ВМ принцип 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
(Повторение) 4 принципа

визуального моделирования
1. Создаваемые модели влияют на то, как
решается проблема
2. Каждую модель можно изобразить с
разным уровнем точности
3. Хорошие модели имеют отношение к
реальному миру
4. Нет одной достаточной модели
16
(Повторение) Зачем моделируем?
• Мы строим модели, чтобы
• Моделирование направлено на достижение
целей:
1. Помогает визуализировать систему
2. Позволяет описать структуру или поведение
системы
3. Предоставляет шаблон для построения системы
4. Документирует принятые решения
лучше понять SuD, т.к. не можем осмыслить такую
систему целиком
17
Что такое UML?
• Это язык для
1. визуализации
2. подробного описания (спецификации)
3. построения
4. документирования
артефактов программных систем
Цели
18
Цель UML 1. Язык визуализации
a) Обсуждение концептуальных
моделей ведет к непониманиям и
ошибкам, если не все говорят на
едином языке
b) Некоторые вещи о системе сложно
понять, пока не построишь модель
c) Ясная модель облегчает общение
19
Цель UML 2. Язык спецификации
• UML позволяет строить модели
–Точными
–Недвусмысленными
–Полными
20
Цель UML 3. Язык построения
• Модели UML могут применяться для
множества языков программирования
– Могут использоваться для Java, C++, Visual Basic и др.
– Таблицы СУБДР или хранилища СУБДОО
– Позволяет производить forward engineering и reverse
engineering
21
Цель UML 4. Язык документирования
• UML предназначен для документирования требований к
системе, её архитектуры, тестов, планирования проекта
и управления выпусками
Диаграмма ВИ
Actor A
Use Case 1
Use Case 2
Use Case 3
Actor B
Диаграмма классов
GrpFile
read( )
open( )
create( )
fillFile( )
rep
Repository
name : char * = 0
readDoc( )
readFile( )
(from Persistence)
FileMgr
fetchDoc( )
sortByName( )
DocumentList
add( )
delete( )
Document
name : int
docid : int
numField : int
get( )
open( )
close( )
read( )
sortFileList( )
create( )
fillDocument( )
fList
1
FileList
add( )
delete( )
1
File
read( )
read() fill the
code..
Диаграмма последовательности
user
mainWnd fileMgr :
FileMgr
repositorydocument :
Document
gFile
1: Doc view request ( )
2: fetchDoc( )
3: create ( )
4: create ( )
5: readDoc ( )
6: fillDocument ( )
7: readFile ( )
8: fillFile ( )
9: sortByName ( )
ƯÁ¤¹®¼¿¡ ´ëÇÑ º¸±â¸¦
»ç¿ëÀÚ°¡ ¿äûÇÑ´Ù.
ÈÀÏ°ü¸®ÀÚ´Â Àоî¿Â
¹®¼ÀÇ Á¤º¸¸¦ ÇØ´ç ¹®¼
°´Ã¼¿¡ ¼³Á¤À» ¿äûÇÑ´Ù.
È¸é °´Ã¼´Â ÀоîµéÀÎ
°´Ã¼µé¿¡ ´ëÇØ À̸§º°·Î
Á¤·ÄÀ» ½ÃÄÑ È¸é¿¡
º¸¿©ÁØ´Ù.
Диаграмма развертывания
Window95
¹®¼°ü¸®
Ŭ¶óÀ̾ðÆ®.EXE
Windows
NT
¹®¼°ü¸® ¿£Áø.EXE
Windows
NT
Windows95
Solaris
ÀÀ¿ë¼¹ö.EXE
Alpha
UNIX
IBM
Mainframe
µ¥ÀÌŸº£À̽º¼¹ö
Windows95
¹®¼°ü¸® ¾ÖÇø´
ºÐ»ê ȯ°æÀÇ Çϵå¿þ¾î¹× ³×Æ®¿÷À¸·ÎÀÇ Á¤º¸ ½Ã½ºÅÛ ¿¬°á ¸ðµ¨
- À©µµ¿ì 95 : Ŭ¶óÀ̾ðÆ®
- À©µµ¿ì NT: ÀÀ¿ë¼¹ö
- À¯´Ð½º ¸Ó½Å: ÀÀ¿ë ¼¹ö ¹× µ¥ÀÌŸ ¼¹ö, Åë½Å ¼¹ö
- IBM ¸ÞÀÎÇÁ·¹ÀÓ: µ¥ÀÌŸ ¼¹ö, Åë½Å ¼¹ö
22
Для разработки системы

нужен процесс. А какой?
• UML процессонезависим
• Однако наиболее подходящим
является процесс, который:
Язык моде

лирования
Unified

Process
Командная
разработка
1. Основан на вариантах
использования
2. Опирается на
архитектуру
3. Итеративный
(инкрементальный)
Характеристики
процесса
23
Признак процесса 1.

Основан на ВИ
• Выявленные для системы ВИ — основа всего
процесса разработки
• Выгоды ВИ:
– Лаконичны, просты, понятны для широкого круга
заинтересованных лиц
– Помогают синхронизировать содержимое разных
моделей
Получить деньги
Клиент
Проверить баланс
24
Признак процесса 2.

Опирается на архитектуру
• Архитектура системы – основной артефакт
осмысления, построения, управления,
развития SuD
• Выгоды:
– Контроль над и управление сложностью проекта,
поддержание целостности системы
– Хорошая основа для верхнеуровневого
переиспользования
– Основа для управления проектом
– Помощь в компонентной разработке
25
Признак процесса 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
(Повторение) Наиболее подходящий
процесс для UML
1. Основан на вариантах использования
2. Опирается на архитектуру
3. Итеративный (инкрементальный)
27
(5) Содержание семинара
• ОТ
– Что это?
– Сильные стороны
– Где используется?
• ВМ
– Что такое модель? Зачем?
– Команды разработки ПО
зачастую не моделируют
– 4 принципа визуального
моделирования
– Что такое UML?
– Для разработки системы нужен
процесс. А какой?
• ОО
– 4 принципа ОО
– Что такое класс? Атрибуты и
операции
– Полиморфизм и обобщение
– Организация элементов
модели
• ВИ
– Что такое поведение системы?
– Модель ВИ и выгоды её
использования
– ВИ и актёр
• Примеры диаграмм UML
28
Объект – это что?
По-простому, объект представляет
сущность: физическую, концептуальную
или программную
Объект
Операции
Атрибуты
Грузовик
Химический процесс
Связанный список
Формально, объект – сущность с
хорошо определенными границами и
индивидуальностью, скрывающая

состояние и поведение
• Атрибуты и отношения представляют
состояние
• Операции и методы представляют
поведение
• …
• …
• …
• …
• …
29
У объекта есть…
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
4 принципа ОО
Абстракция
Иерархия
Объектное ориентирование
Инкапсуляция
Модульность
31
ОО принцип 1. Абстракция
• Неотъемлемые характеристики сущности,
отличающие её от других типов сущностей
• Зависит от предметной

области и угла зрения
• Обозначает идею чего-либо

из реального мира
Курс
09:00
Пн-Ср-Пт
Студент
32
ОО принцип 2. Инкапсуляция
▪ Скрывает реализацию от клиента
▪ Клиенты зависят от интерфейса
33
ОО принцип 3. Модульность
• Разбиение сложного на малозависимые
управляемые куски
• Помогает понимать сложные системы
Система
расчетов
Каталог
курсов
Ведение БД
студентов
34
ОО принцип 4. Иерархия
Уменьшение
абстракции
Увеличение
абстракции
Имущество
Недвижимость
Сбер
Счет в банке
Текущий Акции
Ценная бумага
Обязательства
Элементы одного уровня иерархии

должны быть

на одном уровне абстракции 35
(Повторение) Объект и 4 принципа ОО
Объект — сущность с хорошо
определенными границами и
индивидуальностью, скрывающая
состояние и поведение
1. Абстракция
2. Инкапсуляция
3. Модульность
4. Иерархия
36
Класс — это что?
Класс — описание множества объектов с
одинаковыми атрибутами, операциями,
отношениями и семантикой
Какой принцип ОО и почему?
Класс — абстракция, т.к.
▪ Выделяет важные характеристики
▪ Опускает незначительные
характеристики
37
Атрибут и операция — что это?
• Атрибут — именованное свойство класса,
описывающее возможные принимаемые
экземпляром (объектом) значения
• Операция — услуга, которая может быть
запрошена у объекта для вызова поведения
38
Полиморфизм — это что?
Возможность скрывать разные реализации за
единым интерфейсом
Сони
Панасоник
Самсунг
Принцип OO — ?
Пульт
39
Обобщение — что это?
• Отношение между классами, когда один
класс предоставляет свою структуру и/или
поведение 1/более классам
• Определяет иерархию абстракций, в которой
подкласс наследует от 1/более надклассов
• Бывает
– Одиночное
– Множественное
• Отношение «вида»
Принцип OO — ?
Механизм — ?
Уточнение — ?
40
(6) Содержание семинара
• ОТ
– Что это?
– Сильные стороны
– Где используется?
• ВМ
– Что такое модель? Зачем?
– Команды разработки ПО
зачастую не моделируют
– 4 принципа визуального
моделирования
– Что такое UML?
– Для разработки системы нужен
процесс. А какой?
• ОО
– 4 принципа ОО
– Что такое класс? Атрибуты и
операции
– Полиморфизм и обобщение
– Организация элементов модели
• ВИ
– Что такое поведение
системы?
– Модель ВИ и выгоды её
использования
– ВИ и актёр
• Примеры диаграмм
UML
41
Поведение системы — это что?
• Поведение системы — как система
действует и отвечает на действия
актёров
• Как UML описывает поведение системы?
▪ Поведение системы собрано в ВИ
▪ ВИ описывают взаимодействие между
системой и её окружением
42
Модель ВИ — что это?
• Модель, описывающая

функциональные требования в виде ВИ
• Модель целевых функций системы

и её окружения
Просмотреть отчет
Студент
Зарегистрироваться

на курс
Логин
43
В чём выгоды модели ВИ?
Польз-ль Эксперт области Польз-ли
Проверка
Выявление
Варианты

использ.
Взаимодействие
44
Основные сущности

при моделировании ВИ
• Актёр — некто/нечто,
взаимодействующее с системой
• ВИ — описание
последовательности действий,
выполняемых системой, которая
приводит к ощутимому/значимому
результату для конкретного актёра
– «Что» или «Как»?
Актёр
Вариант
использования
45
(7) Содержание семинара
• ОТ
– Что это?
– Сильные стороны
– Где используется?
• ВМ
– Что такое модель? Зачем?
– Команды разработки ПО
зачастую не моделируют
– 4 принципа визуального
моделирования
– Что такое UML?
– Для разработки системы нужен
процесс. А какой?
• ОО
– 4 принципа ОО
– Что такое класс? Атрибуты и
операции
– Полиморфизм и обобщение
– Организация элементов модели
• ВИ
– Что такое поведение системы?
– Модель ВИ и выгоды её
использования
– ВИ и актёр
• Примеры
диаграмм UML
46
Какие диаграммы есть в UML?
Activity
Class
State machine
Composite structure
Sequence
Object
Use case
Package
Communication

Collaboration
Component
Interaction overview
Deployment
Timing
Какие из них структурные? 6 шт.
Какие поведения? 7 шт.
Какие взаимодействия? 4 шт.
47
Пример: Д. вариантов использования
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
Пример: Д. деятельности
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
Пример: Д. последовательности
: Student :RegisterForCoursesForm :RegistrationController : Course Catalog:CourseCatalogSystem
1: create schedule( )
5: display course offerings( )
2: get course offerings( )
3: get course offerings(forSemester)
6: display blank schedule( )
4: get course offerings( )
Select Offerings
ref
50
Пример: Д. коммуникаций 1
: Student
: RegisterForCoursesForm
: RegistrationController : CourseCatalogSystem
5: display course offerings( )
6: display blank schedule( )
: Course Catalog1: create schedule( )
2: get course offerings( )
3: get course offerings(forSemester)
4: get course offerings( )
51
Пример: Д. Классов

без атрибутов, операций, отношений
CloseRegistrationForm
LoginForm
Professor
BillingSystem
CloseRegistrationController
RegisterForCoursesForm
Course
CourseCatalogSystem
Student
RegistrationController
CourseOffering
Schedule
52
Пример: Д. коммуникаций 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
Пример: Д. состояний
Hired
Assistant
Professor
Tenured
Professor
Applied
rejected
accepted
Hiatus
H
H
takeSabbatical
retired
maxPapers
seniority
return
54
Пример: Д. компонентов
Организация компонентов и зависимости между
ними
ComponentA
<<component>>
ComponentC
<<component>>
ComponentB
<<component>>
ComponentD
<<component>>
55
Пример: Д. развертывания

без процессов
<<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
Пример: Д. развертывания

с процессами
<<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
Использованные материалы
По большей своей части данный семинар
основан на материалах курса

Основы визуального моделирования с
использованием UML, принадлежащего
компании IBM Rational, и является
визитной карточкой этого курса
58
Благодарю за внимание!
59
SkillsCup.com
Поблагодарить

за внимание

More Related Content

Viewers also liked

Data Modeling Presentations I
Data Modeling Presentations IData Modeling Presentations I
Data Modeling Presentations Icd_crisci
 
All data models in dbms
All data models in dbmsAll data models in dbms
All data models in dbmsNaresh Kumar
 
Data Modeling PPT
Data Modeling PPTData Modeling PPT
Data Modeling PPTTrinath
 

Viewers also liked (6)

Data Modeling Presentations I
Data Modeling Presentations IData Modeling Presentations I
Data Modeling Presentations I
 
All data models in dbms
All data models in dbmsAll data models in dbms
All data models in dbms
 
Different data models
Different data modelsDifferent data models
Different data models
 
Data modelling 101
Data modelling 101Data modelling 101
Data modelling 101
 
Data Modeling PPT
Data Modeling PPTData Modeling PPT
Data Modeling PPT
 
Data modeling for the business
Data modeling for the businessData modeling for the business
Data modeling for the business
 

Similar to Essentials of Visual modeling and UML (rus) by SkillsCup.com

МАСТЕР-КЛАСС. Моделирование на UML
МАСТЕР-КЛАСС. Моделирование на UMLМАСТЕР-КЛАСС. Моделирование на UML
МАСТЕР-КЛАСС. Моделирование на UMLSQALab
 
Денис Иванов
Денис ИвановДенис Иванов
Денис ИвановSQALab
 
Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenchesGleb Rybalko
 
03 - Практика UML. Прецеденты
03 - Практика UML. Прецеденты03 - Практика UML. Прецеденты
03 - Практика UML. ПрецедентыRoman Brovko
 
Почему размер имеет значение
Почему размер имеет значениеПочему размер имеет значение
Почему размер имеет значениеSQALab
 
Mva stf module 1 - rus
Mva stf module 1 - rusMva stf module 1 - rus
Mva stf module 1 - rusMaxim Shaptala
 
UML. Взгляд со стороны
UML. Взгляд со стороныUML. Взгляд со стороны
UML. Взгляд со стороныSQALab
 
Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Dima Dzuba
 
01 - Практика UML. Нужен ли UML?
01 - Практика UML. Нужен ли UML?01 - Практика UML. Нужен ли UML?
01 - Практика UML. Нужен ли UML?Roman Brovko
 
UML: Первое знакомство
UML: Первое знакомствоUML: Первое знакомство
UML: Первое знакомствоAlexander Babich
 
чмв лекция №7
чмв   лекция №7чмв   лекция №7
чмв лекция №7student_kai
 

Similar to Essentials of Visual modeling and UML (rus) by SkillsCup.com (20)

семинар Uml
семинар Umlсеминар Uml
семинар Uml
 
МАСТЕР-КЛАСС. Моделирование на UML
МАСТЕР-КЛАСС. Моделирование на UMLМАСТЕР-КЛАСС. Моделирование на UML
МАСТЕР-КЛАСС. Моделирование на UML
 
Киев, BA Con 2017
Киев, BA Con 2017Киев, BA Con 2017
Киев, BA Con 2017
 
Денис Иванов
Денис ИвановДенис Иванов
Денис Иванов
 
Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenches
 
03 - Практика UML. Прецеденты
03 - Практика UML. Прецеденты03 - Практика UML. Прецеденты
03 - Практика UML. Прецеденты
 
Почему размер имеет значение
Почему размер имеет значениеПочему размер имеет значение
Почему размер имеет значение
 
Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenches
 
Gaperton - Software People 2012
Gaperton - Software People 2012Gaperton - Software People 2012
Gaperton - Software People 2012
 
лек11 7
лек11 7лек11 7
лек11 7
 
лек11 7
лек11 7лек11 7
лек11 7
 
Mva stf module 1 - rus
Mva stf module 1 - rusMva stf module 1 - rus
Mva stf module 1 - rus
 
IT people
IT peopleIT people
IT people
 
Работа с Usability
Работа с UsabilityРабота с Usability
Работа с Usability
 
UML. Взгляд со стороны
UML. Взгляд со стороныUML. Взгляд со стороны
UML. Взгляд со стороны
 
Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4
 
01-lection-ka
01-lection-ka01-lection-ka
01-lection-ka
 
01 - Практика UML. Нужен ли UML?
01 - Практика UML. Нужен ли UML?01 - Практика UML. Нужен ли UML?
01 - Практика UML. Нужен ли UML?
 
UML: Первое знакомство
UML: Первое знакомствоUML: Первое знакомство
UML: Первое знакомство
 
чмв лекция №7
чмв   лекция №7чмв   лекция №7
чмв лекция №7
 

Essentials of Visual modeling and UML (rus) by SkillsCup.com

  • 1. Визуальное моделирование
 и UML. Введение в основы SkillsCup.com
 Октябрь 2011
  • 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
  • 22. Цель UML 4. Язык документирования • UML предназначен для документирования требований к системе, её архитектуры, тестов, планирования проекта и управления выпусками Диаграмма ВИ Actor A Use Case 1 Use Case 2 Use Case 3 Actor B Диаграмма классов GrpFile read( ) open( ) create( ) fillFile( ) rep Repository name : char * = 0 readDoc( ) readFile( ) (from Persistence) FileMgr fetchDoc( ) sortByName( ) DocumentList add( ) delete( ) Document name : int docid : int numField : int get( ) open( ) close( ) read( ) sortFileList( ) create( ) fillDocument( ) fList 1 FileList add( ) delete( ) 1 File read( ) read() fill the code.. Диаграмма последовательности user mainWnd fileMgr : FileMgr repositorydocument : Document gFile 1: Doc view request ( ) 2: fetchDoc( ) 3: create ( ) 4: create ( ) 5: readDoc ( ) 6: fillDocument ( ) 7: readFile ( ) 8: fillFile ( ) 9: sortByName ( ) ƯÁ¤¹®¼¿¡ ´ëÇÑ º¸±â¸¦ »ç¿ëÀÚ°¡ ¿äûÇÑ´Ù. ÈÀÏ°ü¸®ÀÚ´Â Àоî¿Â ¹®¼ÀÇ Á¤º¸¸¦ ÇØ´ç ¹®¼ °´Ã¼¿¡ ¼³Á¤À» ¿äûÇÑ´Ù. È¸é °´Ã¼´Â ÀоîµéÀÎ °´Ã¼µé¿¡ ´ëÇØ À̸§º°·Î Á¤·ÄÀ» ½ÃÄÑ È¸é¿¡ º¸¿©ÁØ´Ù. Диаграмма развертывания Window95 ¹®¼°ü¸® Ŭ¶óÀ̾ðÆ®.EXE Windows NT ¹®¼°ü¸® ¿£Áø.EXE Windows NT Windows95 Solaris ÀÀ¿ë¼¹ö.EXE Alpha UNIX IBM Mainframe µ¥ÀÌŸº£À̽º¼¹ö Windows95 ¹®¼°ü¸® ¾ÖÇø´ ºÐ»ê ȯ°æÀÇ Çϵå¿þ¾î¹× ³×Æ®¿÷À¸·ÎÀÇ Á¤º¸ ½Ã½ºÅÛ ¿¬°á ¸ðµ¨ - À©µµ¿ì 95 : Ŭ¶óÀ̾ðÆ® - À©µµ¿ì NT: ÀÀ¿ë¼¹ö - À¯´Ð½º ¸Ó½Å: ÀÀ¿ë ¼¹ö ¹× µ¥ÀÌŸ ¼¹ö, Åë½Å ¼¹ö - IBM ¸ÞÀÎÇÁ·¹ÀÓ: µ¥ÀÌŸ ¼¹ö, Åë½Å ¼¹ö 22
  • 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
  • 27. (Повторение) Наиболее подходящий процесс для UML 1. Основан на вариантах использования 2. Опирается на архитектуру 3. Итеративный (инкрементальный) 27
  • 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
  • 31. 4 принципа ОО Абстракция Иерархия Объектное ориентирование Инкапсуляция Модульность 31
  • 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
  • 50. Пример: Д. последовательности : Student :RegisterForCoursesForm :RegistrationController : Course Catalog:CourseCatalogSystem 1: create schedule( ) 5: display course offerings( ) 2: get course offerings( ) 3: get course offerings(forSemester) 6: display blank schedule( ) 4: get course offerings( ) Select Offerings ref 50
  • 51. Пример: Д. коммуникаций 1 : Student : RegisterForCoursesForm : RegistrationController : CourseCatalogSystem 5: display course offerings( ) 6: display blank schedule( ) : Course Catalog1: create schedule( ) 2: get course offerings( ) 3: get course offerings(forSemester) 4: get course offerings( ) 51
  • 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