Capability (C092):— representing_requirements Date: 2012/05/23 17:39:01
Revision: 1.22

Business overview

This section provides a business level overview of this capability.

@@@@ section @@@@

Information model overview

This section provides an overview of the information model that supports this capability.

The EXPRESS-G for requirements is shown in Figure 1 below and explained in the following sections.

NOTE    See also the modules: Requirement assignment, Requirement identification and version, Requirement view definition, Product identification, Product version, Product view definition, Product view definition relationship, and Product version relationship.



Figure 1 —  Requirements EXPRESS-G

Figure 1 —  Requirements EXPRESS-G

Where "source" may be:

and "assignee" may be:

Capability templates

The following sections define a set of templates for the capability, where a template is a specification of a set of entities that need to be instantiated to represent a given set of information.

Template: representing_requirements (Short name: rep_req)

This section specifies the template representing_requirements.

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  shows the templates and EXPRESS entities that are required to represent the template "representing_requirements". The text highlighted in blue shows the template parameters.


Figure 1 —  Representation of requirement data (EXPRESS-G)

Figure 1 —  Representation of requirement data (EXPRESS-G)

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


Figure 2 —  Representation of requirement data (Condensed EXPRESS-G)

Figure 2 —  Representation of requirement data (Condensed EXPRESS-G)

Input parameters
The following input parameters are defined for this template:
req_id (Type='STRING')
The identifier assigned to a requirement.
req_id_class_name (Default=Identification_code,Type='CLASS')
The classification of the identifier assigned to a requirement.
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 id_class_name class.
req_org_id (Type='STRING')
The identifier assigned to an organization that assigns an identifier to a requirement.
req_org_id_class_name (Default=Organization_identification_code,Type='CLASS')
The classification of the organization that assigns an identifier assigned to a requirement.
The following classes and their sub-classes can be used:
classifications: "Identification_code" (urn:plcs:rdl:std:Identification_code)
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 assigned to a requirement version.
req_ver_id_class_name (Default=Identification_code,Type='CLASS')
The classification of the identifier assigned to a requirement version.
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 id_class_name class.
req_ver_org_id (Type='STRING')
The identifier assigned to an organization that assigns an identifier to a requirement version.
req_ver_org_id_class_name (Default=Organization_identification_code,Type='CLASS')
The classification of the organization that assigns an identifier assigned to a requirement version.
The following classes and their sub-classes can be used:
classifications: "Identification_code" (urn:plcs:rdl:std:Identification_code)
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.
rvd_id (Type='STRING')
The identifier assigned to a requirement view definition.
rvd_id_class_name (Default=Identification_code,Type='CLASS')
The classification of the identifier assigned to a requirement view definition.
The following classes and their sub-classes can be used:
classifications: "Identification_code" (urn:plcs:rdl:std:Identification_code)
rvd_id_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The id of the External_class_library that stores the id_class_name class.
rvd_org_id (Type='STRING')
The identifier assigned to an organization that assigns an identifier to a requirement view definition.
rvd_org_id_class_name (Default=Organization_identification_code,Type='CLASS')
The classification of the organization that assigns an identifier assigned to a requirement view definition.
The following classes and their sub-classes can be used:
classifications: "Identification_code" (urn:plcs:rdl:std:Identification_code)
rvd_org_id_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The id of the External_class_library that stores the rvd_org_id_class_name class.
vdc_lcs_class_name (Type='CLASS')
The following classes and their sub-classes can be used:
classifications: "Life_cycle_stage" (urn:plcs:rdl:std:Life_cycle_stage), "Concept_stage" (urn:plcs:rdl:std:Concept_stage), "Development_stage" (urn:plcs:rdl:std:Development_stage), "Production_stage" (urn:plcs:rdl:std:Production_stage), "Retirement_stage" (urn:plcs:rdl:std:Retirement_stage), "Support_stage" (urn:plcs:rdl:std:Support_stage), "Utilization_stage" (urn:plcs:rdl:std:Utilization_stage)
vdc_lcs_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The id of the External_class_library that stores the lcs_class_name class.
vdc_ad_class_name (Type='CLASS')
The following classes and their sub-classes can be used:
classifications: "Application_domain" (urn:plcs:rdl:std:Application_domain), "Discipline_domain" (urn:plcs:rdl:std:Discipline_domain), "Maintenance_process" (urn:plcs:rdl:std:Maintenance_process), "Product_life_cycle_support" (urn:plcs:rdl:std:Product_life_cycle_support), "Process_domain" (urn:plcs:rdl:std:Process_domain), "Agreement_process" (urn:plcs:rdl:std:Agreement_process), "Enterprise_process" (urn:plcs:rdl:std:Enterprise_process), "Project_process" (urn:plcs:rdl:std:Project_process), "Technical_process" (urn:plcs:rdl:std:Technical_process)
vdc_ad_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The id of the External_class_library that stores the ad_class_name class.
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_requirements.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_requirements.req_ver%
where target is the parameter to which the Requirement_version is bound.
rvd(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_requirements.rvd%
where target is the parameter to which the Requirement_view_definition is bound.
vdc(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_requirements.vdc%
where target is the parameter to which the View_definition_context is bound.
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 Reading Capability Templates help section.
-- Instantiate the Requirement entity.
Requirement

-- 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)/

-- Instantiate the Requirement_version entity and link it to Requirement.
^req <- Requirement_version.of_product

-- Bind the Requirement_version entity to the parameter ^req_ver.
%^req_ver = Requirement_version%

-- 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)/

-- Instantiate the View_definition_context.
View_definition_context
View_definition_context.application_domain = '/IGNORE'
View_definition_context.life_cycle_stage = '/IGNORE'
View_definition_context.description = '/IGNORE'

-- Bind the View_definition_context entity to the parameter ^vdc.
%^vdc = View_definition_context%

-- Classify the View_definition_context
/assigning_reference_data(
    items=^vdc,
    class_name=@vdc_ad_class_name,
    ecl_id=@vdc_ad_ecl_id)/
/assigning_reference_data(
    items=^vdc,
    class_name=@vdc_lcs_class_name,
    ecl_id=@vdc_lcs_ecl_id)/

-- Instantiate the Requirement_view_definition entity and link it to Requirement_version and to View_definition_context.
^req_ver <- Requirement_view_definition.defined_version
^vdc <- Requirement_view_definition.initial_context

-- Bind the Requirement_view_definition entity to the parameter ^rvd.
%^rvd = Requirement_view_definition%

-- Identify the Requirement_view_definition.
/assigning_identification(
    id=@rvd_id,
    id_class_name=@rvd_id_class_name,
    id_ecl_id=@rvd_id_ecl_id,
    org_id=@rvd_org_id,
    org_id_class_name=@rvd_org_id_class_name,
    org_id_ecl_id=@rvd_org_id_ecl_id,
    items=^rvd)/
The following entities are instantiated with attributes as specified:
Entity in path Value Inherited from
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  shows an example of the EXPRESS entities and templates that are instantiated by the template:
/representing_requirements(req_id='1', of_product='#1', req_ver_id='2', defined_version='#2', rvd_id='3', rvd_org_id='Big Planes Inc', req_ver_org_id='Big Planes Inc', req_org_id='Big Planes Inc', req_id_class_name='Requirement_identification_code', req_ver_id_class_name='Progression_identification_code', rvd_id_class_name='Requirement_view_definition_identification_code', req_org_id_class_name='Organization_identification_name', req_ver_org_id_class_name='Organization_identification_name', rvd_org_id_class_name='Organization_identification_name', req_id_ecl_id='http://www.plcsinc.org/plcs-proposed', req_ver_id_ecl_id='http://www.plcsinc.org/plcs-proposed', rvd_id_ecl_id='http://www.plcsinc.org/plcs-proposed', req_org_id_ecl_id='http://www.plcsinc.org/plcs-proposed', req_ver_org_id_ecl_id='http://www.plcsinc.org/plcs-proposed', rvd_org_id_ecl_id='http://www.plcsinc.org/plcs-proposed', req_class_name='Requirement_category', req_ver_class_name='Requirement_version_category', rvd_class_name='Requirement_view_definition_category', req_ecl_id='http://www.plcsinc.org/plcs-proposed', req_ecl_id='http://www.plcsinc.org/plcs-proposed', rvd_ecl_id='http://www.plcsinc.org/plcs-proposed', initial_context='#3')/
(an illustration of the consolidated representing_requirements template is shown in Figure  below.)


Figure 3 —  Representation of requirement data (EXPRESS-I diagram)

Figure 3 —  Representation of requirement data (EXPRESS-I diagram)

The instance diagram in Figure  shows the graphic symbol for the template that is to be used in other instance diagrams. The example template is:
/representing_requirements(req_id='1', of_product='#1', req_ver_id='2', defined_version='#2', rvd_id='3', rvd_org_id='Big Planes Inc', req_ver_org_id='Big Planes Inc', req_org_id='Big Planes Inc', req_id_class_name='Requirement_identification_code', req_ver_id_class_name='Progression_identification_code', rvd_id_class_name='Requirement_view_definition_identification_code', req_org_id_class_name='Organization_identification_name', req_ver_org_id_class_name='Organization_identification_name', rvd_org_id_class_name='Organization_identification_name', req_id_ecl_id='http://www.plcsinc.org/plcs-proposed', req_ver_id_ecl_id='http://www.plcsinc.org/plcs-proposed', rvd_id_ecl_id='http://www.plcsinc.org/plcs-proposed', req_org_id_ecl_id='http://www.plcsinc.org/plcs-proposed', req_ver_org_id_ecl_id='http://www.plcsinc.org/plcs-proposed', rvd_org_id_ecl_id='http://www.plcsinc.org/plcs-proposed', req_class_name='Requirement_category', req_ver_class_name='Requirement_version_category', rvd_class_name='Requirement_view_definition_category', req_ecl_id='http://www.plcsinc.org/plcs-proposed', req_ecl_id='http://www.plcsinc.org/plcs-proposed', rvd_ecl_id='http://www.plcsinc.org/plcs-proposed', initial_context='#3')/


Figure 4 —  Representing requirement data (condensed EXPRESS-I)

Figure 4 —  Representing requirement data (condensed EXPRESS-I)

Characterizations
No common characterizations of the template representing_requirements have been identified. However, the ISO 10303-239 EXPRESS model may enable other assignments to the entities instantiated by the template.
Template: representing_requirement (Short name: repr_req)

This section specifies the template representing_requirement.

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 Reading Capability Templates help 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.
Template: assigning_requirements (Short name: assg_req)

This section specifies the template assigning_requirements.

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

Description
This template describes the assignment of requirements data to material to which those requirements relate.
Model diagrams
The EXPRESS-G diagram in Figure  shows the templates and EXPRESS entities that are required to represent the template "assigning_requirements". The text highlighted in blue shows the template parameters.


Figure 1 —  Assigning requirement data (EXPRESS-G diagram)

Figure 1 —  Assigning requirement data (EXPRESS-G diagram)

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


Figure 2 —  Assigning requirement data (condensed EXPRESS-G diagram)

Figure 2 —  Assigning requirement data (condensed EXPRESS-G diagram)

Input parameters
The following input parameters are defined for this template:
req_id (Type='STRING')
The identifier assigned to a requirement.
req_id_class_name (Default=Identification_code,Type='CLASS')
The classification of the identifier assigned to a requirement.
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 id_class_name class.
req_org_id_ecl_id (Type='STRING')
The identifier assigned to an organization that assigns an identifier to a requirement.
req_ver_id (Type='STRING')
The identifier assigned to a requirement version.
req_ver_id_class_name (Default=Identification_code,Type='CLASS')
The classification of the identifier assigned to a requirement version.
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 id_class_name class.
req_ver_org_id_ecl_id (Type='STRING')
The identifier assigned to an organization that assigns an identifier to a requirement version.
rvd_id (Type='STRING')
The identifier assigned to a requirement view definition.
rvd_id_class_name (Default=Identification_code,Type='CLASS')
The classification of the identifier assigned to a requirement view definition.
The following classes and their sub-classes can be used:
classifications: [Requirement_view_definition_identification_code]
[warning:]Error RDL1: The class Requirement_view_definition_identification_code does not exist in RDL at urn urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
rvd_id_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The id of the External_class_library that stores the id_class_name class.
rvd_org_id_ecl_id (Type='STRING')
The identifier assigned to an organization that assigns an identifier to a requirement view definition.
vdc_lcs_class_name (Type='CLASS')
The following classes and their sub-classes can be used:
classifications: "Life_cycle_stage" (urn:plcs:rdl:std:Life_cycle_stage), "Concept_stage" (urn:plcs:rdl:std:Concept_stage), "Development_stage" (urn:plcs:rdl:std:Development_stage), "Production_stage" (urn:plcs:rdl:std:Production_stage), "Retirement_stage" (urn:plcs:rdl:std:Retirement_stage), "Support_stage" (urn:plcs:rdl:std:Support_stage), "Utilization_stage" (urn:plcs:rdl:std:Utilization_stage)
vdc_lcs_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The id of the External_class_library that stores the lcs_class_name class.
vdc_ad_class_name (Type='CLASS')
The following classes and their sub-classes can be used:
classifications: "Application_domain" (urn:plcs:rdl:std:Application_domain), "Discipline_domain" (urn:plcs:rdl:std:Discipline_domain), "Maintenance_process" (urn:plcs:rdl:std:Maintenance_process), "Product_life_cycle_support" (urn:plcs:rdl:std:Product_life_cycle_support), "Process_domain" (urn:plcs:rdl:std:Process_domain), "Agreement_process" (urn:plcs:rdl:std:Agreement_process), "Enterprise_process" (urn:plcs:rdl:std:Enterprise_process), "Project_process" (urn:plcs:rdl:std:Project_process), "Technical_process" (urn:plcs:rdl:std:Technical_process)
vdc_ad_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The id of the External_class_library that stores the ad_class_name class.
items (Type= 'SELECT (requirement_assignment_item)' )
The items to which a requirement is assigned.
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 = $assigning_requirements.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 = $assigning_requirements.req_ver%
where target is the parameter to which the Requirement_version is bound.
rvd(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 = $assigning_requirements.rvd%
where target is the parameter to which the Requirement_view_definition is bound.
vdc(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 = $assigning_requirements.vdc%
where target is the parameter to which the View_definition_context is bound.
req_asg(Type='ENTITY (Requirement_assignment)')
Allow the Requirement_assignment entity instantiated in this path to be referenced when this template is used.
Note: The Requirement_assignment entity can be referenced in a template path by:
%^target = $assigning_requirements.req_asg%
where target is the parameter to which the Requirement_assignment is bound.
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 Reading Capability Templates help section.
-- Instantiate the Requirement entity.
Requirement

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

-- Identify the Requirement
/assigning_identification(
    items=^req,
    id=@req_id,
    id_class_name=@req_id_class_name,
    id_ecl_id=@req_id_ecl_id)/

-- Instantiate the Requirement_version entity and link it to Requirement.
^req <- Requirement_version.of_product

-- Bind the Requirement_version entity to the parameter ^req_ver.
%^req_ver = Requirement_version%

-- Identify the Requirement_version
/assigning_identification(
    items=^req_ver,
    id=@req_ver_id,
    id_class_name=@req_ver_id_class_name,
    id_ecl_id=@req_ver_id_ecl_id)/

-- Instantiate the View_definition_context.
View_definition_context
View_definition_context.application_domain = '/IGNORE'
View_definition_context.life_cycle_stage = '/IGNORE'
View_definition_context.description = '/IGNORE'

-- Bind the View_definition_context entity to the parameter ^vdc.
%^vdc = View_definition_context%

-- Classify the View_definition_context
/assigning_reference_data(
    items=^vdc,
    class_name=@vdc_ad_class_name,
    ecl_id=@vdc_ad_ecl_id)/
/assigning_reference_data(
    items=^vdc,
    class_name=@vdc_lcs_class_name,
    ecl_id=@vdc_lcs_ecl_id)/

-- Instantiate the Requirement_view_definition entity and link it to Requirement_version and to View_definition_context.
^req_ver <- Requirement_view_definition.defined_version
^vdc <- Requirement_view_definition.initial_context

-- Bind the Requirement_view_definition entity to the parameter ^rvd.
%^rvd = Requirement_view_definition%

-- Identify the Requirement_view_definition.
/assigning_identification(
    items=^rvd,
    id=@rvd_id,
    id_class_name=@rvd_id_class_name,
    id_ecl_id=@rvd_id_ecl_id)/

-- Instantiate the Requirement_assignment entity and link it to Requirement_view_definition.
^rvd <- Requirement_assignment.assigned_requirement
Requirement_assignment.assigned_to -> @items
Requirement_assignment.id = '/IGNORE'
Requirement_assignment.description = '/IGNORE'

-- Bind the Requirement_assignment entity to the parameter ^req_ass.
%^req_ass = Requirement_assignment%
The following entities are instantiated with attributes as specified:
Entity in path Value Inherited from
View_definition_context.application_domain '/IGNORE'
View_definition_context.life_cycle_stage '/IGNORE'
View_definition_context.description '/IGNORE'
Requirement_assignment.id '/IGNORE'
Requirement_assignment.description '/IGNORE'
Instance diagrams
The instance diagram in Figure  shows an example of the EXPRESS entities and templates that are instantiated by the template:
/assigning_requirements(req_id='1', req_ver_id='2', rvd_id='3', req_id_class_name='Requirement_identification_code', req_ver_id_class_name='Progression_identification_code', rvd_id_class_name='Requirement_view_definition_identification_code', req_id_ecl_id='http://www.plcsinc.org/plcs-proposed', req_ver_id_ecl_id='http://www.plcsinc.org/plcs-proposed', rvd_id_ecl_id='http://www.plcsinc.org/plcs-proposed', req_org_id_ecl_id='http://www.plcsinc.org/plcs-proposed', req_ver_org_id_ecl_id='http://www.plcsinc.org/plcs-proposed', rvd_org_id_ecl_id='http://www.plcsinc.org/plcs-proposed', req_class_name='Requirement_category', req_ver_class_name='Requirement_version_category', rvd_class_name='Requirement_view_definition_category', req_ecl_id='http://www.plcsinc.org/plcs-proposed', req_ecl_id='http://www.plcsinc.org/plcs-proposed', rvd_ecl_id='http://www.plcsinc.org/plcs-proposed')/
(an illustration of the consolidated assigning_requirements template is shown in Figure  below.)


Figure 3 —  Assigning requirement data to a part version (EXPRESS-I diagram)

Figure 3 —  Assigning requirement data to a part version (EXPRESS-I diagram)

The instance diagram in Figure  shows the graphic symbol for the template that is to be used in other instance diagrams. The example template is:
/assigning_requirements(req_id='1', req_ver_id='2', rvd_id='3', req_id_class_name='Requirement_identification_code', req_ver_id_class_name='Progression_identification_code', rvd_id_class_name='Requirement_view_definition_identification_code', req_id_ecl_id='http://www.plcsinc.org/plcs-proposed', req_ver_id_ecl_id='http://www.plcsinc.org/plcs-proposed', rvd_id_ecl_id='http://www.plcsinc.org/plcs-proposed', req_org_id_ecl_id='http://www.plcsinc.org/plcs-proposed', req_ver_org_id_ecl_id='http://www.plcsinc.org/plcs-proposed', rvd_org_id_ecl_id='http://www.plcsinc.org/plcs-proposed', req_class_name='Requirement_category', req_ver_class_name='Requirement_version_category', rvd_class_name='Requirement_view_definition_category', req_ecl_id='http://www.plcsinc.org/plcs-proposed', req_ecl_id='http://www.plcsinc.org/plcs-proposed', rvd_ecl_id='http://www.plcsinc.org/plcs-proposed')/


Figure 4 —  Assigning requirement data to a part version (condensed EXPRESS-I diagram)

Figure 4 —  Assigning requirement data to a part version (condensed EXPRESS-I diagram)

Characterizations
No common characterizations of the template assigning_requirements have been identified. However, the ISO 10303-239 EXPRESS model may enable other assignments to the entities instantiated by the template.
Template: assigning_requirement (Short name: asg_req)

This section specifies the template assigning_requirement.

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

Description

This template describes how to represent the assignment of a requirement to an entity within a data set. The meaning of the assignment is provided by classification.

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


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

Figure 1 —  An EXPRESS-G representation of the Information model for assigning_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 assigning_requirement template

Figure 2 —  The graphical representation of the assigning_requirement template

Input parameters
The following input parameters are defined for this template:
class_name (Default=Defined_for,Type='CLASS')
The name of the class (External_class) being used to determine role of the requirement assignment.
The following classes and their sub-classes can be used:
classifications: "Requirement_assignment" (urn:plcs:rdl:std:Requirement_assignment)
ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The id of the External_class_library that stores the External_class definition (@class).
req (Type= 'ENTITY (Requirement_view_definition)' )
The requirement being assigned.
assigned_to (Type= 'SELECT (requirement_assignment_item)' )
The entity to which the requirement is assigned.
Reference parameters
The following reference parameters are defined for this template:
req_asg(Type='ENTITY (Requirement_assignment)')
Allow the Requirement_assignment entity instantiated in this path to be referenced when this template is used.
Note: The Requirement_assignment entity can be referenced in a template path by:
%^target = $assigning_requirement.req_asg%
where target is the parameter to which the Requirement_assignment is bound.
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 Reading Capability Templates help section.
Requirement_assignment

-- Mark the Requirement_assignment entity as
-- referable when this template is used by binding it to the reference
-- parameter req_asg
%^req_asg = Requirement_assignment%
Requirement_assignment.id = '/IGNORE'
Requirement_assignment.description = '/IGNORE'
Requirement_assignment.assigned_to -> @assigned_to
Requirement_assignment.assigned_requirement -> @req

-- provide the role of the assignment by classifying the Requirement_assignment
/assigning_reference_data(
    items=^req_asg,
    class_name=@class_name,
    ecl_id=@ecl_id)/
The following entities are instantiated with attributes as specified:
Entity in path Value Inherited from
Requirement_assignment.id '/IGNORE'
Requirement_assignment.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:
/assigning_requirement(assigned_to='#1', assigned_requirement='#2', class_name='Defined_for', ecl_id='urn:plcs:rdl:sample')/
(an illustration of the consolidated assigning_requirement template is shown in Figure 4 below.)


Figure 3 —  Entities instantiated by assigning_requirement template

Figure 3 —  Entities instantiated by assigning_requirement template

The instance model in STEP ASCII exchange file format (ISO 10303 Part 21 syntax) is:
#1 = PART_VERSION('/IGNORE','/IGNORE',$); #2 = REQUIREMENT_VIEW_DEFINITION('/IGNORE','/IGNORE','/IGNORE',$,(),$); #3 = REQUIREMENT_ASSIGNMENT('/IGNORE','/IGNORE',#2,#1); #5 = CLASSIFICATION_ASSIGNMENT(#6,(#3),'/IGNORE'); #6 = EXTERNAL_CLASS('/NULL','Defined_for','/IGNORE',#7); #7 = EXTERNAL_CLASS_LIBRARY('urn:plcs:rdl:sample','/IGNORE');
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:
/assigning_requirement(assigned_to='#1', assigned_requirement='#2', class_name='Defined_for', ecl_id='urn:plcs:rdl:sample')/


Figure 4 —  Instantiation of assigning_requirement template

Figure 4 —  Instantiation of assigning_requirement template

Characterizations
No common characterizations of the template assigning_requirement have been identified. However, the ISO 10303-239 EXPRESS model may enable other assignments to the entities instantiated by the template.
Template: relating_requirement_versions (Short name: req_ver_rel)

This section specifies the template relating_requirement_versions.

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

Description
This template describes the creation of relationships between different versions of requirements.
Model diagrams
The EXPRESS-G diagram in Figure 1 shows the templates and EXPRESS entities that are required to represent the template "relating_requirement_versions". The text highlighted in blue shows the template parameters.


Figure 1 —  Relating requirement versions (EXPRESS-G diagram)

Figure 1 —  Relating requirement versions (EXPRESS-G diagram)

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


Figure 2 —  Relating requirement versions (condensed EXPRESS-G diagram)

Figure 2 —  Relating requirement versions (condensed EXPRESS-G diagram)

Input parameters
The following input parameters are defined for this template:
related_version (Type= 'ENTITY (Requirement_version)' )
The preceding version of the requirement.
relating_version (Type= 'ENTITY (Requirement_version)' )
The succeding version of the requirement.
rel_type (Default=Successor_of,Type='CLASS')
The type of relationship between the versions.
The following classes and their sub-classes can be used:
classifications: "Requirement_version_relationship" (urn:plcs:rdl:std:Requirement_version_relationship)
rel_type_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The id of the External_class_library that stores the @rel_type definition.
Reference parameters
The following reference parameters are defined for this template:
req_ver_rel(Type='ENTITY (Requirement_version_relationship)')
Allow the Requirement_version_relationship entity instantiated in this path to be referenced when this template is used.
Note: The Requirement_version_relationship entity can be referenced in a template path by:
%^target = $relating_requirement_versions.req_ver_rel%
where target is the parameter to which the Requirement_version_relationship is bound.
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 Reading Capability Templates help section.
-- Instantiate the Requirement_version_relationship entity.
Requirement_version_relationship

-- Bind the Requirement entity to the parameter ^req_ver_rel.
%^req_ver_rel = Requirement_version_relationship%
Requirement_version_relationship.relating_version -> @relating_version
Requirement_version_relationship.related_version -> @related_version
Requirement_version_relationship.relation_type = '/IGNORE'
Requirement_version_relationship.description = '/IGNORE'

-- Classify the Requirement_version_relationship
/assigning_reference_data(
    items=^req_ver_rel,
    class_name=@rel_type,
    ecl_id=@rel_type_ecl_id)/
The following entities are instantiated with attributes as specified:
Entity in path Value Inherited from
Requirement_version_relationship.relation_type '/IGNORE' Product_version_relationship.relation_type
Requirement_version_relationship.description '/IGNORE' Product_version_relationship.description
Instance diagrams
The instance diagram in Figure  3 shows an example of the EXPRESS entities and templates that are instantiated by the template:
/relating_requirement_versions(related_version='#7', relating_version='#8', rel_type='Successor_of', rel_type_ecl_id='urn:plcs:rdl:sample')/
(an illustration of the consolidated relating_requirement_versions template is shown in Figure 4 below.)


Figure 3 —  Entities instantiated by template relating_requirement_versions (EXPRESS-I diagram)

Figure 3 —  Entities instantiated by template relating_requirement_versions (EXPRESS-I diagram)

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:
/relating_requirement_versions(related_version='#7', relating_version='#8', rel_type='Successor_of', rel_type_ecl_id='urn:plcs:rdl:sample')/


Figure 4 —  Instantiation of template relating_requirement_versions

Figure 4 —  Instantiation of template relating_requirement_versions

Characterizations
No common characterizations of the template relating_requirement_versions have been identified. However, the ISO 10303-239 EXPRESS model may enable other assignments to the entities instantiated by the template.
Template: sourcing_requirements (Short name: req_srce)

This section specifies the template sourcing_requirements.

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

Description
This template describes the linking of requirements to their individual sources.
Model diagrams
The EXPRESS-G diagram in Figure  shows the templates and EXPRESS entities that are required to represent the template "sourcing_requirements". The text highlighted in blue shows the template parameters.

[warning:]Error model_diag_1: Either delete A DESCRIPTION OF THE DIAGRAM or provide a description
EXAMPLE


Figure 14 —  Sourcing requirements (EXPRESS-G diagram)

Figure 14 —  Sourcing requirements (EXPRESS-G diagram)

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

[warning:]Error model_diag_1: Either delete A DESCRIPTION OF THE DIAGRAM or provide a description
EXAMPLE


Figure 15 —  Sourcing requirements (condensed EXPRESS-G diagram)

Figure 15 —  Sourcing requirements (condensed EXPRESS-G diagram)

Input parameters
The following input parameters are defined for this template:
req_id (Type='STRING')
The identifier assigned to a requirement.
req_id_class_name (Default=Identification_code,Type='CLASS')
The classification of the identifier assigned to a requirement.
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 id_class_name class.
req_org_id_ecl_id (Type='STRING')
The identifier assigned to an organization that assigns an identifier to a requirement.
req_ver_id (Type='STRING')
The identifier assigned to a requirement version.
req_ver_id_class_name (Default=Identification_code,Type='CLASS')
The classification of the identifier assigned to a requirement version.
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 id_class_name class.
req_ver_org_id_ecl_id (Type='STRING')
The identifier assigned to an organization that assigns an identifier to a requirement version.
rvd_id (Type='STRING')
The identifier assigned to a requirement view definition.
rvd_id_class_name (Default=Identification_code,Type='CLASS')
The classification of the identifier assigned to a requirement view definition.
The following classes and their sub-classes can be used:
classifications: [Requirement_view_definition_identification_code]
[warning:]Error RDL1: The class Requirement_view_definition_identification_code does not exist in RDL at urn urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
rvd_id_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The id of the External_class_library that stores the id_class_name class.
rvd_org_id_ecl_id (Type='STRING')
The identifier assigned to an organization that assigns an identifier to a requirement view definition.
vdc_lcs_class_name (Type='CLASS')
The following classes and their sub-classes can be used:
classifications: "Life_cycle_stage" (urn:plcs:rdl:std:Life_cycle_stage), "Concept_stage" (urn:plcs:rdl:std:Concept_stage), "Development_stage" (urn:plcs:rdl:std:Development_stage), "Production_stage" (urn:plcs:rdl:std:Production_stage), "Retirement_stage" (urn:plcs:rdl:std:Retirement_stage), "Support_stage" (urn:plcs:rdl:std:Support_stage), "Utilization_stage" (urn:plcs:rdl:std:Utilization_stage)
vdc_lcs_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The id of the External_class_library that stores the lcs_class_name class.
vdc_ad_class_name (Type='CLASS')
The following classes and their sub-classes can be used:
classifications: "Application_domain" (urn:plcs:rdl:std:Application_domain), "Discipline_domain" (urn:plcs:rdl:std:Discipline_domain), "Maintenance_process" (urn:plcs:rdl:std:Maintenance_process), "Product_life_cycle_support" (urn:plcs:rdl:std:Product_life_cycle_support), "Process_domain" (urn:plcs:rdl:std:Process_domain), "Agreement_process" (urn:plcs:rdl:std:Agreement_process), "Enterprise_process" (urn:plcs:rdl:std:Enterprise_process), "Project_process" (urn:plcs:rdl:std:Project_process), "Technical_process" (urn:plcs:rdl:std:Technical_process)
vdc_ad_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The id of the External_class_library that stores the ad_class_name class.
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 = $sourcing_requirements.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 = $sourcing_requirements.req_ver%
where target is the parameter to which the Requirement_version is bound.
rvd(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 = $sourcing_requirements.rvd%
where target is the parameter to which the Requirement_view_definition is bound.
vdc(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 = $sourcing_requirements.vdc%
where target is the parameter to which the View_definition_context is bound.
req_srce(Type='ENTITY (Requirement_source)')
Allow the Requirement_source entity instantiated in this path to be referenced when this template is used.
Note: The Requirement_source entity can be referenced in a template path by:
%^target = $sourcing_requirements.req_srce%
where target is the parameter to which the Requirement_source is bound.
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 Reading Capability Templates help section.
-- Instantiate a Requirement entity.
Requirement

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

-- Identify the Requirement
/assigning_identification(
    items=^req,
    id=@req_id,
    id_class_name=@req_id_class_name,
    id_ecl_id=@req_id_ecl_id)/

-- Instantiate a Requirement_version entity and link it to Requirement.
^req <- Requirement_version.of_product

-- Bind the Requirement_version entity to the parameter ^req_ver.
%^req_ver = Requirement_version%

-- Identify the Requirement_version
/assigning_identification(
    items=^req_ver,
    id=@req_ver_id,
    id_class_name=@req_ver_id_class_name,
    id_ecl_id=@req_ver_id_ecl_id)/

-- Instantiate the View_definition_context.
View_definition_context
View_definition_context.application_domain = '/IGNORE'
View_definition_context.life_cycle_stage = '/IGNORE'
View_definition_context.description = '/IGNORE'

-- Bind the View_definition_context entity to the parameter ^vdc.
%^vdc = View_definition_context%

-- Classify the View_definition_context
/assigning_reference_data(
    items=^vdc,
    class_name=@vdc_ad_class_name,
    ecl_id=@vdc_ad_ecl_id)/
/assigning_reference_data(
    items=^vdc,
    class_name=@vdc_lcs_class_name,
    ecl_id=@vdc_lcs_ecl_id)/

-- Instantiate a Requirement_view_definition entity and link it to a Requirement_version and to the View_definition_context.
^req_ver <- Requirement_view_definition.defined_version
^vdc <- Requirement_view_definition.initial_context

-- Bind the Requirement_view_definition entity to the parameter ^rvd.
%^rvd = Requirement_view_definition%

-- Identify the Requirement_view_definition.
/assigning_identification(
    items=^rvd,
    id=@rvd_id,
    id_class_name=@rvd_id_class_name,
    id_ecl_id=@rvd_id_ecl_id)/

-- Instantiate a Requirement_source entity and link it to the Requirement_view_definition.
^rvd <- Requirement_source.sourced_requirement
Requirement_source.id = '/IGNORE'
Requirement_source.description = '/IGNORE'

-- Bind the Requirement_source entity to the parameter ^req_srce
%^req_srce = Requirement_source%
The following entities are instantiated with attributes as specified:
Entity in path Value Inherited from
View_definition_context.application_domain '/IGNORE'
View_definition_context.life_cycle_stage '/IGNORE'
View_definition_context.description '/IGNORE'
Requirement_source.id '/IGNORE'
Requirement_source.description '/IGNORE'
Instance diagrams
The instance diagram in Figure  shows an example of the EXPRESS entities and templates that are instantiated by the template:
/sourcing_requirements(req_id='1', req_ver_id='2', rvd_id='3', req_id_class_name='Requirement_identification_code', req_ver_id_class_name='Progression_identification_code', rvd_id_class_name='Requirement_view_definition_identification_code', req_id_ecl_id='http://www.plcsinc.org/plcs-proposed', req_ver_id_ecl_id='http://www.plcsinc.org/plcs-proposed', rvd_id_ecl_id='http://www.plcsinc.org/plcs-proposed', req_org_id_ecl_id='http://www.plcsinc.org/plcs-proposed', req_ver_org_id_ecl_id='http://www.plcsinc.org/plcs-proposed', rvd_org_id_ecl_id='http://www.plcsinc.org/plcs-proposed', req_class_name='Requirement_category', req_ver_class_name='Requirement_version_category', rvd_class_name='Requirement_view_definition_category', req_ecl_id='http://www.plcsinc.org/plcs-proposed', req_ecl_id='http://www.plcsinc.org/plcs-proposed', rvd_ecl_id='http://www.plcsinc.org/plcs-proposed')/
(an illustration of the consolidated sourcing_requirements template is shown in Figure  below.)


Figure 16 —  Sourcing requirements (EXPRESS-I diagram)

Figure 16 —  Sourcing requirements (EXPRESS-I diagram)

The instance diagram in Figure  shows the graphic symbol for the template that is to be used in other instance diagrams. The example template is:
/sourcing_requirements(req_id='1', req_ver_id='2', rvd_id='3', req_id_class_name='Requirement_identification_code', req_ver_id_class_name='Progression_identification_code', rvd_id_class_name='Requirement_view_definition_identification_code', req_id_ecl_id='http://www.plcsinc.org/plcs-proposed', req_ver_id_ecl_id='http://www.plcsinc.org/plcs-proposed', rvd_id_ecl_id='http://www.plcsinc.org/plcs-proposed', req_org_id_ecl_id='http://www.plcsinc.org/plcs-proposed', req_ver_org_id_ecl_id='http://www.plcsinc.org/plcs-proposed', rvd_org_id_ecl_id='http://www.plcsinc.org/plcs-proposed', req_class_name='Requirement_category', req_ver_class_name='Requirement_version_category', rvd_class_name='Requirement_view_definition_category', req_ecl_id='http://www.plcsinc.org/plcs-proposed', req_ecl_id='http://www.plcsinc.org/plcs-proposed', rvd_ecl_id='http://www.plcsinc.org/plcs-proposed')/


Figure 17 —  Sourcing requirements (condensed EXPRESS-I diagram)

Figure 17 —  Sourcing requirements (condensed EXPRESS-I diagram)

Characterizations
No common characterizations of the template sourcing_requirements have been identified. However, the ISO 10303-239 EXPRESS model may enable other assignments to the entities instantiated by the template.
Template: relating_requirements (Short name: req_rel)

This section specifies the template relating_requirements.

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

Description
This template describes the creation of relationships between requirements.
Model diagrams
The EXPRESS-G diagram in Figure  shows the templates and EXPRESS entities that are required to represent the template "relating_requirements". The text highlighted in blue shows the template parameters.


Figure 18 —  Relating requirements (EXPRESS-G diagram)

Figure 18 —  Relating requirements (EXPRESS-G diagram)

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


Figure 19 —  Sourcing requirements (condensed EXPRESS-G diagram)

Figure 19 —  Sourcing requirements (condensed EXPRESS-G diagram)

Input parameters
The following input parameters are defined for this template:
req_id (Type='STRING')
The identifier assigned to a requirement.
req_id_class_name (Default=Identification_code,Type='CLASS')
The classification of the identifier assigned to a requirement.
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 id_class_name class.
req_org_id_ecl_id (Type='STRING')
The identifier assigned to an organization that assigns an identifier to a requirement.
req_ver_id (Type='STRING')
The identifier assigned to a requirement version.
req_ver_id_class_name (Default=Identification_code,Type='CLASS')
The classification of the identifier assigned to a requirement version.
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 id_class_name class.
req_ver_org_id_ecl_id (Type='STRING')
The identifier assigned to an organization that assigns an identifier to a requirement version.
rvd_id (Type='STRING')
The identifier assigned to a requirement view definition.
rvd_id_class_name (Default=Identification_code,Type='CLASS')
The classification of the identifier assigned to a requirement view definition.
The following classes and their sub-classes can be used:
classifications: [Requirement_view_definition_identification_code]
[warning:]Error RDL1: The class Requirement_view_definition_identification_code does not exist in RDL at urn urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
rvd_id_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The id of the External_class_library that stores the id_class_name class.
rvd_org_id_ecl_id (Type='STRING')
The identifier assigned to an organization that assigns an identifier to a requirement view definition.
vdc_lcs_class_name (Type='CLASS')
The following classes and their sub-classes can be used:
classifications: "Life_cycle_stage" (urn:plcs:rdl:std:Life_cycle_stage), "Concept_stage" (urn:plcs:rdl:std:Concept_stage), "Development_stage" (urn:plcs:rdl:std:Development_stage), "Production_stage" (urn:plcs:rdl:std:Production_stage), "Retirement_stage" (urn:plcs:rdl:std:Retirement_stage), "Support_stage" (urn:plcs:rdl:std:Support_stage), "Utilization_stage" (urn:plcs:rdl:std:Utilization_stage)
vdc_lcs_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The id of the External_class_library that stores the lcs_class_name class.
vdc_ad_class_name (Type='CLASS')
The following classes and their sub-classes can be used:
classifications: "Application_domain" (urn:plcs:rdl:std:Application_domain), "Discipline_domain" (urn:plcs:rdl:std:Discipline_domain), "Maintenance_process" (urn:plcs:rdl:std:Maintenance_process), "Product_life_cycle_support" (urn:plcs:rdl:std:Product_life_cycle_support), "Process_domain" (urn:plcs:rdl:std:Process_domain), "Agreement_process" (urn:plcs:rdl:std:Agreement_process), "Enterprise_process" (urn:plcs:rdl:std:Enterprise_process), "Project_process" (urn:plcs:rdl:std:Project_process), "Technical_process" (urn:plcs:rdl:std:Technical_process)
vdc_ad_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The id of the External_class_library that stores the ad_class_name class.
member (Type= 'ENTITY (Requirement_view_definition)' )
The requirement_view_definition corresponding to the requirement collection member.
collection (Type= 'ENTITY (Requirement_view_definition)' )
The requirement_view_definition corresponding to the requirement collection.
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 = $relating_requirements.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 = $relating_requirements.req_ver%
where target is the parameter to which the Requirement_version is bound.
rvd(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 = $relating_requirements.rvd%
where target is the parameter to which the Requirement_view_definition is bound.
vdc(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 = $relating_requirements.vdc%
where target is the parameter to which the View_definition_context is bound.
req_col_rel(Type='ENTITY (Requirement_collection_relationship)')
Allow the Requirement_collection_relationship entity instantiated in this path to be referenced when this template is used.
Note: The Requirement_collection_relationship entity can be referenced in a template path by:
%^target = $relating_requirements.req_col_rel%
where target is the parameter to which the Requirement_collection_relationship is bound.
trc_rel(Type='ENTITY (Tracing_relationship)')
Allow the Tracing_relationship entity instantiated in this path to be referenced when this template is used.
Note: The Tracing_relationship entity can be referenced in a template path by:
%^target = $relating_requirements.trc_rel%
where target is the parameter to which the Tracing_relationship is bound.
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 Reading Capability Templates help section.
-- Instantiate a Requirement entity.
Requirement

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

-- Identify the Requirement
/assigning_identification(
    items=^req,
    id=@req_id,
    id_class_name=@req_id_class_name,
    id_ecl_id=@req_id_ecl_id)/

-- Instantiate a Requirement_version entity and link it to Requirement.
^req <- Requirement_version.of_product

-- Bind the Requirement_version entity to the parameter ^req_ver.
%^req_ver = Requirement_version%

-- Identify the Requirement_version
/assigning_identification(
    items=^req_ver,
    id=@req_ver_id,
    id_class_name=@req_ver_id_class_name,
    id_ecl_id=@req_ver_id_ecl_id)/

-- Instantiate the View_definition_context.
View_definition_context
View_definition_context.application_domain = '/IGNORE'
View_definition_context.life_cycle_stage = '/IGNORE'
View_definition_context.description = '/IGNORE'

-- Bind the View_definition_context entity to the parameter ^vdc.
%^vdc = View_definition_context%

-- Classify the View_definition_context
/assigning_reference_data(
    items=^vdc,
    class_name=@vdc_ad_class_name,
    ecl_id=@vdc_ad_ecl_id)/
/assigning_reference_data(
    items=^vdc,
    class_name=@vdc_lcs_class_name,
    ecl_id=@vdc_lcs_ecl_id)/

-- Instantiate a Requirement_view_definition entity and link it to a Requirement_version and to the View_definition_context.
^req_ver <- Requirement_view_definition.defined_version
^vdc <- Requirement_view_definition.initial_context

-- Bind the Requirement_view_definition entity to the parameter ^rvd.
%^rvd = Requirement_view_definition%

-- Identify the Requirement_view_definition.
/assigning_identification(
    items=^rvd,
    id=@rvd_id,
    id_class_name=@rvd_id_class_name,
    id_ecl_id=@rvd_id_ecl_id)/

-- Instantiate a Requirement_collection_relationship entity and link it to two Requirement_view_definition objects.
^rvd <- Requirement_collection_relationship.collection
^rvd <- Requirement_collection_relationship.member
Requirement_collection_relationship.id = '/IGNORE'
Requirement_collection_relationship.relation_type = '/IGNORE'
Requirement_collection_relationship.description = '/IGNORE'

-- Bind the Requirement_collection_relationship entity to the parameter ^req_col_rel
%^req_col_rel = Requirement_collection_relationship%

-- Instantiate a Tracing_relationship entity and link it to two Requirement_view_definition objects.
^rvd <- Tracing_relationship.traces_from
^rvd <- Tracing_relationship.traces_to
Tracing_relationship.id = '/IGNORE'
Tracing_relationship.relation_type = '/IGNORE'
Tracing_relationship.description = '/IGNORE'

-- Bind the Tracing_relationship entity to the parameter ^trc_rel
%^trc_rel = Tracing_relationship%
The following entities are instantiated with attributes as specified:
Entity in path Value Inherited from
View_definition_context.application_domain '/IGNORE'
View_definition_context.life_cycle_stage '/IGNORE'
View_definition_context.description '/IGNORE'
Requirement_collection_relationship.id '/IGNORE' View_definition_relationship.id
Requirement_collection_relationship.relation_type '/IGNORE' View_definition_relationship.relation_type
Requirement_collection_relationship.description '/IGNORE' View_definition_relationship.description
Tracing_relationship.id '/IGNORE' View_definition_relationship.id
Tracing_relationship.relation_type '/IGNORE' View_definition_relationship.relation_type
Tracing_relationship.description '/IGNORE' View_definition_relationship.description
Instance diagrams
The instance diagram in Figure  shows an example of the EXPRESS entities and templates that are instantiated by the template:
/relating_requirements(req_id='1', req_ver_id='2', rvd_id='3', req_id_class_name='Requirement_identification_code', req_ver_id_class_name='Progression_identification_code', rvd_id_class_name='Requirement_view_definition_identification_code', req_id_ecl_id='http://www.plcsinc.org/plcs-proposed', req_ver_id_ecl_id='http://www.plcsinc.org/plcs-proposed', rvd_id_ecl_id='http://www.plcsinc.org/plcs-proposed', req_org_id_ecl_id='http://www.plcsinc.org/plcs-proposed', req_ver_org_id_ecl_id='http://www.plcsinc.org/plcs-proposed', rvd_org_id_ecl_id='http://www.plcsinc.org/plcs-proposed', req_class_name='Requirement_category', req_ver_class_name='Requirement_version_category', rvd_class_name='Requirement_view_definition_category', req_ecl_id='http://www.plcsinc.org/plcs-proposed', req_ecl_id='http://www.plcsinc.org/plcs-proposed', rvd_ecl_id='http://www.plcsinc.org/plcs-proposed')/
(an illustration of the consolidated relating_requirements template is shown in Figure  below.)


Figure 20 —  Relating requirements (EXPRESS-I diagram)

Figure 20 —  Relating requirements (EXPRESS-I diagram)

The instance diagram in Figure  shows the graphic symbol for the template that is to be used in other instance diagrams. The example template is:
/relating_requirements(req_id='1', req_ver_id='2', rvd_id='3', req_id_class_name='Requirement_identification_code', req_ver_id_class_name='Progression_identification_code', rvd_id_class_name='Requirement_view_definition_identification_code', req_id_ecl_id='http://www.plcsinc.org/plcs-proposed', req_ver_id_ecl_id='http://www.plcsinc.org/plcs-proposed', rvd_id_ecl_id='http://www.plcsinc.org/plcs-proposed', req_org_id_ecl_id='http://www.plcsinc.org/plcs-proposed', req_ver_org_id_ecl_id='http://www.plcsinc.org/plcs-proposed', rvd_org_id_ecl_id='http://www.plcsinc.org/plcs-proposed', req_class_name='Requirement_category', req_ver_class_name='Requirement_version_category', rvd_class_name='Requirement_view_definition_category', req_ecl_id='http://www.plcsinc.org/plcs-proposed', req_ecl_id='http://www.plcsinc.org/plcs-proposed', rvd_ecl_id='http://www.plcsinc.org/plcs-proposed')/


Figure 21 —  Relating requirements (condensed EXPRESS-I diagram)

Figure 21 —  Relating requirements (condensed EXPRESS-I diagram)

Characterizations
No common characterizations of the template relating_requirements 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