Главная страница
Навигация по странице:

  • ЗАДАНИЕ 3 В среде проектирования Rational Rose создать диаграммы последовательностей и кооперации для указанной выше задачи.ЗАДАНИЕ 4

  • Ниже представлены примеры выполнения заданий.

  • Создание абстрактного варианта использования

  • Добавление связи расширения

  • Добавление описаний к вариантам использования

  • Добавление описаний к действующему лицу

  • Прикрепление файла к варианту использования

  • Создание диаграммы Классов для ВИ "Регистрация клиента”

  • Добавление атрибутов и операций

  • Добавление нового класса

  • Добавление операций к классу Orderltem

  • Подробное описание операций с помощью диаграммы Классов

  • Подробное описание операций с помощью браузера

  • Подробное описание операций

  • Добавление связей Добавим связи к классам, принимающим участие в ВИ "Ввести новый клиент".Порядок выполнения задания. Настройка

  • ЗАДАНИЕ 3. 1.1 Создание диаграммы Взаимодействия

  • Создание диаграммы Последовательности

  • Добавление на диаграмму действующего лица и объектов

  • Добавление сообщений на диаграмму

  • Соотнесение объектов с классами

  • Задача Рассмотреть предметную область Гостиница


    Скачать 331.32 Kb.
    НазваниеЗадача Рассмотреть предметную область Гостиница
    Дата09.12.2022
    Размер331.32 Kb.
    Формат файлаdocx
    Имя файлаkontrolnaya_rabota_po_osnovam_programmnoy_injenerii (2).docx
    ТипЗадача
    #835898

    Контрольная работа по Основам программной инженерии

    Задача: Рассмотреть предметную область «Гостиница». Возможный набор объектов и атрибутов: гость, номер, вид номера (люкс, полулюкс, одноместный, двухместный и т.д.), администратор, горничная, официант.
    ЗАДАНИЕ 1.
    В среде проектирования Rational Rose создать диаграммы вариантов использования для указанной задачи:

    1. создать диаграмму Вариантов Использования, задать варианты использования и действующих лиц;

    2. создать абстрактный вариант использования;

    3. добавить ассоциации;

    4. добавить связи расширения;

    5. добавить описания к вариантам использования;

    6. добавить описания к действующим лицам;

    7. прикрепить файл к варианту использования.


    ЗАДАНИЕ 2
    В среде проектирования Rational Rose создать диаграмму классов для указанной выше задачи.

    В созданной диаграмме Классов определить связи между классами (модифицировать диаграмму Классов, сохранить файл модели, составить отчет).
    ЗАДАНИЕ 3
    В среде проектирования Rational Rose создать диаграммы последовательностей и кооперации для указанной выше задачи.
    ЗАДАНИЕ 4
    В среде проектирования Rational Rose создать диаграмму состояний для указанной выше задачи.

    Ниже представлены примеры выполнения заданий.

    ЗАДАНИЕ 1.


    Рисунок 1 - Пример диаграммы вариантов использования

     Для создания диаграммы вариантов использования, выполним следующие действия:

    1) Дважды щелкнем на значке untitledModel.

    2)       Нажмем на значок Диаграмма вариантов использования в проводнике, чтобы открыть диаграмму Вариантов использования.

    3)       С помощью кнопки Use Case (вариант использования) на панели инструментов поместим на диаграмму новый вариант использования.

    4)       Назовем этот новый вариант «Работа гостиницы», для этого вам нужно дважды нажать на варианте использования и ввести имя или активировать вкладку Свойства To-Do панели в поле Имя: введите имя.

    5)       С помощью кнопки Actor (Действующее лицо) инструментов поместим на диаграмму новое действующее лицо

    6)       Назовем его «Администратор», действия аналогичные вариантам использования.

    7)       Повторим шаги 5 и 6, поставив на диаграмме остальных актеров.

    Создание абстрактного варианта использования

    Для указания абстрактного варианта использования, выполним следующие действия:

    1)       ЛКМ нажмите на вариант использования «Работа гостиницы» на диаграмме.

    2)       В панели Свойств в области modifiers выберите контрольный переключатель isAbstract (Абстрактный), чтобы сделать этот вариант использования абстрактным.

    Добавление ассоциаций

           Для добавления ассоциации выполните следующие действия:

    1)       Нажав на кнопку Association (Ассоциация), выберите UniAssociation (Однонаправленная Ассоциация), изобразите ассоциацию между актером Клиент и вариантом  использования «Отметка о выезде клиента».

    2)       Повторите этот шаг, чтобы разместить на диаграмме остальные ассоциации.

    Добавление связи расширения

     Для добавления связи расширения выполните следующие действия:

    Нажав на кнопку Extend на панели инструментов нарисуйте связь между вариантом использования «Бронирование номера» и вариантом использования «Бронирование номера». Стрелка должна быть протянута от первого варианта использования ко второму. Связь расширения означает, что вариант использования «Бронирование номера», при необходимости, дополняет функциональные возможности варианта использования  «Регистрация клиента».
    Добавление описаний к вариантам использования

    1. Выделите в браузере вариант использования "Регистрация клиента".

    2. В окне документации введите следующее описание: "Этот вариант использования дает возможность зарегистрировать клиента в гостинице".

    3. С помощью окна документации добавьте описания ко всем остальным вариантам использования.

    Добавление описаний к действующему лицу

    1. Выделите в браузере действующее лицо Администратор.

    2. В окне документации введите следующее описание: " Администратор гостиницы - это специалист, который отвечает за размещение гостей и их комфортное пребывание в отеле. По сути, это лицо гостиницы. Он занимается встречей гостей, консультирует их по услугам отеля, организует доставку багажа, регистрирует клиентов при заезде и так далее.".

    3. С помощью окна документации добавьте описания к остальным действующим лицам.

    Прикрепление файла к варианту использования

    1. Создайте свой собственный файл OrderFlow.doc и внесите в него поток событий, как показано ниже.

    Основной поток событий для варианта использования «Регистрация клиента».

      1. Подбор номера.

      2. Бронирование номера.

      3. Выдача счета на оплату.

      4. Регистрация клиента.

      5. Отметка о выезде клиента.

    1. Щелкните правой кнопкой мыши на варианте использования "Регистрация клиента".

    2. В открывшемся меню выберите пункт Open Specification (Открыть спецификацию).

    3. Перейдите на вкладку Files (Файлы).

    4. Щелкните правой кнопкой мыши в белой области и в открывшемся меню выберите пункт Insert File (Вставить файл).

    5. Укажите файл OpenFlow. doc и нажмите на кнопку Open (Открыть), чтобы прикрепить файл к варианту использования.



    ЗАДАНИЕ 2.


    1. В меню модели выберите пункт Tools > Options (Инструменты > Параметры).

    2. Перейдите на вкладку Diagram (Диаграмма).

    3. Убедитесь, что установлены флажки Show All Attributes (Показать все атрибуты) и Show All Operations (Показать все операции).

    4. Убедитесь, что сброшены флажки Suppress Attributes (Подавить вывод атрибутов) и Suppress Operations (Подавить вывод операций).

      1. Создание диаграммы Классов для ВИ "Регистрация клиента”

    Для создания диаграммы выполните следующие действия:

    1. Щелкните правой кнопкой мыши на Логическом представлении браузера.

    2. В открывшемся меню выберите пункт New > Class Diagram (Создать > Диаграмма Классов).

    3. Назовите новую диаграмму Классов Add New Order (Ввод нового клиента).

    4. Дважды щелкнув мышью на этой диаграмме в браузере; откройте ее.

    5. Перетащите из браузера все классы (OrderOptions, OrderDetail, Order, OrderMgr и TransactionMgr). Полученная диаграмма Классов представлена на рис. 2.

    В созданную диаграмму Классов для своего индивидуального задания добавим атрибуты и операции.
    Добавление атрибутов и операций

    Добавим атрибуты и операции к классам диаграммы Классов "Ввод нового клиента". При этом используем специфические для языка особенности. Установим параметры так, чтобы показывать все атрибуты и все операции. Применим нотацию UML.
    Application – основной класс программы, в котором находится метод Main.

    User – служит для обозначения пользователя системы.

    Admin – служит для обозначения действий доступных администратору.

    Guests –служит для обозначения множества клиентов.

    Rooms –служит для обозначения критериев, необходимых для подбора определенного номера.

    AdditionalServices – служит для обозначения возможных дополнительных услуг.

    DailyServices – служит для обозначения ежедневных услуг.

    Shet – служит для обозначения параметров, на основании которых выписывается счет.

    Contract – служит для обозначения критериев, необходимых для формирования печатной формы договора.

    Statuses- для обозначения типов гостиничных номеров.


    Рисунок 2 - Диаграмма Классов для ВИ “Регистрация клиента”

    Нужно выполнить следующие действия:
    Настройка

    1. В меню модели выберите пункт Tools -> Options (Инструменты -> Параметры).

    2. Перейдите на вкладку Diagram.

    3. Убедитесь, что флажок Show visibility (Показать видимость) установлен.

    4. Убедитесь, что флажок Show stereotypes (Показать стереотипы) установлен.

    5. Убедитесь, что флажок Show operation signatures (Показать сигнатуры операций) установлен.

    6. Убедитесь, что флажки Show all attributes (Показать все атрибуты) и Show all operations (Показать все операции) установлены.

    7. Убедитесь, что флажки Suppress attributes (Подавить атрибуты) и Suppress operations {Подавить операции) сброшены.

    8. Перейдите на вкладку Notation (Нотация).

    9. Убедитесь, что флажок Visibility as icons (Отображать пиктограммы) сброшен.


    Добавление нового класса

    1. Найдите в браузере диаграмму Классов варианта использования "Ввести новый клиент".

    2. Дважды щелкнув мышью на диаграмме, откройте ее.

    3. Нажмите кнопку Class панели инструментов.

    4. Щелкните мышью внутри диаграммы, чтобы поместить туда новый класс.

    5. Назовите его OrderItem.

    Добавление атрибутов

    1. Щелкните правой кнопкой мыши на классе Order.

    2. В открывшемся меню выберите пункт New Attribute (Создать атрибут).

    3. Введите новый атрибут:OrderNumber : Integer

    4. Нажмите клавишу Enter.

    5. Введите следующий атрибут:CustomerName : String.

    6. Повторив шаги 4 и 5, добавьте атрибуты:OrderDate : Date OrderFUIDate : Date

    7. Щелкните правой кнопкой мыши на классе Orderltem.

    8. В открывшемся меню выберите пункт New Attribute (Создать атрибут).

    9. Введите новый атрибут:ItemID : Integer.

    10. Нажмите клавишу Enter.

    11. Введите следующий атрибут:HemDescription : String.


    Добавление операций к классу Orderltem

    1. Щелкните правой кнопкой мыши на классе Orderltem.

    2. В открывшемся меню выберите пункт New Operation (Создать операцию).

    3. Введите новую операцию:Create.

    4. Нажмите клавишу Enter.

    5. Введите следующую операцию:Setlnfo

    6. Нажмите клавишу Enter.

    7. Введите операцию:Getlnfo


    Подробное описание операций с помощью диаграммы Классов

    1. Щелкнув мышью на классе Order, выделите его.

    2. Щелкните на этом классе еще раз, чтобы переместить курсор внутрь.

    3. Отредактируйте операцию Create(), чтобы она выглядела следующим образом: Create() : Boolean

    4. Отредактируйте операцию Setlnfo():Setlnfo(OrderNum : Integer, Customer : String, OrderDate : Date, FillDate : Date) : Boolean

    5. Отредактируйте операцию Getlnfo(): Getlnfo() : String


    Подробное описание операций с помощью браузера

    1. Найдите в браузере класс Orderltem.

    2. Раскройте этот класс, щелкнув на значке "+" рядом с ним В браузере появятся атрибуты и операции класса

    3. Дважды щелкнув мышью на операции Ое11п1о(),откройте окно ее спецификации.

    4. В раскрывающемся списке Return class (Возвращаемый класс) укажите String.

    5. Щелкнув мышью на кнопке ОК, закройте окно спецификации операции

    6. Дважды щелкните в браузере на операции Setlnfo() класса Orderltem, чтобы открыть окно ее спецификации

    7. В раскрывающемся списке Return class укажите Boolean.

    8. Перейдите на вкладку Detail (Подробно).

    9. Щелкните правой кнопкой мыши в области аргументов, чтобы добавить туда новый параметр

    10. В открывшемся меню выберите пункт Insert (Вставить). Rose добавит аргумент под названием argname.

    11. Щелкнув один раз на этом слове, выделите его и измените имя аргумента на ID.

    12. Щелкните на колонке Type (Тип). В раскрывающемся списке типов выберите Integer.

    13. Щелкните на колонке Default (По умолчанию), чтобы добавить значение аргумента по умолчанию. Введите число 0.

    14. Нажав на кнопку ОК, закройте окно спецификации операции.

    15. Дважды щелкните на операции Create() класса Orderltem, чтобы открыть окно ее спецификации.

    16. В раскрывающемся списке Return class укажите Boolean.

    17. Нажав на кнопку ОК, закройте окно спецификации операции.


    Подробное описание операций

    1. Используя браузер или диаграмму Классов, введите следующие сигнатуры операций класса OrderDetail: Ореn() : Boolean Submitlnfo() : Boolean Save() : Boolean

    2. Используя браузер или диаграмму Классов, введите сигнатуру операций класса OrderOptions: Create() : Boolean

    3. Используя браузер или диаграмму Классов, введите сигнатуру операций класса OrderMgr: SaveOrder(OrderlD : Integer): Boolean

    4. Используя браузер или диаграмму Классов, введите сигнатуры операций класса TransactionMgr: SaveOrder(OrderlD : Integer) : Boolean Commit() : Integer


    Добавление связей

    Добавим связи к классам, принимающим участие в ВИ "Ввести новый клиент".

    Порядок выполнения задания.
    Настройка

    1. Найдите в браузере диаграмму Классов "Ввод нового клиента".

    2. Дважды щелкнув на диаграмме, откройте ее.

    3. Проверьте, имеется ли в панели инструментов диаграммы кнопка Unidirectional Association (Однонаправленная ассоциация). Если ее нет, продолжите настройку, выполнив шаги 4 и 5. Если есть, приступайте к выполнению самого упражнения.

    4. Щелкните правой кнопкой мыши на панели инструментов диаграммы и в открывшемся меню выберите пункт Customize (Настроить).

    5. Добавьте на панель кнопку Creates A Unidirectional Association (Создать однонаправленную ассоциацию).


    Добавление ассоциаций

    1. Нажмите кнопку Unidirectional Association панели инструментов.

    2. Проведите ассоциацию от класса OrderOptions к классу OrderDetail.

    3. Повторите шаги 1 и 2, создав ассоциации:

      • От класса OrderDetail к классу OrderMgr

      • От класса OrderMgr к классу Order

      • От класса OrderMgr к классу TransactionMgr

      • От класса TransactionMgr к классу Order

      • От класса TransactionMgr к классу Orderltem

      • От класса Order к классу Orderitem

    1. Щелкните правой кнопкой мыши на однонаправленной ассоциации между классами OrderOptions и OrderDetail со стороны класса OrderOptions.

    2. В открывшемся меню выберите пункт Multiplicity > Zero or One (Множественность >- Нуль или один).

    3. Щелкните правой кнопкой мыши на другом конце однонаправленной ассоциации.

    4. В открывшемся меню выберите пункт Multiplicity > Zero or One (Множественность >- Нуль или один).

    5. Повторите шаги 4 - 7, добавив на диаграмму значения множественности для остальных ассоциаций, как показано на рис. 3.


    Рисунок 3 - Ассоциации сценария "регистрация клиента"
    ЗАДАНИЕ 3.
    1.1 Создание диаграммы Взаимодействия

    Создайте диаграмму Последовательности и Кооперативную диаграмму, отражающую ввод нового клиента в систему обработки клиентов. Готовая диаграмма Последовательности показана на рис. 1.

    Это только одна из диаграмм, необходимых для моделирования ВИ "Ввести новый клиент". Она соответствует успешному варианту хода событий. Для описания того, что случится, если возникнет ошибка или если пользователь выберет другие действия из предложенных, придется разработать дополнительные диаграммы. Каждый альтернативный поток варианта использования может быть промоделирован с помощью собственных диаграмм Взаимодействия.

    Порядок выполнения задания.

    Настройка

    1. В меню модели выберите пункт Toots > Options (Инструменты > Параметры).

    2. Перейдите на вкладку Diagram (Диаграмма).

    3. Установите флажки Sequence numbering, Collaboration numbering и Focus of control.

    4. Нажмите OK, чтобы выйти из окна параметров.


    Создание диаграммы Последовательности

    1. Щелкните правой кнопкой мыши на Логическом представлении браузера.

    2. В открывшемся меню выберите пункт New > Sequence Diagram (Создать > Диаграмма Последовательности).

    3. Назовите новую диаграмму Add order (Ввод данных клиента).

    4. Дважды щелкнув на этой диаграмме, откройте ее.


    Добавление на диаграмму действующего лица и объектов

    1. Перетащите действующее лицо Salesperson (Администратор) из браузера на диаграмму.

    2. Нажмите кнопку Object (Объект) панели инструментов.

    3. Щелкните мышью в верхней части диаграммы, чтобы поместить туда новый объект.

    4. Назовите объект Order Options Form (Выбор варианта номера).

    5. Повторив шаги 3 и 4, поместите на диаграмму объекты:

    • Сlient N1234 (Бронирование)

    • нных. Как. видно из диаграммы, объект Order Detail Form имеет множество ответственностей, с которыми лучше всего мог бы справиться управляющий объект. Кроме того, новый клиент должен сохранять себя в базе данных сам. Вероятно, эту обязанность лучше было бы переложить на другой объект. номера)


    Добавление сообщений на диаграмму

    1. На панели инструментов нажмите кнопку Object Message (Сообщение объекта).

    2. Проведите мышью от линии жизни действующего лица Salesperson (Администратор) к линии жизни объекта Order Options Form (Выбор варианта регистрации).

    3. Выделив сообщение, введите его имя - Create new order (Новое администрирование).

    Завершен первый этап работы. Готовая диаграмма Последовательности представлена на рис.

    1. Теперь нужно позаботиться об управляющих объектах и о взаимодействии с базой.



    Рисунок 4 - Диаграмма Последовательности для ввода нового клиента
    Добавление на диаграмму дополнительных объектов

    1. Нажмите кнопку Object панели инструментов.

    2. Щелкните мышью между объектами Order Detail Form и Order N1234, чтобы поместить туда новый объект.

    3. Введите имя объекта — Order Manager ( Регистрация клиента).

    4. Нажмите кнопку Object панели инструментов.

    5. Новый объект расположите справа от Order N1234.

    6. Введите его имя — Transaction Manager (Формирование договора).



    Соотнесение объектов с классами

    1. Щелкните правой кнопкой мыши на объекте Order Options Form (Выбор номера из базы).

    2. В открывшемся меню выберите пункт Open Specification (Открыть спецификацию).

    3. В раскрывающемся списке классов выберите пункт (Создать). Появится окно спецификации классов.

    4. В поле Name введите OrderOptions (Администрирование).

    5. Щелкните на кнопке ОК. Вы вернетесь в окно спецификации объекта.

    6. В списке классов выберите класс OrderOptions.

    7. Щелкните на кнопке ОК, чтобы вернуться к диаграмме. Теперь объект называется Order Options Form : OrderOptions.


    На диаграмме кооперации указан обмен сообщениями между объектами при реализации любого варианта использования.

    Разработка диаграммы кооперации предоставлена на рисунке 5.



    Рисунок 5- UML диаграмма кооперации


    ЗАДАНИЕ 4.
    В этом упражнении создается диаграмма Состояний для класса Размещение заявки на бронь, показанная на рис.6.

    Диаграмма состояний для объекта «Заявка на бронь» представлена на рисунке 6. Заявка на бронь может находиться в одном из следующих состояний: «Размещение заявки на бронь», «Передача заявки на проверку», «Отклонение заявки», «Подтверждение заявки» и «Снятие заявки».


    Рисунок 6 - Диаграмма состояний объекта «Заявка на бронь»
    При переходе в сложное (композитное) состояние «Размещение заявки на бронь» выполняется действие «entry / Создание новой заявки на бронь».

    При выходе из этого состояния без подтверждения выполняется действие «exit / Изменить статус заявки на «Не Подтвержден».

    Точка входа обозначает псевдосостояние, моделирующее вход в композитное состояние.

    При этом данная точка входа должна представлять альтернативный вход в композитное состояние, т.е. целевое подсостояние («Передача заявки на проверку») должно отличаться от начального подсостояния данного суперсостояния «Создание новой заявки на бронь». Таким образом, мы моделируем повторяющееся состояние, когда пользователь может снять заявку, а затем отменить снятие и вернуться в состояние «Передача заявки на проверку».

    При переходе в состояние «Подтверждение заявки» выполняется выходное действие «exit / Изменение статуса заявки на «Подтвержден» и осуществляется альтернативный выход из композитного состояния.

    Описание состояний

    1. Дважды щелкнем мышью на состоянии Initialization (Инициализация).

    2. Перейдем на вкладку Detail (Подробно).

    3. Щелкнем правой кнопкой мыши в окне Actions (Действия).

    4. В открывшемся меню выберем пункт Insert (Вставить).

    5. Дважды щелкнем мышью на новом действии.

    6. Назовем его создание новой заявки на бронь.

    7. Убедимся, что в окне When (Когда) указан пункт On Entry (На входе).

    8. Добавим следующие действия:

      • Collect customer info (Собрать клиентскую информацию), в окне When укажите Entry until Exit (Выполнять до завершения)

      • Add order items (Добавить к клиенту новые позиции), укажите Entry until Exit (Выполнять до завершения)

    1. Нажмите два раза на ОК, чтобы закрыть спецификацию.

    2. Дважды щелкните мышью на состоянии Cancelled (Отменен).

    3. Нажмем два раза на ОК, чтобы закрыть спецификацию.

    4. Дважды щелкните мышью на состоянии Filled (Выполнен).

    5. Нажмем два раза на ОК, чтобы закрыть спецификацию.


    Добавление переходов

    1. Нажмите кнопку Transition (Переход) панели инструментов.

    2. Щелкните мышью на начальном состоянии.

    3. Проведите линию перехода к состоянию Initialization (Инициализация).

    4. Повторив шаги с первого по третий, создайте следующие переходы:

      • От состояния Initialization (Инициализация) к состоянию Pending (Выполнение клиента приостановлено)

      • От состояния Pending (Выполнение клиента приостановлено) к состоянию Filled (Выполнен)

      • От суперсостояния к состоянию Cancelled (Отменен)

      • От состояния Cancelled (Отменен) к конечному состоянию

      • От состояния Filled (Выполнен) к конечному состоянию

    1. На панели инструментов нажмите кнопку Transition to Self (Переход к себе).

    Описание переходов

    1. Дважды щелкнув мышью на переходе от состояния Initialization (Инициализация) к состоянию Pending (Выполнение клиента приостановлено), откройте окно спецификации перехода.

    2. В доле Event (Событие) введите фразу Finalize order (Выполнить клиент).

    3. Щелкнув на кнопке ОК, закройте окно спецификации.

    4. Повторив шаги с первого по третий, добавьте событие Cancel Order (Отменить клиент) к переходу между суперсостоянием и состоянием Cancelled (Отменен).

    5. Дважды щелкнув мышью на переходе от состояния Pending (Выполнение клиента приостановлено) к состоянию Filled (Выполнен), откройте окно его спецификации.

    6. В поле Event (Событие) введите фразу Add order item (Добавить к клиенту новую позицию).

    7. Перейдите на вкладку Detail (Подробно).

    8. В поле Condition (Условие) введите No unfilled items remaining (He осталось незаполненных позиций).

    9. Щелкнув на кнопке ОК, закройте окно спецификации.

    10. Дважды щелкните мышью на рефлексивном переходе (Transition to Self) состояния Pending (Выполнение клиента приостановлено).

    11. В поле Event (Событие) введите фразу Add order item (Добавить к клиенту новую позицию).

    12. Перейдите на вкладку Detail (Подробно).

    13. В поле Condition (Условие) введите Unfilled items remaining (Остаются незаполненные позиции).

    14. Щелкнув на кнопке ОК, закройте окно спецификации.


    написать администратору сайта