Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Модуль-1-шпора-ТРПО-3.doc
Скачиваний:
20
Добавлен:
21.03.2015
Размер:
2.28 Mб
Скачать

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

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

Для концептуальных диаграмм направление навигации не важно, оно имеет значение для диаграмм, построенных с т.з. спецификации и реализации. С т.з. спецификации на ДК видно, что Заказ обязан ответить на вопрос, к какому Клиенту он относится, а у Клиента такой ответственности нет. На диаграмме реализации это означает, что Заказ содержит указатель на Клиента, но Клиент не указывает на Заказ. Направление навигации с т.з. спецификации и реализации м.б. различным.

В языке UML отсутствие стрелок означает, что направление навигации неизвестно или ассоциация является двунаправленной.

Рисунок 2.3. Диаграмма классов с направлениями навигации

2.4.2. Обобщения

Обобщения - это отношения, которые связывают обобщенные классы (суперклассы) со специализированными (подклассами). Подклассы наследуют структуру и поведение суперкласса. В отношениях обобщения экземпляры подкласса могут использоваться вместо экземпляров суперкласса, т.е. потомок может замещать родителя.

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

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

С точки зрения реализации обобщение связано с понятием наследования в языках программирования. Подкласс наследует все методы и поля суперкласса и может переопределять наследуемые методы.

2.4.3. Атрибуты

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

На концептуальном уровне атрибут Имя клиента указывает на то, что Клиенты обладают именами.

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

На диаграммах обозначение атрибута может включать имя атрибута, тип и значение, присваиваемое по умолчанию. Синтаксис UML для атрибутов:

<признак видимости> <имя >:<тип> = <значение по умолчанию>

Признак видимости может принимать одно из 3 значений:

«+» - общий, открытый (public);

«-» - закрытый, секретный (private);

«#» - защищенный.

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

2.4.4. Операции

Операцией называется реализация услуги, которую можно запросить у любого объекта класса. Иначе говоря, операция – это абстракция того, что позволено делать с объектом.

Синтаксис UML для операций:

<признак видимости><имя>(<список параметров>):<тип выражения возвращающего значение >{<строка свойств>}.

Признак видимости – тот же, что и для атрибутов,

имя – символьная строка,

список параметров – необязательные аргументы, синтаксис которых совпадает с синтаксисом атрибутов,

тип выражения возвращающего значения – является необязательной спецификацией и зависит от конкретного языка программирования,

строка свойств – показывает значения свойств, которые применяются к данной операции.

Пример операции: +кредитный Рейтинг():Строка

В концептуальной модели операции должны отражать принципиальное назначение класса, а не его интерфейс.

Операции можно разделить на 2 вида:

  1. операции, не изменяющие состояние класса, они называются запросами. Их результат –некоторое извлекаемое из класса значение.

  2. Операции, изменяющие наблюдаемое состояние объекта – модификаторы.

В языке UML существует различие между операцией и методом. Операции – это услуги, которые можно запросить у любого объекта класса для изменения поведения, а метод – это реализация операции.

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