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

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

  • Создание Главной диаграммы Классов

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

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

  • Объединение классов в пакеты

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

  • 1.5.1. Атрибуты и операции Работа с атрибутами 40 Атрибут

  • Address : String IDNumber : Integer = 0

  • Private

  • Задание метода локализации атрибута

  • By reference

  • Определение статичного атрибута

  • Определение производного атрибута

  • 1.5.2. Работа с операциями Операцией

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


    Скачать 1.9 Mb.
    НазваниеУчебное пособие для студентов, обучающихся по направлению 230700. 62 При кладная информатика
    АнкорПроектный практикум.pdf
    Дата26.04.2017
    Размер1.9 Mb.
    Формат файлаpdf
    Имя файлаПроектный практикум.pdf
    ТипУчебное пособие
    #5930
    страница3 из 8
    1   2   3   4   5   6   7   8
    1.5.
    Диаграммы классов
    Упражнение 4. Создание диаграммы классов
    В этом упражнении необходимо сгруппировать в пакеты классы, соз- данные при выполнении предыдущего упражнения. Затем нужно будет по- строить несколько диаграмм Классов и показать на них классы и пакеты сис- темы.
    Постановка задачи

    34
    Положим, что диаграммы взаимодействия, созданные в учебном проек- те, соответствуют предъявляемым требованиям.
    Классы модели Rose целесообразно объединить их в пакеты, с группи- ровкой по стереотипу. Необходимо создать пакеты Entities (Сущности),
    Boundaries (Границы) и Control (Управление), поместив в них соответствую- щие классы. Затем для каждого пакета построить диаграммы Классов. Кроме того, на Главной диаграмме показать пакеты, а на диаграмме "Ввод нового заказа" — все классы этого варианта использования.
    Создание диаграммы Классов
    Объедините обнаруженные нами классы в пакеты. Создайте диаграмму
    Классов для отображения пакетов, диаграммы Классов для представления классов в каждом пакете и диаграмму Классов для представления всех клас- сов варианта использования "Ввести новый заказ".
    Настройка
    1.
    В меню модели выберите пункт Tools Options (Инструменты >
    Параметры).
    2.
    Перейдите на вкладку Diagram (Диаграмма).
    3.
    Убедитесь, что установлен флажок Show stereotypes (Показать стереотипы).
    4.
    Убедитесь, что установлены флажки Show All Attributes (Пока- зать все атрибуты) и Show All Operations (Показать все операции).
    5.
    Убедитесь, что сброшены флажки Suppress Attributes (Подавить вывод атрибутов) и Suppress Operations (Подавить вывод операций).
    Создание пакетов
    1.
    Щелкните правой кнопкой мыши на Логическом представлении браузера.
    2.
    В открывшемся меню выберите пункт New > Package (Создать
    Пакет).
    3.
    Назовите новый пакет Entities (Сущности).

    35 4.
    Повторив шаги 1 — 3, создайте пакеты Boundaries (Границы) и
    Control (Управление).
    Браузер должен теперь иметь вид, показанный на рис.13.
    Рис. 13. Пакеты разрабатываемой системы Обработка заказов
    Создание Главной диаграммы Классов
    1.
    Дважды щелкнув мышью на Главной диаграмме Классов, нахо- дящейся под Логическим представлением браузера, откройте ее.
    2.
    Перетащите пакеты Entities Boundaries и Control из браузера на диаграмму. Главная диаграмма Классов должна выглядеть, как показано на рис.14.
    Рис. 14. Главная диаграмма классов

    36
    Создание диаграммы Классов для сценария "Ввести новый заказ"
    с отображением всех классов
    1.
    Щелкните правой кнопкой мыши на Логическом представлении браузера.
    2.
    В открывшемся меню выберите пункт New > Class Diagram (Соз- дать > Диаграмма Классов).
    3.
    Назовите новую диаграмму Классов Add New Order (Ввод нового заказа).
    4.
    Дважды щелкнув мышью на этой диаграмме в браузере, откройте ее.
    5.
    Перетащите из браузера все классы (OrderOptions, OrderDetail,
    Order, OrderMgr и TransactionMgr). Полученная диаграмма Классов представ- лена на рис.15.
    Рис. 15. Диаграмма классов
    Добавление стереотипов к классам
    1.
    Щелкните правой кнопкой мыши на классе OrderOptions диа- граммы.

    37 2.
    В открывшемся меню выберите пункт Open Specification (От- крыть спецификацию).
    3.
    В поле стереотипа введите слово Boundary.
    4.
    Нажмите на кнопку ОК.
    5.
    Щелкните правой кнопкой мыши на классе OrderDetail диаграм- мы.
    6.
    В открывшемся меню выберите пункт Open Specification (От- крыть спецификацию).
    7.
    В раскрывающемся списке поля стереотипов выделите Boundary.
    8.
    Нажмите на кнопку ОК.
    9.
    Повторив шаги 1 — 4, свяжите классы OrderMrg и TransactionMrg со стереотипом Control, а класс Order — со стереотипом Entity.
    Диаграмма примет вид, как на рис.16.
    Рис. 16. Стереотипы классов
    Объединение классов в пакеты

    38 1.
    В браузере перетащите класс OrderOptions на пакет Boundaries.
    2.
    Перетащите класс OrderDetail на пакет Boundaries.
    3.
    Перетащите классы OrderMgr и TransactionMgr на пакет Control.
    4.
    Перетащите класс Order на пакет Entities.
    Классы и пакеты в браузере показаны на рис.17.
    Добавление диаграмм Классов к пакетам
    1.
    В браузере щелкните правой кнопкой мыши на пакете Boundaries.
    2.
    В открывшемся меню выберите пункт New > Class Diagram (Соз- дать > Диаграмма Классов).
    3.
    Введите имя новой диаграммы — Main (Главная).
    4.
    Дважды щелкнув мышью на этой диаграмме, откройте ее.
    5.
    Перетащите на нее из браузера классы OrderOptions и OrderDetail.
    Главная диаграмма Классов пакета: Boundaries должна теперь выглядеть, как показано на рис.18.
    Рис. 17. Классы и пакеты варианта использования «Ввести новый заказ»

    39
    Рис. 18.Главная диаграмма классов пакета Boundaries
    1.
    Закройте диаграмму.
    Выполняя аналогичные действия, создайте диаграммы для пакетов
    Entities и Control, присваивая им имена Main (Главная) и поместите на них соответствующие классы. После создания диаграммы будут иметь вид, как на рис.19.
    Рис. 19. Диаграммы классов пакетов Entities (а) и Control (в)
    1.5.1.
    Атрибуты и операции
    Работа с атрибутами

    40
    Атрибут — это фрагмент информации, связанный с классом. Напри- мер, у класса Company (Компания) могут быть атрибуты Name (Название),
    Address (Адрес) и NumberOfEmployees (Число служащих).
    Rose дает возможность добавлять атрибуты (один или несколько) к классам модели.
    Выявление атрибутов
    Существует множество источников, где можно найти атрибуты. В пер- вую очередь следует обратиться к описанию варианта использования. В по- токе событий следует искать имена существительные. Некоторые из них бу- дут классами или объектами, другие — действующими лицами, и, наконец, последняя группа — атрибутами. Например, в потоке событий может быть написано: "Пользователь вводит имя сотрудника, его адрес, номер социаль- ной страховки и номер телефона". Это означает, что у класса Сотрудник имеются атрибуты Имя, Адрес, Номер страховки и Номер телефона.
    Атрибуты можно также выявить, изучая документацию, описывающую требования к системе такие, которые определяют собираемые системой дан- ные. Любой элемент собираемой информации может быть атрибутом класса.
    Следует также обратить внимание на структуру базы данных, если она уже определена. Поля в ее таблицах дадут хорошее представление об атрибу- тах.
    Часто существует однозначное соответствие между таблицами базы данных и классами-сущностями. Если вернуться к предыдущему примеру, то в таблице
    Сотрудник должны быть поля
    Имя,
    Адрес,
    Но- мер телефона и Номер страховки. Соответствующий класс Сотрудник также имеет атрибуты Имя, Адрес, Номер телефона и Номер страховки. Следует отметить, что не всегда существует такое однозначное соответствие. Подхо- ды к проектированию баз данных и классов могут различаться. В частности, реляционные базы данных не поддерживают наследование непосредственно.
    Добавление атрибутов

    41
    Определив атрибуты, следует добавить их к соответствующим классам вашей модели. При этом с атрибутами можно связать три основных фрагмен- та информации: имя атрибута, тип его данных и первоначальное значение.
    Имя и тип атрибута должны быть определены перед генерацией кода, перво- начальное значение задавать необязательно.
    Добавление атрибута выполняется непосредственно на диаграмме
    Классов, в браузере или в окне спецификации класса.
    С атрибутом можно связать некоторое текстовое описание. Как прави- ло, это короткое описание или определение атрибута. В генерируемый код оно войдет в качестве комментария. Таким образом, документируя атрибут, вы начинаете документировать и код.
    Для добавления атрибута к классу:
    1.
    Щелкните правой кнопкой мыши на классе диаграммы Классов.
    2.
    В открывшемся меню выберите пункт New > Attribute (Создать >-
    Атрибут).
    3.
    Введите имя атрибута в формате Имя : Тип данных = Начальное значение. Например:
    Address : String
    IDNumber : Integer = 0
    4.
    Чтобы еще добавить атрибуты, нажмите клавишу Enter и введите новые атрибуты непосредственно на диаграмму Классов.
    ИЛИ
    1.
    Щелкните правой кнопкой мыши на классе в браузере.
    2.
    В открывшемся меню выберите пункт New > Attribute (Создать >-
    Атрибут).
    3.
    Под классом в браузере появится новый атрибут Name (имя).
    Введите имя этого атрибута. Тип данных и значение атрибута по умолчанию не могут быть назначены в браузере, их можно ввести на диаграмме Классов.
    ИЛИ

    42 1.
    Откройте окно спецификации класса данного атрибута.
    2.
    Перейдите на вкладку Attributes (Атрибуты). Если у класса уже имеются атрибуты, они будут перечислены на этой вкладке.
    3.
    Щелкните правой кнопкой мыши где-нибудь внутри области ат- рибутов.
    4.
    В открывшемся меню выберите пункт Insert (Вставить).
    5.
    Введите имя нового атрибута.
    6. Выполните двойной щелчок на имени атрибута в списке – откро- ется окно спецификации атрибута (рис. 20).
    6.
    Задайте видимость, стереотип, тип данных и значение по умолча- нию в соответствующих полях.
    Рис. 20. Установка спецификации атрибута

    43
    Стереотипы атрибутов
    Как у действующих лиц, вариантов использования и классов, у атрибу- тов могут быть стереотипы. Стереотип атрибута является способом его клас- сификации. Например, некоторые атрибуты могут соответствовать полям ба- зы данных, а другие нет. Для каждого такого типа можно определить свой стереотип.
    В Rose необязательно назначать стереотипы атрибутам. Стереотипы не требуются для генерации кода, но при их использовании легче читать и по- нимать модель.
    Для назначения стереотипа атрибуту:
    1.
    Щелкните правой кнопкой мыши на атрибуте в браузере.
    2.
    В открывшемся меню выберите пункт Open Specification (От- крыть спецификацию). Вы увидите окно спецификации атрибута класса.
    3.
    Укажите стереотип в раскрывающемся списке или введите новый стереотип.
    ИЛИ
    1.
    Выделите атрибут в браузере.
    2.
    Для того чтобы отредактировать имя атрибута, щелкните на нем один раз. Перед именем появятся символы "« »".
    3. Введите внутри угловых скобок имя стереотипа.
    После выполнения всех операций на диаграмме в нотации класса ото- бразится стереотип (рис. 21).
    Рис. 21. Отображение атрибутов и стереотипа класса

    44
    Видимость атрибутов
    Так как атрибуты содержатся внутри класса, они скрыты от других классов. В связи с этим нужно указать, какие классы имеют право читать и изменять атрибуты. Это свойство называется видимостью атрибута (attribute visibility).
    Допустимы четыре значения этого параметра:
    Public (Общий, открытый). Атрибут виден всем остальным классам.
    Любой класс может просмотреть или изменить значение атрибута. В соот- ветствии с нотацией UML общему атрибуту на диаграмме предшествует знак "+".
    Private (Закрытый, секретный). Атрибут не виден никаким другим классам. В соответствии с нотацией UML закрытый атрибут обозначается знаком ―-‖.
    Protected (Защищенный). Атрибут доступен только самому классу и его потомкам. Нотация UML для защищенного атрибута — знак ―#‖.
    Package or Implementation (Пакетный). Атрибут является общим, но только в пределах своего пакета. Данный тип видимости не обозначается ни- каким специальным значком.
    В среде Rose поддерживаются два набора нотаций видимости. Первый
    — это нотация UML (+, -, #) для общих, закрытых и защищенных атрибутов соответственно. Вторая включает в себя четыре значка Rose, показанных в таблице 6.
    Таблица 1. Пиктограммы видимости
    Пиктограмма
    Описание
    Public
    Private
    Protected

    45
    Package or Implementation
    Для задания значения видимости атрибута:
    1.
    Щелкните правой кнопкой мыши на атрибуте в браузере.
    2.
    В открывшемся меню выберите пункт Open Specification (От- крыть спецификацию). Появится окно спецификации атрибута класса.
    3.
    В поле Export Control (Контроль экспорта) выберите видимость атрибута: Public, Protected, Private или Implementation. IIo умолчанию види- мость всех атрибутов установлена в Private.
    ИЛИ
    1.
    Выделите атрибут па диаграмме Классов.
    2.
    Если для обозначения видимости вы используете нотацию UML, щелкните мышью на значке "
    +
    ", или "#" рядом с атрибутом. В появившемся списке выберите значение видимости.
    3.
    Если для обозначения видимости используется нотация Rose, щелкните мышью на пиктограмме видимости слева от имени атрибута- поя- вится окно с пиктограммами видимости (рис. 22) В списке значков выберите требуемую видимость.
    Рис. 22. Пиктограммы видимости
    Изменить нотацию для обозначения видимости можно следующим об- разом:
    1.
    В меню модели выберите пункт Tools > Options (Инструменты >
    Параметры).
    2.
    Перейдите на вкладку Notation (Нотация).

    46 3.
    Установите флажок Visibility as icons (Отображать пиктограммы) для использования нотации Rose или сбросьте его для применения нотации
    UML. На рис. 23 приведен пример изображения видимости в нотации UML
    (a) и в нотации Rose (в).
    Рис. 23. Изображение нотаций видимости
    Задание метода локализации атрибута
    Метод локализации атрибута (containment) показывает, каким образом атрибут хранится в классе. Возможны три значения этого параметра:
    By value (По значению). Предполагается, что атрибут содержит- ся внутри класса. Например, если атрибут относится к типу string, эта строка будет содержаться внутри определения класса.
    By reference (По ссылке). Предполагается, что атрибут локализо- ван вне класса, но класс содержит указатель на него.
    Unspecified (Не определен). Метод локализации атрибута еще не определен. В этом случае при генерации кода по умолчанию применяется значение By value этого параметра.
    Задать метод локализации атрибута можно следующим образом:
    1.
    Щелкните правой кнопкой мыши на атрибуте в браузере.
    2.
    В открывшемся меню выберите пункт Open Specification (От- крыть спецификацию) или ОреnStandard Specification (Открыть стандартную спецификацию. Появится окно спецификации атрибута класса.
    3.
    Перейдите на вкладку Detail (Подробно).

    47 4.
    Укажите значение метода локализации атрибута (containment): By value, By reference или Unspecified. Значение этого параметра по умолчанию
    — Unspecified.
    Определение статичного атрибута
    Статичный атрибут (static) — это такой атрибут, который используется всеми экземплярами класса. На языке UML статичный атрибут помечают символом $.
    Сделать атрибут статичным можно следующим образом:
    1.
    Щелкните правой кнопкой мыши на атрибуте в браузере.
    2.
    В открывшемся меню выберите пункт Open Specification (От- крыть спецификацию) или Open Standard Specification (Открыть стандартную спецификацию).Появится окно спецификации атрибута класса.
    3.
    Перейдите на вкладку Detail (Подробно).
    4.
    Установите флажок Static, чтобы сделать атрибут статичным. Пе- ред именем атрибута на диаграмме Классов появится символ "$".
    Определение производного атрибута
    Производным (derived) называется атрибут, созданный из одного или нескольких других атрибутов класса. Например, класс Treangl (Прямоуголь- ный треугольник) может иметь атрибуты Width (Ширина) и Height (Высота).
    У него также может быть атрибут Area (Площадь), вычисляемый как полови- на произведение ширины и высоты. Так как Area получается из этих двух ат- рибутов, он считается производным атрибутом.
    В UML производные атрибуты помечают символом "/".
    Указать, что атрибут является производным можно следующим обра- зом:
    1.
    Щелкните правой кнопкой мыши на атрибуте в браузере.
    2.
    В открывшемся меню выберите пункт Open Specification (От- крыть спецификацию) или Open Standard Specification (Открыть стандартную спецификацию). Появится окно спецификации атрибута класса.

    48 3.
    Перейдите на вкладку Detail (Подробно).
    4.
    Установите флажок Derived (Производный). Перед именем атри- бута на диаграмме Классов появится символ "/" (рис. 24).
    Рис. 24. Нотация класса с производным атрибутом Area
    1.5.2.
    Работа с операциями
    Операцией называется связанное с классом поведение. Операция со- стоит из трех частей: имени, параметров и типа возвращаемого значения. Па- раметры — это аргументы, получаемые операцией "на входе". Тип возвра- щаемого значения относится к результату действия операции. На диаграмме
    Классов можно показывать как имена операций, так и их параметры и типы возвращаемого значения.
    На некоторых диаграммах полезно показывать полную сигнатуру опе- раций. Если же нужно упростить диаграмму, лучше оставить только имена.
    В языке UML операции имеют следующую нотацию:
    Имя операции (аргумент1 : тип данных аргумента, аргумент2 : тип
    данных аргумента2,...): тип возвращаемого значения.
    Операции определяют ответственности классов. При идентификации операций и анализе классов следует иметь в виду следующее:
    Если у класса есть только одна или две операции, то его следует объединить с каким-нибудь другим классом.
    Если у класса нет операций, то лучше его моделировать как один или несколько атрибутов.

    49
    Если класс имеет слишком большое число операций лучше раз- делить класс на два меньших.
    Операции реализации
    Операции реализации (implementor operations) реализуют некоторую бизнес-функциональность. Такие операции можно найти, исследуя диаграм- мы Взаимодействия. Диаграммы этого типа фокусируются на бизнес- функ- циональности, и каждое сообщение диаграммы скорее всего можно соотне- сти с операцией реализации.
    Необходимо, чтобы каждую операцию реализации можно было про- следить до соответствующего требования. Это достигается на различных этапах моделирования. Операция выводится из сообщения на диаграмме
    Взаимодействия, сообщения выделяются из подробного описания потока со- бытий, который создается на основе варианта использования, а последний — на основе требований. Возможность проследить всю эту цепочку гарантиру- ет, что каждое требование будет воплощено в коде, а каждый фрагмент кода реализует какое-то требование.
    1   2   3   4   5   6   7   8


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