Утилита класса (class utility) – это совокупность операций. Например, в вашей системе может быть совокупность математических функций (квадратный корень, кубический корень и т.д.), которые используются всей системой и не слишком хорошо подходят для какого-либо конкретного класса. Эти функции можно собрать вместе и объединить в утилиту класса, которая будет использоваться другими классами системы.
Утилиты классов часто применяют для расширения функциональных возможностей языка программирования или для хранения общих элементов функциональности многократного использования, необходимых в нескольких системах.
Утилита класса выглядит на диаграмме как класс "с тенью":
Именование классов
Каждому классу модели Rose необходимо дать уникальное имя. Большинство организаций имеет собственные соглашения по именованию классов. В общем случае используются существительные в единственном числе. В системе обработки данных о сотрудниках может быть класс Employee (Сотрудник) и класс Position (Должность).
Обычно имена классов не содержат пробелов. Это делается по практическим причинам и из соображений удобочитаемости – языки программирования, как правило, не поддерживают пробелы в именах классов. Старайтесь, чтобы имена были относительно короткими.
Несмотря на то, что название ListOfEmployeesThatAreOnProbation (Список сотрудников, проходящих испытательный срок) хорошо описывает назначение класса, оно слишком сложное. Имя Emp-loyeeList (Список сотрудников) будет в данном случае лучшим вариантом.
Используемый для именования классов регистр символов определяется обычно организацией. Если, например, ваш класс соответствует списку пользователей, вы можете назвать его employeelist, EmployeeList, Employeelist или EMPLOYEELIST. Таким образом, компания может придерживаться своих соглашений по именованию. Важно только, чтобы принятый подход применялся ко всем классам модели.
|
Стереотип – это механизм, позволяющий категоризировать классы. Допустим, вы хотите найти все формы в вашей модели. Для этого можно создать стереотип Form (Форма) и назначить его всем окнам вашего приложения. В дальнейшем при поиске форм нужно только искать классы с этим стереотипом. На языке UML определены три основных стереотипа: Boundary (Граница), Entity (Объект) и Control (Управление).
Пограничные классы
Пограничными классами (boundary classes) называются такие классы, которые расположены на границе системы со всем остальным миром. Они включают в себя формы, отчеты, интерфейсы с аппаратурой (такой, как принтеры или сканеры) и интерфейсы с другими системами. В UML пограничные классы обозначают следующим образом:
Классы-сущности
Классы-сущности (entity classes) содержат информацию, хранимую постоянно. В нашей системе работы с данными о сотрудниках хорошим примером такого класса является класс Employee. Классы-сущности можно обнаружить в потоке событий и на диаграммах Взаимодействия. Они имеют наибольшее значение для пользователя, и потому в их названиях часто применяют термины из предметной области. На языке UML классы-сущности представляют следующим символом:
Управляющие классы
Управляющие классы (control classes) отвечают за координацию действий других классов. Обычно у каждого варианта использования имеется один управляющий класс, контролирующий последовательность событий этого варианта использования. Как показано на рис. 5.9, на диаграмме Взаимодействия управляющий класс отвечает за координацию.
|
Рис. 5.9. – Управляющий класс на диаграмме Последовательности
Обратите внимание, что сам управляющий класс не несет в себе никакой функциональности -остальные классы посылают ему мало сообщений. Но сам он посылает множество сообщений. Управляющий класс делегирует ответственность другим классам. По этой причине управляющий класс часто называют классом-менеджером. На языке UML его рисуют следующим образом: