Автор Тема: Как обозначить атрибут, значение которого вычисляется в момент создания объекта  (Прочитано 2036 раз)

Vadim

  • Full Member
  • ***
  • Сообщений: 150
  • Рейтинг читателей: 30
    • Просмотр профиля
Вам надо время от времени итожить свою дискуссию, чтобы сохранить ее понимание для окружающих :)
Попробую. ИМХО:
  • Значение по умолчанию (задается в виде "=defaultValue" или "init: defaultValue") означает каким будет значение property в момент КОНЦА, а не НАЧАЛА инициализации экземпляра объекта. Если есть 2 способа для обозначения одного и того же, может один из них использовать для чего-то другого (например для значения property в момент НАЧАЛА)?
  • Во многих источниках (включая сам стандарт UML!) если property является derived, то и readOnly. Это, как правило, ошибка (сама ситуация допустима, означает, что исходные данные могут меняться только так, что значение derived property остаётся неизменным). Причина:
    Цитата: [прилетело НЛО и...
    link=topic=6740.msg41789#msg41789 date=1495545952] путают "не может меняться извне" с "не может меняться после инициализации".
  • Если property и derived, и имеет defaultValue возникает неоднозначность. Стандарт (OCL 7.3.7) это видит:
    Цитировать
    "Initial and derivation expressions may be mixed together after one context. ... The derivation constraint must be satisfied at any time, hence the derivation includes the initialization. Both are allowed on the same property but they must not be contradictory."
    , но вместо исключения ситуации предлагает "примирение" с ней.


[прилетело НЛО и...]

  • Full Member
  • ***
  • Сообщений: 218
  • Рейтинг читателей: 26
    • Просмотр профиля
Как возможные промежуточные итоги:
Описание метамодели UML и метамодели OCL можно рассматривать как источник для установления прагматики некоторых конструкций UML.
В стандарте UML есть ошибки.
Утверждение, что инвариант истинен всегда следует принимать без фанатизма. Если в модели есть динамика, то в ней обычно допустимы короткие отрезки времени, в течение которых целостности нет.
[...и улетело НЛО.]

Galogen

  • Member of CAR
  • Hero Member
  • *****
  • Сообщений: 6068
  • Рейтинг читателей: 192
  • Аксакал
    • Просмотр профиля
    • Профиль в Моем Круге