
Специальное обозначение на диаграмме классов этапа проектирования используют для
указания абстрактных классов и методов: на диаграмме классов их имена выделяют курсивом,
либо перед именем класса указывают стереотип «abstract».
UML также включает специальную нотацию для обозначения параметризованных классов или
шаблонов (рис. 7.12, а). Получение из такого класса, класса с конкретными типами элементов
называют связыванием. Связывание можно обозначить двумя способами: явно указав тип параметра
(рис. 7.12, б) и используя условное обозначение уточнения (рис. 7.12, в).
Диаграммы классов позволяют также отобразить ограничения, которые невозможно показать,
используя только понятия, рассмотренные выше (ассоциации, обобщения, атрибуты, операции).
Например, показать, что средний балл студентов должен определяться по соответствующей
формуле. Подобную, информацию на диаграмме классов можно представить в виде записи на
естественном языке или в виде математической формулы, поместив их" в фигурные скобки.
Особое место в процессе проектирования классов занимает проектирование интерфейсов.
Интерфейсы. Интерфейсам в UML называют класс, содержащий только объявление
операций. Отдельное описание интерфейсов улучшает технологические качества проектируемого
программного обеспечения. Интерфейсы широко применяют при разработке сетевого
программного обеспечения, которое должно идентично функционировать в гетерогенных средах,
а также для организации взаимодействия с системами управления базами данных и т. п., так как
механизм полиморфного наследования позволяет создавать различные реализации одного и того
же интерфейса.
С точки зрения теории объектно-ориентированного программирования интерфейс
представляет собой особый вид абстрактного класса, отличающийся тем, что он не содержит
методов, реализующих указанные операции, и объявлений полей. Другими словами, абстрактные
классы позволяют определить реализацию некоторых методов, а интерфейсы требуют отложить
определение всех методов.
На диаграмме классов интерфейс можно показать двумя способами: с помощью специального
условного обозначения (рис. 7.13, а) или, объявив для класса стереотип «Interface» (рис. 7.13, б).
Реализацию интерфейса также можно показать двумя способами: сокращенно (рис. 7.14, а)
или, используя отношение реализации (рис. 7.14, б).
Для остальных классов, ассоциированных с интерфейсом, следует уточнить ассоциацию,
показав отношение зависимости. Это отношение в данном случае означает, что класс использует
указанный интерфейс (рис. 7.15), т. е. обращается к описанным в интерфейсе функциям.