Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
компьютерная техника (конспектировать ).docx
Скачиваний:
69
Добавлен:
05.11.2018
Размер:
1.56 Mб
Скачать

Пассивные классы

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

  • именем класса;

  • компонентой экземпляра;

  • аксессорами;

  • конструкторами для предварительно существующих экземпляров.

Имя класса. Имя класса для пассивного класса такое же, как и у объекта, из которого он был сгенерирован.

Компоненты экземпляра

Для каждого атрибута рассматриваемого объекта определите компоненту экземпляра создаваемого класса (рис.9.5.2). Тип данных каждой компоненты экземпляра определяется из описания домена атрибута.

Существует два особых случая, которые требуют дальнейшего рассмотрения.

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

Заметьте, что все-таки некоторые идентификаторы несут информацию, которая необходима при обработке: вероятно, что Спецификация Сока.Имя Сока необходим для составления инвентарных отчетов. Такие атрибуты преобразуются в компоненты экземпляра стандартным вышеописанным способом.

2. Поскольку вспомогательный атрибут служит для связи одного экземпляра объекта с другим, вспомогательный атрибут преобразуется в дескриптор экземпляра связанного класса. Например, объект Бак Для Хранения в примере предприятия по производству сока имеет вспомогательный атрибут Бак.Имя Сока, который указывает, какой вид сока хранится в баке. Этот вспомогательный атрибут преобразуется в дескриптор экземпляра Спецификация Сока, как показано на рис.9.5.2.

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

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

Рис.9.5.2. Построение компонент экземпляра класса.

Конструктор для существующих экземпляров. Считают, что в большинстве моделей ООА экземпляры определенных объектов просто существуют: не применяется никаких средств для их создания во время анализа. Например, в моделях предприятия по производству сока объекты Спецификация Сока, Рецепт, Бак и Труба приведены как объекты с предварительно существующими экземплярами. Если рассматриваемый объект имеет такую природу, для создания предварительно существующего экземпляра и возврата его дескриптора обеспечивают общедоступную операцию класса, называемую Установить. Этот конструктор будет вызываться основным модулем во время инициализации.