<?xml version="1.0" encoding="utf-8"?>
<xmi:XMI xmlns:xmi="http://www.omg.org/spec/XMI/20131001"
xmlns:ipmss="http://www.omg.org/spec/ipmss/20140201/">
  <ipmss:PatternDefinition xmi:id="ASCCRM-CWE-120"
  name="ASCCRM-CWE-120: Buffer Copy without Checking Size of Input">
    <relatedPatts xmi:id="ASCCRM-CWE-120-relatedPatts-reliability" xmi:type="ipmss:MemberOf"
    category="ASCCRM_Reliability" />
    <sections xmi:id="ASCCRM-CWE-120-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid buffer operations among buffers with incompatible sizes" />
    <sections xmi:id="ASCCRM-CWE-120-consequence" xmi:type="ipmss:PatternSection"
    name="Consequence"
    body="Software featuring known weak coding practices results in unexpected and erroneous behaviors" />
    <sections xmi:id="ASCCRM-CWE-120-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances in which the content of the first buffer is moved into the content of the second buffer while the size of the first buffer is greater than the size of the second buffer." />
    <sections xmi:id="ASCCRM-CWE-120-description" xmi:type="ipmss:PatternSection"
    name="Description"
    body="This pattern identifies situations where two buffer storable elements (code:StorableUnit) or member elements (code:MemberUnit) are allocated with specific sizes in &lt;SourceBufferAllocationStatement&gt; and &lt;TargetBufferAllocationStatement&gt; Create actions (action:Creates), transformed within the application via the &lt;SourceTransformationSequence&gt; and &lt;TargetTransformationSequence&gt; sequences (action:BlockUnit) composed of ActionElements with DataRelations relations (action:Reads, action:Writes, action:Addresses), some of which being part of named callable and method control elements (code:MethodUnit or code:CallableUnit with code:CallableKind 'regular', 'external' or 'stored'), then ultimately used by the application to move the content of the first buffer (action:Reads) onto the content of the second buffer (action:Writes) through the &lt;MoveBufferStatement&gt; statement, while the size of the first buffer is greater than the size of the second buffer." />
    <sections xmi:id="ASCCRM-CWE-120-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCRM-CWE-120(SourceBufferAllocationStatement: sourceBufferAllocationStatement,TargetBufferAllocationStatement: targetBufferAllocationStatement, SourceTransformationSequence: sourceTransformationSequence, TargetTransformationSequence: targetTransformationSequence, MoveBufferStatement: moveBufferStatement)" />
    <sections xmi:id="ASCCRM-CWE-120-comment" xmi:type="ipmss:PatternSection" name="Comment"
    body="Measure element contributes to Reliability and Security" />
    <roles xmi:id="ASCCRM-CWE-120-roles-sourceBufferAllocationStatement" xmi:type="ipmss:Role"
    name="SourceBufferAllocationStatement" />
    <roles xmi:id="ASCCRM-CWE-120-roles-targetBufferAllocationStatement" xmi:type="ipmss:Role"
    name="TargetBufferAllocationStatement" />
    <roles xmi:id="ASCCRM-CWE-120-roles-sourceTransformationSequence" xmi:type="ipmss:Role"
    name="SourceTransformationSequence" />
    <roles xmi:id="ASCCRM-CWE-120-roles-targetTransformationSequence" xmi:type="ipmss:Role"
    name="TargetTransformationSequence" />
    <roles xmi:id="ASCCRM-CWE-120-roles-moveBufferStatement" xmi:type="ipmss:Role"
    name="MoveBufferStatement" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCRM-CWE-252-data"
  name="ASCCRM-CWE-252-data: Unchecked Return Parameter Value of named Callable and Method Control Element with Read, Write, and Manage Access to Data Resource">

    <relatedPatts xmi:id="ASCCRM-CWE-252-data-relatedPatts-reliability" xmi:type="ipmss:MemberOf"
    category="ASCCRM_Reliability" />
    <sections xmi:id="ASCCRM-CWE-252-data-objective" xmi:type="ipmss:PatternSection"
    name="Objective"
    body="Avoid improper processing of the execution status of data handling operations" />
    <sections xmi:id="ASCCRM-CWE-252-data-consequence" xmi:type="ipmss:PatternSection"
    name="Consequence"
    body="Software without consistent and complete handling of errors and exceptions makes it impossible to accurately identify and adequately respond to unusual and unexpected situations." />
    <sections xmi:id="ASCCRM-CWE-252-data-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where the named callable control element or method control element executes a CRUD SQL statement with an action, yet the value of the return parameter from the action is not used by any check control element" />
    <sections xmi:id="ASCCRM-CWE-252-data-description" xmi:type="ipmss:PatternSection"
    name="Description"
    body="This pattern identifies situations where the &lt;ControlElement&gt; named callable control element (code:CallableUnit with code:CallableKind 'regular', 'external' or 'stored') or method control element (code:MethodUnit) executes the &lt;SQLStatement&gt; CRUD SQL statement (data:ReadsColumnSet or data:WritesColumnSet) with the &lt;ExecuteSQLStatement&gt; action yet the value (code:Value) of the return parameter (code:ParameterUnit of code:ParameterKind 'return') from the action is not used by any check control element (code:ControlElement containing action:ActionElement with a kind from micro KDM list of comparison actions)." />
    <sections xmi:id="ASCCRM-CWE-252-data-descriptor" xmi:type="ipmss:PatternSection"
    name="Descriptor"
    body="ASCCRM-CWE-252-data(ControlElement: controlElement,SQLStatement: sQLStatement, ExecuteSQLStatement: executeSQLStatement)" />
    <roles xmi:id="ASCCRM-CWE-252-data-roles-controlElement" xmi:type="ipmss:Role"
    name="ControlElement" />
    <roles xmi:id="ASCCRM-CWE-252-data-roles-sQLStatement" xmi:type="ipmss:Role"
    name="SQLStatement" />
    <roles xmi:id="ASCCRM-CWE-252-data-roles-executeSQLStatement" xmi:type="ipmss:Role"
    name="ExecuteSQLStatement" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCRM-CWE-252-resource"
  name="ASCCRM-CWE-252-resource: Unchecked Return Parameter Value of named Callable and Method Control Element with Read, Write, and Manage Access to Platform Resource">

    <relatedPatts xmi:id="ASCCRM-CWE-252-resource-relatedPatts-reliability"
    xmi:type="ipmss:MemberOf" category="ASCCRM_Reliability" />
    <sections xmi:id="ASCCRM-CWE-252-resource-objective" xmi:type="ipmss:PatternSection"
    name="Objective"
    body="Avoid improper processing of the execution status of resource handling operations" />
    <sections xmi:id="ASCCRM-CWE-252-resource-consequence" xmi:type="ipmss:PatternSection"
    name="Consequence"
    body="Software featuring known weak coding practices results in unexpected and erroneous behaviors" />
    <sections xmi:id="ASCCRM-CWE-252-resource-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where the named callable control element or method control element executes a ‘Read’, ‘Write’, or ‘Manage Access’ action, yet the value of the return parameter from the action is not used by any check control element" />
    <sections xmi:id="ASCCRM-CWE-252-resource-description" xmi:type="ipmss:PatternSection"
    name="Description"
    body="This pattern identifies situations where the &lt;ControlElement&gt; named callable control element (code:CallableUnit with code:CallableKind 'regular', 'external' or 'stored') or method control element (code:MethodUnit) executes the &lt;ResourceAccessStatement&gt; Read, Write, and Manage Access action (platform:ReadsResource, platform:WritesResource, and platform:ManagesResource) yet the value (code:Value) of the return parameter (code:ParameterUnit of code:ParameterKind 'return') from the action is not used by any check control element (code:ControlElement containing action:ActionElement with a kind from micro KDM list of comparison actions)." />
    <sections xmi:id="ASCCRM-CWE-252-resource-descriptor" xmi:type="ipmss:PatternSection"
    name="Descriptor"
    body="ASCCRM-CWE-252-resource(ControlElement: controlElement,ResourceAccessStatement: resourceAccessStatement)" />
    <sections xmi:id="ASCCRM-CWE-252-resource-comment" xmi:type="ipmss:PatternSection"
    name="Comment" body="Measure element contributes to Reliability and Security" />
    <roles xmi:id="ASCCRM-CWE-252-resource-roles-controlElement" xmi:type="ipmss:Role"
    name="ControlElement" />
    <roles xmi:id="ASCCRM-CWE-252-resource-roles-resourceAccessStatement" xmi:type="ipmss:Role"
    name="ResourceAccessStatement" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCRM-CWE-396"
  name="ASCCRM-CWE-396: Declaration of Catch for Generic Exception">
    <relatedPatts xmi:id="ASCCRM-CWE-396-relatedPatts-reliability" xmi:type="ipmss:MemberOf"
    category="ASCCRM_Reliability" />
    <sections xmi:id="ASCCRM-CWE-396-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid failure to use dedicated exception types" />
    <sections xmi:id="ASCCRM-CWE-396-consequence" xmi:type="ipmss:PatternSection"
    name="Consequence"
    body="Software without consistent and complete handling of errors and exceptions makes it impossible to accurately identify and adequately respond to unusual and unexpected situations." />
    <sections xmi:id="ASCCRM-CWE-396-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where the named callable control element or method control element contains a catch unit which declares to catch an exception parameter whose data type is part of a list of overly broad exception data types" />
    <sections xmi:id="ASCCRM-CWE-396-description" xmi:type="ipmss:PatternSection"
    name="Description"
    body="This pattern identifies situations where the &lt;ControlElement&gt; named callable control element (code:CallableUnit with code:CallableKind 'regular', 'external' or 'stored') or method control element (code:MethodUnit) contains the &lt;CatchElement&gt; catch unit (action:CatchUnit) which declares to catch the &lt;CaughtExceptionParameter&gt; exception parameter (code:ParameterUnit with code:ParameterKind 'exception') whose datatype (code:DataType) is part of the &lt;OverlyBroadExceptionTypeList&gt; list of overly broad exception datatypes. As an example, with JAVA, &lt;OverlyBroadExceptionTypeList&gt; is {'java.lang.Exception'}." />
    <sections xmi:id="ASCCRM-CWE-396-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCRM-CWE-396(ControlElement: controlElement,CatchElement: catchElement, CaughtExceptionParameter: caughtExceptionParameter, OverlyBroadExceptionTypeList: overlyBroadExceptionTypeList)" />
    <sections xmi:id="ASCCRM-CWE-396-input" xmi:type="ipmss:PatternSection" name="Input"
    body="&lt;OverlyBroadExceptionTypeList&gt; list of overly broad exception datatypes" />
    <sections xmi:id="ASCCRM-CWE-396-comment" xmi:type="ipmss:PatternSection" name="Comment"
    body="Measure element contributes to Reliability and Security" />
    <roles xmi:id="ASCCRM-CWE-396-roles-controlElement" xmi:type="ipmss:Role"
    name="ControlElement" />
    <roles xmi:id="ASCCRM-CWE-396-roles-catchElement" xmi:type="ipmss:Role" name="CatchElement" />
    <roles xmi:id="ASCCRM-CWE-396-roles-caughtExceptionParameter" xmi:type="ipmss:Role"
    name="CaughtExceptionParameter" />
    <roles xmi:id="ASCCRM-CWE-396-roles-overlyBroadExceptionTypeList" xmi:type="ipmss:Role"
    name="OverlyBroadExceptionTypeList" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCRM-CWE-397"
  name="ASCCRM-CWE-397: Declaration of Throws for Generic Exception">
    <relatedPatts xmi:id="ASCCRM-CWE-397-relatedPatts-reliability" xmi:type="ipmss:MemberOf"
    category="ASCCRM_Reliability" />
    <sections xmi:id="ASCCRM-CWE-397-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid failure to use dedicated exception types" />
    <sections xmi:id="ASCCRM-CWE-397-consequence" xmi:type="ipmss:PatternSection"
    name="Consequence"
    body="Software without consistent and complete handling of errors and exceptions makes it impossible to accurately identify and adequately respond to unusual and unexpected situations." />
    <sections xmi:id="ASCCRM-CWE-397-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where the named callable control element or method control element throws an exception parameter whose data type is part of a list of overly broad exception data types" />
    <sections xmi:id="ASCCRM-CWE-397-description" xmi:type="ipmss:PatternSection"
    name="Description"
    body="This pattern identifies situations where the &lt;ControlElement&gt; named callable control element (code:CallableUnit with code:CallableKind 'regular', 'external' or 'stored') or method control element (code:MethodUnit) throws with the &lt;ThrowsAction&gt; Throws action (action:Throws) the &lt;ThrownExceptionParameter&gt; exception parameter (code:ParameterUnit with code:ParameterKind 'exception') whose datatype (code:Datatype) is part of the &lt;OverlyBroadExceptionTypeList&gt; list of overly broad exception datatypes. As an example, with JAVA, &lt;OverlyBroadExceptionTypeList&gt; is {'java.lang.Exception'}." />
    <sections xmi:id="ASCCRM-CWE-397-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCRM-CWE-397(ControlElement: controlElement,ThrowsAction: throwsAction, ThrownExceptionParameter: thrownExceptionParameter, OverlyBroadExceptionTypeList: overlyBroadExceptionTypeList)" />
    <sections xmi:id="ASCCRM-CWE-397-input" xmi:type="ipmss:PatternSection" name="Input"
    body="&lt;OverlyBroadExceptionTypeList&gt; list of overly broad exception datatypes" />
    <sections xmi:id="ASCCRM-CWE-397-comment" xmi:type="ipmss:PatternSection" name="Comment"
    body="Measure element contributes to Reliability and Security" />
    <roles xmi:id="ASCCRM-CWE-397-roles-controlElement" xmi:type="ipmss:Role"
    name="ControlElement" />
    <roles xmi:id="ASCCRM-CWE-397-roles-throwsAction" xmi:type="ipmss:Role" name="ThrowsAction" />
    <roles xmi:id="ASCCRM-CWE-397-roles-thrownExceptionParameter" xmi:type="ipmss:Role"
    name="ThrownExceptionParameter" />
    <roles xmi:id="ASCCRM-CWE-397-roles-overlyBroadExceptionTypeList" xmi:type="ipmss:Role"
    name="OverlyBroadExceptionTypeList" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCRM-CWE-456"
  name="ASCCRM-CWE-456: Storable and Member Data Element Missing Initialization">
    <relatedPatts xmi:id="ASCCRM-CWE-456-relatedPatts-reliability" xmi:type="ipmss:MemberOf"
    category="ASCCRM_Reliability" />
    <sections xmi:id="ASCCRM-CWE-456-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid failure to explicitly initialize software data elements in use" />
    <sections xmi:id="ASCCRM-CWE-456-consequence" xmi:type="ipmss:PatternSection"
    name="Consequence"
    body="Software featuring known weak coding practices results in unexpected and erroneous behaviors" />
    <sections xmi:id="ASCCRM-CWE-456-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where a storable data element or member data element is declared by the ‘Create’ action, then is evaluated in a ‘Read’ action without ever being initialized by a ‘Write’ action prior to the evaluation" />
    <sections xmi:id="ASCCRM-CWE-456-description" xmi:type="ipmss:PatternSection"
    name="Description"
    body="This pattern identifies situations where the &lt;DataElement&gt; storable data element (code:StorableUnit) or member data element (code:MemberUnit) is declared by the &lt;DeclarationStatement&gt; Create action (action:Creates), then evaluated in the &lt;EvaluationStatement&gt; Read action (action:Reads) without ever being initialized by a Write action (action:Writes) prior to the evaluation." />
    <sections xmi:id="ASCCRM-CWE-456-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCRM-CWE-456(DataElement: dataElement,DeclarationStatement: declarationStatement, EvaluationStatement: evaluationStatement)" />
    <sections xmi:id="ASCCRM-CWE-456-comment" xmi:type="ipmss:PatternSection" name="Comment"
    body="Measure element contributes to Reliability and Security" />
    <roles xmi:id="ASCCRM-CWE-456-roles-dataElement" xmi:type="ipmss:Role" name="DataElement" />
    <roles xmi:id="ASCCRM-CWE-456-roles-declarationStatement" xmi:type="ipmss:Role"
    name="DeclarationStatement" />
    <roles xmi:id="ASCCRM-CWE-456-roles-evaluationStatement" xmi:type="ipmss:Role"
    name="EvaluationStatement" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCRM-CWE-674" name="ASCCRM-CWE-674: Uncontrolled Recursion">
    <relatedPatts xmi:id="ASCCRM-CWE-674-relatedPatts-reliability" xmi:type="ipmss:MemberOf"
    category="ASCCRM_Reliability" />
    <sections xmi:id="ASCCRM-CWE-674-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid infinite recursions" />
    <sections xmi:id="ASCCRM-CWE-674-consequence" xmi:type="ipmss:PatternSection"
    name="Consequence"
    body="Software that is unaware of recursion incurs the risk of exceeding resource and capacity limits" />
    <sections xmi:id="ASCCRM-CWE-674-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where the named callable control element or method control element starts the execution path which containts itself" />
    <sections xmi:id="ASCCRM-CWE-674-description" xmi:type="ipmss:PatternSection"
    name="Description"
    body="This pattern identifies situations where the &lt;ControlElement&gt; named callable control element (code:CallableUnit with code:CallableKind 'regular', 'external' or 'stored') or method control element (code:MethodUnit) features the &lt;RecursiveExecutionPath&gt; execution path (action:BlockUnit composed of action:ActionElements with action:CallableRelations to code:ControlElements) which contains itself." />
    <sections xmi:id="ASCCRM-CWE-674-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCRM-CWE-674(ControlElement: controlElement,RecursiveExecutionPath: recursiveExecutionPath)" />
    <roles xmi:id="ASCCRM-CWE-674-roles-controlElement" xmi:type="ipmss:Role"
    name="ControlElement" />
    <roles xmi:id="ASCCRM-CWE-674-roles-recursiveExecutionPath" xmi:type="ipmss:Role"
    name="RecursiveExecutionPath" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCRM-CWE-704"
  name="ASCCRM-CWE-704: Incorrect Type Conversion or Cast">
    <relatedPatts xmi:id="ASCCRM-CWE-704-relatedPatts-reliability" xmi:type="ipmss:MemberOf"
    category="ASCCRM_Reliability" />
    <sections xmi:id="ASCCRM-CWE-704-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid data corruption during incompatible mutation" />
    <sections xmi:id="ASCCRM-CWE-704-consequence" xmi:type="ipmss:PatternSection"
    name="Consequence"
    body="Software featuring known weak coding practices results in unexpected and erroneous behaviors" />
    <sections xmi:id="ASCCRM-CWE-704-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where a storable element or member element is declared with a data type in the ‘Create’ action, and then is updated with a value which is cast via a type cast action into a second data type, which is incompatible with the first data type" />
    <sections xmi:id="ASCCRM-CWE-704-description" xmi:type="ipmss:PatternSection"
    name="Description"
    body="This pattern identifies situations where the &lt;DataElement&gt; storable element (code:StorableElement) or member element (code:MemberUnit) is declared with the &lt;DataType&gt; datatype (code:DataType) in the &lt;DataElementDeclarationStatement&gt; Create action (action:Creates), then updated with a value which is cast via the &lt;TypeCastExpression&gt; type cast action (action:ActionElement with micro KDM kind 'TypeCast' or 'DynCast') into the &lt;TargetDataType&gt; second datatype, which is incompatible with the first one." />
    <sections xmi:id="ASCCRM-CWE-704-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCRM-CWE-704(DataElement: dataElement,DataElementDeclarationStatement: dataElementDeclarationStatement, DataType: dataType, TypeCastExpression: typeCastExpression, TargetDataType: targetDataType)" />
    <roles xmi:id="ASCCRM-CWE-704-roles-dataElement" xmi:type="ipmss:Role" name="DataElement" />
    <roles xmi:id="ASCCRM-CWE-704-roles-dataElementDeclarationStatement" xmi:type="ipmss:Role"
    name="DataElementDeclarationStatement" />
    <roles xmi:id="ASCCRM-CWE-704-roles-dataType" xmi:type="ipmss:Role" name="DataType" />
    <roles xmi:id="ASCCRM-CWE-704-roles-typeCastExpression" xmi:type="ipmss:Role"
    name="TypeCastExpression" />
    <roles xmi:id="ASCCRM-CWE-704-roles-targetDataType" xmi:type="ipmss:Role"
    name="TargetDataType" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCRM-CWE-772"
  name="ASCCRM-CWE-772: Missing Release of Resource after Effective Lifetime">
    <relatedPatts xmi:id="ASCCRM-CWE-772-relatedPatts-reliability" xmi:type="ipmss:MemberOf"
    category="ASCCRM_Reliability" />
    <sections xmi:id="ASCCRM-CWE-772-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid resource hoarding and consequently resource depletion" />
    <sections xmi:id="ASCCRM-CWE-772-consequence" xmi:type="ipmss:PatternSection"
    name="Consequence"
    body="Software that is unaware of resource bounds or fails to monitor resources incurs the risk of exceeding resource and capacity limits" />
    <sections xmi:id="ASCCRM-CWE-772-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where a platform resource is allocated and assigned a unique resource handler value via a manage resource action, and its unique resource handler value is used throughout the application along a transformation sequence composed of action elements with data relations, some of which are part of named callable and method control elements, but none of which is a resource release statement" />
    <sections xmi:id="ASCCRM-CWE-772-description" xmi:type="ipmss:PatternSection"
    name="Description"
    body="This pattern identifies situations where the &lt;PlatformResource&gt; platform resource (platform:ResourceType) is allocated and assigned a unique resource handler value via the &lt;ResourceAllocationStatement&gt; ManagesResource action (platform:ManagesResources), its unique resource handler value is used throughout the application, along the &lt;TransformationSequence&gt; sequence (action:BlockUnit) composed of ActionElements with DataRelations relations (action:Reads, action:Writes, action:Addresses), some of which being part of named callable and method control elements (code:MethodUnit or code:CallableUnit with code:CallableKind 'regular', 'external' or 'stored'), none of which being a resource release statement (platform:ManagesResource)." />
    <sections xmi:id="ASCCRM-CWE-772-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCRM-CWE-772(PlatformResource: platformResource,ResourceAllocationStatement: resourceAllocationStatement, TransformationSequence: transformationSequence)" />
    <sections xmi:id="ASCCRM-CWE-772-comment" xmi:type="ipmss:PatternSection" name="Comment"
    body="Measure element contributes to Reliability and Security" />
    <roles xmi:id="ASCCRM-CWE-772-roles-platformResource" xmi:type="ipmss:Role"
    name="PlatformResource" />
    <roles xmi:id="ASCCRM-CWE-772-roles-resourceAllocationStatement" xmi:type="ipmss:Role"
    name="ResourceAllocationStatement" />
    <roles xmi:id="ASCCRM-CWE-772-roles-transformationSequence" xmi:type="ipmss:Role"
    name="TransformationSequence" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCRM-CWE-788"
  name="ASCCRM-CWE-788: Memory Location Access After End of Buffer">
    <relatedPatts xmi:id="ASCCRM-CWE-788-relatedPatts-reliability" xmi:type="ipmss:MemberOf"
    category="ASCCRM_Reliability" />
    <sections xmi:id="ASCCRM-CWE-788-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid resource out-of-bound access" />
    <sections xmi:id="ASCCRM-CWE-788-consequence" xmi:type="ipmss:PatternSection"
    name="Consequence"
    body="Software that is unaware of resource bounds or fails to monitor resources incurs the risk of exceeding resource and capacity limits" />
    <sections xmi:id="ASCCRM-CWE-788-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where a value element is transformed throughout the application along a sequence composed of action elements with data relations, some of which are part of named callable and method control elements, and ultimately used as an index element to access a storable or member data element in a buffer ‘Read’ or ‘Write’ access action; yet none of the callable or method control elements of the transformation sequence perform a range check on the buffer whose maximum size was defined in the buffer creation action" />
    <sections xmi:id="ASCCRM-CWE-788-description" xmi:type="ipmss:PatternSection"
    name="Description"
    body="This pattern identifies situations where the &lt;ValueElement&gt; value element (code:Value) is transformed throughout the application along the &lt;TransformationSequence&gt; sequence (action:BlockUnit) composed of ActionElements with DataRelations relations (action:Reads, action:Writes, action:Addresses), some of which being part of named callable and method control elements (code:MethodUnit or code:CallableUnit with code:CallableKind 'regular', 'external' or 'stored'), and ultimately used as an index element (code:IndexUnit) to access a storable or member data element (code:StorableUnit or code:MemberUnit) in the &lt;BufferAccessStatement&gt; buffer Read or Write access action (action:Reads, action:Writes, action:Addresses); none of the callable or method control element of the transformation sequence being a range check with regards to the &lt;Buffer&gt; buffer whose maximum size was defined in the &lt;BufferAllocationStatement&gt; buffer creation action (action:Creates)." />
    <sections xmi:id="ASCCRM-CWE-788-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCRM-CWE-788(ValueElement: valueElement,Buffer: buffer, BufferReferenceStatement: bufferReferenceStatement, BufferAllocationStatement: bufferAllocationStatement, TransformationSequence: transformationSequence)" />
    <roles xmi:id="ASCCRM-CWE-788-roles-valueElement" xmi:type="ipmss:Role" name="ValueElement" />
    <roles xmi:id="ASCCRM-CWE-788-roles-buffer" xmi:type="ipmss:Role" name="Buffer" />
    <roles xmi:id="ASCCRM-CWE-788-roles-bufferReferenceStatement" xmi:type="ipmss:Role"
    name="BufferReferenceStatement" />
    <roles xmi:id="ASCCRM-CWE-788-roles-bufferAllocationStatement" xmi:type="ipmss:Role"
    name="BufferAllocationStatement" />
    <roles xmi:id="ASCCRM-CWE-788-roles-transformationSequence" xmi:type="ipmss:Role"
    name="TransformationSequence" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCRM-RLB-1" name="ASCCRM-RLB-1: Empty Exception Block">
    <relatedPatts xmi:id="ASCCRM-RLB-1-relatedPatts-reliability" xmi:type="ipmss:MemberOf"
    category="ASCCRM_Reliability" />
    <sections xmi:id="ASCCRM-RLB-1-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid improper responses to unusual and unexpected situations" />
    <sections xmi:id="ASCCRM-RLB-1-consequence" xmi:type="ipmss:PatternSection" name="Consequence"
    body="Software without consistent and complete handling of errors and exceptions makes it impossible to accurately identify and adequately respond to unusual and unexpected situations." />
    <sections xmi:id="ASCCRM-RLB-1-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where an exception handling block (such as Catch and Finally blocks) of the named callable and method control elements does not contain any other control element" />
    <sections xmi:id="ASCCRM-RLB-1-description" xmi:type="ipmss:PatternSection" name="Description"
    body="This pattern identifies situations where the &lt;ExceptionHandlingBlock&gt; exception handling block - such as Catch and Finally blocks - (action:FinallyUnit or action:CatchUnit) of the &lt;ControlElement&gt; named callable and method control elements (code:MethodUnit or code:CallableUnit with code:CallableKind 'regular', 'external' or 'stored') does not contain any other control element (code:ControlElement)." />
    <sections xmi:id="ASCCRM-RLB-1-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCRM-RLB-1(ControlElement: controlElement,ExceptionHandlingBlock: exceptionHandlingBlock)" />
    <roles xmi:id="ASCCRM-RLB-1-roles-controlElement" xmi:type="ipmss:Role"
    name="ControlElement" />
    <roles xmi:id="ASCCRM-RLB-1-roles-exceptionHandlingBlock" xmi:type="ipmss:Role"
    name="ExceptionHandlingBlock" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCRM-RLB-10"
  name="ASCCRM-RLB-10: Data Access Control Element from Outside Designated Data Manager Component">
    <relatedPatts xmi:id="ASCCRM-RLB-10-relatedPatts-reliability" xmi:type="ipmss:MemberOf"
    category="ASCCRM_Reliability" />
    <sections xmi:id="ASCCRM-RLB-10-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid circumventing dedicated and specialized data manager component(s)" />
    <sections xmi:id="ASCCRM-RLB-10-consequence" xmi:type="ipmss:PatternSection" name="Consequence"
    body="Software without consistently-enforced approach to data integrity management incurs the risk of behaving unexpectedly" />
    <sections xmi:id="ASCCRM-RLB-10-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where named callable control element or method control element executes a data action which is not part of a component on the dedicated data access component list thus circumventing the intended design for data access (the unlisted data access component can be either client-side or server-side, which means that data access components can be developed using non-SQL languages)" />
    <sections xmi:id="ASCCRM-RLB-10-description" xmi:type="ipmss:PatternSection" name="Description"
    body="This pattern identifies situations where named callable control element (code:CallableUnit with code:CallableKind 'regular', 'external' or 'stored') or method control element (code:MethodUnit) executes the &lt;DataAccessStatement&gt; data action (data:DataActions including data:ReadsColumnSet or data:WritesColumnSet) although it is not part of a component (structure:Component) identified as one of the dedicated data access component from the &lt;DataAccessComponentList&gt; list. The data access component can be either client-side either server-side, which means that data access components can be developped using non-SQL languages. The pattern simply identifies situations where the implementation does not follow the intended design, regardless of the design." />
    <sections xmi:id="ASCCRM-RLB-10-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCRM-RLB-10(ControlElement: controlElement,DataAccessStatement: dataAccessStatement, CentralDataManagerComponent: centralDataManagerComponent, DataAccessComponentList: dataAccessComponentList)" />
    <sections xmi:id="ASCCRM-RLB-10-input" xmi:type="ipmss:PatternSection" name="Input"
    body="&lt;DataAccessComponentList&gt; list of components designated to manage data accesses" />
    <sections xmi:id="ASCCRM-RLB-10-comment" xmi:type="ipmss:PatternSection" name="Comment"
    body="Measure element contributes to Reliability and Performance Efficiency (as PRF-1)" />
    <roles xmi:id="ASCCRM-RLB-10-roles-controlElement" xmi:type="ipmss:Role"
    name="ControlElement" />
    <roles xmi:id="ASCCRM-RLB-10-roles-dataAccessStatement" xmi:type="ipmss:Role"
    name="DataAccessStatement" />
    <roles xmi:id="ASCCRM-RLB-10-roles-centralDataManagerComponent" xmi:type="ipmss:Role"
    name="CentralDataManagerComponent" />
    <roles xmi:id="ASCCRM-RLB-10-roles-dataAccessComponentList" xmi:type="ipmss:Role"
    name="DataAccessComponentList" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCRM-RLB-11"
  name="ASCCRM-RLB-11: Named Callable and Method Control Element in Multi-Thread Context with non-Final Static Storable or Member Element">

    <relatedPatts xmi:id="ASCCRM-RLB-11-relatedPatts-reliability" xmi:type="ipmss:MemberOf"
    category="ASCCRM_Reliability" />
    <sections xmi:id="ASCCRM-RLB-11-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid unsafe implementations in multi-thread environments that fail to protect state" />
    <sections xmi:id="ASCCRM-RLB-11-consequence" xmi:type="ipmss:PatternSection" name="Consequence"
    body="Software deployed in multi-thread environments that does not protect their state can experience deadlock or livelock" />
    <sections xmi:id="ASCCRM-RLB-11-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where a named callable control element or method control element owns an unsafe non-final static storable or member data element while it operates in a multi-threaded environment" />
    <sections xmi:id="ASCCRM-RLB-11-description" xmi:type="ipmss:PatternSection" name="Description"
    body="This pattern identifies situations where the &lt;ControlElement&gt; named callable control element (code:CallableUnit with code:CallableKind 'regular', 'external' or 'stored') or method control element (code:MethodUnit) owns unsafe &lt;NonFinalStaticField&gt; non-final static storable or member data element (code:StorableUnit or code:MemberUnit with code:StorableKind 'static' and without code:ExportKind 'final') while it operates in a multi-threaded environment (when platform:DeployedResource owns platform:Thread)." />
    <sections xmi:id="ASCCRM-RLB-11-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCRM-RLB-11(ControlElement: controlElement,NonFinalStaticField: nonFinalStaticField)" />
    <roles xmi:id="ASCCRM-RLB-11-roles-controlElement" xmi:type="ipmss:Role"
    name="ControlElement" />
    <roles xmi:id="ASCCRM-RLB-11-roles-nonFinalStaticField" xmi:type="ipmss:Role"
    name="NonFinalStaticField" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCRM-RLB-12"
  name="ASCCRM-RLB-12: Singleton Class Instance Creation without Proper Lock Element Management">
    <relatedPatts xmi:id="ASCCRM-RLB-12-relatedPatts-reliability" xmi:type="ipmss:MemberOf"
    category="ASCCRM_Reliability" />
    <sections xmi:id="ASCCRM-RLB-12-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid incorrect implementation of singleton patterns caused by improperly-locked instantiations" />
    <sections xmi:id="ASCCRM-RLB-12-consequence" xmi:type="ipmss:PatternSection" name="Consequence"
    body="Software deployed in multi-thread environments that does not protect their state can experience deadlock or livelock" />
    <sections xmi:id="ASCCRM-RLB-12-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where a singleton class element, (that is, a class element that can be used only once in the 'to' association of a ‘Create’ action) is instantiated with the ‘Creates’ action element without any prior locking mechanism activation" />
    <sections xmi:id="ASCCRM-RLB-12-description" xmi:type="ipmss:PatternSection" name="Description"
    body="This pattern identifies situations where the &lt;SingletonClass&gt; singleton class element (code:StorableUnit with code:DataType code:ClassUnit), that is, a class element that can be used only once in the 'to' assoction of a Create action (action:Creates), is instanciated with the &lt;InstanciationStatement&gt; Creates action element (action:Creates) without any prior locking mechanism activation (platform:PlatformActions with a platform:LockResource)." />
    <sections xmi:id="ASCCRM-RLB-12-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCRM-RLB-12(SingletonClass: singletonClass,InstanciationStatement: instanciationStatement)" />
    <roles xmi:id="ASCCRM-RLB-12-roles-singletonClass" xmi:type="ipmss:Role"
    name="SingletonClass" />
    <roles xmi:id="ASCCRM-RLB-12-roles-instanciationStatement" xmi:type="ipmss:Role"
    name="InstanciationStatement" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCRM-RLB-13"
  name="ASCCRM-RLB-13: Inter-Module Dependency Cycles">
    <relatedPatts xmi:id="ASCCRM-RLB-13-relatedPatts-reliability" xmi:type="ipmss:MemberOf"
    category="ASCCRM_Reliability" />
    <sections xmi:id="ASCCRM-RLB-13-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid circular dependencies between modules" />
    <sections xmi:id="ASCCRM-RLB-13-consequence" xmi:type="ipmss:PatternSection" name="Consequence"
    body="Software deployed in multi-thread environments that does not protect their state can experience deadlock or livelock" />
    <sections xmi:id="ASCCRM-RLB-13-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where a module has references that cycle back to itself via the module callable or data relations cycle (for example, with JAVA this pattern means cycles between packages)" />
    <sections xmi:id="ASCCRM-RLB-13-description" xmi:type="ipmss:PatternSection" name="Description"
    body="This pattern identifies situations where the &lt;Module&gt; module (code:Module) has references that cycle back to itself via the &lt;ModuleDependencyCycle&gt; module callable or data relations cycle (action:BlockUnit composed of action:CallableActions or action:DataActions). As an example, with JAVA, this pattern means cycles between packages (code:Package)." />
    <sections xmi:id="ASCCRM-RLB-13-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCRM-RLB-13(Module: module,ModuleDependencyCycle: moduleDependencyCycle)" />
    <sections xmi:id="ASCCRM-RLB-13-comment" xmi:type="ipmss:PatternSection" name="Comment"
    body="Measure element contributes to Reliability and Maintainability" />
    <roles xmi:id="ASCCRM-RLB-13-roles-module" xmi:type="ipmss:Role" name="Module" />
    <roles xmi:id="ASCCRM-RLB-13-roles-moduleDependencyCycle" xmi:type="ipmss:Role"
    name="ModuleDependencyCycle" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCRM-RLB-14"
  name="ASCCRM-RLB-14: Parent Class Element with References to Child Class Element">
    <relatedPatts xmi:id="ASCCRM-RLB-14-relatedPatts-reliability" xmi:type="ipmss:MemberOf"
    category="ASCCRM_Reliability" />
    <sections xmi:id="ASCCRM-RLB-14-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid parent class references to child class(es)" />
    <sections xmi:id="ASCCRM-RLB-14-consequence" xmi:type="ipmss:PatternSection" name="Consequence"
    body="Software that does not follow the principles of inheritance and polymorphism results in unexpected behaviors" />
    <sections xmi:id="ASCCRM-RLB-14-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where a parent class element that is used in the 'to' association of an Extends class relation, references the child class element used in the 'from' association of an Extends class relation, directly or indirectly through a parent and child class element, using a callable or data relation (the reference statement is made directly to the child class element or to any one of its own method or member elements)" />
    <sections xmi:id="ASCCRM-RLB-14-description" xmi:type="ipmss:PatternSection" name="Description"
    body="This pattern identifies situations where the &lt;ParentClass&gt; parent class class element (code:StorableUnit of code:DataType code:ClassUnit) that is used in the 'to' association of the Extends class relation, references the &lt;ChildClass&gt; child class element (code:StorableUnit of code:DataType code:ClassUnit) used in the 'from' association of the Extends class relation (code:Extends), directly or indirectly through parent and child class element, with the &lt;ReferenceStatement&gt; callable or data relations (action:CallableRelations or action:DataRelations). The reference statement is made directly to the child class element or to any one of its own method or member elements (code:MethodUnit and code:MemberUnit)." />
    <sections xmi:id="ASCCRM-RLB-14-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCRM-RLB-14(ParentClass: parentClass,ChildClass: childClass, ReferenceStatement: referenceStatement)" />
    <roles xmi:id="ASCCRM-RLB-14-roles-parentClass" xmi:type="ipmss:Role" name="ParentClass" />
    <roles xmi:id="ASCCRM-RLB-14-roles-childClass" xmi:type="ipmss:Role" name="ChildClass" />
    <roles xmi:id="ASCCRM-RLB-14-roles-referenceStatement" xmi:type="ipmss:Role"
    name="ReferenceStatement" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCRM-RLB-15"
  name="ASCCRM-RLB-15: Class Element with Virtual Method Element wihout Virtual Destructor">
    <relatedPatts xmi:id="ASCCRM-RLB-15-relatedPatts-reliability" xmi:type="ipmss:MemberOf"
    category="ASCCRM_Reliability" />
    <sections xmi:id="ASCCRM-RLB-15-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid failing to include a virtual destructor in a class that includes a virtual method(s)" />
    <sections xmi:id="ASCCRM-RLB-15-consequence" xmi:type="ipmss:PatternSection" name="Consequence"
    body="Software that does not follow the principles of inheritance and polymorphism results in unexpected behaviors" />
    <sections xmi:id="ASCCRM-RLB-15-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where a class element contains a virtual method element yet does not declare any virtual destructor" />
    <sections xmi:id="ASCCRM-RLB-15-description" xmi:type="ipmss:PatternSection" name="Description"
    body="This pattern identifies situations where the &lt;Class&gt; class element (code:StorableUnit of code:DataType code:ClassUnit) contains the &lt;VirtualMethod&gt; virtual method element (code:MethodUnit with code:MethodKind 'virtual') yet without declaring any virtual destructor (code:MethodUnit with code:MethodKind 'virtual' and 'destructor')" />
    <sections xmi:id="ASCCRM-RLB-15-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCRM-RLB-15(Class: class,VirtualMethod: virtualMethod)" />
    <roles xmi:id="ASCCRM-RLB-15-roles-class" xmi:type="ipmss:Role" name="Class" />
    <roles xmi:id="ASCCRM-RLB-15-roles-virtualMethod" xmi:type="ipmss:Role" name="VirtualMethod" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCRM-RLB-16"
  name="ASCCRM-RLB-16: Parent Class Element without Virtual Destructor Method Element">
    <relatedPatts xmi:id="ASCCRM-RLB-16-relatedPatts-reliability" xmi:type="ipmss:MemberOf"
    category="ASCCRM_Reliability" />
    <sections xmi:id="ASCCRM-RLB-16-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid failing to include a virtual destructor in a parent class" />
    <sections xmi:id="ASCCRM-RLB-16-consequence" xmi:type="ipmss:PatternSection" name="Consequence"
    body="Software that does not follow the principles of inheritance and polymorphism results in unexpected behaviors" />
    <sections xmi:id="ASCCRM-RLB-16-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where, for languages in which custom destructors can be written, the parent class of a child class element via an Extends class relation has no virtual destructor" />
    <sections xmi:id="ASCCRM-RLB-16-description" xmi:type="ipmss:PatternSection" name="Description"
    body="This pattern identifies situations where, with languages where custom destructors can be written, the &lt;ParentClass&gt; class element (code:StorableUnit of code:DataType code:ClassUnit) parent of the &lt;ChildClass&gt; class element via an Extends class relation (code:Extends) has no virtual destructor (code:MethodUnit with code:MethodKind 'virtual' and 'destructor')" />
    <sections xmi:id="ASCCRM-RLB-16-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCRM-RLB-16(ParentClass: parentClass,ChildClass: childClass)" />
    <roles xmi:id="ASCCRM-RLB-16-roles-parentClass" xmi:type="ipmss:Role" name="ParentClass" />
    <roles xmi:id="ASCCRM-RLB-16-roles-childClass" xmi:type="ipmss:Role" name="ChildClass" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCRM-RLB-17"
  name="ASCCRM-RLB-17: Child Class Element wihout Virtual Destructor unlike its Parent Class Element">

    <relatedPatts xmi:id="ASCCRM-RLB-17-relatedPatts-reliability" xmi:type="ipmss:MemberOf"
    category="ASCCRM_Reliability" />
    <sections xmi:id="ASCCRM-RLB-17-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid failing to include a virtual destructor in a child class despite the existence of a virtual destructor in the parent class" />
    <sections xmi:id="ASCCRM-RLB-17-consequence" xmi:type="ipmss:PatternSection" name="Consequence"
    body="Software that does not follow the principles of inheritance and polymorphism results in unexpected behaviors" />
    <sections xmi:id="ASCCRM-RLB-17-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where, for languages in which custom destructors can be written, the child class element used in the 'from' association of a Extends class relation does not have its own virtual destructor, while its parent class element that is used in the 'to' association of the Extends class relation has a virtual destructor" />
    <sections xmi:id="ASCCRM-RLB-17-description" xmi:type="ipmss:PatternSection" name="Description"
    body="This pattern idendifies situations where, with languages where custom destructors can be written, the &lt;ChildClass&gt; class element (code:StorableUnit of code:DataType code:ClassUnit) used in the 'from' association of a Extends class relation (code:Extends) whose &lt;ParentClass&gt; parent class class element (code:StorableUnit of code:DataType code:ClassUnit) that is used in the 'to' association of the Extends class relation, directly or indirectly through parent and child class element, has the &lt;ParentVirtualDestructor&gt; virtual destructor (code:MethodUnit with code:MethodKind 'virtual' and 'destructor'), that lack its own virtual destructor (code:MethodUnit with code:MethodKind 'virtual' and 'destructor')" />
    <sections xmi:id="ASCCRM-RLB-17-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCRM-RLB-17(ParentClass: parentClass,ChildClass: childClass, ParentVirtualDestructor: parentVirtualDestructor)" />
    <roles xmi:id="ASCCRM-RLB-17-roles-parentClass" xmi:type="ipmss:Role" name="ParentClass" />
    <roles xmi:id="ASCCRM-RLB-17-roles-childClass" xmi:type="ipmss:Role" name="ChildClass" />
    <roles xmi:id="ASCCRM-RLB-17-roles-parentVirtualDestructor" xmi:type="ipmss:Role"
    name="ParentVirtualDestructor" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCRM-RLB-18"
  name="ASCCRM-RLB-18: Storable and Member Data Element Initialization with Hard-Coded Network Resource Configuration Data">

    <relatedPatts xmi:id="ASCCRM-RLB-18-relatedPatts-reliability" xmi:type="ipmss:MemberOf"
    category="ASCCRM_Reliability" />
    <sections xmi:id="ASCCRM-RLB-18-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid the existence of hard-coded network configuration elements" />
    <sections xmi:id="ASCCRM-RLB-18-consequence" xmi:type="ipmss:PatternSection" name="Consequence"
    body="Software featuring network configuration within its own code incurs the risk of failure when the remote resource change" />
    <sections xmi:id="ASCCRM-RLB-18-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where a storable data element or member data element is initialized by a ‘Write’ action with a hard-coded value corresponding to network resource identifications" />
    <sections xmi:id="ASCCRM-RLB-18-description" xmi:type="ipmss:PatternSection" name="Description"
    body="This pattern identifies situations where the &lt;DataElement&gt; storable data element (code:StorableUnit) or member data element (code:MemberUnit) is initialized by the &lt;InitialisationStatement&gt; Write action (action:Writes) with the &lt;NetwordResourceIdentificationValue&gt; hard-coded value (code:Value) corresponding to network resource identifications (platform:MarshalledResource or platform:MessagingResource or platform:Machine)." />
    <sections xmi:id="ASCCRM-RLB-18-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCRM-RLB-18(DataElement: dataElement,InitialisationStatement: initialisationStatement, NetwordResourceIdentificationValue: networdResourceIdentificationValue)" />
    <roles xmi:id="ASCCRM-RLB-18-roles-dataElement" xmi:type="ipmss:Role" name="DataElement" />
    <roles xmi:id="ASCCRM-RLB-18-roles-initialisationStatement" xmi:type="ipmss:Role"
    name="InitialisationStatement" />
    <roles xmi:id="ASCCRM-RLB-18-roles-networdResourceIdentificationValue" xmi:type="ipmss:Role"
    name="NetwordResourceIdentificationValue" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCRM-RLB-19"
  name="ASCCRM-RLB-19: Synchronous Call Time-Out Absence">
    <relatedPatts xmi:id="ASCCRM-RLB-19-relatedPatts-reliability" xmi:type="ipmss:MemberOf"
    category="ASCCRM_Reliability" />
    <sections xmi:id="ASCCRM-RLB-19-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid synchronous remote resource access without handling time-out capabilities" />
    <sections xmi:id="ASCCRM-RLB-19-consequence" xmi:type="ipmss:PatternSection" name="Consequence"
    body="Software featuring blocking calls to remote systems incurs the risk of own failure when the remote systems fails to process the call correctly." />
    <sections xmi:id="ASCCRM-RLB-19-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where a synchronous call instruction is initiated but the time-out argument is not set or is set to infinite time" />
    <sections xmi:id="ASCCRM-RLB-19-description" xmi:type="ipmss:PatternSection" name="Description"
    body="This pattern identifies situations where the &lt;SynchronousCallInstruction&gt; synchronous call instruction is initiated but the &lt;TimeOutArgument&gt; time-out argument is not set or set to infinite time." />
    <sections xmi:id="ASCCRM-RLB-19-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCRM-RLB-19(SyncrhonousCallInstruction: syncrhonousCallInstruction,TimeOutArgumentValue: timeOutArgumentValue)" />
    <roles xmi:id="ASCCRM-RLB-19-roles-syncrhonousCallInstruction" xmi:type="ipmss:Role"
    name="SyncrhonousCallInstruction" />
    <roles xmi:id="ASCCRM-RLB-19-roles-timeOutArgumentValue" xmi:type="ipmss:Role"
    name="TimeOutArgumentValue" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCRM-RLB-2"
  name="ASCCRM-RLB-2: Serializable Storable Data Element without Serialization Control Element">
    <relatedPatts xmi:id="ASCCRM-RLB-2-relatedPatts-reliability" xmi:type="ipmss:MemberOf"
    category="ASCCRM_Reliability" />
    <sections xmi:id="ASCCRM-RLB-2-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid failure to implement serialization capabilities" />
    <sections xmi:id="ASCCRM-RLB-2-consequence" xmi:type="ipmss:PatternSection" name="Consequence"
    body="Software featuring known weak coding practices results in unexpected and erroneous behaviors" />
    <sections xmi:id="ASCCRM-RLB-2-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where the serializable storable element has no serialization control element in its list of control elements (in the case of technologies with class and interface elements, this means situations where the serializable storable data element is a class that implements a serializable interface element but does not implement a serialization method element as part of its list composed of method elements) (the serializable nature of an element is technology dependent, for example, serializable capabilities come from sources such as a serializable attribute in .NET and inheritance from the java.io.Serializable interface in Java)" />
    <sections xmi:id="ASCCRM-RLB-2-description" xmi:type="ipmss:PatternSection" name="Description"
    body="This pattern identifies situations where the &lt;SerializableStorableDataElement&gt; serializable storable element (code:StorableUnit) has no serialization control element (code:ControlElement) in its &lt;ControlElementList&gt; list of control elements. In case of technologies with class and interface elements, this means situations where the &lt;SerializableStorableDataElement&gt; is a class (code:StorableUnit of code:DataType code:ClassUnit) that implements a serializable interface element (code:StorableUnit of code:DataType code:InterfaceUnit) but does not implement a serialization method element (code:MethodUnit) as part of it &lt;ControlElementList&gt; list composed of method elements (code:MethodUnit). The serializable nature of the element is technology dependent. As examples, serializable nature comes from a serializable SerializableAttribute attribute in .NET and the inheritance from the java.io.Serializable interface in Java." />
    <sections xmi:id="ASCCRM-RLB-2-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCRM-RLB-2(SerializableStorableDataElement: serializableStorableDataElement,ControlElementList: controlElementList)" />
    <roles xmi:id="ASCCRM-RLB-2-roles-serializableStorableDataElement" xmi:type="ipmss:Role"
    name="SerializableStorableDataElement" />
    <roles xmi:id="ASCCRM-RLB-2-roles-controlElementList" xmi:type="ipmss:Role"
    name="ControlElementList" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCRM-RLB-3"
  name="ASCCRM-RLB-3: Serializable Storable Data Element with non-Serializable Item Elements">
    <relatedPatts xmi:id="ASCCRM-RLB-3-relatedPatts-reliability" xmi:type="ipmss:MemberOf"
    category="ASCCRM_Reliability" />
    <sections xmi:id="ASCCRM-RLB-3-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid imcomplete implementation of serialization capabilities" />
    <sections xmi:id="ASCCRM-RLB-3-consequence" xmi:type="ipmss:PatternSection" name="Consequence"
    body="Software featuring known weak coding practices results in unexpected and erroneous behaviors" />
    <sections xmi:id="ASCCRM-RLB-3-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where a serializable storable element is composed of a non-serializable item element (in case of technologies with class and interface elements, this means situations where the serializable storable data element is a class that is serializable but owns the element that is a non-serializable member element) (the serializable nature of an element is technology dependent; for example, serializable capabilities come from a serializable attribute in .NET and the inheritance from the java.io.Serializable interface in Java)" />
    <sections xmi:id="ASCCRM-RLB-3-description" xmi:type="ipmss:PatternSection" name="Description"
    body="This pattern identifies situations where the &lt;SerializableStorableDataElement&gt; serializable storable element (code:StotrableElement) is composed of the &lt;NonSerializableItem&gt; non-serializable item element (code:Item). In case of technologies with class and interface elements, this means situations where the &lt;SerializableStorableDataElement&gt; is a class (code:StorableUnit of code:DataType code:ClassUnit) that is serializable but owns the &lt;NotSerializableItem&gt; that is a non-Serializable member element (code:MemberUnit). The serializable nature of the element is technology dependent. As examples, serializable nature comes from a serializable SerializableAttribute attribute in .NET and the inheritance from the java.io.Serializable interface in Java." />
    <sections xmi:id="ASCCRM-RLB-3-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCRM-RLB-3(SerializableStorableDataElement: serializableStorableDataElement,NonSerializableItem: nonSerializableItem)" />
    <roles xmi:id="ASCCRM-RLB-3-roles-serializableStorableDataElement" xmi:type="ipmss:Role"
    name="SerializableStorableDataElement" />
    <roles xmi:id="ASCCRM-RLB-3-roles-nonSerializableItem" xmi:type="ipmss:Role"
    name="NonSerializableItem" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCRM-RLB-4"
  name="ASCCRM-RLB-4: Persistant Storable Data Element without Proper Comparison Control Element">
    <relatedPatts xmi:id="ASCCRM-RLB-4-relatedPatts-reliability" xmi:type="ipmss:MemberOf"
    category="ASCCRM_Reliability" />
    <sections xmi:id="ASCCRM-RLB-4-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid improper comparison capabilities of persistent data" />
    <sections xmi:id="ASCCRM-RLB-4-consequence" xmi:type="ipmss:PatternSection" name="Consequence"
    body="Software featuring known weak coding practices results in unexpected and erroneous behaviors" />
    <sections xmi:id="ASCCRM-RLB-4-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where the persistent storable element has no dedicated control element handling comparison action elements from the required comparison control element list. (in case of technologies with class elements, this means situations where a persistent storable data element is a class that is made persistent while it does not implement method elements from the required comparison control element list now composed of method elements: for example, with JAVA, a required comparison control element list is {'hashCode()','equals()'} method elements)" />
    <sections xmi:id="ASCCRM-RLB-4-description" xmi:type="ipmss:PatternSection" name="Description"
    body="This pattern identifies situations where the &lt;PersistantStorableDataElement&gt; persistant storable element (code:StotrableElement with data:ReadsColumnSet and data:WritesColumnSet relations to data:DataContainer) has no dedicated control element (code:ControlElement) aiming at handling comparison action elements (action:ActionElements with 'kind' from micro KDM list of Comparison Actions) from the &lt;RequiredComparisonControlElementList&gt; list.. In case of technologies with class elements, this means situations where the &lt;PersistantStorableDataElement&gt; is a class (code:StorableUnit of code:DataType code:ClassUnit) that is made persistent while it does not implement method elements (code:MethodUnit) from the &lt;RequiredComparisonControlElementList&gt; list now composed of method elements (code:MethodUnit). As an example, with JAVA, &lt;RequiredComparisonControlElementList&gt; list is {'hashCode()','equals()'} method elements." />
    <sections xmi:id="ASCCRM-RLB-4-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCRM-RLB-4(PersistantStorableDataElement: persistantStorableDataElement,RequiredComparisonControlElementList: requiredComparisonControlElementList)" />
    <sections xmi:id="ASCCRM-RLB-4-input" xmi:type="ipmss:PatternSection" name="Input"
    body="&lt;RequiredComparisonControlElementList&gt; list of control elements required for proper comparison." />
    <roles xmi:id="ASCCRM-RLB-4-roles-persistantStorableDataElement" xmi:type="ipmss:Role"
    name="PersistantStorableDataElement" />
    <roles xmi:id="ASCCRM-RLB-4-roles-requiredComparisonControlElementList" xmi:type="ipmss:Role"
    name="RequiredComparisonControlElementList" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCRM-RLB-5"
  name="ASCCRM-RLB-5: Runtime Resource Management Control Element in a Component Built to Run on Application Servers">

    <relatedPatts xmi:id="ASCCRM-RLB-5-relatedPatts-reliability" xmi:type="ipmss:MemberOf"
    category="ASCCRM_Reliability" />
    <sections xmi:id="ASCCRM-RLB-5-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid unproven platform capabilities" />
    <sections xmi:id="ASCCRM-RLB-5-consequence" xmi:type="ipmss:PatternSection" name="Consequence"
    body="Software featuring known weak coding practices results in unexpected and erroneous behaviors" />
    <sections xmi:id="ASCCRM-RLB-5-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where the application uses deployed components from application servers, yet uses control elements from the list of low-level resource management API" />
    <sections xmi:id="ASCCRM-RLB-5-description" xmi:type="ipmss:PatternSection" name="Description"
    body="This pattern identifies situations where the &lt;Application&gt; application uses deployed component (platform:DeployedComponent) from the &lt;PlatformDeployedComponentList&gt; list, yet uses control elements from the &lt;LowLevelResourceManagmentAPIList&gt; list of low-level resource management API (platform:ManagesResource)." />
    <sections xmi:id="ASCCRM-RLB-5-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCRM-RLB-5(Application: application,LowLevelResourceManagmentAPIList: lowLevelResourceManagmentAPIList, PlatformDeployedComponentList: platformDeployedComponentList)" />
    <sections xmi:id="ASCCRM-RLB-5-input" xmi:type="ipmss:PatternSection" name="Input"
    body="&lt;PlatformDeployedComponentList&gt; list of application server resource management deployed components &lt;LowLevelResourceManagmentAPIList&gt; list of low-level resource management API" />
    <roles xmi:id="ASCCRM-RLB-5-roles-application" xmi:type="ipmss:Role" name="Application" />
    <roles xmi:id="ASCCRM-RLB-5-roles-lowLevelResourceManagmentAPIList" xmi:type="ipmss:Role"
    name="LowLevelResourceManagmentAPIList" />
    <roles xmi:id="ASCCRM-RLB-5-roles-platformDeployedComponentList" xmi:type="ipmss:Role"
    name="PlatformDeployedComponentList" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCRM-RLB-6"
  name="ASCCRM-RLB-6: Storable or Member Data Element containing Pointer Item Element without Proper Copy Control Element">

    <relatedPatts xmi:id="ASCCRM-RLB-6-relatedPatts-reliability" xmi:type="ipmss:MemberOf"
    category="ASCCRM_Reliability" />
    <sections xmi:id="ASCCRM-RLB-6-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid improper copy capabilities when handling data pointers" />
    <sections xmi:id="ASCCRM-RLB-6-consequence" xmi:type="ipmss:PatternSection" name="Consequence"
    body="Software featuring known weak coding practices results in unexpected and erroneous behaviors" />
    <sections xmi:id="ASCCRM-RLB-6-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where a storable data element or member data element contains a pointer data element but no dedicated copy operation or copy constructor element" />
    <sections xmi:id="ASCCRM-RLB-6-description" xmi:type="ipmss:PatternSection" name="Description"
    body="This pattern identifies situations where the &lt;DataElement&gt; storable data element (code:StorableUnit) or member data element (code:MemberUnit) contains the &lt;ChildPointerIDataElement&gt; pointer data element (code:DataElement with code:DataType code:PointerType) but has no dedicated copy operation (code:CallableUnit) or copy constructor element (code:MethodUnit with code:MethodKind 'constructor')." />
    <sections xmi:id="ASCCRM-RLB-6-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCRM-RLB-6(DataElement: dataElement,ChildPointerDataElement: childPointerDataElement)" />
    <roles xmi:id="ASCCRM-RLB-6-roles-dataElement" xmi:type="ipmss:Role" name="DataElement" />
    <roles xmi:id="ASCCRM-RLB-6-roles-childPointerDataElement" xmi:type="ipmss:Role"
    name="ChildPointerDataElement" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCRM-RLB-7"
  name="ASCCRM-RLB-7: Class Instance Self Destruction Control Element">
    <relatedPatts xmi:id="ASCCRM-RLB-7-relatedPatts-reliability" xmi:type="ipmss:MemberOf"
    category="ASCCRM_Reliability" />
    <sections xmi:id="ASCCRM-RLB-7-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid self-destruction capabilities" />
    <sections xmi:id="ASCCRM-RLB-7-consequence" xmi:type="ipmss:PatternSection" name="Consequence"
    body="Software featuring known weak coding practices results in unexpected and erroneous behaviors" />
    <sections xmi:id="ASCCRM-RLB-7-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where a class element can execute a self-destruction control element to destroy itself (an example of a self-destruction control element in C++ is the 'delete this' control)" />
    <sections xmi:id="ASCCRM-RLB-7-description" xmi:type="ipmss:PatternSection" name="Description"
    body="This pattern identifies situations where the &lt;Class&gt; class element (code:StorableUnit with code:DataType code:ClassUnit) executes the &lt;SelfDestructionControlElement&gt; control element (code:ControlElement) to destroy itself. As an example of self-destruction control element in C++, the 'delete this' control element." />
    <sections xmi:id="ASCCRM-RLB-7-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCRM-RLB-7(Class: class,SelfDestructionControlElement: selfDestructionControlElement)" />
    <roles xmi:id="ASCCRM-RLB-7-roles-class" xmi:type="ipmss:Role" name="Class" />
    <roles xmi:id="ASCCRM-RLB-7-roles-selfDestructionControlElement" xmi:type="ipmss:Role"
    name="SelfDestructionControlElement" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCRM-RLB-8"
  name="ASCCRM-RLB-8: Named Callable and Method Control Elements with Variadic Parameter Element">
    <relatedPatts xmi:id="ASCCRM-RLB-8-relatedPatts-reliability" xmi:type="ipmss:MemberOf"
    category="ASCCRM_Reliability" />
    <sections xmi:id="ASCCRM-RLB-8-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid using variadic parameter elements" />
    <sections xmi:id="ASCCRM-RLB-8-consequence" xmi:type="ipmss:PatternSection" name="Consequence"
    body="Software featuring known weak coding practices results in unexpected and erroneous behaviors" />
    <sections xmi:id="ASCCRM-RLB-8-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where the named callable control element or method control element has a variable number of parameters because of the variadic parameter in its signature" />
    <sections xmi:id="ASCCRM-RLB-8-description" xmi:type="ipmss:PatternSection" name="Description"
    body="This pattern identifies situations where the &lt;ControlElement&gt; named callable control element (code:CallableUnit with code:CallableKind 'regular', 'external' or 'stored') or method control element (code:MethodUnit) has a variable number of parameters thanks to the &lt;VariableNumberOfParametersSyntax&gt; variadic parameter (code:ParameterUnit with code:ParameterKind 'variadic') in its signature (code:Signature)." />
    <sections xmi:id="ASCCRM-RLB-8-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCRM-RLB-8(ControlElement: controlElement,VariableNumberOfParametersSyntax: variableNumberOfParametersSyntax)" />
    <roles xmi:id="ASCCRM-RLB-8-roles-controlElement" xmi:type="ipmss:Role"
    name="ControlElement" />
    <roles xmi:id="ASCCRM-RLB-8-roles-variableNumberOfParametersSyntax" xmi:type="ipmss:Role"
    name="VariableNumberOfParametersSyntax" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCRM-RLB-9"
  name="ASCCRM-RLB-9: Float Type Storable and Member Data Element Comparison with Equality Operator">

    <relatedPatts xmi:id="ASCCRM-RLB-9-relatedPatts-reliability" xmi:type="ipmss:MemberOf"
    category="ASCCRM_Reliability" />
    <sections xmi:id="ASCCRM-RLB-9-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid the use of fault-prone comparison operations between numerical values" />
    <sections xmi:id="ASCCRM-RLB-9-consequence" xmi:type="ipmss:PatternSection" name="Consequence"
    body="Software featuring known weak coding practices results in unexpected and erroneous behaviors" />
    <sections xmi:id="ASCCRM-RLB-9-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where the values of storable or member data elements of float type are compared for equality using regular comparison operators in the comparison control element" />
    <sections xmi:id="ASCCRM-RLB-9-description" xmi:type="ipmss:PatternSection" name="Description"
    body="This pattern identifies situations where the &lt;FloatingValue1&gt; and &lt;FloatingValue2&gt; values (code:Value) of storable or member data element (code:StorableUnit or code:MemberUnit) of float type (code:DataType code:FloatType), are tested for equality with regular comparison operators in the &lt;ComparisonStatement&gt; comparison control element (code:ControlElement containing action:ActionElement with a kind from micro KDM list of comparison actions)" />
    <sections xmi:id="ASCCRM-RLB-9-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCRM-RLB-9(FloatingValue1: floatingValue1,FloatingValue2: floatingValue2, ComparisonStatement: comparisonStatement)" />
    <roles xmi:id="ASCCRM-RLB-9-roles-floatingValue1" xmi:type="ipmss:Role"
    name="FloatingValue1" />
    <roles xmi:id="ASCCRM-RLB-9-roles-floatingValue2" xmi:type="ipmss:Role"
    name="FloatingValue2" />
    <roles xmi:id="ASCCRM-RLB-9-roles-comparisonStatement" xmi:type="ipmss:Role"
    name="ComparisonStatement" />
  </ipmss:PatternDefinition>
  <ipmss:Category xmi:id="ASCCRM_Reliability" xmi:type="ipmss:Category" name="CISQ Reliability" />
</xmi:XMI>