
- •Практика 8. Работа с классами
- •Практика 9. Операции над классами.
- •Практика 10. Типы классов.
- •Практика 11. Возможности классов.
- •Практика 12. Работа с атрибутами.
- •Практика 13. Работа с операциями.
- •Практика 14. Связи
- •Практика 15. Поведение объекта.
- •Практика 16. Представление компонентов.
- •Практика 17. Представление размещения.
Практика 8. Работа с классами
Создание диаграмм Классов
В среде Rose диаграммы Классов создаются в Логическом представлении модели. Так же вы можете создать столько диаграмм Классов, сколько нужно для полного описания вашей системы. При построении новой модели автоматически будет создана Главная диаграмма Классов, она размещается непосредственно под Логическим представлением. Обычно с помощью этой диаграммы показывают пакеты классов модели. Вы можете создать дополнительные диаграммы классов в Логическом представлении или внутри любого пакета.
Для создания новой диаграммы Классов:
Щелкните правой кнопкой мыши на Логическом представлении браузера
В открывшемся меню выберите пункт New > Class Diagram (Создать > Диаграмма классов)
Введите имя новой диаграммы.
Дважды щелкнув на диаграмме в браузере, откройте ее.
Для добавления к диаграмме Классов нового элемента воспользуйтесь кнопками панели инструментов диаграммы Классов. Можно также выбрать в меню модели пункт Tools > Create (Инструменты > Создать) и указать элемент, который вы хотите добавить.
Удаление диаграмм Классов
В процессе работы с моделью может потребоваться удалить некоторые из созданных вами диаграмм Классов. В среде Rose это делается с помощью браузера. При удалении диаграммы содержащиеся в ней классы не удаляются. Они сохранятся в браузере и других диаграммах.
Для удаления диаграммы Классов:
Щелкните правой кнопкой мыши на диаграмме в браузере.
В открывшемся меню выберите пункт Delete (Удалить).
Организация элементов на диаграмме классов
По мере добавления на диаграмму новых классов и связей она постепенно становится все более захламленной и трудной для восприятия. Rose способна автоматически приводить в порядок все классы на диаграмме.
Добавляя к классу атрибуты и операции, а также изменяя его размеры на диаграмме, вы можете получить слишком большой или слишком маленький прямоугольник, изображающий класс. Rose может автоматически изменить размеры этого прямоугольника так, чтобы вместить весь относящийся к нему текст.
Для расположения элементов на диаграмме Классов:
Выберите в меню пункт Tools > Layout Diagram (Инструменты > Расположить диаграмму). Все классы на диаграмме будут автоматически размещены наиболее оптимальным способом.
Для изменения размеров элементов на диаграмме Классов:
Выберите в меню пункт Tools > Autosize All (Инструменты Настроить размер всех элементов). Размер соответствующего каждому классу прямоугольника будет автоматически изменен так, чтобы вместить имя, атрибуты и операции класса.
Панель инструментов диаграммы Классов
Если на вашей панели инструментов показаны не все кнопки, щелкните на ней правой кнопкой мыши и в появившемся меню выберите пункт Customize (Настроить). Откроется диалоговое окно, с помощью которого можно добавить на панель любую из кнопок, перечисленных в таблице
Практика 9. Операции над классами.
Работа с классами
После создания диаграммы Классов нужно добавить новые классы в модель. Доступны классы нескольких типов: регулярные, параметризованные, классы-наполнители, утилиты классов, утилиты параметризованных классов, утилиты классов-наполнителей и метаклассы.
Rose предоставляет ряд возможностей по детализации классов. Каждому классу можно дать имя, определить его стереотип, указать видимость, а также задать несколько других параметров.
Добавление классов
Для начала поместим на диаграмму стандартный класс. Это можно сделать несколькими способами: с помощью панели инструментов, браузера и меню
Если поместить новый класс непосредственно в браузер, он не появится ни на одной диаграмме, но его можно будет туда вставить. Действуя по-другому, можно расположить новый класс сразу на диаграмме. В этом случае он будет автоматически добавлен и в браузер.
Поместить новый класс на диаграмму Классов можно следующим образом:
Нажмите кнопку Class (Класс) панели инструментов.
Добавление параметризованного класса
Параметризованный класс (parameterized class) — один из специальных типов классов. Он применяется для создания семейства других классов. Обычно параметризованный класс является разновидностью контейнера, его еще называют шаблоном. В частности, если у вас есть параметризованный класс List (Список), то с помощью экземпляров этого класса вы можете создать такие классы, как EmployeeLisi OrderList и AccountList (соответствующие спискам сотрудников, заказов и счетов), как показан* ниже.
На языке UML параметризованный класс изображается с помощью следующей нотации:
Для добавления параметризованного класса:
Нажмите кнопку Parameterized Class (Параметризованный класс) панели инструментов.
Щелкните мышью где-нибудь на диаграмме, чтобы поместить туда новый класс.
Введите имя класса.
Задание аргументов параметризованного класса
Аргументы класса указываются в прямоугольнике, выделенном пунктирными линиями. На основе аргументов создаются элементы стандартного класса. Например, если в приведенной выше нотации заменить параметр "Элемент" специфическим элементом, например Employee (Сотрудник), то будет инициализирован класс EmployeeList.
Аргументом может быть другой класс, тип данных или выражение-константа. Вы можете задавать неограниченное количество аргументов.
Для добавления аргумента:
Откройте окно спецификации класса.
Перейдите на вкладку Detail (Подробно).
Щелкните правой кнопкой мыши в поле Name области Formal Arguments (Формальные аргументы).
В открывшемся меню выберите пункт Insert (Вставить).
Введите имя аргумента.
Щелкнув мышью, раскройте список Туре (Тип). Выберите один из типов аргумента или введите свой
Щелкните в поле Default Value (Значение по умолчанию) и введите значение аргумента по умолчанию. (Это делать не обязательно.)
Создание класса-наполнителя
Класс-наполнитель (instantiated class) является параметризованным классом, аргументы которого имеют фактические значения. В частности, в рассмотренном выше примере мы имеем дело со списком некоторых элементов. Определив значение аргумента, мы получим список сотрудников. В соответствии с нотацией UML, имя аргумента класса-наполнителя заключается в угловые скобки (< >)
Для добавления класса-наполнителя:
Нажмите кнопку Instantiated Class панели инструментов.
Щелкните мышью на диаграмме там, где будет располагаться новый класс.
Введите имя класса с аргументами, заключив их в угловые скобки (< >).
Добавление утилиты класса
Утилита класса (class utility) — это совокупность операций. Например, в вашей системе может быть совокупность математических функций (квадратный корень, кубический корень и т.д.), которые используются всей системой и не слишком хорошо подходят для какого-либо конкретного класса. Эти функции можно собрать вместе и объединить в утилиту класса, которая будет использоваться другими классами системы.
Утилиты классов часто применяют для расширения функциональных возможностей языка программирования или для хранения общих элементов функциональности многократного использования, необходимых в нескольких системах.
Утилита класса выглядит на диаграмме как класс "с тенью":
Для добавления утилиты класса:
Нажмите кнопку Class Utility (Утилита класса) панели инструментов.
Щелкните мышью на диаграмме там, где будет находиться новый класс.
Введите его имя.
Добавление утилиты параметризованного класса
Утилитой параметризованного класса (parameterized class utility) является параметризованный класс держащий только набор операций. Это шаблон для создания утилит класса. На диаграмме классов выглядит следующим образом:
Для добавления утилиты параметризованного класса:
Нажмите кнопку Parameterized Class Utility (Утилита параметризованного класса) панели инструментов.
Щелкните мышью на диаграмме там, где будет находиться новый класс.
Введите его имя.
Создание утилиты класса-наполнителя
Утилитой класса-наполнителя (instantiated class utility) называется утилита параметризованного класса, параметры которой имеют фактические значения. На диаграмме классов она выглядит следующим образом:
Для добавления утилиты класса-наполнителя:
Нажмите кнопку Instantiated Class Utility панели инструментов.
Щелкните мышью на диаграмме там, где будет находиться новый класс.
Введите его имя.
Добавление метакласса
Метакласс (metaclass) — это класс, экземпляры которого являются классами, а не объектами. К числу метаклассов относятся параметризованные классы и утилиты параметризованных классов. На языке UML метаклассы изображают следующим образом:
Для добавления метакласса:
С помощью одного из описанных выше методов добавьте класс на диаграмму Классов или в браузер.
Откройте окно спецификации класса.
В поле Туре (Тип) укажите MetaClass (Метакласс).
Нажмите ОК.
Именование классов
Каждому классу модели Rose необходимо дать уникальное имя. Большинство организаций имеет собственные соглашения по именованию классов. В общем случае используются существительные в единственном числе. В системе обработки данных о сотрудниках может быть класс Employee (Сотрудник) и класс Position (Должность). Мы не будем называть их Employees (Сотрудники) и Positions (Должности).
Обычно имена классов не содержат пробелов. Это делается по практическим причинам и из соображений удобочитаемости — языки программирования, как правило, не поддерживают пробелы в именах классов. Старайтесь, чтобы имена были относительно короткими.
Несмотря на то, что название ListOfEmployeesThatAreOnProbation (Список сотрудников, проходящих испытательный срок) хорошо описывает назначение класса, оно слишком сложное. Имя Emp- loyeeList (Список сотрудников) будет в данном случае лучшим вариантом.
Используемый для именования классов регистр символов определяется обычно организацией. Если, например, ваш класс соответствует списку пользователей, вы можете назвать его employeelist, EmployeeList, Employeelist или EMPLOYEELIST. Таким образом, компания может придерживаться своих соглашений по именованию. Важно только, чтобы принятый подход применялся ко всем классам модели.
Дать классу имя можно следующим образом:
Выделите класс в браузере или на диаграмме классов.
Введите его имя.
Назначение стереотипа для класса
Стереотип — это механизм, позволяющий категоризировать классы. Допустим, вы хотите найти все формы в вашей модели. Для этого можно создать стереотип Form (Форма) и назначить его всем окнам вашего приложения. В дальнейшем при поиске форм нужно только искать классы с этим стереотипом.
На языке UML определены три основных стереотипа: Boundary (Граница), Entity (Объект) и Control (Управление).