Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LAB_4_UML_СВЯЗИ.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
201.22 Кб
Скачать

21. Области видимости

Понятие области видимости тесно связано с интерфейсом и реализацией. Термин видимость применяется по отношению к атрибутам и операциям и задает типы других классов, которые могут использовать заданные атрибуты или операции класса (или операции интерфейса). Выделяют три области ви­димости. Элементы открытой области (public) могут использовать другие классы. Атрибуты и операции защищенной области (protected) могут исполь­зовать только наследники этого класса. Атрибуты и операции закрытой (private) области используются только самими классами. Для телевизионной аппаратуры операции изменить Громкость () и изменитьКанал () общедос­тупны, а операция отобразитьКартинкуНаЭкране () — закрыта. Для авто­мобиля операции увеличить Скорость () и тормозить () — открыты, а опе­рация обновитьКилометраж() относится к защищенной области.

Несложно догадаться, что реализация предполагает открытость всех операций ин­терфейса. Ограничивать доступ к операциям не имеет смысла, потому что они приме­няются для реализации множества классов.

Для обозначения открытой области видимости перед обозначением атрибута или операции ставится символ "+", элементы защищенной области помечаются символом "#", а члены закрытой области — символом "-". Примеры вышеупомянутых обозна­чений открытых, защищенных и закрытых операций для телевизора и автомобиля приведены на рис. 23.

Рис. 23. Общедоступные и закрытые операции для телевизора;

Общедоступные и защищенные операции для автомобиля

22. Статические и динамические классы

С атрибутами и операциями связано понятие статических и динамических классов. Для динамического класса (instance scope) каждый экземпляр имеет собственное значение атрибутов и операций. Все экземпляры статического класса (classifier scope) обладают одним общим значением для каждого ат­рибута или операции. В последнем случае имена атрибутов и операций подчеркиваются. Статический класс используется в том случае, когда за­данная группа экземпляров должна совместно использовать значения за­крытого атрибута. Динамические классы встречаются гораздо чаще.

Резюме

Если без отражения взаимосвязей модель классов является набором прямоуголь­ников, составляющих словарь предметной области, то при их наличии проявляется взаимосвязь терминов словаря, что позволяет получить частичный снимок модели­руемого мира. Ассоциации представляют собой общую концептуальную связь между классами. Каждый класс в ассоциации играет свою роль, а кратность показывает, сколько объектов одного класса связано с одним объектом другого класса. Возможны разные типы кратности. Графическим эквивалентом ассоциации является линия меж­ду прямоугольными изображениями классов с указанием ролей и кратностей на ее концах. Как и класс, ассоциация может иметь атрибуты и операции.

Класс может наследовать атрибуты и операции другого класса. Наследующий класс яв­ляется дочерним по отношению к родительскому, от которого он наследуется. При изуче­нии наследования в исходной модели были обнаружены классы, имеющие общие атрибу­ты и операции. Абстрактные классы предназначены только для использования в качестве базовых для наследования и не порождают своих объектов. Наследование изображается направленной к родительскому классу линией между родительским и дочерним классом.

Взаимосвязь при использовании одного класса другим называется зависимостью. Наиболее общий случай зависимости состоит в использовании в сигнатуре операции одного класса другим классом. Зависимость изображается пунктирной линией со стрелкой, соединяющей связанные классы и исходящей из зависимого класса.

Завершая изучение классов и типов их взаимосвязей, необходимо остановиться на некоторых дополнительных типах взаимоотношений. Агрегация задает ассоциацию "часть-целое". "Целый" класс состоит из классов-компонентов. Компонент может быть частью нескольких агрегатов. Композит представляет собой строгую форму аг­регации, в которой компонент может быть частью только одного целого. Обозначения UML для агрегации и композиции очень схожи. На линии связи части и целого со стороны агрегата добавляется ромб. При обычной агрегации используется полый ромб, а при композиции — закрашенный.

Контекстная диаграмма строится для отдельного класса системы. Композитная контекстная диаграмма напоминает подробную схему фрагмента карты большего масштаба. На ней изображают диаграмму классов внутри большого прямоугольника, соответствующего изображению агрегатного класса. Контекстная диаграмма системы предназначена для отображения связи композитной диаграммы класса с другими объ­ектами системы.

Реализация — это ассоциация между классом и интерфейсом, представляющая на­бор операций, используемых несколькими другими классами. Графически интерфейс представляется как класс без атрибутов. Чтобы отличить его от класса, чьи атрибуты просто не включены в диаграмму, над именем интерфейса размещают стереотип «интерфейс» или (второй вариант) имена интерфейсов начинают с прописной бук­вы "I". Реализация представляется в UML в виде пунктирной линии, соединяющей класс и интерфейс. На этой линии со стороны интерфейса размещают закрашенный треугольник, указывающий на интерфейс. Другим способом представления реализа­ции является соединение класса сплошной линией с небольшим кружком, изобра­жающим интерфейс.

В терминах областей видимости все операции интерфейсов общедоступны или от­крыты (public), так что любой класс может их использовать. Существует еще две об­ласти видимости: защищенная (protected) (атрибуты и операции из этой области могут использоваться дочерними классами) и закрытая (private) (атрибуты и операции ис­пользуются только самим классом). Символ "+" означает общедоступную область ви­димости, "#" соответствует защищенной, а "-" — закрытой.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]