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

3.10 Жизненные циклы для подтипов и супертипов

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

Миграция подтипов

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

Жизненный цикл супертипа, случай миграции. Рис.3.10.2 показывает жизненный цикл, изображенный на супертипном уровне. Все события, которые совершает этот жизненный цикл, имеют своим предназначением модель состояний Бака-Смесителя.

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

Рис.3.10.1. Информационная модель для части предприятия по производству косметики.

Немигрирующие подтипы

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

Жизненный цикл супертипа, случай немиграции. Если динамическое поведение экземпляра супертипа не зависит от подтипа, которому он принадлежит, жизненный цикл формируется на уровне супертипа и события, управляющие жизненным циклом, направлены к супертипу. Обратите внимание на то, что в действиях такого жизненного цикла есть некоторая if-логика. Эта логика будет необходима, если у подтипов есть свои собственные атрибуты, которые получают значения в течение жизненного цикла, или если подтипы входят в различные связи, которые должны поддерживаться действиями,

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

Сращивание. И наконец, возможно, что для большей части жизненного цикла экземпляра его поведение не зависит от подтипа, к которому он принадлежит, но для другой части зависит. Эта идея сращивания показана на рис.3.10.4. Все экземпляры ведут себя одинаково, когда 'они эволюционируют из состояния II в состояние I. Затем они ведут себя различно, каждый в соответствии со своим подтипом, пока не достигают состояния II.

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

  • события, которые вызывают переходы к (или внутри) общей части жизненного цикла, направлены к объекту супертипа;

  • события, которые вызывают переходы к (или внутри) подтипных частей жизненных циклов, направлены к подтипам.

Puc.3.10.2. Жизненный цикл объекта супертипа Бак-Смеситель.