View

advertisement
Нотации
моделирования
Принципы проектирования с
использованием UML
Цели моделирования
 Visualizing
 Specifying
 Constructing
 Documenting
 UML –
Unified Modeling Language
 ORM – Object Role Modeling
Литература

Grady Booch, Ivar Jacobson, James Rumbaugh. The
Unified Modeling Language User Guide Addison-Wesley
1999.
 Doug Rosenberg, Kendall Scott. Use Case Driven
Object Modeling with UML Addison-Wesley 1999
 Martin Fowler, Kendall Scott UML Distilled Second
Edition A Brief Guide to the Standard Object Modeling
Language Addison-Wesley 1999
 Object Management Group’s Unified Modeling Language
Web site http://www.omg.org/uml/
 http://www.rational.com
UML представления
View:
Что отображает:
User or use case view Объекты системы с точки
Structural or design
view
зрения пользователя.
Стационарное или
промежуточное состояние
системы.
Behavioral or process Динамическое состояние
системы
view
Implementation view Логический дизайн системы.
Environment or
deployment view
Функциональность системы с
точки зрения пользователя
System assembly
configuration management
Vocabulary
functionality
Design View
Implementation View
Use Case
View
Behavior
Process View
Perfomance
scalability
throughput
Deployment View
System topology
distribution
delivery
installation
UML диаграммы









Use case – взаимодействие системы и
объектов.
Class – диаграмма классов
Object – диаграмма объектов
Component – компоненты системы
Deployment – диаграмма развертывания
Sequence – диаграмма последовательности
Collaboration – диаграмма взаимодействия
State – диаграмма состояний
Activity – диаграмма действий и процессов
Use Case
Описывает цепочки взаимодействия между объектами вне
системы (actor) и элементами системы (use case).
System
UseCase
Actor
Объект вне
системы
Элемент системы
«uses»
1
*
Связи между элементами
Границы системы
«extends»
Текстовое описание Use Case
Действующее лицо
Действие
Торговый представитель
Создает заказ.
Торговый представитель
Добавляет продукт в заказ.
Покупатель
Просматривает каталог.
Покупатель
Покупатель
Смотрит информацию о
продукте.
Выбирает продукт.
Покупатель
Создает заказ.
Покупатель
Добавляет продукт в заказ.
Графическое представление Use Case
System
«uses»
Browse Product
«uses»
«uses»
Views Product Data
Customer
«uses»
«uses»
Select Product
«uses»
Creates Order
«uses»
Sales Representative
Adds Product to Order
Как составлять Use Cases
 Выделить
задачи, анализируя систему,
которая требует автоматизации.
 Для каждой задачи определить:
• Кто выполняет задачу – Actor
• Выполняемое действие
• Объект, над которым выполняется действие.
 Разбить
задачи на сценарии
 Построить диаграмму для каждого
сценария
System
«uses»
«uses»
«uses»
Forecast Sales
Establish Sales Goals
«uses»
«uses»
Vice President
Sales Manager
«extends»
Analyze Customers
Manage Contacts
«uses»
Opportunity Management
«uses»
Manage Orders
«uses»
«extends»
Manage Products
Internationalize Catalog
Sales Representative
View Catalog
«uses»
Product Redesign
«uses»
«extends»
«uses»
Product Engineering
Accounts Receivable
«extends»
Purshasing
Customer
Product Clerk
Engineering Group
Product Design Review
Class Diagram
Диаграмма классов описывает типы объектов в системе и
различные статические связи между ними.
Основные элементы:
«interface»
Interface
Class
Интерфейс
Класс
0..1
Наследование
Interface
Ассоциация
1..*
1
Зависимость
Агрегация
*
Пример: Фирма.
Company
1
*
1..*
1..*
Office
Department
1
-address : string
-voice : int
-name : string
*
1..*
*
{subset}
1
Headquarters
Person
Contact
-name : string
-employeeID : int
-title : string
+getPhoto()
+getContactInformation()
+getPersonalRecord()
+Address : string
PersonnelRecord
-taxID
-employmentHistory
-salary
ISecureInformation
Toolbar
#currentSelection : Tool
#toolCount : int
+PickItem(in i : int)
+AddTool(in t : Tool)
+RemoveTool(in i : int)
+GetTool() : Tool
#checkOrphans()
-compact()
A. Атрибуты доступа
Icon{root}
-origin : Point
+display(){sequential}
Button
+display()
Frame
-header : long
-uniqueID : long
OkButton{leaf}
+display(){sequential}
B. Область видимости
C. Абстрактные и
конкретные классы
Шаблоны
template<class Item, class Value, int Buckets>
class Map {
public:
virtual bool Bind(const Item&, const Value&);
virtual bool IsBound(const Item&) const;
…
};
Item, Value, Buckets:int
Map
+Bind(in i : Item, in v : Value) : bool
+IsBound(in i : Item)
Map<Customer, Order, 3>
OrderMap
Object Diagram
Диаграмма объектов – модель экземпляров (instances) объектов и их
взаимоотношений (relationships), основанная на диаграмме классов.
Основные элементы:
Object : Class
Экземпляр класса (объект)
Связь между экземплярами
Диаграмма объектов для
примера Фирма.
c : Company
d1 : Department
name : string = "Sales"
d2 : Department
name : string = "R&D"
d3 : Department
name : string = "US Sales"
p : Person
name : string = "Erin"
employeeID : int = 4362
title : string = "VP of Sales"
: Contact
Address : string = "1472 Miller St."
Component Diagram
Диаграмма компонентов – схема физических частей системы и реализуемых
ими интерфейсов.
Основные элементы:
Компонент
Component
«interface»
Interface
Class
Interface
Класс
Интерфейс
system::dialog.dll
{version = 2.0.1.75}
agent.java
A. Простейшай компонента.
B. Расширенное описание.
fraudagent.dll
FraudAgent
PatternSearch
FraudPolicy
С. Компоненты и классы.
Компоненты и интерфейсы
image.java
ImageObserver
component.java
A. Iconic form
image.java
B. Expanded form
«interface»
ImageObserver
+abort() : int
+int() : int
component.java
Deployment Diagram
Диаграмма развертывания представляет собой схему физических
элементов системы с указанием их места размещения.
Основыне элементы:
Нода – физический элеменет, который существует в
конкретный момент времени и представляет собой
ресурс обладыющий собственной памятью, а иногда
даже собственным ПО.
Node
Component
Компонента
server::backup
{documentation =
remoteAdministrationOnly
}
kiosk_7
B.
A.
sales
pos.exe
C.
contacts.exe
A.
10-T Ethernet
kiosk
RAID farm
“RS-232"
Processor server
console
B.
kiosk
10-T Ethernet
*
server
console
“RS-232"
RAID farm
Sequence Diagram
Диаграмма последовательности – схема, отображающая объекты и участников
некоторого процесса а также из взаимодействие (посредством сообщений и
вызовов процедур) в хронологическом порядке.
Основные элементы:
Object
Message
MessageReturn
Объект и его
время жизни
Действие или
активность
объекта
Сообщение между объектами или вызов
процедуры одного объекта из другого
Сообщение о завершении действия
Работа с БД.
c: Client
p: ODBCProxy
create
: Transaction
setActions(a,d,o)
setValue(d,3.4)
Message1
committed
"destroy"
ProductClerk
Search
Catalog
Product
Engineering
Open Catalog
Enter Product ID
Search for Product
Locate Product
Pull Product from Catalog
Return Product Information
Add New Spec to Product Record
Mark Product as "ready-for-review"
Auto-Notification for Review
Review Product
Mark Product as "approved"
Auto-Notification of Approval
Save Changes
Collaboration Diagram
Диаграмма взаимодействия представляет собой схему динамического
взаимодействия экземпляров объектов. Аналогична диаграмме
последовательности.
ProductClerk
Mark Product as “ready-for-review”
Product
Auto-Notification
for review
Engineering
Review product
State Diagram
Диаграмма состояний – схема состояний объекта и действий перехода из
одного состояния в другое.
Основные элементы:
Начальное состояние
State
[action]
Конечное состояние
Промежуточное состояние объекта
Действие или событие перехода из одного состояния в другое
Диаграмма работы факса
[ringing]
Idle
Receiving
[sendFax]
[headerOk]
Connected
Transmitting
Processing
[error]
[checkSumOk]
Cleaning up
Activity Diagram
Диаграмма действий – схема процессов, происходящих в моделях.
Использется для отображения workflow моделей.
Основные элементы:
Начальное и
конечное состояния
Transition fork
Разделение действия
на параллельное
выполнения
ActionState
Действие
Transition join
Объединение
параллельно
выполняющихся
действий
Строительство здания
Select site
Bid plan
Commission architect
Develop plan
[not accepted]
Do site work
Do trade work
Finish construction
:CertificateOfOccupancy
Бизнес-процесс обработки заявления на
выплату по страховому случаю
(нестандартный формат)
Ввод данных (IMS)
Создание
заявки
Согласование
Юридическое
оформление
отказа
Извещение
перестраховате
ля
Завершение
заявки
Нет
Да
Нет
Да
Ввод данных (IMS)
Вввод
данных по
заявлению
Да
Согласование
Ввод данных (IMS)
Договор действует и
событие является
страховым случаем?
Ввод
дополнительных
даных о СС,
регистрация ЗНУ
Да
Согласование
Да
Договор
перестрахован?
Ввод данных (IMS)
Нет
Ввод данных о
собраных
документах
Согласование
Да
Все документы
собраны?
Да
Нет
Согласование
Завершение
заявки
Да
Процесс
выплаты по СС
Да
Да
Нет
Согласование
Возможно
взыскать
регрес?
Да
Процесс взыскания
регресса
(вторичная заявка)
Тел. звонок
Подписание
Извещение клиента
Подготовка и
подписание
акта
Да
Контроль
времени
Да
Download