Полные и неполные ограничения классификатора

В предыдущих выпусках «UML. Основы» было отмечено, что ограниче­ние {complete} (полный) для некоторого обобщения устанавливает, что все экземпляры супертипа должны быть также экземпляром некоторо­го подтипа в данном разбиении. Вместо этого в языке UML версии 1.1 определено ограничение {complete}, которое указывает лишь на то, что соответствующее разбиение отражает все подтипы. А это совсем не то же самое. Я обнаружил множество несоответствий в интерпретации этого ограничения, поэтому вам следует обратить на это внимание. Ес­ли вы хотите показать, что все экземпляры супертипа должны быть экземпляром одного из подтипов, то во избежание недоразумений я со­ветую использовать другое ограничение. В настоящее время я приме­няю ограничение {mandatory} (обязательный).

Композиция

Применение композиции в языке UML версии 1.0 означало, что эта связь неизменна (immutable) или заморожена (frozen), по крайней ме­ре, для компонентов с одним значением. Это ограничение больше не является частью определения композиции.

Неизменность и замороженность

Язык UML определяет ограничение {frozen} (замороженный) для ука­зания неизменяемости ролей ассоциации. Как определено в настоящее время, это ограничение не может быть применено к атрибутам или классам, В своей текущей работе вместо неизменности я употребляю термин frozen, тем самым я могу применять это ограничение к ролям ассоциаций, классам и атрибутам.

Возвраты на диаграммах последовательности

В UML 1.0 обратное сообщение (или возврат) на диаграмме последова­тельности вместо сплошной стрелки обозначалось обычной стрелкой (см. предыдущее издание). Это привело к некоторым трудностям, по­скольку данное различие трудно заметить, и оно легко приводит к недо­разумениям. В UML 1.1 возвраты изображаются пунктирной линией со стрелкой, что мне нравится больше, поскольку делает возвраты намно­го более очевидными, (Именно поэтому в своей книге «Паттерны анали-


за» [16] я использовал пунктирные возвраты, что представляется мне весьма важным.) Для последующего применения возвратов можно на­значить им имена вида enoughStock:=check().


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: