- •Вступление
- •Задачи курса.
- •Описание пособия
- •Тема 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
- •Заключение
- •Новые термины
- •Источники
Добавление связей обобщения
Нажмите кнопку Generalization (Обобщение) на панели инструментов.
Добавьте связь обобщения от класса Organization (Юридическое лицо) к классу User (Пользователь).
Повторите шаги 2-3 для построения связи обобщения между классом Individual (Физическое лицо) и классом User (Пользователь).
Добавьте связь ассоциации между классом Organization (Юридическое лицо) и классом Basket, между классом Individual (Физическое лицо) и классом Basket. Укажите кратность созданных отношений ассоциации.
Построение недостающих связей (с указанием свойств)
Добавьте на диаграмму классов недостающие связи для тех классов, которые были созданы Вами самостоятельно.
Укажите кратность всех отношений ассоциации и агрегации.
Укажите имена связей или имена ролей классов, которые участвуют в связях, если это необходимо.
Готовая диаграмма классов «Наполнить виртуальную корзину» должна выглядеть как на рис. 5L.1.
Построение связей между пакетами
Построение связей между пакетамибазируется на следующих принципах:
Между пакетамиможет быть установлен единственный тип связи –зависимости
Пакет А зависим от пакета В (от пакета А к пакету В построено отношение зависимости), если классы пакета А являются зависимыми от классов пакета В (от классов пакета А построено отношение зависимости, ассоциации, агрегации к классам пакета В).
Выполните следующие этапы:
В папке Logical View создайте новую диаграмму классов Package.
Перенесите на данную диаграмму созданные Вами пакеты: Help_entities, Entities, Boundaries.
Укажите связь зависимости между пакетами, как это показано на рис. 5L.2.
Рис. 5L.2. Связь между пакетами на диаграмме классов для сервиса «наполнить виртуальную корзину» |
Построение диаграммы кооперации
Для сервиса «наполнить виртуальную корзину» необходимо построить ещё одну диаграмму взаимодействия (помимо диаграммы последовательности) – диаграмму кооперации, которая описывает взаимосвязи между объектами через потоки сообщений.
Выполните следующие действия:
В папке Logical View перейдите на диаграмму последовательности «наполнить виртуальную корзину»
Нажмите клавишу F5
Примечание. В среде Rational Rose диаграмма кооперации может быть построена автоматически на основе диаграммы последовательности и наоборот.
Лабораторная работа № 6.Создание диаграмм компонентов. Генерация программного кода. Проверка построенной модели
Проверка модели в RationRose
Выберите пункт ToolsCheck Model
Проанализируйте все найденные ошибки в окне журнала ошибок и исправьте.
Одной из таких ошибок является использование одинаковых имен для нескольких операций одного класса Forma_of_Input_Output. Исправленный класс должен выглядеть как на рис. 6L.1.
Рис. 6L.1. Правильное описание методов для класса Forma_of_Input_Output. |
Проверка нарушений правил доступа
Выберите в меню Report Show Access Violation.
Проанализируйте все нарушения правил доступа и исправьте эти нарушения.
Эти нарушения будут отображены в диалоговом окне. Одним из таких нарушений является установленная связь зависимости между пакетами на главной диаграмме классов (Main) см. рис. 6L.2. Связь между пакетами должна выглядеть как на рис. 6L.3. Объясните, почему так.
Проверка модели на соответствие правилам конкретного языка программирования
Чтобы проверить модель на соответствие правилам конкретного языка программирования (например, языка Си++): выберите пункт ToolsС++Reverse Engineering.
|
Рис. 6L.2. Пример неправильно установленных связей между пакетами. |
|
Рис. 6L.3. Пример правильно установленных связей между пакетами. |
Создание диаграммы компонентов
Ниже будут представлен перечень этапов создания диаграммы компонентов для сервиса «наполнить виртуальную корзину». На данный момент уже определены все классы, требуемые для прецедента «наполнить виртуальную корзину».
В качестве языка реализации выберем язык программирования Си++, поэтому для каждого класса будет создан соответствующий этому языку тип компонента.
На рис. 4 показана главная диаграмма Компонентов всей системы. Внимание на ней уделяется пакетам создаваемых компонентов. По мере реализации других прецедентов на диаграмму следует добавлять новые пакеты, а для модели новые диаграммы компонентов.