- •Вступление
- •Задачи курса.
- •Описание пособия
- •Тема 1. Основные принципы объектно-ориентированного проектирования. История развития языка uml. Программный продуктRationRose. Процедурно-ориентированная методология
- •Объектно-ориентированная методология
- •Особенности унифицированного языка моделирования (uml)
- •Основные диаграммы языка uml:
- •Программный продукт RationalRose
- •Основные возможности RationalRose:
- •Вопросы:
- •Тема 2 Диаграмма прецедентов (Use Case Diagram) Назначение диаграммы прецедентов
- •Основные элементы диаграммы
- •Типы отношений на диаграмме прецедентов
- •Вопросы:
- •Тема 3. Диаграмма последовательности (SequenceDiagram)
- •Вопросы:
- •Тема 4. Диаграмма классов (ClassDiagram) Основные понятия
- •Типы отношений на диаграмме классов
- •Выявление классов (одна из основных задач проектирования системы- определить классы и отношения между ними)
- •Вопросы
- •Тема 5. Диаграмма кооперации (Collaboration Diagram)
- •Вопросы:
- •Тема 6. Диаграмма состояний (Statechart Diagram)
- •Рассмотрим примеры:
- •Спецификация состояний
- •Переход (transition) из одного состоянияв другое (из предыдущего в последующее)
- •Вопросы:
- •Тема 7. Диаграмма компонентов (Component Diagram) Основные понятия
- •Типы компонентов
- •Подготовка к генерации программного кода:
- •Проверка модели на корректность
- •Установка свойств генерации кода
- •Генерация программного кода
- •Полиморфизм
- •Инкапсуляция
- •Абстрагирование
- •Отношение агрегации и композиции
- •Задания для знакомства с RationRose. Создание пакетов.
- •Задача для лабораторных работ
- •Лабораторная работа № 2. Создание диаграммы прецедентов.
- •Этапы выполнения работы Создать основных Прецедентов и Актёров
- •Добавить ассоциации
- •Создать уточняющих прецедентов и актёров
- •Указать абстрактных актёров
- •Указать связи обобщения между актёрами
- •Добавить связи расширения, включения, ассоциации
- •Добавить интерфейсы
- •Прикрепление файла с документацией к прецеденту
- •Лабораторная работа № 3. Создание диаграмм последовательностей
- •Этапы выполнения работы Настройка
- •Создание диаграммы последовательности
- •Добавление на диаграмму актёровиобъектов
- •Добавление сообщенийна диаграмму
- •Добавление на диаграмму примечаний(нотаций).
- •Добавление нового объектаисообщений
- •Указание типов сообщений
- •Построенная диаграмма должна выглядеть как на рис. 3l.2.
- •Лабораторная работа № 4. Диаграмма классов.
- •Этапы выполнения работы Настройка
- •Создание пакетов
- •Создание Главной диаграммы классов
- •Создание диаграммы классов для сервиса (прецедента) «Наполнить виртуальную корзину»
- •Добавление стереотипов к классам
- •Объединение классов в пакеты
- •Соотнесение объектов с классами
- •Добавление атрибутов и методов для классов
- •Структурирование классов
- •Лабораторная работа № 5. Определение связей между классами.
- •Добавление связей обобщения
- •Построение недостающих связей (с указанием свойств)
- •Построение связей между пакетами
- •Построение диаграммы кооперации
- •Лабораторная работа № 6.Создание диаграмм компонентов. Генерация программного кода. Проверка построенной модели
- •Этапы создания диаграммы компонентов Создание пакетов компонентов
- •Добавление пакетов и связей на Главную диаграмму компонентов
- •Добавление компонентов к пакетам и рисование зависимостей
- •Создание диаграммы компонентов для сервиса «наполнить виртуальную корзину»
- •Размещение компонентов на диаграмме компонентов «наполнить виртуальную корзину»
- •Соотнесение классов с компонентами
- •Добавление зависимостейна диаграмму компонентовTo_fill_Virtual_Basket
- •Ввод тел пакетов на диаграмму Компонентов To_fill_Virtual_Basket
- •Заключение
- •Новые термины
- •Источники
Переход (transition) из одного состоянияв другое (из предыдущего в последующее)
Простой переход (simple) показывает на факт смены одного состояния другим. Пребывание объекта в каком-то состоянии может сопровождаться выполнением некоторых действий, переход в последующее состояние будет возможен после завершения этих действий. Для перехода в последующее состояние может быть потребовано удовлетворение некоторых дополнительных условий. В этом случае говорят, что «переход срабатывает», или «происходит срабатывание перехода». Переход осуществляется при наступлении некоторого события. Таким событием могут выступать- окончания выполнения действий (специфицированных меткой do), получение объектом сообщения или приемом сигнала.
"Срабатывание перехода" может зависеть не только от наступления некоторого события, но и от выполнения определенного условия, называемого сторожевым условием. Объект перейдет из одного состояния в другое в том случае, если произошло указанное событие и сторожевое условие приняло значение "истина".
На диаграмме состояний переход изображается сплошной линией со стрелкой, которая направлена на состояние, в которое объект переходит. Каждый переход может быть специфицирован строкой текста, которая имеет следующий общий формат: <имя события (список параметров через запятую)>[<сторожевое условие>] <выражение действия>.
Рассмотрим пример (рис. 6.3). Определим состояние Программы, которая требует идентификации пользователя, прежде чем приступить к работе с ней. Примеры событий-триггеров: Ввод данных, Ошибка при входе, Нет ошибок.
Событие(event) представляет собой определение, пояснение, спецификацию некоторого факта, имеющего место в пространстве и во времени. Например, Программа находился в состоянии ожидания, а после некоторого события (нажатии функциональной клавиши или выбора пункта меню интерфейса Программы) она начинает выполнять определенный действия. Произошло событие, которое инициировал оператор.
Пример. Магнитофон работал (играла музыка), выключили свет (произошло событие) магнитофон замолчал.
Пример. Будильник показывал время, произошло событие(часовая и минутная стрелки заняли определенное положение на циферблате будильника), и будильник зазвенел.
|
Рис. 6.3. Пример диаграммы состояний для экземпляров класса Программа. |
В языке UML событие играют роль стимулов, которые инициируют переходы из одних состояний в другие. В качестве событий можно рассматривать сигналы, вызовы, окончание фиксированных промежутков времени или моменты окончания выполнения определенных действий.
Вопросы:
Что призвана отражать диаграмма состояний?
Какие можно выделить основные правила построения диаграммы состояний?
В чем специфика составного состояния и подсостояния? Привести примеры.
В чем специфика последовательных и параллельных подсостояний? Привести примеры.
Какие существуют типы исторического состояния? Привести примеры.
Тема 7. Диаграмма компонентов (Component Diagram) Основные понятия
В языке UML для физического представления моделей систем используются диаграммы реализации (implementation diagrams), которые включают в себя две отдельные диаграммы: диаграмму компонентов и диаграмму развертывания. С помощью диаграммы компонентов описывается физическая организация системы (описание системы с помощью элементов, которые будут иметь реальное физическое воплощение).
В роли компонента может выступать: таблица, массив данных, динамическая библиотека, документ, исполняемый файл, это физический модуль кода (выполняемого, программного) и т.д. Следует заметить, что на данном этапе (на этапе построения диаграммы компонентов) мы не будем описывать - где в среде (или в сети) размещаются компоненты. Задача этого этапа указать все необходимые программные компоненты будущей системы и связи между ними.
Необходимо подчеркнуть связь между компонентом и классом - компонент можно рассматривать как программную реализацию класса, который включает атрибуты и операции, один компонент может содержать реализацию нескольких классов. Между компонентами может быть установлен единственный тип связи - отношение зависимости. Он показывает, что один из компонентов должен компилироваться перед началом компиляции другого.