04-Analysis

advertisement
Объектно-ориентированный
анализ и дизайн
Copyright © Мухортов В. В., Няньчук-Татарский Н. А., 2001-2004
Copyright © ООО «Интекс», 2003-2004
Классы





Class – набор объектов с общей структурой и
поведением
Interface – базовый класс, задающий только
поведение, имеет стереотип <<interface>>
Abstract class – базовый класс, не имеющий
экземпляров
Parameterized class – параметризованный класс,
шаблон
Instantiated class – депараметризованный шаблон
Примеры классов
Атрибуты классов






Attribute
– атрибут (поле)
Class attribute – атрибут класса (static)
Derived attribute – производный (вычислимый)
атрибут
Export control – доступ (public, protected, private)
Containment – способ включения (value, reference)
Syntax: <role_name>:<class_name><=default_value>
Атрибуты классов
name, birth_date – аттрибуты
age – производный аттрибут (вычисляется через birth_date)
Атрибуты классов
name, birth_date и age - атрибуты класса
Методы(операции)





Method (operation) – метод
Class method – метод класса (static)
Export control – public, protected, private
Syntax: <stereotype> name(<parameters>) : <return type>
Parameter: parameter_name : type
Диаграмма классов
- определяет типы объектов системы и
статические связи между ними
Отношения между классами




Зависимость
Ассоциация
Агрегация (отношение часть-целое)
Композиция (отношение часть-целое c
контролем жизненного цикла)


Генерализация (наследование)
Реализация (выполнение контракта)
Ассоциация (Association)




Ассоциация - отношение взаимодействия
Обладает 2-мя ролями
Роль обладает множественностью (1, n, *, 0..n, 1..n,
1..*)
Пример: сотрудник может занимать несколько должностей, на
одной должности находится не более одного сотрудника
Position
+position
1..n
+person
0..1
Employee
Ассоциация

Ассоциация может иметь выделенное направление


Должность связана базовым тарифом оплаты
Тариф оплаты никак не связан с конкретной должностью
-rate
Position
BasicRate
1
Агрегация (Aggregation)

Агрегация – отношение часть-целое
Композиция (Composition)


Композиция – частный случай агрегации
Жизненный цикл частей и целого совпадают


Отделы не существуют без компании
Часть принадлежит только одному целому
+company
+departments
Company
Department
1
0..*
Зависимость (Dependency)
Генерализация (Generalization)

Генерализация (наследование, обобщение) –
отношение частное-общее
Реализация (Realization)

Реализация – отношение выполнения соглашения

Треугольник и квадрат реализуют алгоритм вращения,
специфицированный абстрактной сущностью «Фигура»
Диаграммы пакетов




Package – пакет. Общий механизм
организации элементов модели в группы
Имеет имя
Определяет пространство имен
Может быть импортирован другим
пакетом
package1
package2
Диаграмма пакетов
service
<<Interface>>
<<Interface>>
Service
ResultSet
(f rom serv ice)
(f rom serv ice)
local
(from service)
server
(from service)
agent
(from service)
Диаграмма пакетов
service
agent
(from service)
server
(from service)
local
(from service)
пакет: service
пакет: service::local
пакет: service::server
пакет: service::agent
стереотипы пакетов



system – вся система
subsystem – подсистема
facade – представление другого пакета



Например, пакет внешних интерфейсов
подсистемы
framework – набор шаблонов
stub – заместитель другого пакета

Созданный, например, для тестирования
Диаграммы взаимодействия

Последовательностей - Sequence diagrams

Коопераций (Коллабораций) - Collaboration diagrams
• Отражают динамические аспекты поведения объектов
• Семантически эквивалентны
• Содержат:
• Объекты
• Связи
• Сообщения
• Потоки данных
Диаграмма последовательностей
: Application
do( )
: ServiceAgent
: ServiceServer
: Service
: ResultSet
"initiate do request"
"check authorization"
do( )
"create"
addData(String)
"return results"
Диаграмма коопераций
1: do( )
: Application
:
ServiceAgent
2: "initiate do request"
7: "return results"
: ServiceServer
3: "check authorization"
: ResultSet
:
Service
5: "create"
6: * addData(String)
4: do()
Цели фазы анализа и дизайна
Задачи:
• Трансформировать требования собранные на
предыдущем этапе в дизайн системы
• Проработать архитектуру системы
• Адаптировать дизайн к среде исполнения
Модели:
• Аналитическая модель (Analysis model)
• Design model
Аналитическая модель
 Абстрактная модель системы, описывающая ее в
терминах use-case realization. Язык реализации классов не
фиксируется. Обычно не сопровождается.
Элементы analysis model:
• Use-case realization – реализация use-case, набор
activity, state, collaboration и class диаграмм
• Boundary class – класс, разграничивающий actor-ов и
систему
• Control – класс, управляющий другими классами
• Entity – класс, моделирующий информацию,
используемую в системе
Boundary class
-Класс, разграничивающий (под-)систему и окружение.
UML: class со стереотипом <<boundary>>
Примеры: классы пользовательского интерфейса, классы
интерфейсов систем и устройств
<<boundary>>
ContractViewer
ContractViewer
ContractViewer
3 представления boundary class в Rational Rose
Control
-Класс, управляющий другими классами. Можно
сказать, что control “исполняет” use-case
UML: class со стереотипом <<control>>
<<control>>
ContractsRegistry
ContractsRegistry
ContractsRegistry
3 представления control class в Rational Rose
Entity
-Класс, моделирующий информацию,
используемую в системе
UML: class со стереотипом <<entity>>
<<entity>>
Contract
Contract
Contract
3 представления entity class в Rational Rose
Проверка контрактов
проверка контрактов
<<realize>>
(f rom Use-case model)
Class
Diagram:
Collaboration
Diagram:
проверка контрактов
Диаграмма классов
entity
EstimationSystem
Contract
boundary
*
ContractViewer
Director
(f rom Use-case model)
control
ContractsRegistry
Заключение контракта
заключение контракта
(f rom Use-case model)
<<realize>>
Collaboration
Diagram:
заключение контракта
Class
Diagram:
Диаграмма классов
ContractsRegistry
(f rom Analy sis)
*
Contract
ContractManagementSystem
(f rom Analy sis)
(f rom Analy sis)
EstimationSystem
(f rom Analy sis)
Диаграмма взаимодействия
: NewContractsRegistry
1: getNewContract( )
4: remove( )
3: register( )
: ContractsRegistry
: ContractManagementSystem
2: estimate( )
: EstimationSystem
Ограничения на связи
From\To
(navigability)
Boundary
Boundary
Entity
Control
communicate
communicate
subscribe
communicate
communicate
subscribe
Entity
Control
communicate
communicate
subscribe
communicate
Download