ГОСТ РИСО 21090—2016
7.10.9.3.2 lowClosed : Boolean: признак, включена нижняя граница в интервал (замкнутая граница)
или исключена из него (открытая граница).
7.10.9.3.3 high: Т. верхняя граница интервала. Если она неизвестна, должна быть указана причина
пустоты nullFlavor.
Верхняя граница не должна быть отрицательной бесконечностью и должна быть не меньше ниж
ней границы, если таковая существует.
7.10.9.3.4 highClosed : Boolean: признак, включена верхняя граница в интервал (замкнутая грани
ца) или исключена из него (открытая граница).
7.10.9.3.5 width : QTY: разность между верхней и нижней границей. Атрибут width используется,
если длина интервала известна, а точки начала и конца интервала неизвестны. Тип данных длины ин
тервала (QTY) определяется типом параметра Т.
7.10.9.3.6 any : Т: указывает, что некоторое конкретное значение лежит в данном интервале.
Этот атрибут следует использовать, если неизвестно, когда что-то началось или закончилось, но
известно, что оно произошло в определенное время. Эта часть имеет место для исследований (напри
мер. процессов течения заболевания), процедур и расписаний. В таких случаях ни нижняя, ни верхняя
граница неизвестны, хотя может быть известна длина интервала.
7.10.9.4 Равенство
В отличие от других специализация типа данных QSET. равенство значений типа IVL определя
ется на основе принадлежности к множеству. Два значения типа IVL равны, если они содержать одни и
те же элементы.
Примечания
1 При определении равенства значений типа IVL выделяются два особых случая. Если верхние границы
пары значений являются положительной бесконечностью, то они равны; если нижние границы пары значений яв
ляются отрицательной бесконечностью, то они тоже равны.
2 Если два интервала имеют одну и ту же длину, но границы не известны, то они не считаются равными.
3 Это же правило применимо, если известно только то. что одно итоже значение (атрибута any) входит в оба
интервала: такие интервалы никогда не считаются равными.
4 Поскольку равенствоопределяется принадлежностью к множеству, тоэкземпляры типовданных DSET(INT)
и IVL(INT) могут быть равны. Например, множество 2, 3. 4 типа DSET(INT) равно интервалу 2..4 типа IVL(INT).
7.10.9.5 Инварианты:
- экземпляр типа данных IVL либо имеет причину пустоты nullFlavor. либо длину (width), либо
принадлежащую ему точку (any), либо имеет нижнюю границу (low) и/или верхнюю границу (high). Если
атрибуты any или width указаны, то атрибуты low и high должны отсутствовать. Если указаны атрибуты
low или high, то должны отсутствовать атрибуты any и width;
- атрибуты lowClosed или highClosed могут быть указаны только в том случае, если указаны зна
чения атрибутов low или high соответственно:
- значения атрибутов low и high должны быть сравнимы.
Представление инвариантов на языке OCL:
aef: let hasBounds :Boolean - low.isNotNull or high.isNotNull
def: let noSemantics :Boolean - (low.ocllsUndefined or
low.noSemantics) and (width.ocllsUndefined or
width.noSemantics) and (high.ocIIsLndefined or
high.noSemantics)
mv "правила пустоты": isNonNull implies (hasBounds or any_.IsNotNull
or width.isNotNul1)
mv "правила совместного присутствия ": isNotNull implies (<any_.isNotNull
or width.isNotNull)xor hasBounds)
inv "граница может Сыть закрытой только в том случае, если она ограничена
(not low.isNotNull implies lowClosed.ocllsUndefined) and
(not high.isNotNul1 implies highClosed.oclIsLndefined)
mv "у атрибутов типа данных IVL нет истории и режима изменений
noUpdateOrHistory(low) and
noUpdateOrHistory(high) and noUpdateOrHistory(width)
mv "сравнимы": (low.isNotNull and high.IsNotNull) implies
low.comparable(high)
138