Application module: Specification based configuration | ISO/TS 10303-1108:2018-11(E) © ISO |
This clause specifies the information requirements for the Specification based configuration application module. The information requirements are specified as the Application Reference Model (ARM) of this application module.
NOTE 1 A graphical representation of the information requirements is given in Annex C.
NOTE 2 The mapping specification is specified in 5.1. It shows how the information requirements are met by using common resources and constructs defined or imported in the MIM schema of this application module.
This clause defines the information requirements to which implementations shall conform using the EXPRESS language as defined in ISO 10303-11. The following begins the Specification_based_configuration_arm schema and identifies the necessary external references.
EXPRESS specification:
*)
SCHEMA Specification_based_configuration_arm;
(*
The following EXPRESS interface statements specify the elements imported from the ARMs of other application modules.
EXPRESS specification:
*)
USE FROM
Effectivity_application_arm;
--
ISO/TS 10303-1059
USE FROM
Product_class_arm;
--
ISO/TS 10303-1103
(*
NOTE 1 The schemas referenced above are specified in the following part of ISO 10303:
Effectivity_application_arm ISO/TS 10303-1059 Product_class_arm ISO/TS 10303-1103
NOTE 2 See Annex C, Figures C.1and C.2 for a graphical representation of this schema.
This subclause specifies the ARM types for this application module. The ARM types and definitions are specified below.
EXPRESS specification:
*)
TYPE
configuration_inheritance_types =
ENUMERATION
OF
(exception_case,
full_inheritance,
no_inheritance);
END_TYPE;
(*
Enumerated item definitions:
exception_case: no inheritance scheme is applicable and all required configuration information must be attached locally at the application object. The value indicates that the configuration information may be inconsistent to the structural levels above it or that it is, on purpose, contradictory to it. Such a condition implies that an inheritance scheme shall not continue beyond this point in the product structure tree;
full_inheritance: a scheme for inheritance of configuration information applies. The complete configuration information shall be collected from the different levels in the structure by evaluation of results. The results shall be evaluated using the logical AND to combine configuration information starting at the referenced configured_element and using the logical OR to combine alternatives. In addition, this evaluation shall consider related effectivity information. 'inherited' only applies for objects for which the same value of configuration_type is defined;
no_inheritance: no inheritance scheme is applicable and all required configuration information must be attached locally at the application object. Nevertheless, any potentially inherited configuration information of a higher level shall be consistent, that is, be a subset of the locally defined configuration information.
EXPRESS specification:
*)
TYPE
configuration_kind =
ENUMERATION
OF
(usage,
design);
END_TYPE;
(*
Enumerated item definitions:
usage: the object referenced as configured_element is controlled by a Configuration. The Class_condition_association and Class_specification_association instances specify the usage cases and are referenced as the is_solution_for.
design: the object referenced as configured_element has to be designed and verified before it can actually be used in a given context.
The configured_item_select type is an extensible list of alternate data types. Additional alternate data types are specified in select data types that extend the configured_item_select type.
NOTE This empty extensible select requires extension in a further module to ensure that entities that refer to it have at least one valid instantiation.
EXPRESS specification:
*)
TYPE
configured_item_select =
EXTENSIBLE
GENERIC_ENTITY
SELECT;
END_TYPE;
(*
The configured_specification_select type allows for the designation of the data types Class_condition_association, and Class_specification_association.
EXPRESS specification:
*)
TYPE
configured_specification_select =
SELECT
(Class_condition_association,
Class_specification_association);
END_TYPE;
(*
The effectivity_for_configuration type is an extension of the effectivity_item type. It adds the data type Configuration to the list of alternate data types.
EXPRESS specification:
*)
TYPE
effectivity_for_configuration =
SELECT
BASED_ON
effectivity_item
WITH
(Configuration);
END_TYPE;
(*
This subclause specifies the ARM entity for this module. The ARM entity is an atomic element that embodies a unique application concept and contains attributes specifying the data elements of the entity. The ARM entity and definition is specified below.
EXPRESS specification:
*)
ENTITY Configuration;
configured_element : configured_item_select;
is_solution_for : configured_specification_select;
configuration_type : configuration_kind;
inheritance_type : configuration_inheritance_types;
WHERE
WR1: consistent_configuration_type(SELF);
END_ENTITY;
(*
Attribute definitions:
configured_element: the element that is controlled for its valid usage by the Configuration.
is_solution_for: the characteristic or combination of characteristics for which the instance referenced as the configured_element provides a solution or which is needed to control a process operation. These characteristics are defined by a Class_specification_association and combinations of characteristics are defined by a Class_condition_association.
configuration_type: relates to a configuration_kind in order to specify the valid usage of a Configuration instance that is applied to the element as configured_element.
inheritance_type: relates to a configuration_inheritance_types in order to specify whether or not an inheritance scheme for the configuration information in a hierarchical structure is applied to the instance referenced as the configured_element.
Formal propositions:
WR1: The type of the Configuration instance shall be consistent with the type of the Class_condition_association or Class_specification_association instance for which the first is_solution_for.
This subclause specifies the ARM functions for this module. The ARM functions and definitions are specified below.
EXPRESS specification:
*)
FUNCTION consistent_configuration_type (config : Configuration) : BOOLEAN;
IF ('PRODUCT_CLASS_ARM.CLASS_CONDITION_ASSOCIATION' IN TYPEOF(config.is_solution_for)) THEN IF config.configuration_type = configuration_kind.usage THEN RETURN(config.is_solution_for\Class_condition_association.condition_type ='part usage'); ELSE RETURN(config.is_solution_for\Class_condition_association.condition_type ='design case'); END_IF; END_IF; IF ('PRODUCT_CLASS_ARM.CLASS_SPECIFICATION_ASSOCIATION' IN TYPEOF(config.is_solution_for)) THEN IF config.configuration_type = configuration_kind.usage THEN RETURN(config.is_solution_for\Class_specification_association.association_type ='part usage'); ELSE RETURN(config.is_solution_for\Class_specification_association.association_type ='design case'); END_IF; END_IF; RETURN(FALSE);
END_FUNCTION;
(*
Argument definitions:
config: the Configuration instance whose type is validated in relation to the type of the Class_condition_association or Class_specification_association instance associated.
EXPRESS specification:
*)
FUNCTION type_of_set (items : SET[0:?] OF GENERIC_ENTITY) : SET[0:?] OF STRING;
LOCAL result: SET OF STRING:= []; END_LOCAL; REPEAT i:=1 TO HIINDEX(items); result := result + TYPEOF(items[i]); END_REPEAT; RETURN(result);
END_FUNCTION;
(*
Argument definitions:
items: the instances whose type is consulted.
This subclause specifies the ARM rule for this module. The ARM rule and definition is specified below.
EXPRESS specification:
*)
RULE restrict_to_dated_effectivity FOR
(Effectivity_assignment);
LOCAL ndea_set : SET OF Effectivity_assignment := []; END_LOCAL; ndea_set := QUERY(ea <* Effectivity_assignment | NOT ('EFFECTIVITY_ARM.DATED_EFFECTIVITY' IN TYPEOF(ea.assigned_effectivity)));
WHERE
WR1: SIZEOF(QUERY(ea <* ndea_set |
(SIZEOF(['SPECIFICATION_BASED_CONFIGURATION_ARM.CONFIGURATION']*type_of_set(ea.items))>0) )) =0;
END_RULE;
(*
Argument definitions:
Effectivity_assignment : the set of all instances of Effectivity_assignment.
Formal propositions:
WR1: There shall not be any instance of Effectivity_assignment, specifying effectivity for a Configuration, such that the assigned effectivity is not of type Dated_effectivity.
*)
END_SCHEMA; -- Specification_based_configuration_arm
(*
© ISO 2018 — All rights reserved