Практика 7. Диаграммы класов.
На диаграммах Классов отображаются некоторые классы и пакеты системы. Это статические картины фрагментов системы и связей между ними. В среде Rose диаграмму Классов обозначают следующим символом:
Обычно для описания системы создают несколько диаграмм Классов. На одних показывают некоторое подмножество классов и отношения между классами подмножества. На других отображают то же подмножество, но вместе с атрибутами и операциями классов. Третьи соответствуют только пакетам классов и отношениям между ними. Для представления полной картины системы можно разработать столько диаграмм Классов, сколько требуется.
По умолчанию существует одна диаграмма Классов, называемая Главной (Main) и располагающаяся непосредственно под Логическим представлением в браузере. На этой диаграмме показывают пакеты классов модели. Внутри каждого пакета также имеется
Главная диаграмма, включающая в себя все классы этого пакета. Двойной щелчок мыши на пакете диаграммы Классов в среде Rose открывает Главную диаграмму этого пакета.
Диаграммы Классов являются хорошим инструментом проектирования.
С их помощью разработчики могут видеть и планировать структуру системы еще до фактического написания кода, благодаря чему они с самого начала могут понять, хорошо ли спроектирована система.
Класс— это некоторая сущность, инкапсулирующая данные и поведение. В соответствии с традиционным подходом данные располагаются в базе данных, а поведением занимается собственно приложение. Объектноориентированный подход предполагает объединение некоторого количества данных и поведения, обрабатывающего эти данные. Мы берем немного данных и немного поведения, а затем инкапсулируем все это в некоторую структуру, называемую классом.
На языке UML классы изображают с помощью следующей нотации:
В верхней части прямоугольника класса содержится его имя и (необязательно) стереотип. Средний раздел включает в себя атрибуты класса, т.е. его данные. В нижней секции описываются операции, или поведение, класса. Для упрощения диаграммы атрибуты и/или операции класса можно не показывать. На диаграммах этого типа можно также отобразить видимость всех атрибутов и операций, типе данных атрибутов и сигнатуру всех операций
Выявление классов
Выявление классов можно начать с изучения потока событий вашего сценария. Имена существительные в описании этого потока дадут понять, что может являться классом. В общем случае существительные могут соответствовать следующим элементам:
Действующее лицо
Класс
Атрибут класса
Выражение, не являющееся действующим лицом, классом или атрибутом
Изучив все эти существительные, вы определите классы вашей системы.
Другим способом является анализ диаграмм Последовательности и Кооперативных диаграмм. Ищите на этих диаграммах похожие объекты.
Например, у вас может быть диаграмма Последовательности, описывающая процесс выплаты зарплаты. На ней показано, как выдают деньги Джону Доу и Фреду Смиту. Обратите внимание на объекты Джон Доу и Фред Смит этой диаграммы. Атрибуты обоих сходны: имя, адрес и номер телефона. Операции тоже одинаковы: нанять или уволить сотрудника. Таким образом вы можете обнаружить, что следует создать класс Employee, который будет шаблоном для объектов Джон Доу и Фред Смит.
Каждый объект диаграмм Последовательности и Кооперативных диаграмм должен быть соотнесен с соответствующим классом. Процесс соотнесения объектов и классов на диаграмме Взаимодействия описан в предыдущей главе.
Поток событий и диаграммы Взаимодействия являются прекрасным местом, где можно начать поиск классов. Тем не менее некоторые классы вы там не найдете. При выявлении классов следует рассмотреть три возможных стереотипа: сущность (entity), границу (boundary) и управление (control). Не все они содержатся в потоке событий и на диаграммах Взаимодействия
