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

  • Упражнение 8. Создание диаграммы компонентов

  • Добавление пакетов на Главную диаграмму Компонентов

  • Отображение зависимостей между пакетами

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

  • Создание диаграммы Компонентов системы

  • Размещение компонентов на диаграмме Компонентов системы

  • Добавление оставшихся зависимостей на диаграмму Компонентов

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

  • Создание диаграммы Размещения

  • Последовательность выполнения упражнения Добавление узлов к диаграмме Размещения

  • Отражение процессов на диаграмме

  • Упражнение 10. Генерация кода C++

  • Упражнение 11. Генерация программного кода

  • Файл OrderOptions.cpp

  • Проектный практикум. Учебное пособие для студентов, обучающихся по направлению 230700. 62 При кладная информатика


    Скачать 1.9 Mb.
    НазваниеУчебное пособие для студентов, обучающихся по направлению 230700. 62 При кладная информатика
    АнкорПроектный практикум.pdf
    Дата26.04.2017
    Размер1.9 Mb.
    Формат файлаpdf
    Имя файлаПроектный практикум.pdf
    ТипУчебное пособие
    #5930
    страница6 из 8
    1   2   3   4   5   6   7   8
    Описание состояний
    1.
    Дважды щелкните мышью на состоянии Initialization (Инициали- зация).
    2.
    Перейдите на вкладку Detail (Подробно).
    3.
    Щелкните правой кнопкой мыши в окне Actions (Действия).
    4.
    В открывшемся меню выберите пункт Insert (Вставить).
    5.
    Дважды щелкните мышью на новом действии.
    6.
    Назовите его Store order date (Сохранить дату заказа).
    7.
    Убедитесь, что в окне When (Когда) указан пункт On Entry (На входе).
    8.
    Повторив шаги 3 — 7, добавьте следующие действия:

    79
    Collect customer info (Собрать клиентскую информацию), в окне
    When укажите Entry until Exit (Выполнять до завершения)
    Add order items (Добавить к заказу новые позиции), укажите Entry until Exit (Выполнять до завершения)
    9.
    Нажмите два раза на ОК, чтобы закрыть спецификацию.
    10.
    Дважды щелкните мышью на состоянии Cancelled (Отменен).
    11.
    Повторив шаги 2 — 7, добавьте действие:
    Store cancellation data (Сохранить дату отмены), укажите On Exit
    (На выходе)
    12.
    Нажмите два раза на ОК, чтобы закрыть спецификацию.
    13.
    Дважды щелкните мышью на состоянии Filled (Выполнен).
    14.
    Повторив шаги 2 — 7, добавьте действие:
    Bill customer (Выписать счет), укажите Entry until Exit
    15.
    Нажмите два раза на ОК, чтобы закрыть спецификацию.
    Добавление переходов
    1.
    Нажмите кнопку Transition (Переход) панели инструментов.
    2.
    Щелкните мышью на начальном состоянии.
    3.
    Проведите линию перехода к состоянию Initialization (Инициали- зация).
    4.
    Повторив шаги с первого по третий, создайте следующие перехо- ды:
    От состояния Initialization (Инициализация) к состоянию Pending
    (Выполнение заказа приостановлено)
    От состояния Pending (Выполнение заказа приостановлено) к со- стоянию Filled (Выполнен)
    От суперсостояния к состоянию Cancelled (Отменен)
    От состояния Cancelled (Отменен) к конечному состоянию
    От состояния Filled (Выполнен) к конечному состоянию

    80 5.
    На панели инструментов нажмите кнопку Transition to Self (Пере- ход к себе).
    6.
    Щелкните мышью на состоянии Pending (Выполнение заказа приостановлено).
    Описание переходов
    1.
    Дважды щелкнув мышью на переходе от состояния Initialization
    (Инициализация) к состоянию Pending (Выполнение заказа приостановлено), откройте окно спецификации перехода.
    2.
    В поле Event (Событие) введите фразу Finalize order (Выполнить заказ).
    3.
    Щелкнув на кнопке ОК, закройте окно спецификации.
    4.
    Повторив шаги с первого по третий, добавьте событие Cancel Or- der (Отменить заказ) к переходу между суперсостоянием и состоянием Can- celled (Отменен).
    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 (Подробно).

    81 13.
    В поле Condition (Условие) введите Unfilled items remaining (Ос- таются незаполненные позиции).
    14.
    Щелкнув на кнопке ОК, закройте окно спецификации.
    1.6.
    Диаграммы компонентов
    Продолжим разработку проекта системы обработки заказов. На данный момент уже определены все классы, требуемые для варианта использования "Ввести новый заказ". По мере реализации других вариантов использования на диаграмму следует добавлять новые компоненты.
    Упражнение 8. Создание диаграммы компонентов
    Постановка задачи
    Построить диаграммы Компонентов. В качестве языка программиро- вания выбрать C++.
    Этапы выполнения упражнения
    Создание пакетов компонентов
    1.
    Щелкните правой кнопкой мыши на представлении компонентов в браузере.
    2.
    В открывшемся меню выберите пункт New > Package (Создать >
    Пакет).
    3.
    Назовите пакет Entities (Сущности).
    4.
    Повторив шаги с первого по третий, создайте пакеты Boundaries
    (Границы) и Control (Управление).
    Добавление пакетов на Главную диаграмму Компонентов
    1.
    Откройте Главную диаграмму Компонентов, дважды щелкнув на ней мышью.
    2.
    Перетащите пакеты Entities, Boundary и Control из браузера на
    Главную диаграмму.

    82
    Отображение зависимостей между пакетами
    1.
    Нажмите кнопку Dependency (Зависимость) панели инструмен- тов.
    2.
    Щелкните мышью на пакете Boundaries Главной диаграммы
    Компонентов.
    3.
    Проведите линию зависимости к пакету Control.
    4.
    Повторив шаги 1 — 3, проведите зависимость от пакета Control к пакету Entities.
    В окончательном виде Главная диаграмма Компонентов представлена на рис. 35.
    Рис. 35. Главная диаграмма компонентов системы
    Добавление компонентов к пакетам и отображение зависимостей
    1.
    Дважды щелкнув мышью на пакете Entities Главной диаграммы
    Компонентов, откройте Главную диаграмму Компонентов этого пакета.
    2.
    Нажмите кнопку Package Specification (Спецификация пакета) панели инструментов.
    3.
    Поместите спецификацию пакета на диаграмму.
    4.
    Введите имя спецификации пакета — OrderItem.

    83 5.
    Повторив шаги 2—4, добавьте спецификацию пакета Order.
    6.
    Нажмите кнопку Package Body (Тело пакета) панели инструмен- тов.
    7.
    Поместите его на диаграмму.
    8.
    Введите имя тела пакета — OrderItem.
    9.
    Повторив шаги 6 — 8, добавьте тело пакета Order.
    10.
    Нажмите кнопку Dependency (Зависимость) панели инструмен- тов.
    11.
    Щелкните мышью на теле пакета OrderItem.
    12.
    Проводите линию зависимости к спецификации пакета OrderItem.
    13.
    Повторив шаги 10 — 12, добавьте линию зависимости между те- лом пакета Order и спецификацией пакета Order.
    14.
    Повторив шаги 10 — 12. добавьте линию зависимости от специ- фикации пакета Order к спецификации пакета Orderltem (рис. 36).
    15.
    С помощью описанного метода создайте следующие компоненты и зависимости:
    Для пакета Boundaries (рис. 37):
    Спецификацию пакета OrderOptions
    Тело пакета OrderOptions
    Спецификацию пакета OrderDetail
    Тело пакета OrderDetail
    Зависимости в пакете Boundaries:
    От тела пакета OrderOptions к спецификации пакета OrderOptions
    От тела пакета OrderDetail к спецификации пакета OrderDetail
    От спецификации пакета OrderOptions к спецификации пакета
    OrderDetail
    Для пакета Control:
    Спецификацию пакета OrderMrg

    84
    Тело пакета OrderMrg
    Спецификацию пакета TransactionMrg
    Тело пакета TransactionMrg
    Зависимости в пакете Control:
    От тела пакета OrderMrg к спецификации пакета OrderMrg
    От тела пакета TransactionMrg к спецификации пакета Transac- tionMrg
    От спецификации пакета OrderMrg к спецификации пакета Trans- actionMrg (рис. 38).
    Рис. 36. Диаграмма компонентов пакета Entities

    85
    Рис. 37. Диаграмма компонентов пакета Boundaries
    Рис. 38. Диаграмма компонентов пакета Control
    Создание диаграммы Компонентов системы
    1.
    Щелкните правой кнопкой мыши на представлении Компонентов в браузере.

    86 2.
    В открывшемся меню выберите пункт New > Component Diagram
    (Создать > Диаграмма Компонентов).
    3.
    Назовите новую диаграмму System.
    4.
    Дважды щелкните на этой диаграмме мышью.
    Размещение компонентов на диаграмме Компонентов системы
    1.
    Разверните в браузере пакет компонентов Entities, чтобы открыть его.
    2.
    Щелкните мышью на спецификации пакета Order в пакете ком- понентов Entities.
    3.
    Перетащите эту спецификацию на диаграмму.
    4.
    Повторив шаги 2 и 3, поместите на диаграмму спецификацию па- кета OrderItem.
    5.
    С помощью этого метода поместите на диаграмму следующие компоненты:
    Из пакета компонентов Boundaries:
    Спецификацию пакета OrderOptions
    Спецификацию пакета OrderDetail
    Из пакета компонентов Control:
    Спецификацию пакета OrderMgr
    Спецификацию пакета TransactionMgr
    Спецификацию задачи OrderClientExe
    Спецификацию задачи OrderServerExe
    6.
    Нажмите кнопку Task Specification (Спецификация задачи) пане- ли инструментов.
    7.
    Поместите на диаграмму спецификацию задачи и назовите ее Or- derClientExe.
    8.
    Повторите шаги 6 и 7 для спецификации задачи OrderServerExe.

    87
    Добавление оставшихся зависимостей на диаграмму Компонентов
    системы
    Уже существующие зависимости будут автоматически показаны на диаграмме Компонентов системы после добавления туда соответствующих компонентов. Теперь нужно добавить остальные зависимости.
    1.
    Нажмите кнопку Dependency (Зависимость) панели инструмен- тов.
    2.
    Щелкните мышью на спецификации пакета OrderDetail.
    3. Проведите линию зависимости к спецификации пакета OrderMgr.
    4. Повторив шаги 1 — 3, создайте следующие зависимости:
    От спецификации пакета OrderMrg к спецификации пакета Order
    От спецификации пакета TransactionMrg к спецификации пакета
    OrderItem
    От спецификации пакета TransactionMrg к спецификации пакета
    Order
    От спецификации задачи OrderClientExe к спецификации пакета
    OrderOptions
    От спецификации задачи OrderServerExe к спецификации пакета
    OrderMrg.
    Окончательный вид диаграммы компонентов системы приведен на рис.39.
    Соотнесение классов с компонентами
    1.
    В Логическом представлении браузера найдите класс Order паке- та Entities.
    2.
    Перетащите этот класс на спецификацию пакета компонента Or- der в представлении Компонентов браузера. В результате класс Order будет соотнесен со спецификацией пакета компонента Order.

    88 3.
    Перетащите класс Order на тело пакета компонента Order в пред- ставлении Компонентов браузера. В результате класс Order будет соотнесен с телом пакета компонента Order.
    4.
    Повторив шаги 1 — 3, соотнесите классы со следующими компо- нентами:

    Класс OrderItem со спецификацией пакета OrderItem

    Класс OrderItem с телом пакета OrderItem

    Класс OrderOptions со спецификацией пакета OrderOptions

    Класс OrderOptions с телом пакета OrderOptions

    Класс OrderDetail со спецификацией пакета OrderDetail

    Класс OrderDetail с телом пакета OrderDetail

    Класс OrderMrg со спецификацией пакета OrderMrg

    Класс OrderMrg с телом пакета OrderMrg

    Класс TransactionMrg со спецификацией пакета TransactionMrg

    Класс TransactionMrg с телом пакета TransactionMrg.

    89
    Рис. 39. Диаграмма компонентов системы
    1.7.
    Диаграмма размещения
    Упражнение 9. Создание диаграммы Размещения для системы об-
    работки заказов.
    Постановка задачи
    В предыдущих упражнениях по разработке учебного проекта Варианты использования, взаимодействие между объектами и компоненты описаны. Тем не менее подразделениям обслуживания создаваемой системы необходимо знать, на каких компьютерах будут размещаться различные ком-

    90 поненты системы. В связи с этим необходимо разработать диаграмму Разме- щения для системы обработки заказов.
    Создание диаграммы Размещения
    Разработайте диаграмму Размещения для системы обработки заказов.
    Готовая диаграмма Размещения показана на рис. 40.
    Рис. 40. Диаграмма размещения для системы обработки заказов
    Последовательность выполнения упражнения
    Добавление узлов к диаграмме Размещения
    1.
    Дважды щелкнув мышью на представлении Размещения в брау- зере, откройте диаграмму Размещения.
    2.
    Нажмите кнопку Processor (Процессор) панели инструментов.
    3.
    Щелкнув мышью на диаграмме, поместите туда процессор.
    4.
    Введите имя процессора "Сервер базы данных".
    5.
    Повторив шаги 2 — 4, добавьте следующие процессоры:

    91
    Сервер приложения
    Клиентская рабочая станция №1
    Клиентская рабочая станция №2 6.
    На панели инструментов нажмите кнопку Device (Устройство).
    7.
    Щелкнув мышью на диаграмме, поместите туда устройство.
    8.
    Назовите его "Принтер".
    Добавление связей
    1.
    Нажмите кнопку Connection (Связь) панели инструментов.
    2.
    Щелкните мышью на процессоре "Сервер базы данных".
    3.
    Проведите линию связи к процессору "Сервер приложения".
    4.
    Повторив шаги 1 — 3, добавьте следующие связи:
    От процессора "Сервер приложения‖ к процессору "Клиентская ра- бочая станция №1
    От процессора "Сервер приложения" к процессору "Клиентская ра- бочая станция №2"
    От процессора "Сервер приложения" к устройству "Принтер"
    Добавление процессов
    1.
    Щелкните правой кнопкой мыши на процессоре "Сервер прило- жения" в браузере.
    2.
    В открывшемся меню выберите пункт New > Process (Создать >
    Процесс).
    3.
    Введите имя процесса — OrderServerExe.
    4.
    Повторив шаги 1 — 3, добавьте процессы:

    Процесс OrderClientExe на процессоре "Клиентская рабочая станция №1"

    Процесс ATMCIientExe на процессоре "Клиентская рабочая стан- ция №2"
    Отражение процессов на диаграмме

    92 1.
    Щелкните правой кнопкой мыши на процессоре "Сервер прило- жения".
    2.
    В открывшемся меню выберите пункт Show Processes (Показать процессы).
    3.
    Повторив шаги 1 и 2, покажите процессы на следующих процес- сорах:
    Клиентская рабочая станция №1
    Клиентская рабочая станция №2
    1.8.
    Генерация программного кода
    В предыдущих упражнениях была создана модель для системы обра- ботки заказов. Теперь необходимо сгенерировать программный код C++ для этой системы.
    С этой целью воспользуемся диаграммой
    Компонентов системы, представленной на рисунке 39. Для генерации про- граммного кода необходимо выполнить описанные ниже шаги.
    Упражнение 10. Генерация кода C++
    Этапы выполнения упражнения
    Ввод тел пакетов на диаграмму Компонентов системы
    1.
    Откройте диаграмму Компонентов системы.
    2.
    Выберите в браузере Entities: тело пакета Order.
    3.
    "Перетащите" тело пакета Order на диаграмму Компонентов сис- темы.
    4.
    Повторите пункты 2 и 3 для следующих компонентов:
    Entities: тело пакета OrderItem.
    Boundaries: тело пакета OrderOptions.
    Boundaries: тело пакета OrderDetail.
    Control: тело пакета TransactionMrg.
    Control: тело пакета OrderMrg.

    93
    В окончательном виде после выполнения перечисленных опера- ций диаграмма компонентов системы будет иметь вид, приведен- ный на рис. 41.
    Установка языка C++
    1.
    Откройте спецификацию компонента Order (спецификацию паке- та) в пакете компонентов Entities.
    2.
    Выберите в качестве языка C++.
    3.
    Повторите подпункты 1 и 2 для следующих компонентов:
    Entities: тело пакета Order.
    Entities: спецификация пакета OrderItem.
    Entities: тело пакета OrderItem.
    Boundaries: спецификация пакета OrderOptions.
    Boundaries: тело пакета OrderOptions.
    Boundaries: спецификация пакета OrderDetail.
    Boundaries: тело пакета OrderDetail.
    Control: спецификация пакета Transaction Mrg.
    Control: тело пакета TransactionMrg.
    Control: спецификация пакета OrderMrg.
    Control: тело пакета OrderMrg.
    Спецификация задачи OrderClientExe.
    Спецификация задачи OrderServerExe.

    94
    Рис. 41. Диаграмма Компонентов системы
    Упражнение 11. Генерация программного кода
    1.
    Откройте диаграмму Компонентов системы.
    2.
    Выполните проверку модели (Tools > Check Model).
    3.
    Если система обнаружила ошибки в модели, устраните их.
    2.
    Выберите все объекты на диаграмме Компонентов системы.
    3.
    Выберите в меню Tools > ANSI C++ > Code Generation.

    95 4.
    Откройте для просмотра сгенерированный код (Tools > ANSI C++
    > Browse Header, Tools > ANSI C++ > Browse Body).
    Файл OrderOptions.h
    #ifndef
    ORDEROPTIONS_H_HEADER_INCLUDED_B1720E4D
    #define
    ORDEROPTIONS_H_HEADER_INCLUDED_B1720E4D
    //##ModelId=4E6CAD7E000F class
    OrderOptions
    { public
    :
    //##ModelId=4E6CB29803D8
    Boolean Create();
    };
    #endif
    /* ORDEROPTIONS_H_HEADER_INCLUDED_B1720E4D */
    Файл OrderOptions.cpp
    #include
    "OrderOptions.h"
    //##ModelId=4E6CB29803D8
    Boolean OrderOptions::Create()
    {
    }
    Файл Order Detail.h
    #ifndef
    ORDER_DETAIL_H_HEADER_INCLUDED_B17213B5
    #define
    ORDER_DETAIL_H_HEADER_INCLUDED_B17213B5
    //##ModelId=4E6CAE330167 class
    Order Order Detail
    { public
    :
    //##ModelId=4E6CB2E9001F
    Boolean Open();
    //##ModelId=4E6CB3C80138

    96
    Boolean SubmitInfo();
    //##ModelId=4E6CB756003E
    Boolean Save();
    };
    #endif
    /* ORDER_DETAIL_H_HEADER_INCLUDED_B17213B5 */
    Файл Order Detail.cpp
    #include
    "Order Detail.h"
    //##ModelId=4E6CB2E9001F
    Boolean Order Order Detail::Open()
    {
    }
    //##ModelId=4E6CB3C80138
    Boolean Order Order Detail::SubmitInfo()
    {
    }
    //##ModelId=4E6CB756003E
    Boolean Order Order Detail::Save()
    {
    }
    1.9.
    Проектирование базы данных
    Упражнение 12. Проектирование реляционной базы данных
    Проектирование БД состоит из следующих шагов.
    Шаг 1. Создание нового компонента - базы данных:
    1.
    Щелкните правой кнопкой мыши по представлению компонен- тов.
    2.
    Выберите пункт Data Modeler > New > Database в открывшемся меню.

    97 3.
    Откройте окно спецификации вновь созданного компонента
    DB_0 и в списке Target выберите Oracle 8.x (рис. 42).
    Рис. 42. Окно спецификации базы данных
    Ш а г 2. Определение устойчивых (persistent) классов:
    1.
    Откройте окно спецификации класса Order в пакете Entities.
    2.
    Перейдите на вкладку "Detail".
    3.
    Установите значение переключателя Persistence в Persistent.
    4.
    Проделайте такие же действия для класса OrderItem.
    5.
    Откройте класс OrderItem в браузере.
    6.
    Щелкните правой кнопкой мыши по атрибуту ItemID.
    7.
    Выберите пункт Data Modeler > Part of Object Identity в от- крывшемся меню (указание атрибута в качестве части первично- го ключа).
    Ш а г 3. Создание схемы БД:

    98 1.
    Щелкните правой кнопкой мыши по пакету Entities.
    2.
    Выберите пункт Data Modeler > Transform to Data Model в открывшемся меню.
    3.
    Укажите DB_0 и щелкните по кнопке ОК в появившемся окне в списке Target Database. В результате в логическом представлении появится новый пакет Schemas.
    4.
    Откройте пакет Schemas и щелкните правой кнопкой мыши по пакету <5.
    Выберите пункт Data Modeler > New > Data Model Diagram в от- крывшемся меню.
    6.
    Откройте пакет, затем вновь созданную диаграмму "сущность- связь" NewDiagram и перенесите на нее все классы-таблицы, находящиеся в пакете <> S_0. Получившаяся диаграмма «Сущность-связь» при- ведена на рис. 43.

    99
    Рис. 43. Диаграмма «Сущность-связь»
    1   2   3   4   5   6   7   8


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