характеристиками и семантикой. Объект может быть практически чем угодно, представимым программными средствами. Типичный класс описывает структуру и поведение объектов класса.
Определение класса содержит три основных компонента (в числе прочих):
–атрибуты – структурные свойства класса;
–операции – поведенческие свойства класса;
–обязанности – обязательства класса.
Обычно между классами имеются связи. Самая простая структурная связь называется ассоциацией. На рисунке 5.10 показана простая ассоциация между двумя классами – «Работник» и «Компания». Линия, соединяющая два класса, может быть снабжена стрелкой; если же стрелка отсутствует, подразумевается двусторонняя связь. Характер ассоциации можно также описать с помощью треугольника. В этом случае ассоциация читается следующим образом: «Работник работает в компании» и «Компания нанимает работника». Наконец, автор может указать кратность ассоциации, которая определяет её численные аспекты и записывается отдельными числами или в той или иной сокращённой нотации. Например, запись 0..2 означает любое значение от 0 до 2, а символ звездочки (*) интерпретируется как «много». Таким образом, в нашем примере звездочка и число «1» означают, что работник работает только в одной компании, а компания может нанять много работников.
Рисунок 5.10 – Пример ассоциации классов
Между классами могут существовать связи ещё двух типов: обобщение и зависимость. Обобщение описывает таксономическую связь между частным и общим классами. На рисунке 5.11 изображены обобщения, связывающие три класса: клиент, корпоративный клиент и клиент – физическое лицо. В данном случае как корпоративные клиенты, так и физические лица являются частными случаями более общего класса «Клиент». Такая связь изображается в виде стрелки с широким острием. На данной диаграмме представлены также атрибуты и операции всех классов.
Частные классы, связанные отношением обобщения с более общим классом, наследуют атрибуты и операции своего родителя. Следовательно, класс «Корпоративный клиент»обладаетнетолькособственнымиатрибутами иоперацией, нотакже атрибутами Name и Adress и операцией getCreditRating(). То же самое справедливо и для класса «Клиент–физическое лицо».
Третий тип связи – зависимость – применяется в ситуации, когда в описании или реализации одного класса используется другой. Следует отметить, что отношение зависимости может существовать не только между классами, но и между другими элементами UML.