ГОСТ Р ИСО 21090—2016
Определение инвариантов на языке OCL:
def: let noSemantics : Boolean - expression.oclIsUndefined and
originalText.oclisUndefined and uncertainty.oclisUndefined and
uncertainty!ype.ocl 1sUndefined
inv "правила для атрибута uncertaintyuncertainty.isNotNuil implies
(uncertainty.noSemantics)
lnv " правила для атрибута uncertainRange": uncertsinRange.isNotNuil implies
(uncertainRauge.noSemantics)
inv "вид неопределенности": not (uncertainty.isNotNuil and
uncertainRange.isNotNull)
inv "тип интервала неопределенности": uncertainRange.oclIsDefined implies
((uncertainRange.width,oclIsUndefined and
uncertainRange.any.oclIsUndefined)
and (uncertainRange.low.isNotNuil or
uncertainRange.high.isNotNuil))
inv "нет истории или режима изменения": noUpdateOrHistory(uncertainty) and
noUpdateOrHistory(uncertainRange) and
noUpdateOrHistory(origmalText) and
noUpdateOrHistory(expression))
7.8.2.6 Операции
7.8.2.6.1 lessThan[<)(other: Q TY): BL: имеет значение true, если текущее значение (this) меньше
другого значения (other). Для неопределенных значений результат операции может быть неизвестен
(result = NullFlavor.UNK).
7.8.2.6.2 lessOrEqual{<=](other: QTY): BL: имеет значение true, если текущее значение (this) мень
ше другого значения (other) или равно ему. Для неопределенных значений результат операции может
быть неизвестен (result = NullFlavor.UNK).
7.8.2.6.3 grcaterOrEqual[>=](other: Q TY): BL; имеет значение true, если текущее значение (this)
больше другого значения (other) или равно ему. Для неопределенных значений результат операции
может быть неизвестен (result = NullFlavor.UNK).
7.8.2.6.4 greaterThan[>)(other: QTY): BL: имеет значение true, если текущее значение (this) боль
ше другого значения (other). Для неопределенных значений результат операции может быть неизвестен
(result = NullFlavor.UNK).
7.8.2.6.5 plus[+](other. QTY): QTY: результат сложения текущего значения (this) и другого значения
(other). Другое значение должно иметь правильный тип данных (тот же. что у текущего значения, за ис
ключением типа данных TS. для которого текущее значение должно иметь тип данных PQ с единицами
времени, и типа данных PQ. для которого другое значение должно иметь совместимые единицы изме
рения). в противном случае результат имеет значение причины пустоты NI. Неопределенности должны
переноситься на результат операции. Если значения имеют смешанные типы неопределенности, то
результат может быть неизвестен (result = NullFlavor.UNK).
7.8 2.6.6 minus(-](other: QTY): QTY: результат вычитания другого значения (other) из текущего зна
чения (this). Другое значение должно иметь правильный тип данных (тот же, что у текущего значения, за
исключением типа данных TS. для которого текущее значение должно иметь тип данных TS или PQ с
единицами времени, и типа данных PQ. для которого другое значение должно иметь совместимые
единицы измерения), в противном случае результат имеет значение причины пустоты NI. Неопределен
ности должны переноситься на результат операции. Если значения имеют смешанные типы неопреде
ленности. то результат может быть неизвестен (result = NullFlavor.UNK).
7.8 2.6.7 comparab!e(other: QTY) : Boolean: указывает, можно ли сравнивать текущее значение
(this) и другое значение (other) в операции равенства.
Примечание — Обычно зга операция возвращает значение true, если текущее значение (this) идругое
значение (other) имеют одинаковый тип данных, если иное не описано для специализаций типа данных QTY.
7 8.2.6.8 isDifference(other: QTY) :BL. имеет значение true, если значение other является экземпля
ром. представляющим разность между двумя экземплярами этого типа.
97