- •Вступление
- •Задачи курса.
- •Описание пособия
- •Тема 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
- •Заключение
- •Новые термины
- •Источники
Добавление атрибутов и методов для классов
Перейдите на диаграмму последовательности «Наполнить виртуальную корзину».
Определим методы классов:
Определим для каждого класса операции реализации исходя из указанных сообщений на диаграмме последовательности.
Щелкните правой кнопкой на сообщении 1 (Начать заполнение).
В открывшемся меню выберите пункт <new operation> (<создать операцию>). Появится окно спецификации операции.
В поле имени введите имя операции – Begin_to_input. В поле возвращаемый тип выберите тип Boolean
Нажмите на кнопку ОК, чтобы закрыть окно спецификации операции и вернуться на диаграмму.
Повторите шаги с 1 по 4 для соотнесения всех оставшихся сообщений на диаграмме последовательности с операциями на диаграмме классов:
Сообщение 2: соотнести с операцией Display(List_catalogues : List_of_Catalogues), возвращаемые тип: Boolean. Для того чтобы указать передаваемый параметр (List_catalogues) для операции, следует в окне Operation Specification (Спецификация операции) перейти в закладку Detail (Детали), указать название атрибута: List_catalogues и тип List_of_Catalogues.
Сообщение 3: Select_catalogues(N_catolgues : Integer), возвращаемый тип: Integer.
Сообщение 4: To_display_goods( ), тип Boolean.
Сообщение 5: Display(List_goods : List_of_Goods), тип: Boolean..
Сообщение 6: Select_goods(N_goods : Integer), тип: Integer.
Сообщение 7: To_display_information_of_goods(N_goods : Integer), тип: Goods.
Сообщение 8: Display(Information_of_goods : Goods), тип: Boolean.
Сообщение 9: Confirm_select( ) (Подтвердить выбор), тип: Boolean.
Сообщение 10: Insert_good_to_basket(N_goods : Integer, Count_goods : Integer), тип: Boolean.
Сообщение 11: Refresh(Information_basket : Basket, Summa : Double), тип: Double. Видимость для данной операции следует указать: Privet.
Сообщение 12: Display(Information_basket : Basket, Summa : Double), тип Boolean.
Сообщение 13: End_to_input( ), тип Boolean.
Определим атрибуты классов:
Определим атрибуты для класса Basket (Корзина), исходя из анализа имён существительных в документации к диаграмме прецедентов.
Перейдем на диаграмму классов «Наполнить виртуальную корзину».
Двойным щелчком мыши откроим окно Class Specification for Basket.
Перейдем в закладку Attributes.
Щелкнув правой кнопкой мыши внутри данного окна, выберем пункт insert (вставить).
В появившемся окне укажем имя атрибута - Num_basket, тип: Integer, Начальное значение: 1, Видимость: Public.
Нажмём кнопку OK.
Анализ построенных классов показал необходимость создания двух новых классов: User (Пользователь) и класс Order (Заказ). Класс User нужен для спецификации каждого объекта класса Виртуальная корзина с конкретным заказчиком (пользователем). Класс Order нужен для сохранения в Корзине информации по всем выбранным товарам с указанием его количества. Для класса User (Пользователь) следует определить 4 атрибута: Last_name: String, First_name: String, Ser_name: String, Num: Integer; для класса Order (Заказ) 2 атрибута: Goods: Goods, N_goods: Integer. Видимость атрибутов для классов должна быть как на рис. 4L.2. Диаграмма последовательности должна выглядеть как на рис. 4L.3.
Самостоятельно продолжите разработку диаграммы классов:
определите необходимые атрибуты для классов: Goods, Forma_of_Input_Output, List_of_Goods, List_of_Catalogues.
создайте недостающие классы (например, классы Organization (Юридическое лицо) и Individual (Физическое лицо)).