Essentials of Visual modeling and UML (rus) by SkillsCup.com
-
Upload
dmitry-skillscupcom -
Category
Software
-
view
124 -
download
1
Transcript of Essentials of Visual modeling and UML (rus) by SkillsCup.com
Визуальное моделирование и 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-userFunctionality
ProgrammersSoftware management
Performance, scalability, throughputSystem integrators System topology, delivery,
installation, communication
System engineering
Analysts/DesignersStructure
Предметная область
Распределение процессов и потоков
Вопросы разработки
Физическая реализация
Требования
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 процессонезависим • Однако наиболее подходящим является процесс, который:
Язык моделирования
UnifiedProcess
Командная разработка
1. Основан на вариантах использования
2. Опирается на архитектуру
3. Итеративный (инкрементальный)
Характеристики процесса
23
Признак процесса 1. Основан на ВИ
• Выявленные для системы ВИ — основа всего процесса разработки
• Выгоды ВИ: – Лаконичны, просты, понятны для широкого круга заинтересованных лиц
– Помогают синхронизировать содержимое разных моделей
Получить деньги
Клиент
Проверить баланс
24
Признак процесса 2. Опирается на архитектуру
• Архитектура системы – основной артефакт осмысления, построения, управления, развития SuD
• Выгоды: – Контроль над и управление сложностью проекта, поддержание целостности системы
– Хорошая основа для верхнеуровневого переиспользования
– Основа для управления проектом – Помощь в компонентной разработке
25
Признак процесса 3. Итеративный (инкрементальный)
a) Первые итерации нацелены на критичные риски – снимаются ранней обратной связью пользователей до крупных вложений
b) Непрерывное тестирование и интеграция
c) Краткосрочные вехи — объективная мера
d) Прогресс измеряется оценкой объема реализованного
e) Частичные реализации могут быть внедрены с пользой
Время
Итерация 1 Итерация 2 Итерация 3
IC
DR
TI
CD
R
TI
CD
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() Set
Max
Load
()
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 Offeringsref
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
11
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
11
1
57
Использованные материалы
По большей своей части данный семинар основан на материалах курсаОсновы визуального моделирования с использованием UML, принадлежащего компании IBM Rational, и является визитной карточкой этого курса
58
Благодарю за внимание!
59
SkillsCup.com
Поблагодаритьза внимание