Семантика таблицы отображений
Язык EXPRESS-X может быть использован в качестве альтернативной спецификации ссылочных путей в таблицах отображений прикладного протокола STEP. В данном приложении показано, как это может быть сделано с помощью примеров прототипов на языке EXPRESS-X для всех конструкций ссылочных путей из таблиц отображений, описанных в Руководстве по разработке спецификаций отображений, подраздел 9.1 "Использование символов". В данных примерах использована спецификация с большей функциональностью за счет применения конструкции VIEW языка EXPRESS-X. При этом отображение осуществляется от прикладной интерпретированной модели (ПИМ) к прикладной эталонной модели (ПЭМ). Отображение в обратном направлении от ПЭМ к ПИМ может быть сделано более наглядно с помощью процедурной конструкции MAP языка EXPRESS-X. Направление ссылочных путей предполагается таким же, как в таблицах отображений прикладных протоколов - от ПЭМ (сверху и слева) к ПИМ (вниз и направо)
F.1 Разделительные символы
Символ супертипа "=>" показывает, что элемент со стороны ПЭМ, расположенный слева от этого символа, должен быть супертипом для элемента со стороны ПИМ, расположенного справа от символа. При отображении на ПЭМ данный символ показывает направление от подтипа к супертипу, которое не требует отдельной спецификации на языке EXPRESS-X, так как такое наследование определено в языке EXPRESS.
Символ подтипа "<=" показывает, что элемент со стороны ПЭМ, расположенный слева от этого символа, должен быть подтипом для элемента со стороны ПИМ, расположенного справа от символа. При отображении на ПЭМ данный символ показывает требование к подтипу, который должен быть задан на языке EXPRESS-X с помощью элемента языка WHERE, содержащего ссылку TYPEOF, следующим образом:
Таблица отображений:
cc_design_approval <=
approval_assignment
Фрагмент на языке EXPRESS-X:
VIEW ...;
FROM ... aa: approval_assignment; ...
WHERE ... 'CONFIG_CONTROL_DESIGN.CC_DESIGN_APPROVAL' IN TYPEOF (aa); ...
Следует отметить, что приведенный выше фрагмент во всех случаях эквивалентен следующему:
VIEW ...;
FROM ... аа: cc_design_approval; ...
Поэтому в случае наличия обоих ограничителей связанных супертипов или связанных подтипов только наиболее конкретизированный подтип должен появиться в качестве исходного типа данных, как показано в следующем примере:
Таблица отображений:
product_definition_usage =>
assembly_component_usage =>
next_assembly_usage_occurrence
Фрагмент на языке EXPRESS-X:
VIEW ...;
FROM ... nauo: next_assembly_usage_occurrence; ...
Если существует несколько таких специфичных подтипов в цепочке связанных ограничителей супертипов и подтипов, то может быть использовано условие TYPEOF или условие равенства экземпляров:
Таблица отображений:
representation_item => |
measure_representation_item |
{ measure_representation_item <= |
measure_with_unit => |
length_measure_with_unit } |
Фрагмент на языке EXPRESS-X: