- •Технология объектно- ориентированного моделирования
- •ЦЕЛЬ КУРСА
- •ЗАДАЧИ КУРСА
- •Преимущества использования объектно- ориентированного подхода
- •Основная идея объектного подхода
- •Объект - это абстракция множества предметов реального мира, обладающих одинаковыми характеристиками и законами
- •Класс - это множество предметов реального мира, связанных общностью структуры и поведением.
- •Важнейшие понятия объектного подхода
- •Инкапсуляция -
- •Полиморфизм -
- •Наследование
- •Методология объектно- ориентированного анализа и проектирования реализуется с использованием унифицированного языка моделирования Unified
- •Унифицированный язык моделирования UML –это язык визуального моделирования для решения задач общего характера,
- •Основы UML
- •Объектно-ориентированная модель предметной области
- •Визуальное
- •Мотивация применения UML
- •Визуальное
- •Контроль качества
- •Контроль качества
- •Типы диаграмм
- •Методология Rational Unified Process
- •Обзор Rational Unified Process
- •Обзор Rational Unified Process
- •Схема организации RUP
- •Rational Unified Process: Структура жизненного цикла
- •Rational Unified Process: Структура жизненного цикла
- •Rational Unified Process.
- •Структура процесса
- •Стадии RUP
- •Основные потоки работ
- •Поток работ делового моделирования
- •Управление требованиями
- •Управление требованиями
- •Управление
- •Диаграммы UML
- •Стереотипы UML
- •Идентификация акторов
- •Идентификация прецедентов (Use Cases)
- •Назначение диаграммы Use Case
- •Разработка требований в
- •Пример модели требований в Requisite Professional
- •Диаграммы UML
- •Диаграмма классов на UML
- •Диаграмма классов
- •Атрибуты и операции класса
- •Стереотипы классов
- •Если система содержит большое количество классов, они могут быть объединены в пакеты, представляющие
- •Отношения между классами (пиктограммы)
- •Идентификация и представление сообщений
- •Отношения
- •Отношения
- •Наследование или обобщение
- •Разработка диаграмм классов (пример)
- •Диаграммы
- •Диаграмма последовательности действий (sequence diagram)
- •Диаграммы взаимодействия объектов (Sequence and Collaboration Diagrams)
- •Диаграмма последовательности
- •Диаграмма взаимодействия (Collaboration diagram)
- •Диаграмма состояний
- •Диаграмма состояний
- •Основные элементы и пиктограммы диаграммы состояний
- •Анализ поведения объекта на диаграмме состояний
- •Анализ поведения объекта на диаграмме состояний
- •Диаграмма состояний класса «Учебный курс»
- •Диаграмма состояний
- •Программные средства, реализующие нотацию Unified Modeling Language
- •Общая платформа группы
- •Поддержка потоков работ средствами
- •Инструменты для аналитиков.
- •Инструменты для разработчиков. Rational Rose (Modeler Edition)
- •Общая платформа группы.
- •Графический интерфейс пользователя Rational Rose
- •Генерация программного кода Java на основе UML-модели
- •Пример Java программы
- •От UML диаграммы классов к Java коду
- •Java UML : Пример
- •Диаграмма классов
- •Зависимость
- •Пример зависимости
- •Обобщение
- •Использование
- •Пример UML модели
- •Диаграмма требований
- •Архитектура системы
- •Диаграмма классов
- •Диаграмма
- •Диаграмма состояний
- •Диаграмма размещения
- •Автор: Л.Р. Черняховская проф. каф. технической кибернетики
Отношения между классами (пиктограммы)
Ассоциация |
OR |
Постоянное, структурное отношение, “has a”
Непрерывная линия со стрелкой (в случае направленности ассоциации)
Зависимость
Временное отношение, “uses a”
Пунктирная линия со стрелкой
Обобщение
Наследование, “is a”
Непрерывная линия со стрелкой (треугольной)
Использование
Пунктирная линия со стрелкой (треугольной)
52
Идентификация и представление сообщений
Когда мы говорим: объект A связан отношением с объектом B, мы должны ответить на следующие вопросы:
Каков тип отношения?
Какие роли в отношении играют объекты A и B ?
Как определить мощность отношений (multiplicity) ?
Могут ли несколько объектов, принадлежащих одному классу, взаимодействовать друг с другом?
На языке UML мы можем представить отношения так, чтобы ответить на поставленные вопросы.
53
Отношения
Имена отношений Агрегация в основном не именуется, так как она читается с
использованием слов «имеет» или «содержит».
Ассоциация может быть именована. Обычно мы используем имя отношения, указывающее его значение, например «учить» (см. рис.).
Имена ролей: Имя роли в ассоциации обозначается на конце линии в ассоциации между классами.
Association Name |
Role |
Name |
|
54
Отношения
Индикатор мощности отношения (multiplicity indicator) :
Мощность отношений (multiplicity) указывается для классов и определяет допустимое количество объектов,
участвующих в отношении с каждой стороны. Часто
используемые значения мощности: |
|
|
|
1 |
Exactly one |
0..* |
Zero or more |
1..* |
One or more |
0..1 |
Zero or one |
Рекурсивное отношение (reflexive relationships) : Объекты,
принадлежащие к одному классу, могут взаимодействовать друг с другом.
Multiplicity Indicator |
Reflexive |
Relationship |
55 |
Наследование или обобщение
Наследование или обобщение определяет отношение между классами, когда структура и/или поведение одного класса распространяется на другой (или другие) классы. Подклассы наследуют атрибуты и операции от одного или более суперклассов.
56
Разработка диаграмм классов (пример)
57
Диаграммы
Ш. Для описания динамики используются
диаграммы поведения (behavior diagrams), которые подразделяются на:
диаграммы состояний (statechart diagrams),
диаграммы активностей (activity diagrams) и
диаграммы взаимодействия (interaction diagrams), состоящие из:
диаграмм последовательности (sequence diagrams)
диаграмм взаимодействий (collaboration diagrams)
58
Диаграмма последовательности действий (sequence diagram)
Диаграмма последовательности действий отображает взаимодействие объектов, упорядоченное по времени. На ней показаны объекты и классы, используемые в сценарии, и последовательность сообщений, которыми обмениваются объекты, для выполнения сценария.
59
Диаграммы взаимодействия объектов (Sequence and Collaboration Diagrams)
На диаграмме последовательности взаимодействие изображается в виде двухмерной схемы (в формате графа). По вертикали проходит временная ось, где течение времени происходит сверху вниз. По горизонтали указываются роли классификатора, которые представляют отдельные объекты взаимодействия.
60
Диаграмма последовательности
Объект
:WatchUser |
:SimpleWatch |
:LCDDisplay |
:Time |
|
|
|
|
|
|
pressButton1() |
blinkHours() |
|
||
|
|
|
||
pressButton1() |
blinkMinutes() |
|
||
|
|
|
||
pressButton2() |
|
incrementMinutes() |
||
|
|
|
||
|
|
|
refresh() |
|
pressButtons1And2() |
|
commitNewTime() |
|
|
|
|
|
|
|
|
|
stopBlinking() |
|
Сообщение
Активация
Диаграмма последовательности действий отображает взаимодействие объектов, упорядоченное по времени.
61