Template:— representing_requirement (repr_req)
Capability:representing_requirements
Date: 2011/04/26 14:45:32
Revision: 1.3

This section specifies the template representing_requirement.

NOTE  The template has been defined in the context of the capability representing_requirements which provides an overall description of the relevant parts of the ISO 10303-239 information model and a description of related templates.

NOTE  An explanation of a template and the associated instantiation path is provided in the Template overview section.

Description

This template describes the representation and identification of requirements data.

Model diagrams
The EXPRESS-G diagram in Figure 1 shows the templates and EXPRESS entities that are required to represent the template "representing_requirement". The text highlighted in blue shows the template parameters.


Figure 1 —  An EXPRESS-G representation of the Information model for representing_requirement

Figure 1 —  An EXPRESS-G representation of the Information model for representing_requirement

The graphic for the template to be used in other EXPRESS-G diagrams is shown in Figure  2 below.


Figure 2 —  The graphical representation of the representing_requirement template

Figure 2 —  The graphical representation of the representing_requirement template

Input parameters
The following input parameters are defined for this template:
req_id (Type='STRING')
Requirement identifier.
req_id_class_name (Default=Identification_code,Type='CLASS')
The classification of the requirement identifier (@req_id).
The following classes and their sub-classes can be used:
classifications: "Requirement_identification_code" (urn:plcs:rdl:std:Requirement_identification_code)
req_id_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The id of the External_class_library that stores the @req_id_class_name class.
req_org_id (Type='STRING')
The identifier or name of the organization that "owns" the requirement identifier (@req_id).
req_org_id_class_name (Default=Organization_identification_code,Type='CLASS')
The classification of the organization identifier or name (@req_org_id).
The following classes and their sub-classes can be used:
classifications: "Organization_identification_code" (urn:plcs:rdl:std:Organization_identification_code), "Organization_name" (urn:plcs:rdl:std:Organization_name)
req_org_id_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The id of the External_class_library that stores the @req_org_id_class_name class.
req_ver_id (Type='STRING')
The identifier of the requirement version.
req_ver_id_class_name (Default=Identification_code,Type='CLASS')
The classification of the requirement version identifier (@req_ver_id).
The following classes and their sub-classes can be used:
classifications: "Progression_identification_code" (urn:plcs:rdl:std:Progression_identification_code)
req_ver_id_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The id of the External_class_library that stores the @req_ver_id_class_name class.
req_ver_org_id (Type='STRING')
The identifier or name of the organization that "owns" the requirement version identifier (@req_ver_id) .
req_ver_org_id_class_name (Default=Organization_identification_code,Type='CLASS')
The classification of the organization identifier or name given in @req_ver_org_id.
The following classes and their sub-classes can be used:
classifications: "Organization_identification_code" (urn:plcs:rdl:std:Organization_identification_code), "Organization_name" (urn:plcs:rdl:std:Organization_name)
req_ver_org_id_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The id of the External_class_library that stores the @req_ver_org_id_class_name class.
domain (Default=Product_life_cycle_support,Type='CLASS', Optional)
The name of the External_class used to describe the type of application domain of the requirement View_definition_context instance.
The following classes and their sub-classes can be used:
classifications: "Discipline_domain" (urn:plcs:rdl:std:Discipline_domain)
domain_ecl_id (Default=urn:plcs:rdl:std,Type='URN', Optional)
The External_class_library storing the definition of the External_class referenced by the parameter @domain.
life_cycle_stage (Default=Support_stage,Type='CLASS', Optional)
The name of the External_class used to describe the type of life cycle stage of the requirement View_definition_context instance.
The following classes and their sub-classes can be used:
classifications: "Life_cycle_stage" (urn:plcs:rdl:std:Life_cycle_stage)
life_cycle_stage_ecl_id (Default=urn:plcs:rdl:std,Type='URN', Optional)
The identifier of the External_class_library storing the definition of the External_class referenced by the parameter @life_cycle_stage.
Reference parameters
The following reference parameters are defined for this template:
req(Type='ENTITY (Requirement)')
Allow the Requirement entity instantiated in this path to be referenced when this template is used.
Note: The Requirement entity can be referenced in a template path by:
%^target = $representing_requirement.req%
where target is the parameter to which the Requirement is bound.
req_ver(Type='ENTITY (Requirement_version)')
Allow the Requirement_version entity instantiated in this path to be referenced when this template is used.
Note: The Requirement_version entity can be referenced in a template path by:
%^target = $representing_requirement.req_ver%
where target is the parameter to which the Requirement_version is bound.
req_view(Type='ENTITY (Requirement_view_definition)')
Allow the Requirement_view_definition entity instantiated in this path to be referenced when this template is used.
Note: The Requirement_view_definition entity can be referenced in a template path by:
%^target = $representing_requirement.req_view%
where target is the parameter to which the Requirement_view_definition is bound.
contxt(Type='ENTITY (View_definition_context)')
Allow the View_definition_context entity instantiated in this path to be referenced when this template is used.
Note: The View_definition_context entity can be referenced in a template path by:
%^target = $representing_requirement.contxt%
where target is the parameter to which the View_definition_context is bound.
Uniqueness constraints

The following parameter combinations specify a uniqueness constraint:
Unique constraint: Unique part view
Each instance of the entity (Requirement_view_definition) within the data set shall be uniquely identified by a combination of the following parameters on this template (representing_requirement) namely: req_id, req_id_class_name, req_id_ecl_id, req_org_id, req_org_id_class_name, req_org_id_ecl_id, req_ver_id, req_ver_id_class_name, req_ver_id_ecl_id, req_ver_org_id, req_ver_org_id_class_name, req_ver_org_id_ecl_id, domain, domain_ecl_id, life_cycle_stage, life_cycle_stage_ecl_id.
The instance is referenced by the following template parameter: req_view.
This rule means that there can be only one view definition (Requirement_view_definition ) of a requirement version (Requirement_version) with any given identifier, for the same requirement (Requirement ) .
Unique constraint: Unique requirement
Each instance of the entity (Requirement) within the data set shall be uniquely identified by a combination of the following parameters on this template (representing_requirement) namely: req_id, req_id_class_name, req_id_ecl_id, req_org_id, req_org_id_class_name, req_org_id_ecl_id.
The instance is referenced by the following template parameter: req.
Unique constraint: Unique requirement version
Each instance of the entity (Requirement_version) within the data set shall be uniquely identified by a combination of the following parameters on this template (representing_requirement) namely: req_id, req_id_class_name, req_id_ecl_id, req_org_id, req_org_id_class_name, req_org_id_ecl_id, req_ver_id, req_ver_id_class_name, req_ver_id_ecl_id, req_ver_org_id, req_ver_org_id_class_name, req_ver_org_id_ecl_id.
The instance is referenced by the following template parameter: req_ver.
This rule means that there can be only one version (Requirement_version ) of a requirement (Requirement ) with any given identifier.
Instantiation path
The instantiation path shown below specifies the entities that are to be instantiated by the template.
A description of templates and the syntax for the instantiation path is provided in the Templates Help/Information section.
Requirement
Requirement.id = '/IGNORE'
Requirement.name = '/IGNORE'
Requirement.description = '/IGNORE'

-- Bind the Requirement entity to the parameter ^req.
%^req = Requirement%

-- Identify the Requirement
/assigning_identification(
    id=@req_id,
    id_class_name=@req_id_class_name,
    id_ecl_id=@req_id_ecl_id,
    org_id=@req_org_id,
    org_id_class_name=@req_org_id_class_name,
    org_id_ecl_id=@req_org_id_ecl_id,
    items=^req)/

-- Requirement_version
Requirement_version

-- Mark the Requirement_version entity as referable when this template
-- is used by binding it to the reference parameter ^req_ver
%^req_ver = Requirement_version%
Requirement_version.id = '/IGNORE'
Requirement_version.description = '/IGNORE'

-- Relate the Requirement_version to the Requirement
Requirement_version.of_product -> Requirement

-- Identify the Requirement_version
/assigning_identification(
    id=@req_ver_id,
    id_class_name=@req_ver_id_class_name,
    id_ecl_id=@req_ver_id_ecl_id,
    org_id=@req_ver_org_id,
    org_id_class_name=@req_ver_org_id_class_name,
    org_id_ecl_id=@req_ver_org_id_ecl_id,
    items=^req_ver)/

--
Requirement_view_definition

-- Mark the Requirement_view_definition entity as referable
-- when this template is used by binding it to the reference
-- parameter ^req_view
%^req_view = Requirement_view_definition%
Requirement_view_definition.id = '/IGNORE'
Requirement_view_definition.name = '/IGNORE'
Requirement_view_definition.additional_characterization = '/IGNORE'

-- Relate the Requirement_version to the Requirement
Requirement_view_definition.defined_version -> Requirement_version

--
View_definition_context

-- Mark the View_definition_context entity as referable when this
-- template is used by binding it to the reference parameter ^contxt
%^contxt = View_definition_context%

-- Ignore the attributes
View_definition_context.application_domain = '/IGNORE'
View_definition_context.life_cycle_stage = '/IGNORE'
View_definition_context.description = '/IGNORE'

-- provide the application domain of the view definition by classification
/assigning_reference_data(
    items=^contxt,
    class_name=@domain,
    ecl_id=@domain_ecl_id)/

-- provide the life cycle stage of the view definition by classification
/assigning_reference_data(
    items=^contxt,
    class_name=@life_cycle_stage,
    ecl_id=@life_cycle_stage_ecl_id)/

-- Relate the Requirement_view_definition to the View_definition_context
Requirement_view_definition.initial_context -> View_definition_context
The following entities are instantiated with attributes as specified:
Entity in path Value Inherited from
Requirement.id '/IGNORE' Product.id
Requirement.name '/IGNORE' Product.name
Requirement.description '/IGNORE' Product.description
Requirement_version.id '/IGNORE' Product_version.id
Requirement_version.description '/IGNORE' Product_version.description
Requirement_view_definition.id '/IGNORE' Product_view_definition.id
Requirement_view_definition.name '/IGNORE' Product_view_definition.name
Requirement_view_definition.additional_characterization '/IGNORE' Product_view_definition.additional_characterization
View_definition_context.application_domain '/IGNORE'
View_definition_context.life_cycle_stage '/IGNORE'
View_definition_context.description '/IGNORE'
Instance diagrams
The instance diagram in Figure  3 shows an example of the EXPRESS entities and templates that are instantiated by the template:
/representing_requirement(req_id='TR-3452', req_id_class_name='Requirement_idenitification_code', req_id_ecl_id='urn:plcs:rdl:std', req_org_id='Bicycle Inc.', req_org_id_class_name='Organization_name', req_org_id_ecl_id='urn:plcs:rdl:std', req_ver_id='1', req_ver_id_class_name='Progression_idenitification_code', req_ver_id_ecl_id='urn:plcs:rdl:std', req_ver_org_id='Bicycle Inc.', req_ver_org_id_class_name='Organization_name', req_ver_org_id_ecl_id='urn:plcs:rdl:std', domain='Logistics_support_analysis', domain_ecl_id='urn:plcs:rdl:sample', life_cycle_stage='Development_stage', life_cycle_stage_ecl_id='urn:plcs:rdl:std')/
(an illustration of the consolidated representing_requirement template is shown in Figure 4 below.)


Figure 3 —  Entities instantiated by representing_requirement template

Figure 3 —  Entities instantiated by representing_requirement template

The instance model in STEP ASCII exchange file format (ISO 10303 Part 21 syntax) is:
#1 = REQUIREMENT('/IGNORE','/IGNORE','/IGNORE'); #2 = REQUIREMENT_VERSION('/IGNORE','/IGNORE',#1); #3 = REQUIREMENT_VIEW_DEFINITION('/IGNORE','/IGNORE','/IGNORE',#4,(),#2); #4 = VIEW_DEFINITION_CONTEXT('/IGNORE','/IGNORE','/IGNORE'); #6 = IDENTIFICATION_ASSIGNMENT('TR-3452','/IGNORE','/IGNORE',(#1)); #8 = CLASSIFICATION_ASSIGNMENT(#9,(#6),'/IGNORE'); #9 = EXTERNAL_CLASS('/NULL','Requirement_idenitification_code','/IGNORE',#10); #10 = EXTERNAL_CLASS_LIBRARY('urn:plcs:rdl:std','/IGNORE'); #13 = ORGANIZATION('/IGNORE','/IGNORE'); #15 = IDENTIFICATION_ASSIGNMENT('Bicycle Inc.','/IGNORE','/IGNORE',(#13)); #17 = CLASSIFICATION_ASSIGNMENT(#18,(#15),'/IGNORE'); #18 = EXTERNAL_CLASS('/NULL','Organization_name','/IGNORE',#19); #19 = EXTERNAL_CLASS_LIBRARY('urn:plcs:rdl:std','/IGNORE'); #20 = ORGANIZATION_OR_PERSON_IN_ORGANIZATION_ASSIGNMENT(#13,'/IGNORE',(#6,#26)); #22 = CLASSIFICATION_ASSIGNMENT(#23,(#20),'/IGNORE'); #23 = EXTERNAL_CLASS('/NULL','Owner_of','/IGNORE',#10); #26 = IDENTIFICATION_ASSIGNMENT('1','/IGNORE','/IGNORE',(#2)); #28 = CLASSIFICATION_ASSIGNMENT(#29,(#26),'/IGNORE'); #29 = EXTERNAL_CLASS('/NULL','Progression_idenitification_code','/IGNORE',#10); #46 = CLASSIFICATION_ASSIGNMENT(#47,(#4),'/IGNORE'); #47 = EXTERNAL_CLASS('/NULL','Logistics_support_analysis','/IGNORE',#48); #48 = EXTERNAL_CLASS_LIBRARY('urn:plcs:rdl:sample','/IGNORE'); #50 = CLASSIFICATION_ASSIGNMENT(#51,(#4),'/IGNORE'); #51 = EXTERNAL_CLASS('/NULL','Development_stage','/IGNORE',#10);
The instance diagram in Figure 4 shows the graphic symbol for the template that is to be used in other instance diagrams. The example template is:
/representing_requirement(req_id='TR-3452', req_id_class_name='Requirement_idenitification_code', req_id_ecl_id='urn:plcs:rdl:std', req_org_id='Bicycle Inc.', req_org_id_class_name='Organization_name', req_org_id_ecl_id='urn:plcs:rdl:std', req_ver_id='1', req_ver_id_class_name='Progression_idenitification_code', req_ver_id_ecl_id='urn:plcs:rdl:std', req_ver_org_id='Bicycle Inc.', req_ver_org_id_class_name='Organization_name', req_ver_org_id_ecl_id='urn:plcs:rdl:std', domain='Logistics_support_analysis', domain_ecl_id='urn:plcs:rdl:sample', life_cycle_stage='Development_stage', life_cycle_stage_ecl_id='urn:plcs:rdl:std')/


Figure 4 —  Instantiation of representing_requirement template

Figure 4 —  Instantiation of representing_requirement template

Characterizations
No common characterizations of the template representing_requirement have been identified. However, the ISO 10303-239 EXPRESS model may enable other assignments to the entities instantiated by the template.

© OASIS 2010 — All rights reserved