Template:— relating_requirements (req_rel)
Capability:representing_requirements
Date: 2009/04/09 15:05:20
Revision: 1.11

This section specifies the template relating_requirements.

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 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 Templates Help/Information 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