<?xml version="1.0" encoding="UTF-8" ?>

<xmi:XMI xmlns:xmi="https://www.omg.org/spec/XMI/20131001/XMI-model.xmi" xmlns:smm="https://www.omg.org/spec/SMM/20171101/SMM.cmof" xmlns:kdm="https://www.omg.org/spec/KDM/20160201/kdm.cmof" xmlns:ocl="https://www.omg.org/spec/OCL/20090501/OCL.cmof" xmlns:spms="https://www.omg.org/spec/SPMS/20170601" xmi:id="AutomatedSourceCodeResourceSustainabilityMeasurement" name="AutomatedSourceCodeResourceSustainabilityMeasurement" shortDescription="Automated Source Code Resource Sustainability Measurement SMM Model">
  <spms:Nature xmi:id="id.nat.1" name="DetectedBy" xmi:type="spms:Nature"/>
  <spms:Nature xmi:id="id.nat.2" name="Detecting" xmi:type="spms:Nature"/>
  <spms:Nature xmi:id="id.nat.3" name="AggregatedBy" xmi:type="spms:Nature"/>
  <spms:Nature xmi:id="id.nat.4" name="Aggregating" xmi:type="spms:Nature"/>
  <spms:Category xmi:id="id.cat.376" category="Weakness Category Resource Sustainability" members="id.wk.40 id.wk.42 id.wk.46 id.wk.70 id.wk.71 id.wk.74 id.wk.75 id.wk.77 id.wk.173 id.wk.184 id.wk.185 id.wk.186 id.wk.192 id.wk.193 id.wk.196 id.wk.197 id.wk.198 id.wk.199 id.wk.200 id.wk.201 id.wk.202 id.wk.203 id.wk.204 id.wk.205 id.wk.206 id.wk.245 id.wk.259 id.wk.283 id.wk.289 id.wk.292 id.wk.299 id.wk.300 id.wk.377" xmi:type="spms:Category"/>
  <spms:PatternDefinition name="Weakness CWE-394 Unexpected Status Code or Return Value" xmi:id="id.wk.40" xmi:type="spms:PatternDefinition">
    <sections body="Reference https://cwe.mitre.org/data/definitions/394 " name="reference" xmi:id="id.wk.40.reference" xmi:type="spms:PatternSection"/>
    <roles name="ReturnValue" xmi:id="id.wk.40.ReturnValue" xmi:type="spms:Role"/>
    <relatedPatts pattern="id.sfgd.41" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
    <relatedPatts pattern="id.sfgd.327" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
    <relatedPatts pattern="id.sfgd.340" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="Weakness CWE-252 Unchecked Return Value" xmi:id="id.wk.42" xmi:type="spms:PatternDefinition">
    <sections body="Reference https://cwe.mitre.org/data/definitions/252 " name="reference" xmi:id="id.wk.42.reference" xmi:type="spms:PatternSection"/>
    <roles name="OperationCall" xmi:id="id.wk.42.OperationCall" xmi:type="spms:Role"/>
    <relatedPatts pattern="id.sfgd.44" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
    <relatedPatts pattern="id.sfgd.340" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="Weakness CWE-392 Missing Report of Error Condition" xmi:id="id.wk.46" xmi:type="spms:PatternDefinition">
    <sections body="Reference https://cwe.mitre.org/data/definitions/392 " name="reference" xmi:id="id.wk.46.reference" xmi:type="spms:PatternSection"/>
    <roles name="ErrorConditionProcessing" xmi:id="id.wk.46.ErrorConditionProcessing" xmi:type="spms:Role"/>
    <relatedPatts pattern="id.sfgd.45" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
    <relatedPatts pattern="id.wk.283" xmi:type="spms:RelatedPattern" nature="id.nat.3"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="Weakness CWE-401 Improper Release of Memory Before Removing Last Reference ('Memory Leak')" xmi:id="id.wk.70" xmi:type="spms:PatternDefinition">
    <sections body="Reference https://cwe.mitre.org/data/definitions/401 " name="reference" xmi:id="id.wk.70.reference" xmi:type="spms:PatternSection"/>
    <roles name="MemoryAllocation" xmi:id="id.wk.70.MemoryAllocation" xmi:type="spms:Role"/>
    <relatedPatts pattern="id.sfgd.69" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
    <relatedPatts pattern="id.sfgd.78" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
    <relatedPatts pattern="id.sfgd.138" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
    <relatedPatts pattern="id.sfgd.157" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
    <relatedPatts pattern="id.sfgd.260" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
    <relatedPatts pattern="id.sfgd.344" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
    <relatedPatts pattern="id.sfgd.373" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
    <relatedPatts pattern="id.wk.71" xmi:type="spms:RelatedPattern" nature="id.nat.3"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="Weakness CWE-404 Improper Resource Shutdown or Release" xmi:id="id.wk.71" xmi:type="spms:PatternDefinition">
    <sections body="Reference https://cwe.mitre.org/data/definitions/404 " name="reference" xmi:id="id.wk.71.reference" xmi:type="spms:PatternSection"/>
    <roles name="ResourceAllocation" xmi:id="id.wk.71.ResourceAllocation" xmi:type="spms:Role"/>
    <relatedPatts pattern="id.sfgd.127" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
    <relatedPatts pattern="id.sfgd.128" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
    <relatedPatts pattern="id.sfgd.69" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
    <relatedPatts pattern="id.sfgd.78" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
    <relatedPatts pattern="id.sfgd.106" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
    <relatedPatts pattern="id.sfgd.125" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
    <relatedPatts pattern="id.sfgd.260" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
    <relatedPatts pattern="id.sfgd.138" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
    <relatedPatts pattern="id.sfgd.157" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
    <relatedPatts pattern="id.sfgd.344" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
    <relatedPatts pattern="id.sfgd.373" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
    <relatedPatts pattern="id.sfgd.335" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
    <relatedPatts pattern="id.wk.70" xmi:type="spms:RelatedPattern" nature="id.nat.4"/>
    <relatedPatts pattern="id.wk.74" xmi:type="spms:RelatedPattern" nature="id.nat.4"/>
    <relatedPatts pattern="id.wk.77" xmi:type="spms:RelatedPattern" nature="id.nat.4"/>
    <relatedPatts pattern="id.wk.259" xmi:type="spms:RelatedPattern" nature="id.nat.4"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="Weakness CWE-762 Mismatched Memory Management Routines" xmi:id="id.wk.74" xmi:type="spms:PatternDefinition">
    <sections body="Reference https://cwe.mitre.org/data/definitions/762 " name="reference" xmi:id="id.wk.74.reference" xmi:type="spms:PatternSection"/>
    <roles name="MemoryAllocation" xmi:id="id.wk.74.MemoryAllocation" xmi:type="spms:Role"/>
    <roles name="MemoryRelease" xmi:id="id.wk.74.MemoryRelease" xmi:type="spms:Role"/>
    <relatedPatts pattern="id.sfgd.138" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
    <relatedPatts pattern="id.wk.71" xmi:type="spms:RelatedPattern" nature="id.nat.3"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="Weakness CWE-459 Incomplete Cleanup" xmi:id="id.wk.75" xmi:type="spms:PatternDefinition">
    <sections body="Reference https://cwe.mitre.org/data/definitions/459 " name="reference" xmi:id="id.wk.75.reference" xmi:type="spms:PatternSection"/>
    <roles name="ResourceAllocation" xmi:id="id.wk.75.ResourceAllocation" xmi:type="spms:Role"/>
    <roles name="ResourceRelease" xmi:id="id.wk.75.ResourceRelease" xmi:type="spms:Role"/>
    <relatedPatts pattern="id.sfgd.138" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
    <relatedPatts pattern="id.sfgd.373" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="Weakness CWE-772 Missing Release of Resource after Effective Lifetime" xmi:id="id.wk.77" xmi:type="spms:PatternDefinition">
    <sections body="Reference https://cwe.mitre.org/data/definitions/772 " name="reference" xmi:id="id.wk.77.reference" xmi:type="spms:PatternSection"/>
    <roles name="ResourceAllocation" xmi:id="id.wk.77.ResourceAllocation" xmi:type="spms:Role"/>
    <relatedPatts pattern="id.sfgd.78" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
    <relatedPatts pattern="id.sfgd.106" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
    <relatedPatts pattern="id.sfgd.260" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
    <relatedPatts pattern="id.wk.71" xmi:type="spms:RelatedPattern" nature="id.nat.3"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="Weakness CWE-1088 Synchronous Call Time-Out Absence" xmi:id="id.wk.173" xmi:type="spms:PatternDefinition">
    <sections body="Reference https://cwe.mitre.org/data/definitions/1088 " name="reference" xmi:id="id.wk.173.reference" xmi:type="spms:PatternSection"/>
    <sections body="Synchronous call with missing timeout" name="usage_name" xmi:id="id.wk.173.usage.name" xmi:type="spms:PatternSection"/>
    <roles name="SynchronousCall" xmi:id="id.wk.173.SynchronousCall" xmi:type="spms:Role"/>
    <roles name="TimeOutOption" xmi:id="id.wk.173.TimeOutOption" xmi:type="spms:Role"/>
    <relatedPatts pattern="id.sfgd.154" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="Weakness CWE-1051 Storable and Member Data Element Initialization with Hard-Coded Network Resource Configuration Data" xmi:id="id.wk.184" xmi:type="spms:PatternDefinition">
    <sections body="Reference https://cwe.mitre.org/data/definitions/1051 " name="reference" xmi:id="id.wk.184.reference" xmi:type="spms:PatternSection"/>
    <sections body="Hard‐coded network resource information " name="usage_name" xmi:id="id.wk.184.usage.name" xmi:type="spms:PatternSection"/>
    <roles name="NetworkResourceAccess" xmi:id="id.wk.184.NetworkResourceAccess" xmi:type="spms:Role"/>
    <roles name="HardCodedValue" xmi:id="id.wk.184.HardCodedValue" xmi:type="spms:Role"/>
    <relatedPatts pattern="id.sfgd.123" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="Weakness CWE-1083 Data Access Control Element from Outside Designated Data Manager Component" xmi:id="id.wk.185" xmi:type="spms:PatternDefinition">
    <sections body="Reference https://cwe.mitre.org/data/definitions/1083 " name="reference" xmi:id="id.wk.185.reference" xmi:type="spms:PatternSection"/>
    <sections body="Circumventing data access routines" name="usage_name" xmi:id="id.wk.185.usage.name" xmi:type="spms:PatternSection"/>
    <roles name="DataManager" xmi:id="id.wk.185.DataManager" xmi:type="spms:Role"/>
    <roles name="DataAccess" xmi:id="id.wk.185.DataAccess" xmi:type="spms:Role"/>
    <relatedPatts pattern="id.sfgd.140" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="Weakness CWE-1069 Empty Exception Block" xmi:id="id.wk.186" xmi:type="spms:PatternDefinition">
    <sections body="Reference https://cwe.mitre.org/data/definitions/1069 " name="reference" xmi:id="id.wk.186.reference" xmi:type="spms:PatternSection"/>
    <roles name="ExceptionBlock" xmi:id="id.wk.186.ExceptionBlock" xmi:type="spms:Role"/>
    <relatedPatts pattern="id.sfgd.134" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="Weakness CWE-1057 Data Access Control Element from Outside Designated Data Manager Component" xmi:id="id.wk.192" xmi:type="spms:PatternDefinition">
    <sections body="Reference https://cwe.mitre.org/data/definitions/1057 " name="reference" xmi:id="id.wk.192.reference" xmi:type="spms:PatternSection"/>
    <sections body=" Circumventing data access routines" name="usage_name" xmi:id="id.wk.192.usage.name" xmi:type="spms:PatternSection"/>
    <roles name="DataManager" xmi:id="id.wk.192.DataManager" xmi:type="spms:Role"/>
    <roles name="DataAccess" xmi:id="id.wk.192.DataAccess" xmi:type="spms:Role"/>
    <relatedPatts pattern="id.sfgd.140" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="Weakness CWE-424 Improper Protection of Alternate Path" xmi:id="id.wk.193" xmi:type="spms:PatternDefinition">
    <sections body="Reference https://cwe.mitre.org/data/definitions/424 " name="reference" xmi:id="id.wk.193.reference" xmi:type="spms:PatternSection"/>
    <roles name="AlternatePath" xmi:id="id.wk.193.AlternatePath" xmi:type="spms:Role"/>
    <relatedPatts pattern="id.sfgd.140" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="Weakness CWE-1072 Data Resource Access not using Connection Pooling Capability" xmi:id="id.wk.196" xmi:type="spms:PatternDefinition">
    <sections body="Reference https://cwe.mitre.org/data/definitions/1072 " name="reference" xmi:id="id.wk.196.reference" xmi:type="spms:PatternSection"/>
    <sections body="Data access not using connection pool " name="usage_name" xmi:id="id.wk.196.usage.name" xmi:type="spms:PatternSection"/>
    <roles name="Connection" xmi:id="id.wk.196.Connection" xmi:type="spms:Role"/>
    <relatedPatts pattern="id.sfgd.97" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="Weakness CWE-1094 Large Data Resource ColumnSet with Index Element of Excessive Size" xmi:id="id.wk.197" xmi:type="spms:PatternDefinition">
    <sections body="Reference https://cwe.mitre.org/data/definitions/1094 " name="reference" xmi:id="id.wk.197.reference" xmi:type="spms:PatternSection"/>
    <sections body="Excessively large indices on large tables " name="usage_name" xmi:id="id.wk.197.usage.name" xmi:type="spms:PatternSection"/>
    <roles name="Table" xmi:id="id.wk.197.Table" xmi:type="spms:Role"/>
    <roles name="Indexes" xmi:id="id.wk.197.Indexes" xmi:type="spms:Role"/>
    <relatedPatts pattern="id.sfgd.100" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="Weakness CWE-1067 Data Resource Read Access Unsupported by Index Element" xmi:id="id.wk.198" xmi:type="spms:PatternDefinition">
    <sections body="Reference https://cwe.mitre.org/data/definitions/1067 " name="reference" xmi:id="id.wk.198.reference" xmi:type="spms:PatternSection"/>
    <sections body="Incorrect indices " name="usage_name" xmi:id="id.wk.198.usage.name" xmi:type="spms:PatternSection"/>
    <roles name="DataQuery" xmi:id="id.wk.198.DataQuery" xmi:type="spms:Role"/>
    <roles name="TableOrView" xmi:id="id.wk.198.TableOrView" xmi:type="spms:Role"/>
    <relatedPatts pattern="id.sfgd.99" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="Weakness CWE-1089 Large Data Resource ColumnSet Excessive Number of Index Elements" xmi:id="id.wk.199" xmi:type="spms:PatternDefinition">
    <sections body="Reference https://cwe.mitre.org/data/definitions/1089 " name="reference" xmi:id="id.wk.199.reference" xmi:type="spms:PatternSection"/>
    <sections body="Excessive number of indices on large tables " name="usage_name" xmi:id="id.wk.199.usage.name" xmi:type="spms:PatternSection"/>
    <roles name="Table" xmi:id="id.wk.199.Table" xmi:type="spms:Role"/>
    <roles name="Indexes" xmi:id="id.wk.199.Indexes" xmi:type="spms:Role"/>
    <relatedPatts pattern="id.sfgd.101" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="Weakness CWE-1049 Data Resource Read and Write Access Excessive Complexity" xmi:id="id.wk.200" xmi:type="spms:PatternDefinition">
    <sections body="Reference https://cwe.mitre.org/data/definitions/1049 " name="reference" xmi:id="id.wk.200.reference" xmi:type="spms:PatternSection"/>
    <sections body="Complex read/write access " name="usage_name" xmi:id="id.wk.200.usage.name" xmi:type="spms:PatternSection"/>
    <roles name="DataQuery" xmi:id="id.wk.200.DataQuery" xmi:type="spms:Role"/>
    <relatedPatts pattern="id.sfgd.105" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="Weakness CWE-1050 Control Elements Requiring Significant Resource Element within Control Flow Loop Block" xmi:id="id.wk.201" xmi:type="spms:PatternDefinition">
    <sections body="Reference https://cwe.mitre.org/data/definitions/1050 " name="reference" xmi:id="id.wk.201.reference" xmi:type="spms:PatternSection"/>
    <sections body="Resource consuming operation in loop " name="usage_name" xmi:id="id.wk.201.usage.name" xmi:type="spms:PatternSection"/>
    <roles name="Loop" xmi:id="id.wk.201.Loop" xmi:type="spms:Role"/>
    <roles name="ExpensiveOperation" xmi:id="id.wk.201.ExpensiveOperation" xmi:type="spms:Role"/>
    <relatedPatts pattern="id.sfgd.108" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="Weakness CWE-1043 Storable and Member Data Element Excessive Number of Aggregated Storable and Member Data Elements" xmi:id="id.wk.202" xmi:type="spms:PatternDefinition">
    <sections body="Reference https://cwe.mitre.org/data/definitions/1043 " name="reference" xmi:id="id.wk.202.reference" xmi:type="spms:PatternSection"/>
    <sections body="Excessively large data element " name="usage_name" xmi:id="id.wk.202.usage.name" xmi:type="spms:PatternSection"/>
    <roles name="AggregationData" xmi:id="id.wk.202.AggregationData" xmi:type="spms:Role"/>
    <roles name="AggregatedData" xmi:id="id.wk.202.AggregatedData" xmi:type="spms:Role"/>
    <relatedPatts pattern="id.sfgd.111" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="Weakness CWE-1060 Non-stored SQL Callable Control Element with Excessive Number of Data Resource Access" xmi:id="id.wk.203" xmi:type="spms:PatternDefinition">
    <sections body="Reference https://cwe.mitre.org/data/definitions/1060 " name="reference" xmi:id="id.wk.203.reference" xmi:type="spms:PatternSection"/>
    <sections body="Excessive data queries in non‐stored procedure " name="usage_name" xmi:id="id.wk.203.usage.name" xmi:type="spms:PatternSection"/>
    <roles name="NonStoredSQLOperation" xmi:id="id.wk.203.NonStoredSQLOperation" xmi:type="spms:Role"/>
    <roles name="DataAccesses" xmi:id="id.wk.203.DataAccesses" xmi:type="spms:Role"/>
    <relatedPatts pattern="id.sfgd.117" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="Weakness CWE-1073 Non-SQL Named Callable and Method Control Element with Excessive Number of Data Resource Access" xmi:id="id.wk.204" xmi:type="spms:PatternDefinition">
    <sections body="Reference https://cwe.mitre.org/data/definitions/1073 " name="reference" xmi:id="id.wk.204.reference" xmi:type="spms:PatternSection"/>
    <sections body="Excessive data queries in client‐side code " name="usage_name" xmi:id="id.wk.204.usage.name" xmi:type="spms:PatternSection"/>
    <roles name="NonSQLOperation" xmi:id="id.wk.204.NonSQLOperation" xmi:type="spms:Role"/>
    <roles name="DataAccesses" xmi:id="id.wk.204.DataAccesses" xmi:type="spms:Role"/>
    <relatedPatts pattern="id.sfgd.118" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="Weakness CWE-1091 Storable and Member Data Element Reference Missing De-referencing Control Element" xmi:id="id.wk.205" xmi:type="spms:PatternDefinition">
    <sections body="Reference https://cwe.mitre.org/data/definitions/1091 " name="reference" xmi:id="id.wk.205.reference" xmi:type="spms:PatternSection"/>
    <roles name="Object" xmi:id="id.wk.205.Object" xmi:type="spms:Role"/>
    <relatedPatts pattern="id.sfgd.157" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="Weakness CWE-1046 Immutable Storable and Member Data Element Creation" xmi:id="id.wk.206" xmi:type="spms:PatternDefinition">
    <sections body="Reference https://cwe.mitre.org/data/definitions/1046 " name="reference" xmi:id="id.wk.206.reference" xmi:type="spms:PatternSection"/>
    <sections body="Immutable text data " name="usage_name" xmi:id="id.wk.206.usage.name" xmi:type="spms:PatternSection"/>
    <roles name="ImmutableDataCreation" xmi:id="id.wk.206.ImmutableDataCreation" xmi:type="spms:Role"/>
    <relatedPatts pattern="id.sfgd.139" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="Weakness CWE-835 Loop with Unreachable Exit Condition ('Infinite Loop')" xmi:id="id.wk.245" xmi:type="spms:PatternDefinition">
    <sections body="Reference https://cwe.mitre.org/data/definitions/835 " name="reference" xmi:id="id.wk.245.reference" xmi:type="spms:PatternSection"/>
    <roles name="InfiniteLoop" xmi:id="id.wk.245.InfiniteLoop" xmi:type="spms:Role"/>
    <relatedPatts pattern="id.sfgd.107" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
    <relatedPatts pattern="id.sfgd.126" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="Weakness CWE-775 Missing Release of File Descriptor or Handle after Effective Lifetime" xmi:id="id.wk.259" xmi:type="spms:PatternDefinition">
    <sections body="Reference https://cwe.mitre.org/data/definitions/775 " name="reference" xmi:id="id.wk.259.reference" xmi:type="spms:PatternSection"/>
    <roles name="FileDescriptorOrHandleAllocation" xmi:id="id.wk.259.FileDescriptorOrHandleAllocation" xmi:type="spms:Role"/>
    <relatedPatts pattern="id.sfgd.106" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
    <relatedPatts pattern="id.sfgd.335" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
    <relatedPatts pattern="id.wk.71" xmi:type="spms:RelatedPattern" nature="id.nat.3"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="Weakness CWE-703 Improper Check or Handling of Exceptional Conditions" xmi:id="id.wk.283" xmi:type="spms:PatternDefinition">
    <sections body="Reference https://cwe.mitre.org/data/definitions/703 " name="reference" xmi:id="id.wk.283.reference" xmi:type="spms:PatternSection"/>
    <roles name="ErrorHandling" xmi:id="id.wk.283.ErrorHandling" xmi:type="spms:Role"/>
    <relatedPatts pattern="id.sfgd.45" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
    <relatedPatts pattern="id.sfgd.290" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
    <relatedPatts pattern="id.sfgd.134" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
    <relatedPatts pattern="id.wk.46" xmi:type="spms:RelatedPattern" nature="id.nat.4"/>
    <relatedPatts pattern="id.wk.289" xmi:type="spms:RelatedPattern" nature="id.nat.4"/>
    <relatedPatts pattern="id.wk.292" xmi:type="spms:RelatedPattern" nature="id.nat.4"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="Weakness CWE-248 Uncaught Exception" xmi:id="id.wk.289" xmi:type="spms:PatternDefinition">
    <sections body="Reference https://cwe.mitre.org/data/definitions/248 " name="reference" xmi:id="id.wk.289.reference" xmi:type="spms:PatternSection"/>
    <roles name="ExceptionThrowDeclaration" xmi:id="id.wk.289.ExceptionThrowDeclaration" xmi:type="spms:Role"/>
    <roles name="ExceptionCatchSequence" xmi:id="id.wk.289.ExceptionCatchSequence" xmi:type="spms:Role"/>
    <relatedPatts pattern="id.sfgd.290" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
    <relatedPatts pattern="id.wk.283" xmi:type="spms:RelatedPattern" nature="id.nat.3"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="Weakness CWE-391 Unchecked Error Condition" xmi:id="id.wk.292" xmi:type="spms:PatternDefinition">
    <sections body="Reference https://cwe.mitre.org/data/definitions/391 " name="reference" xmi:id="id.wk.292.reference" xmi:type="spms:PatternSection"/>
    <roles name="ErrorConditionProcessing" xmi:id="id.wk.292.ErrorConditionProcessing" xmi:type="spms:Role"/>
    <relatedPatts pattern="id.sfgd.45" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
    <relatedPatts pattern="id.sfgd.134" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
    <relatedPatts pattern="id.wk.283" xmi:type="spms:RelatedPattern" nature="id.nat.3"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="Weakness CWE-390 Detection of Error Condition Without Action" xmi:id="id.wk.299" xmi:type="spms:PatternDefinition">
    <sections body="Reference https://cwe.mitre.org/data/definitions/390 " name="reference" xmi:id="id.wk.299.reference" xmi:type="spms:PatternSection"/>
    <roles name="ErrorCondition" xmi:id="id.wk.299.ErrorCondition" xmi:type="spms:Role"/>
    <relatedPatts pattern="id.sfgd.41" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
    <relatedPatts pattern="id.sfgd.134" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="Weakness CWE-833 Deadlock" xmi:id="id.wk.300" xmi:type="spms:PatternDefinition">
    <sections body="Reference https://cwe.mitre.org/data/definitions/833 " name="reference" xmi:id="id.wk.300.reference" xmi:type="spms:PatternSection"/>
    <roles name="Thread1" xmi:id="id.wk.300.Thread1" xmi:type="spms:Role"/>
    <roles name="Thread2" xmi:id="id.wk.300.Thread2" xmi:type="spms:Role"/>
    <roles name="ConflictingLock" xmi:id="id.wk.300.ConflictingLock" xmi:type="spms:Role"/>
    <relatedPatts pattern="id.sfgd.301" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
    <relatedPatts pattern="id.sfgd.326" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="Weakness CWE-1235 Incorrect Use of Autoboxing and Unboxing for Performance Critical Operations" xmi:id="id.wk.377" xmi:type="spms:PatternDefinition">
    <sections body="Reference https://cwe.mitre.org/data/definitions/1235 " name="reference" xmi:id="id.wk.377.reference" xmi:type="spms:PatternSection"/>
    <roles name="Autoboxing/Unboxing" xmi:id="id.wk.377.Autoboxing/Unboxing" xmi:type="spms:Role"/>
    <relatedPatts pattern="id.sfgd.378" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
    <relatedPatts pattern="id.sfgd.379" xmi:type="spms:RelatedPattern" nature="id.nat.1"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="ASCQM Handle Return Value of Resource Operations" xmi:id="id.sfgd.41" xmi:type="spms:PatternDefition">
    <sections body="Identify occurrences in application model where&#13;&#10;- the platform resource management function, method, procedure, ... is called in the &lt;CallToTheOperation&gt; call statement &#13;&#10;- with no use in a conditional statement of the return value &#13;&#10;&#13;&#10;&#13;&#10;" name="description" xmi:id="id.sfgd.41.description" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;KDM outline illustrating only the essential elements related to micro KDM:&#13;&#10;{code:title=KDM outline}&#13;&#10;PlatformModel&#13;&#10;    ...&#13;&#10;    DataManager|ExecutionResource|... id=&quot;pr1&quot; &#13;&#10;    ...&#13;&#10;    PlatformResource id=&quot;pa1&quot;  implementation=&quot;ae1&quot;&#13;&#10;        ManagesResource|ReadsResource|WritesResource &quot;pr1&quot;&#13;&#10;    ...&#13;&#10;CodeModel&#13;&#10;...&#13;&#10;    CallableUnit|MethodUnit id=&quot;ce1&quot; type=&quot;ce1_signature&quot;&#13;&#10;        Signature id=&quot;ce1_signature&quot;&#13;&#10;            ParameterUnit id=&quot;pu1&quot; kind=&quot;return&quot;&#13;&#10;    ...&#13;&#10;    ActionElement id=&quot;ae1&quot; kind=&quot;Call|PtrCall|MethodCall|VirtualCall&quot;&#13;&#10;...    &#13;&#10;{code}&#13;&#10;Absent from the application model&#13;&#10;{code:title=KDM outline of absent elements}&#13;&#10;StorableUnit id=&quot;su1&quot;&#13;&#10;...&#13;&#10;ActionElement id=&quot;ae1&quot; kind=&quot;Call|PtrCall|MethodCall|VirtualCall&quot;&#13;&#10;    Writes &quot;su1&quot;&#13;&#10;    Flows &quot;ae2&quot;&#13;&#10;ActionElement id=&quot;ae2&quot; kind=&quot;Switch&quot;&#13;&#10;    Reads &quot;su1&quot;&#13;&#10;    GuardedFlow &quot;gf1&quot;&#13;&#10;    GuardedFlow|FalseFlow &quot;gf2&quot;&#13;&#10;...&#13;&#10;{code}&#13;&#10;or&#13;&#10;{code:title=KDM outline of absent elements}&#13;&#10;StorableUnit id=&quot;su1&quot;&#13;&#10;StorableUnit id=&quot;su2&quot;&#13;&#10;...&#13;&#10;ActionElement id=&quot;ae1&quot; kind=&quot;Call|PtrCall|MethodCall|VirtualCall&quot;&#13;&#10;    Writes &quot;su1&quot;&#13;&#10;    Flows &quot;ae2&quot;&#13;&#10;ActionElement id=&quot;ae2&quot; kind=&quot;Equal|NotEqual|LessThan|LessThanOrEqual|GreaterThan|GreatedThanOrEqual&quot;&#13;&#10;    Reads &quot;su1&quot;&#13;&#10;    Writes &quot;su2&quot;&#13;&#10;    Flows &quot;ae3&quot;&#13;&#10;ActionElement id=&quot;ae3&quot; kind=&quot;Condition&quot;&#13;&#10;    TrueFlow &quot;tf1&quot;&#13;&#10;    FalseFlow &quot;ff1&quot;&#13;&#10;...&#13;&#10;{code}&#13;&#10;&#13;&#10; &#13;&#10;" name="kdm_outline" xmi:id="id.sfgd.41.kdm_outline" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;Roles to report are&#13;&#10;- the &lt;CallToTheOperation&gt; call statement" name="reporting" xmi:id="id.sfgd.41.reporting" xmi:type="spms:PatternSection"/>
    <roles name="CallToTheOperation" xmi:id="id.sfgd.41.CallToTheOperation" xmi:type="spms:Role"/>
    <sections name="descriptor" body="ASCQM Handle Return Value of Resource Operations(CallToTheOperation)" xmi:id="id.sfgd.41.descriptor" xmi:type="spms:PatternSection"/>
    <relatedPatts pattern="id.wk.40" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
    <relatedPatts pattern="id.wk.299" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="ASCQM Ban Incorrect Numeric Conversion of Return Value" xmi:id="id.sfgd.327" xmi:type="spms:PatternDefition">
    <sections body="Identify occurrences in application model where&#13;&#10;- the &lt;FunctionMethodOrProcedure&gt; function, method, procedure, ...&#13;&#10;- declared to return a value with the &lt;VariableDataType&gt; numerical data type&#13;&#10;- is called in the &lt;CallStatement&gt; call statement &#13;&#10;- with assignment of its return value to a variable of the &lt;TargetDataType&gt; second numerical data type &#13;&#10;- which is incompatible with the first one &#13;&#10;- without any explicit casting&#13;&#10;&#13;&#10;" name="description" xmi:id="id.sfgd.327.description" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;KDM outline illustrating only the essential elements related to micro KDM:&#13;&#10;{code:title=KDM outline}&#13;&#10;IntegerType|DecimalType|FloatType id=&quot;dt1&quot; &#13;&#10;IntegerType|DecimalType|FloatType id=&quot;dt2&quot; &#13;&#10;StorableUnit|ItemUnit|MemberUnit|Value id=&quot;de1&quot; type=&quot;dt2&quot;&#13;&#10;...&#13;&#10;CallableUnit|MethodUnit id=&quot;ce1&quot; type=&quot;ce1_signature&quot; attribute=&quot;CheckReturnValue|...&quot;&#13;&#10;    Signature id=&quot;ce1_signature&quot;&#13;&#10;        ParameterUnit id=&quot;pu1&quot; kind=&quot;return&quot; type=&quot;dt1&quot;&#13;&#10;...&#13;&#10;ActionElement id=&quot;ae1&quot; kind=&quot;Call|PtrCall|MethodCall|VirtualCall&quot;&#13;&#10;    Calls &quot;ce1&quot;&#13;&#10;    Writes &quot;de1&quot;&#13;&#10;...    &#13;&#10;{code}&#13;&#10;and the numeric datatypes are not compatible.&#13;&#10;&#13;&#10; &#13;&#10;" name="kdm_outline" xmi:id="id.sfgd.327.kdm_outline" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;Roles to report are&#13;&#10;- the &lt;FunctionMethodOrProcedure&gt; function, method, procedure, ...&#13;&#10;- the &lt;VariableDataType&gt; numerical data type&#13;&#10;- the &lt;CallStatement&gt; call statement with assignment&#13;&#10;- the &lt;TargetDataType&gt; second numerical data type &#13;&#10;" name="reporting" xmi:id="id.sfgd.327.reporting" xmi:type="spms:PatternSection"/>
    <roles name="FunctionMethodOrProcedure" xmi:id="id.sfgd.327.FunctionMethodOrProcedure" xmi:type="spms:Role"/>
    <roles name="VariableDataType" xmi:id="id.sfgd.327.VariableDataType" xmi:type="spms:Role"/>
    <roles name="CallStatement" xmi:id="id.sfgd.327.CallStatement" xmi:type="spms:Role"/>
    <roles name="TargetDataType" xmi:id="id.sfgd.327.TargetDataType" xmi:type="spms:Role"/>
    <sections name="descriptor" body="ASCQM Ban Incorrect Numeric Conversion of Return Value(FunctionMethodOrProcedure,VariableDataType,CallStatement,TargetDataType)" xmi:id="id.sfgd.327.descriptor" xmi:type="spms:PatternSection"/>
    <relatedPatts pattern="id.wk.40" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="ASCQM Handle Return Value of Must Check Operations" xmi:id="id.sfgd.340" xmi:type="spms:PatternDefition">
    <sections body="Identify occurrences in application model where&#13;&#10;- the must-check function, method, procedure, ... is called in the &lt;CallToTheOperation&gt; call statement &#13;&#10;- with no use in a conditional statement of the return value &#13;&#10;&#13;&#10;The must-check nature of a function, method, procedure, ... is technology dependent. E.g. in Java: the @CheckReturnValue annotation&#13;&#10;&#13;&#10;" name="description" xmi:id="id.sfgd.340.description" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;KDM outline illustrating only the essential elements related to micro KDM:&#13;&#10;{code:title=KDM outline}&#13;&#10;...&#13;&#10;CallableUnit|MethodUnit id=&quot;ce1&quot; type=&quot;ce1_signature&quot; attribute=&quot;CheckReturnValue|...&quot;&#13;&#10;    Signature id=&quot;ce1_signature&quot;&#13;&#10;        ParameterUnit id=&quot;pu1&quot; kind=&quot;return&quot;&#13;&#10;...&#13;&#10;ActionElement id=&quot;ae1&quot; kind=&quot;Call|PtrCall|MethodCall|VirtualCall&quot;&#13;&#10;...    &#13;&#10;{code}&#13;&#10;Absent from the application model&#13;&#10;{code:title=KDM outline of absent elements}&#13;&#10;StorableUnit id=&quot;su1&quot;&#13;&#10;...&#13;&#10;ActionElement id=&quot;ae1&quot; kind=&quot;Call|PtrCall|MethodCall|VirtualCall&quot;&#13;&#10;    Writes &quot;su1&quot;&#13;&#10;    Flows &quot;ae2&quot;&#13;&#10;ActionElement id=&quot;ae2&quot; kind=&quot;Switch&quot;&#13;&#10;    Reads &quot;su1&quot;&#13;&#10;    GuardedFlow &quot;gf1&quot;&#13;&#10;    GuardedFlow|FalseFlow &quot;gf2&quot;&#13;&#10;...&#13;&#10;{code}&#13;&#10;or&#13;&#10;{code:title=KDM outline of absent elements}&#13;&#10;StorableUnit id=&quot;su1&quot;&#13;&#10;StorableUnit id=&quot;su2&quot;&#13;&#10;...&#13;&#10;ActionElement id=&quot;ae1&quot; kind=&quot;Call|PtrCall|MethodCall|VirtualCall&quot;&#13;&#10;    Writes &quot;su1&quot;&#13;&#10;    Flows &quot;ae2&quot;&#13;&#10;ActionElement id=&quot;ae2&quot; kind=&quot;Equal|NotEqual|LessThan|LessThanOrEqual|GreaterThan|GreatedThanOrEqual&quot;&#13;&#10;    Reads &quot;su1&quot;&#13;&#10;    Writes &quot;su2&quot;&#13;&#10;    Flows &quot;ae3&quot;&#13;&#10;ActionElement id=&quot;ae3&quot; kind=&quot;Condition&quot;&#13;&#10;    TrueFlow &quot;tf1&quot;&#13;&#10;    FalseFlow &quot;ff1&quot;&#13;&#10;...&#13;&#10;{code}&#13;&#10;&#13;&#10; &#13;&#10;" name="kdm_outline" xmi:id="id.sfgd.340.kdm_outline" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;Roles to report are&#13;&#10;- the &lt;CallToTheOperation&gt; call statement&#13;&#10;&#13;&#10;" name="reporting" xmi:id="id.sfgd.340.reporting" xmi:type="spms:PatternSection"/>
    <roles name="CallToTheOperation" xmi:id="id.sfgd.340.CallToTheOperation" xmi:type="spms:Role"/>
    <sections name="descriptor" body="ASCQM Handle Return Value of Must Check Operations(CallToTheOperation)" xmi:id="id.sfgd.340.descriptor" xmi:type="spms:PatternSection"/>
    <relatedPatts pattern="id.wk.40" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
    <relatedPatts pattern="id.wk.42" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="ASCQM Check Return Value of Resource Operations Immediately" xmi:id="id.sfgd.44" xmi:type="spms:PatternDefition">
    <sections body="Identify occurrences in application model where&#13;&#10;- a platform resource management function, procedure, method, ... is called in the &lt;CallToTheOperation&gt; call statement &#13;&#10;- with no operation performed immediately after on the return value&#13;&#10;&#13;&#10;" name="description" xmi:id="id.sfgd.44.description" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;KDM outline illustrating only the essential elements related to micro KDM:&#13;&#10;{code:title=KDM outline}&#13;&#10;PlatformModel&#13;&#10;    ...&#13;&#10;    DataManager|ExecutionResource|... id=&quot;pr1&quot; &#13;&#10;    ...&#13;&#10;    PlatformResource id=&quot;pa1&quot;  implementation=&quot;ae1&quot;&#13;&#10;        ManagesResource|ReadsResource|WritesResource &quot;pr1&quot;&#13;&#10;    ...&#13;&#10;CodeModel&#13;&#10;    CallableUnit|MethodUnit id=&quot;ce1&quot; type=&quot;ce1_signature&quot;&#13;&#10;        Signature id=&quot;ce1_signature&quot;&#13;&#10;            ParameterUnit id=&quot;pu1&quot; kind=&quot;return&quot;&#13;&#10;    ...&#13;&#10;    ActionElement id=&quot;ae1&quot; kind=&quot;Call|PtrCall|MethodCall|VirtualCall&quot;&#13;&#10;    ...    &#13;&#10;{code}&#13;&#10;Absent from the application model&#13;&#10;{code:title=KDM outline of absent elements}&#13;&#10;StorableUnit id=&quot;su1&quot;&#13;&#10;...&#13;&#10;ActionElement id=&quot;ae1&quot; kind=&quot;Call|PtrCall|MethodCall|VirtualCall&quot;&#13;&#10;    Writes &quot;su1&quot;&#13;&#10;    Flows &quot;ae2&quot;&#13;&#10;ActionElement id=&quot;ae2&quot; &#13;&#10;    Reads &quot;su1&quot;&#13;&#10;{code}&#13;&#10;&#13;&#10;" name="kdm_outline" xmi:id="id.sfgd.44.kdm_outline" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;Roles to report are&#13;&#10;- the &lt;CallToTheOperation&gt; call statement" name="reporting" xmi:id="id.sfgd.44.reporting" xmi:type="spms:PatternSection"/>
    <roles name="CallToTheOperation" xmi:id="id.sfgd.44.CallToTheOperation" xmi:type="spms:Role"/>
    <sections name="descriptor" body="ASCQM Check Return Value of Resource Operations Immediately(CallToTheOperation)" xmi:id="id.sfgd.44.descriptor" xmi:type="spms:PatternSection"/>
    <relatedPatts pattern="id.wk.42" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="ASCQM Ban Useless Handling of Exceptions" xmi:id="id.sfgd.45" xmi:type="spms:PatternDefition">
    <sections body="Identify occurrences in application model where&#13;&#10;- the &lt;CatchBlock&gt; catch block &#13;&#10;- does not report on the error condition as a new throw or as a return value &#13;&#10;&#13;&#10;&#13;&#10;" name="description" xmi:id="id.sfgd.45.description" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;KDM outline illustrating only the essential elements related to micro KDM:&#13;&#10;{code:title=KDM outline}&#13;&#10;...&#13;&#10;CatchUnit id=&quot;cu1&quot;&#13;&#10;    ...&#13;&#10; ...&#13;&#10;{code}&#13;&#10;Absent from the application model&#13;&#10;{code:title=KDM outline of absent elements}&#13;&#10;...&#13;&#10;CatchUnit id=&quot;cu1&quot;&#13;&#10;    ...&#13;&#10;    ActionElement id=&quot;ae1&quot; kind=&quot;Throw&quot;&#13;&#10;        Throws ...&#13;&#10;...&#13;&#10;{code}&#13;&#10;or&#13;&#10;{code:title=KDM outline of absent elements}&#13;&#10;...&#13;&#10;CatchUnit id=&quot;cu1&quot;&#13;&#10;    ...&#13;&#10;    ActionElement id=&quot;ae1&quot; kind=&quot;Return&quot;&#13;&#10;        Reads ...&#13;&#10;...&#13;&#10;{code}&#13;&#10;&#13;&#10;&#13;&#10;" name="kdm_outline" xmi:id="id.sfgd.45.kdm_outline" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;Roles to report are&#13;&#10;- the &lt;CatchBlock&gt; catch block" name="reporting" xmi:id="id.sfgd.45.reporting" xmi:type="spms:PatternSection"/>
    <roles name="CatchBlock" xmi:id="id.sfgd.45.CatchBlock" xmi:type="spms:Role"/>
    <sections name="descriptor" body="ASCQM Ban Useless Handling of Exceptions(CatchBlock)" xmi:id="id.sfgd.45.descriptor" xmi:type="spms:PatternSection"/>
    <relatedPatts pattern="id.wk.46" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
    <relatedPatts pattern="id.wk.283" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
    <relatedPatts pattern="id.wk.292" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="ASCQM Ban Comma Operator from Delete Statement" xmi:id="id.sfgd.69" xmi:type="spms:PatternDefition">
    <sections body="Identify occurrences in application model where&#13;&#10;- the &lt;DeleteStatement&gt; delete statement&#13;&#10;- coumpounded with the &lt;CommaStatement&gt; comma statement&#13;&#10;&#13;&#10;&#13;&#10;" name="description" xmi:id="id.sfgd.69.description" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;KDM outline illustrating only the essential elements related to micro KDM:&#13;&#10;&#13;&#10;{code:title=KDM outline}&#13;&#10;...&#13;&#10;CallableUnit id=&quot;cu1&quot; name=&quot;delete&quot; callableKind=&quot;operator&quot;&#13;&#10;CallableUnit id=&quot;cu2&quot; name=&quot;comma&quot; callableKind=&quot;operator&quot;&#13;&#10;...&#13;&#10;ActionElement id=&quot;ae1&quot; kind=&quot;Compound&quot; ext=&quot;delete x, y&quot;&#13;&#10;    ActionElement id=&quot;ae2&quot; kind=&quot;Call&quot;&#13;&#10;         Calls &quot;cu1&quot;&#13;&#10;    ...&#13;&#10;    ActionElement id=&quot;ae3&quot; kind=&quot;Call&quot;&#13;&#10;         Calls &quot;cu2&quot;&#13;&#10;    ...&#13;&#10;...&#13;&#10; {code}&#13;&#10;&#13;&#10;" name="kdm_outline" xmi:id="id.sfgd.69.kdm_outline" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;Roles to report are&#13;&#10;- the &lt;DeleteStatement&gt; delete this statement&#13;&#10;- the &lt;CommaStatement&gt; comma statement" name="reporting" xmi:id="id.sfgd.69.reporting" xmi:type="spms:PatternSection"/>
    <roles name="DeleteStatement" xmi:id="id.sfgd.69.DeleteStatement" xmi:type="spms:Role"/>
    <roles name="CommaStatement" xmi:id="id.sfgd.69.CommaStatement" xmi:type="spms:Role"/>
    <sections name="descriptor" body="ASCQM Ban Comma Operator from Delete Statement(DeleteStatement,CommaStatement)" xmi:id="id.sfgd.69.descriptor" xmi:type="spms:PatternSection"/>
    <relatedPatts pattern="id.wk.70" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
    <relatedPatts pattern="id.wk.71" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="ASCQM Release in Destructor Memory Allocated in Constructor" xmi:id="id.sfgd.78" xmi:type="spms:PatternDefition">
    <sections body="Identify occurrences in application model where&#13;&#10;- the &lt;MemoryAllocationStatement&gt; memory allocation statement in the class constructor&#13;&#10;- lacking a corresponding memory release statement in the class destructor&#13;&#10;&#13;&#10;&#13;&#10;" name="description" xmi:id="id.sfgd.78.description" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;KDM outline illustrating only the essential elements related to micro KDM:&#13;&#10;{code:title=KDM outline}&#13;&#10;ClassUnit|IntegerType|DecimalType|FloatType|StringType|VoidType|... id=&quot;dt1&quot; &#13;&#10;PointerType id=&quot;pt1&quot; &#13;&#10;    ItemUnit id=&quot;iu1&quot; type=&quot;dt1&quot;&#13;&#10;...&#13;&#10;ClassUnit id=&quot;cu1&quot;&#13;&#10;    ...&#13;&#10;    StorableUnit id=&quot;su1&quot; type=&quot;pt1&quot;&#13;&#10;    ...&#13;&#10;    MethodUnit id=&quot;mu1&quot; MethodKind=&quot;constructor&quot;&#13;&#10;        ...&#13;&#10;        ActionElement id=&quot;ae1&quot; kind=&quot;New|NewArray&quot;&#13;&#10;            Creates &quot;dt1&quot;&#13;&#10;            Writes &quot;su1&quot;&#13;&#10;...&#13;&#10;{code}&#13;&#10;or&#13;&#10;{code:title=KDM outline}&#13;&#10;ControlElement id=&quot;ce1&quot; name=&quot;malloc|calloc|...&quot; &#13;&#10;...&#13;&#10;ClassUnit|IntegerType|DecimalType|FloatType|StringType|VoidType|... id=&quot;dt1&quot; &#13;&#10;PointerType id=&quot;pt1&quot; &#13;&#10;    ItemUnit id=&quot;iu1&quot; type=&quot;dt1&quot;&#13;&#10;...&#13;&#10;ClassUnit id=&quot;cu1&quot;&#13;&#10;    ...&#13;&#10;    StorableUnit id=&quot;su1&quot; type=&quot;pt1&quot;&#13;&#10;    ...&#13;&#10;    MethodUnit id=&quot;mu1&quot; MethodKind=&quot;constructor&quot;&#13;&#10;        ...&#13;&#10;        ActionElement id=&quot;ae1&quot; kind=&quot;Call&quot;&#13;&#10;            Calls &quot;ce1&quot;&#13;&#10;            Writes &quot;su1&quot;&#13;&#10;...&#13;&#10;{code}&#13;&#10;Absent from the application model&#13;&#10;{code:title=KDM outline of absent elements}&#13;&#10;ControlElement id=&quot;ce2&quot; name=&quot;delete|delete[]|free|...&quot; &#13;&#10;...&#13;&#10;ClassUnit id=&quot;cu1&quot;&#13;&#10;    ...&#13;&#10;    MethodUnit id=&quot;mu2&quot; MethodKind=&quot;destructor&quot;&#13;&#10;        ...&#13;&#10;        ActionElement id=&quot;ae2&quot; kind=&quot;Call&quot;&#13;&#10;             Addresses &quot;su1&quot;&#13;&#10;             Calls &quot;ce2&quot;&#13;&#10;{code}&#13;&#10;&#13;&#10;" name="kdm_outline" xmi:id="id.sfgd.78.kdm_outline" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;Roles to report&#13;&#10;- the &lt;MemoryAllocationStatement&gt; memory allocation statement" name="reporting" xmi:id="id.sfgd.78.reporting" xmi:type="spms:PatternSection"/>
    <roles name="MemoryAllocationStatement" xmi:id="id.sfgd.78.MemoryAllocationStatement" xmi:type="spms:Role"/>
    <sections name="descriptor" body="ASCQM Release in Destructor Memory Allocated in Constructor(MemoryAllocationStatement)" xmi:id="id.sfgd.78.descriptor" xmi:type="spms:PatternSection"/>
    <relatedPatts pattern="id.wk.70" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
    <relatedPatts pattern="id.wk.71" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
    <relatedPatts pattern="id.wk.77" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="ASCQM Release Memory after Use with Correct Operation" xmi:id="id.sfgd.138" xmi:type="spms:PatternDefition">
    <sections body="Identify occurrences in the application model where&#13;&#10;- the memory is allocated via the &lt;MemoryAllocationStatement&gt; allocation statement&#13;&#10;- then released via the mismatched &lt;MemoryReleaseStatement&gt; release statement&#13;&#10;&#13;&#10;The pairs of matching allocation/deallocation primitives and operations are technology, framework, language dependant. E.g.: malloc/free, calloc/free, realloc/free in C/C+, new/delete, new[]/delete[] in C+, new/Release() with COM IUnknown interface.&#13;&#10;&#13;&#10;" name="description" xmi:id="id.sfgd.138.description" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;KDM outline illustrating only the essential elements related to micro KDM:&#13;&#10;{code:title=KDM outline}&#13;&#10;ClassUnit|IntegerType|DecimalType|FloatType|StringType|VoidType|... id=&quot;dt1&quot; &#13;&#10;PointerType id=&quot;pt1&quot; &#13;&#10;    ItemUnit id=&quot;iu1&quot; type=&quot;dt1&quot;&#13;&#10;...&#13;&#10;StorableUnit id=&quot;su1&quot; type=&quot;pt1&quot;&#13;&#10;...&#13;&#10;ActionElement id=&quot;ae1&quot; kind=&quot;New&quot;&#13;&#10;    Creates &quot;dt1&quot;&#13;&#10;    Writes &quot;su1&quot;&#13;&#10;...&#13;&#10;ControlElement id=&quot;ce2&quot; name=&quot;delete[]|free|...&quot; &#13;&#10;...&#13;&#10;ActionElement id=&quot;ae2&quot; kind=&quot;Call&quot;&#13;&#10;    Addresses &quot;su1&quot;&#13;&#10;    Calls &quot;ce2&quot;&#13;&#10;{code}&#13;&#10;or&#13;&#10;{code:title=KDM outline}&#13;&#10;ClassUnit|IntegerType|DecimalType|FloatType|StringType|VoidType|... id=&quot;dt1&quot; &#13;&#10;PointerType id=&quot;pt1&quot; &#13;&#10;    ItemUnit id=&quot;iu1&quot; type=&quot;dt1&quot;&#13;&#10;...&#13;&#10;StorableUnit id=&quot;su1&quot; type=&quot;pt1&quot;&#13;&#10;...&#13;&#10;ActionElement id=&quot;ae1&quot; kind=&quot;NewArray&quot;&#13;&#10;    Creates &quot;dt1&quot;&#13;&#10;    Writes &quot;su1&quot;&#13;&#10;...&#13;&#10;ControlElement id=&quot;ce2&quot; name=&quot;delete|free|...&quot; &#13;&#10;...&#13;&#10;ActionElement id=&quot;ae2&quot; kind=&quot;Call&quot;&#13;&#10;    Addresses &quot;su1&quot;&#13;&#10;    Calls &quot;ce2&quot;&#13;&#10;{code}&#13;&#10;or&#13;&#10;{code:title=KDM outline}&#13;&#10;ControlElement id=&quot;ce1&quot; name=&quot;malloc|calloc|...&quot; &#13;&#10;...&#13;&#10;ClassUnit|IntegerType|DecimalType|FloatType|StringType|VoidType|... id=&quot;dt1&quot; &#13;&#10;PointerType id=&quot;pt1&quot; &#13;&#10;    ItemUnit id=&quot;iu1&quot; type=&quot;dt1&quot;&#13;&#10;...&#13;&#10;StorableUnit id=&quot;su1&quot; type=&quot;pt1&quot;&#13;&#10;...&#13;&#10;ActionElement id=&quot;ae1&quot; kind=&quot;Call&quot;&#13;&#10;    Calls &quot;ce1&quot;&#13;&#10;    Writes &quot;su1&quot;&#13;&#10;...&#13;&#10;ControlElement id=&quot;ce2&quot; name=&quot;delete|delete[]|...&quot; &#13;&#10;...&#13;&#10;ActionElement id=&quot;ae2&quot; kind=&quot;Call&quot;&#13;&#10;    Addresses &quot;su1&quot;&#13;&#10;    Calls &quot;ce2&quot;&#13;&#10;{code}&#13;&#10;&#13;&#10;" name="kdm_outline" xmi:id="id.sfgd.138.kdm_outline" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;Roles to report are&#13;&#10;- the &lt;MemoryAllocationStatement&gt; allocation statement&#13;&#10;- the &lt;MemoryReleaseStatement&gt; release statement" name="reporting" xmi:id="id.sfgd.138.reporting" xmi:type="spms:PatternSection"/>
    <roles name="MemoryAllocationStatement" xmi:id="id.sfgd.138.MemoryAllocationStatement" xmi:type="spms:Role"/>
    <roles name="MemoryReleaseStatement" xmi:id="id.sfgd.138.MemoryReleaseStatement" xmi:type="spms:Role"/>
    <sections name="descriptor" body="ASCQM Release Memory after Use with Correct Operation(MemoryAllocationStatement,MemoryReleaseStatement)" xmi:id="id.sfgd.138.descriptor" xmi:type="spms:PatternSection"/>
    <relatedPatts pattern="id.wk.70" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
    <relatedPatts pattern="id.wk.74" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
    <relatedPatts pattern="id.wk.75" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
    <relatedPatts pattern="id.wk.71" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="ASCQM Implement Required Operations for Manual Resource Management" xmi:id="id.sfgd.157" xmi:type="spms:PatternDefition">
    <sections body="Identify occurrences in application model where&#13;&#10;- the &lt;ObjectDeclaration&gt; object declaration &#13;&#10;- declares an object with manual resource management capabilities &#13;&#10;- which lacks the required operation.&#13;&#10;&#13;&#10;The manual resource management capability is technology, framework, and language dependent. E.g.: class inheritance from IDisposable in C#, and AutoClosable in Java, class with __enter__ in python.&#13;&#10;" name="description" xmi:id="id.sfgd.157.description" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;KDM outline illustrating only the essential elements related to micro KDM:&#13;&#10;{code:title=KDM outline}&#13;&#10;InterfaceUnit id=&quot;iu1&quot; name=&quot;IDisposable|AutoClosable|...&quot;&#13;&#10;...&#13;&#10;ClassUnit id=&quot;cu1&quot;&#13;&#10;     Extends &quot;iu1&quot;&#13;&#10;     ...&#13;&#10;{code}&#13;&#10;of&#13;&#10;{code:title=KDM outline}&#13;&#10;...&#13;&#10;ClassUnit id=&quot;cu1&quot;&#13;&#10;     MethodUnit &quot;mu1&quot; name=&quot;__enter__&quot;&#13;&#10;     ...&#13;&#10;{code}&#13;&#10;Absent from the application model&#13;&#10;{code:title=KDM outline of absent elements}&#13;&#10;ClassUnit id=&quot;cu1&quot;&#13;&#10;     ...&#13;&#10;     MethodUnit &quot;mu1&quot; name=&quot;dispose|close|__exit__|...&quot;&#13;&#10;{code}&#13;&#10;&#13;&#10;" name="kdm_outline" xmi:id="id.sfgd.157.kdm_outline" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;Roles to report&#13;&#10;- the &lt;ObjectDeclaration&gt; object declaration" name="reporting" xmi:id="id.sfgd.157.reporting" xmi:type="spms:PatternSection"/>
    <roles name="ObjectDeclaration" xmi:id="id.sfgd.157.ObjectDeclaration" xmi:type="spms:Role"/>
    <sections name="descriptor" body="ASCQM Implement Required Operations for Manual Resource Management(ObjectDeclaration)" xmi:id="id.sfgd.157.descriptor" xmi:type="spms:PatternSection"/>
    <relatedPatts pattern="id.wk.70" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
    <relatedPatts pattern="id.wk.205" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
    <relatedPatts pattern="id.wk.71" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="ASCQM Release Platform Resource after Use" xmi:id="id.sfgd.260" xmi:type="spms:PatternDefition">
    <sections body="Identify occurrences in application model where&#13;&#10;- the &lt;FunctionProcedureOrMethod&gt; function, procedure, method, ...&#13;&#10;- uses the &lt;ResourceAllocationStatement&gt; resource allocation statement&#13;&#10;- excluding memory and file resources&#13;&#10;- while there exist the &lt;PathToExitWithoutResourceRelease&gt; path to exit the &lt;FunctionProcedureOrMethod&gt; function, procedure, method, ... without releasing the resource&#13;&#10;&#13;&#10;" name="description" xmi:id="id.sfgd.260.description" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;KDM outline illustrating only the essential elements related to micro KDM:&#13;&#10;{code:title=KDM outline}&#13;&#10;PlatformModel&#13;&#10;    ...&#13;&#10;    DataManager|ExecutionResource id=&quot;pr1&quot; &#13;&#10;    ...&#13;&#10;    PlatformAction id=&quot;pa1&quot; kind=&quot;open&quot; implementation=&quot;ae1&quot;&#13;&#10;        ManagesResource &quot;pr1&quot;&#13;&#10;    PlatformAction id=&quot;pa2&quot; kind=&quot;close&quot; implementation=&quot;ae2&quot;&#13;&#10;        ManagesResource &quot;pr1&quot;&#13;&#10;    &#13;&#10;...&#13;&#10;CodeModel&#13;&#10;    ...&#13;&#10;    CallableUnit|MethodUnit id=&quot;ce1&quot;  name=&quot;...&quot; &#13;&#10;        ...&#13;&#10;        ActionElement id=&quot;ae1&quot; kind=&quot;PlatformAction&quot;&#13;&#10;            Flows &quot;ae3&quot;&#13;&#10;        ActionElement id=&quot;ae3&quot;&#13;&#10;             Flows &quot;ae4&quot;&#13;&#10;        ActionElement id=&quot;ae4&quot; kind=&quot;Return&quot;&#13;&#10;        ...&#13;&#10;        ActionElement id=&quot;ae2&quot; kind=&quot;PlatformAction&quot;&#13;&#10;        ...&#13;&#10;...&#13;&#10;{code}&#13;&#10;&#13;&#10;" name="kdm_outline" xmi:id="id.sfgd.260.kdm_outline" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;Roles to report&#13;&#10;- the &lt;FunctionProcedureOrMethod&gt; function, procedure, method, ...&#13;&#10;- the &lt;ResourceAllocationStatement&gt; file resource open statement &#13;&#10;- the &lt;PathToExitWithoutResourceRelease&gt; path to exit" name="reporting" xmi:id="id.sfgd.260.reporting" xmi:type="spms:PatternSection"/>
    <roles name="FunctionProcedureOrMethod" xmi:id="id.sfgd.260.FunctionProcedureOrMethod" xmi:type="spms:Role"/>
    <roles name="ResourceAllocationStatement" xmi:id="id.sfgd.260.ResourceAllocationStatement" xmi:type="spms:Role"/>
    <roles name="PathToExitWithoutResourceRelease" xmi:id="id.sfgd.260.PathToExitWithoutResourceRelease" xmi:type="spms:Role"/>
    <sections name="descriptor" body="ASCQM Release Platform Resource after Use(FunctionProcedureOrMethod,ResourceAllocationStatement,PathToExitWithoutResourceRelease)" xmi:id="id.sfgd.260.descriptor" xmi:type="spms:PatternSection"/>
    <relatedPatts pattern="id.wk.70" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
    <relatedPatts pattern="id.wk.71" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
    <relatedPatts pattern="id.wk.77" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="ASCQM Release Memory After Use" xmi:id="id.sfgd.344" xmi:type="spms:PatternDefition">
    <sections body="Identify occurrences in application model where&#13;&#10;- the &lt;MemoryAllocationStatement&gt; memory allocation statement &#13;&#10;- lacking a corresponding memory release statement &#13;&#10;&#13;&#10;" name="description" xmi:id="id.sfgd.344.description" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;KDM outline illustrating only the essential elements related to micro KDM:&#13;&#10;{code:title=KDM outline}&#13;&#10;ClassUnit|IntegerType|DecimalType|FloatType|StringType|VoidType|... id=&quot;dt1&quot; &#13;&#10;PointerType id=&quot;pt1&quot; &#13;&#10;    ItemUnit id=&quot;iu1&quot; type=&quot;dt1&quot;&#13;&#10;...&#13;&#10;StorableUnit id=&quot;su1&quot; type=&quot;pt1&quot;&#13;&#10;...&#13;&#10;ActionElement id=&quot;ae1&quot; kind=&quot;New|NewArray&quot;&#13;&#10;    Creates &quot;dt1&quot;&#13;&#10;    Writes &quot;su1&quot;&#13;&#10;...&#13;&#10;{code}&#13;&#10;or&#13;&#10;{code:title=KDM outline}&#13;&#10;ControlElement id=&quot;ce1&quot; name=&quot;malloc|calloc|...&quot; &#13;&#10;...&#13;&#10;ClassUnit|IntegerType|DecimalType|FloatType|StringType|VoidType|... id=&quot;dt1&quot; &#13;&#10;PointerType id=&quot;pt1&quot; &#13;&#10;    ItemUnit id=&quot;iu1&quot; type=&quot;dt1&quot;&#13;&#10;...&#13;&#10;StorableUnit id=&quot;su1&quot; type=&quot;pt1&quot;&#13;&#10;...&#13;&#10;ActionElement id=&quot;ae1&quot; kind=&quot;Call&quot;&#13;&#10;    Calls &quot;ce1&quot;&#13;&#10;    Writes &quot;su1&quot;&#13;&#10;...&#13;&#10;{code}&#13;&#10;Absent from the application model&#13;&#10;{code:title=KDM outline of absent elements}&#13;&#10;ControlElement id=&quot;ce2&quot; name=&quot;delete|delete[]|free|...&quot; &#13;&#10;...&#13;&#10;ActionElement id=&quot;ae2&quot; kind=&quot;Call&quot;&#13;&#10;    Addresses &quot;su1&quot;&#13;&#10;    Calls &quot;ce2&quot;&#13;&#10;{code}&#13;&#10;&#13;&#10;" name="kdm_outline" xmi:id="id.sfgd.344.kdm_outline" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;Roles to report&#13;&#10;- the &lt;MemoryAllocationStatement&gt; memory allocation statement" name="reporting" xmi:id="id.sfgd.344.reporting" xmi:type="spms:PatternSection"/>
    <roles name="MemoryAllocationStatement" xmi:id="id.sfgd.344.MemoryAllocationStatement" xmi:type="spms:Role"/>
    <sections name="descriptor" body="ASCQM Release Memory After Use(MemoryAllocationStatement)" xmi:id="id.sfgd.344.descriptor" xmi:type="spms:PatternSection"/>
    <relatedPatts pattern="id.wk.70" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
    <relatedPatts pattern="id.wk.71" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="ASCQM Release Memory after Use with Correct Reference" xmi:id="id.sfgd.373" xmi:type="spms:PatternDefition">
    <sections body="Identify occurrences in the application model where&#13;&#10;- the memory is allocated via the &lt;MemoryAllocationStatement&gt; allocation statement&#13;&#10;- using the &lt;AllocationReference&gt; reference&#13;&#10;- then released via &lt;MemoryReleaseStatement&gt; release statement&#13;&#10;- using the mismatched &lt;ReleaseReference&gt; reference&#13;&#10;&#13;&#10;" name="description" xmi:id="id.sfgd.373.description" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;KDM outline illustrating only the essential elements related to micro KDM:&#13;&#10;{code:title=KDM outline}&#13;&#10;ClassUnit|IntegerType|DecimalType|FloatType|StringType|VoidType|... id=&quot;dt1&quot; &#13;&#10;PointerType id=&quot;pt1&quot; &#13;&#10;    ItemUnit id=&quot;iu1&quot; type=&quot;dt1&quot;&#13;&#10;...&#13;&#10;StorableUnit id=&quot;su1&quot; type=&quot;pt1&quot;&#13;&#10;...&#13;&#10;ActionElement id=&quot;ae1&quot; kind=&quot;New&quot;&#13;&#10;    Creates &quot;dt1&quot;&#13;&#10;    Writes &quot;su1&quot;&#13;&#10;...&#13;&#10;ControlElement id=&quot;ce2&quot; name=&quot;delete[]|free|...&quot; &#13;&#10;...&#13;&#10;ActionElement id=&quot;ae2&quot; kind=&quot;Call&quot;&#13;&#10;    Addresses &quot;su1&quot;&#13;&#10;    Calls &quot;ce2&quot;&#13;&#10;{code}&#13;&#10;or&#13;&#10;{code:title=KDM outline}&#13;&#10;ControlElement id=&quot;ce1&quot; name=&quot;malloc|calloc|...|New|NewArray|...&quot; &#13;&#10;...&#13;&#10;ClassUnit|IntegerType|DecimalType|FloatType|StringType|VoidType|... id=&quot;dt1&quot; &#13;&#10;PointerType id=&quot;pt1&quot; &#13;&#10;    ItemUnit id=&quot;iu1&quot; type=&quot;dt1&quot;&#13;&#10;...&#13;&#10;StorableUnit id=&quot;su1&quot; type=&quot;pt1&quot;&#13;&#10;...&#13;&#10;ActionElement id=&quot;ae1&quot; kind=&quot;Call&quot;&#13;&#10;    Calls &quot;ce1&quot;&#13;&#10;    Writes &quot;su1&quot;&#13;&#10;...&#13;&#10;StorableUnit id=&quot;su2&quot; type=&quot;pt1&quot;&#13;&#10;...&#13;&#10;ActionElement id=&quot;ae2&quot; type=&quot;add&quot;&#13;&#10;    Reads &quot;su1&quot;&#13;&#10;    ...&#13;&#10;    Writes &quot;su2&quot;&#13;&#10;...&#13;&#10;ControlElement id=&quot;ce2&quot; name=&quot;free|...|delete|delete[]|...&quot; &#13;&#10;...&#13;&#10;ActionElement id=&quot;ae3&quot; kind=&quot;Call&quot;&#13;&#10;    Addresses &quot;su2&quot;&#13;&#10;    Calls &quot;ce2&quot;&#13;&#10;{code}&#13;&#10;&#13;&#10;" name="kdm_outline" xmi:id="id.sfgd.373.kdm_outline" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;Roles to report are&#13;&#10;- the &lt;MemoryAllocationStatement&gt; allocation statement&#13;&#10;- the &lt;AllocationReference&gt; reference&#13;&#10;- the &lt;MemoryReleaseStatement&gt; release statement&#13;&#10;- the &lt;ReleaseReference&gt; reference" name="reporting" xmi:id="id.sfgd.373.reporting" xmi:type="spms:PatternSection"/>
    <roles name="MemoryAllocationStatement" xmi:id="id.sfgd.373.MemoryAllocationStatement" xmi:type="spms:Role"/>
    <roles name="AllocationReference" xmi:id="id.sfgd.373.AllocationReference" xmi:type="spms:Role"/>
    <roles name="MemoryReleaseStatement" xmi:id="id.sfgd.373.MemoryReleaseStatement" xmi:type="spms:Role"/>
    <roles name="ReleaseReference" xmi:id="id.sfgd.373.ReleaseReference" xmi:type="spms:Role"/>
    <sections name="descriptor" body="ASCQM Release Memory after Use with Correct Reference(MemoryAllocationStatement,AllocationReference,MemoryReleaseStatement,ReleaseReference)" xmi:id="id.sfgd.373.descriptor" xmi:type="spms:PatternSection"/>
    <relatedPatts pattern="id.wk.70" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
    <relatedPatts pattern="id.wk.75" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
    <relatedPatts pattern="id.wk.71" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="ASCQM Implement Virtual Destructor for Classes Derived from Class with Virtual Destructor" xmi:id="id.sfgd.127" xmi:type="spms:PatternDefition">
    <sections body="Identify occurrences in application model where&#13;&#10;- the &lt;Class&gt; class&#13;&#10;- inherits from the &lt;ParentClass&gt; parent class&#13;&#10;- with the &lt;ParentVirtualDestructor&gt; virtual destructor&#13;&#10;- but lacks a virtual destructor&#13;&#10; &#13;&#10;&#13;&#10;" name="description" xmi:id="id.sfgd.127.description" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;KDM outline illustrating only the essential elements related to micro KDM:&#13;&#10;{code:title=KDM outline}&#13;&#10;ClassUnit id=&quot;c1&quot; &#13;&#10;    ....&#13;&#10;    MethodUnit is=&quot;m1&quot;  methodKind=&quot;method&quot; isVirtual=&quot;true&quot;&#13;&#10;        ...&#13;&#10;ClassUnit id=&quot;c2&quot;  InheritsFrom=&quot;c1&quot;&#13;&#10;    ...&#13;&#10;{code}&#13;&#10;Absent from the application model&#13;&#10;{code:title=KDM outline of absent elements}&#13;&#10;ClassUnit id=&quot;c2&quot; &#13;&#10;    ....&#13;&#10;    MethodUnit is=&quot;m2&quot; methodKind=&quot;destructor&quot; isVirtual=&quot;true&quot;&#13;&#10;        ...&#13;&#10;{code}&#13;&#10;&#13;&#10;&#13;&#10;" name="kdm_outline" xmi:id="id.sfgd.127.kdm_outline" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;Roles to report are&#13;&#10;- the &lt;Class&gt; class&#13;&#10;- the &lt;ParentClass&gt; parent class&#13;&#10;- the &lt;ParentVirtualDestructor&gt; virtual destructor" name="reporting" xmi:id="id.sfgd.127.reporting" xmi:type="spms:PatternSection"/>
    <roles name="Class" xmi:id="id.sfgd.127.Class" xmi:type="spms:Role"/>
    <roles name="ParentClass" xmi:id="id.sfgd.127.ParentClass" xmi:type="spms:Role"/>
    <roles name="ParentVirtualDestructor" xmi:id="id.sfgd.127.ParentVirtualDestructor" xmi:type="spms:Role"/>
    <sections name="descriptor" body="ASCQM Implement Virtual Destructor for Classes Derived from Class with Virtual Destructor(Class,ParentClass,ParentVirtualDestructor)" xmi:id="id.sfgd.127.descriptor" xmi:type="spms:PatternSection"/>
    <relatedPatts pattern="id.wk.71" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="ASCQM Implement Virtual Destructor for Parent Classes" xmi:id="id.sfgd.128" xmi:type="spms:PatternDefition">
    <sections body="Identify occurrences in application model where&#13;&#10;- the &lt;Class&gt; class&#13;&#10;- inherits from the &lt;ParentClass&gt; parent class&#13;&#10;- which lacks a virtual destructor&#13;&#10;&#13;&#10;" name="description" xmi:id="id.sfgd.128.description" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;KDM outline illustrating only the essential elements related to micro KDM:&#13;&#10;{code:title=KDM outline}&#13;&#10;ClassUnit id=&quot;c1&quot; &#13;&#10;    ....&#13;&#10;ClassUnit id=&quot;c2&quot;  InheritsFrom=&quot;c1&quot;&#13;&#10;    ...&#13;&#10;{code}&#13;&#10;Absent from the application model&#13;&#10;{code:title=KDM outline of absent elements}&#13;&#10;ClassUnit id=&quot;c1&quot; &#13;&#10;    ....&#13;&#10;    MethodUnit is=&quot;m1&quot;  methodKind=&quot;method&quot; isVirtual=&quot;true&quot;&#13;&#10;        ...&#13;&#10;{code}&#13;&#10;&#13;&#10;" name="kdm_outline" xmi:id="id.sfgd.128.kdm_outline" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;Roles to report are&#13;&#10;- the &lt;Class&gt; class&#13;&#10;- the &lt;ParentClass&gt; parent class" name="reporting" xmi:id="id.sfgd.128.reporting" xmi:type="spms:PatternSection"/>
    <roles name="Class" xmi:id="id.sfgd.128.Class" xmi:type="spms:Role"/>
    <roles name="ParentClass" xmi:id="id.sfgd.128.ParentClass" xmi:type="spms:Role"/>
    <sections name="descriptor" body="ASCQM Implement Virtual Destructor for Parent Classes(Class,ParentClass)" xmi:id="id.sfgd.128.descriptor" xmi:type="spms:PatternSection"/>
    <relatedPatts pattern="id.wk.71" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="ASCQM Release File Resource after Use in Operation" xmi:id="id.sfgd.106" xmi:type="spms:PatternDefition">
    <sections body="Identify occurrences in application model where&#13;&#10;- the &lt;FunctionProcedureOrMethod&gt; function, procedure, method, ...&#13;&#10;- uses the &lt;FileResourceOpenStatement&gt; file resource open statement &#13;&#10;- while there exist the &lt;PathToExitWithoutFileResourceClose&gt; path to exit the &lt;FunctionProcedureOrMethod&gt; function, procedure, method, ... without releasing the file resource&#13;&#10;&#13;&#10;The path to exit the function, procedure, method, includes calls to other functions, procedures, methods, ...&#13;&#10;&#13;&#10;" name="description" xmi:id="id.sfgd.106.description" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;KDM outline illustrating only the essential elements related to micro KDM:&#13;&#10;{code:title=KDM outline}&#13;&#10;PlatformModel&#13;&#10;    ...&#13;&#10;    FileResource id=&quot;pr1&quot; &#13;&#10;    ...&#13;&#10;    PlatformAction id=&quot;pa1&quot; kind=&quot;open&quot; implementation=&quot;ae1&quot;&#13;&#10;        ManagesResource &quot;pr1&quot;&#13;&#10;    PlatformAction id=&quot;pa2&quot; kind=&quot;close&quot; implementation=&quot;ae2&quot;&#13;&#10;        ManagesResource &quot;pr1&quot;&#13;&#10;    &#13;&#10;...&#13;&#10;CodeModel&#13;&#10;    ...&#13;&#10;    CallableUnit|MethodUnit id=&quot;ce1&quot;  name=&quot;...&quot; &#13;&#10;        ...&#13;&#10;        ActionElement id=&quot;ae1&quot; kind=&quot;PlatformAction&quot;&#13;&#10;            Flows &quot;ae3&quot;&#13;&#10;        ActionElement id=&quot;ae3&quot;&#13;&#10;             Flows &quot;ae4&quot;&#13;&#10;        ActionElement id=&quot;ae4&quot; kind=&quot;Return&quot;&#13;&#10;        ...&#13;&#10;        ActionElement id=&quot;ae2&quot; kind=&quot;PlatformAction&quot;&#13;&#10;        ...&#13;&#10;...&#13;&#10;{code}&#13;&#10; &#13;&#10;" name="kdm_outline" xmi:id="id.sfgd.106.kdm_outline" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;Roles to report&#13;&#10;- the &lt;FunctionProcedureOrMethod&gt; function, procedure, method, ...&#13;&#10;- the &lt;FileResourceOpenStatement&gt; file resource open statement &#13;&#10;- the &lt;PathToExitWithoutFileResourceClose&gt; path to exit" name="reporting" xmi:id="id.sfgd.106.reporting" xmi:type="spms:PatternSection"/>
    <roles name="FunctionProcedureOrMethod" xmi:id="id.sfgd.106.FunctionProcedureOrMethod" xmi:type="spms:Role"/>
    <roles name="FileResourceOpenStatement" xmi:id="id.sfgd.106.FileResourceOpenStatement" xmi:type="spms:Role"/>
    <roles name="PathToExitWithoutFileResourceClose" xmi:id="id.sfgd.106.PathToExitWithoutFileResourceClose" xmi:type="spms:Role"/>
    <sections name="descriptor" body="ASCQM Release File Resource after Use in Operation(FunctionProcedureOrMethod,FileResourceOpenStatement,PathToExitWithoutFileResourceClose)" xmi:id="id.sfgd.106.descriptor" xmi:type="spms:PatternSection"/>
    <relatedPatts pattern="id.wk.71" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
    <relatedPatts pattern="id.wk.77" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
    <relatedPatts pattern="id.wk.259" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="ASCQM Implement Virtual Destructor for Classes with Virtual Methods" xmi:id="id.sfgd.125" xmi:type="spms:PatternDefition">
    <sections body="Identify occurrences in application model where&#13;&#10;- the &lt;Class&gt; class&#13;&#10;- owns the &lt;VirtualMethod&gt; virtual method&#13;&#10;- but lacks a virtual destructor&#13;&#10; &#13;&#10;&#13;&#10;" name="description" xmi:id="id.sfgd.125.description" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;KDM outline illustrating only the essential elements related to micro KDM:&#13;&#10;{code:title=KDM outline}&#13;&#10;ClassUnit id=&quot;c1&quot; &#13;&#10;    ....&#13;&#10;    MethodUnit is=&quot;m1&quot; methodKind=&quot;method&quot; isVirtual=&quot;true&quot;&#13;&#10;        ...&#13;&#10;{code}&#13;&#10;Absent from the application model&#13;&#10;{code:title=KDM outline of absent elements}&#13;&#10;ClassUnit id=&quot;c1&quot; &#13;&#10;    ....&#13;&#10;    MethodUnit is=&quot;m2&quot; methodKind=&quot;destructor&quot; isVirtual=&quot;true&quot;&#13;&#10;        ...&#13;&#10;{code}&#13;&#10;&#13;&#10;" name="kdm_outline" xmi:id="id.sfgd.125.kdm_outline" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;Roles to report are&#13;&#10;- the &lt;Class&gt; class&#13;&#10;- the &lt;VirtualMethod&gt; virtual method" name="reporting" xmi:id="id.sfgd.125.reporting" xmi:type="spms:PatternSection"/>
    <roles name="Class" xmi:id="id.sfgd.125.Class" xmi:type="spms:Role"/>
    <roles name="VirtualMethod" xmi:id="id.sfgd.125.VirtualMethod" xmi:type="spms:Role"/>
    <sections name="descriptor" body="ASCQM Implement Virtual Destructor for Classes with Virtual Methods(Class,VirtualMethod)" xmi:id="id.sfgd.125.descriptor" xmi:type="spms:PatternSection"/>
    <relatedPatts pattern="id.wk.71" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="ASCQM Manage Time-Out Mechanisms in Blocking Synchronous Calls" xmi:id="id.sfgd.154" xmi:type="spms:PatternDefition">
    <sections body="Identify occurrences in application model where&#13;&#10;- the &lt;BlockingSynchronousCall&gt; synchronous call &#13;&#10;- doesn't use its &lt;TimeOutOption&gt; time-out option&#13;&#10;&#13;&#10;The list of blocking synchronous primitives is technology, framework, language dependent. E.g. in Java: connect(), receive().&#13;&#10;&#13;&#10;" name="description" xmi:id="id.sfgd.154.description" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;KDM outline illustrating only the essential elements related to micro KDM:&#13;&#10;{code:title=KDM outline}&#13;&#10;ControlElement id=&quot;ce1&quot; name=&quot;connect|receive|...&quot; type=&quot;ce1_signature&quot;&#13;&#10;    Signature id=&quot;ce1_signature&quot;&#13;&#10;        ...&#13;&#10;        ParameterUnit id=&quot;pu1&quot; name=&quot;timeout|...&quot;&#13;&#10;    ...&#13;&#10;Value id=&quot;v1&quot; attribute=&quot;infinite_wait&quot;&#13;&#10;...&#13;&#10;ActionElement id=&quot;ae1&quot; kind=&quot;Call|PtrCall|MethodCall|VirtualCall&quot;&#13;&#10;    ...&#13;&#10;    Calls &quot;ce1&quot;&#13;&#10;    Reads &quot;v1&quot;&#13;&#10;{code}&#13;&#10;&#13;&#10;&#13;&#10;Absent from the application model&#13;&#10;{code:title=KDM outline of absent elements}&#13;&#10;...&#13;&#10;Value id=&quot;v2&quot; attribute=&quot;finite_wait&quot;&#13;&#10;...&#13;&#10;ActionElement id=&quot;ae1&quot; kind=&quot;Call|PtrCall|MethodCall|VirtualCall&quot;&#13;&#10;    ...&#13;&#10;    Calls &quot;ce1&quot;&#13;&#10;    Reads &quot;v2&quot;&#13;&#10;{code}&#13;&#10;&#13;&#10;&#13;&#10; &#13;&#10;" name="kdm_outline" xmi:id="id.sfgd.154.kdm_outline" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;Roles to report:&#13;&#10;- the &lt;BlockingSynchronousCall&gt; synchronous call &#13;&#10;- the &lt;TimeOutOption&gt; time-out option&#13;&#10;" name="reporting" xmi:id="id.sfgd.154.reporting" xmi:type="spms:PatternSection"/>
    <roles name="BlockingSynchronousCall" xmi:id="id.sfgd.154.BlockingSynchronousCall" xmi:type="spms:Role"/>
    <roles name="TimeOutOption" xmi:id="id.sfgd.154.TimeOutOption" xmi:type="spms:Role"/>
    <sections name="descriptor" body="ASCQM Manage Time-Out Mechanisms in Blocking Synchronous Calls(BlockingSynchronousCall,TimeOutOption)" xmi:id="id.sfgd.154.descriptor" xmi:type="spms:PatternSection"/>
    <relatedPatts pattern="id.wk.173" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="ASCQM Ban Hard-Coded Literals used to Connect to Resource" xmi:id="id.sfgd.123" xmi:type="spms:PatternDefition">
    <sections body="Identify occurrences in application model where&#13;&#10;- the &lt;InitializationStatement&gt; initialization statement&#13;&#10;- initialize a variable used in the &lt;ResourceAccessStatement&gt; resource access statement as parameter to call a resource access primitive&#13;&#10;&#13;&#10;It covers credentials, passwords, encryption keys, tokens, remember-me keys...&#13;&#10;&#13;&#10;" name="description" xmi:id="id.sfgd.123.description" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;KDM outline illustrating only the essential elements related to micro KDM:&#13;&#10;{code:title=KDM outline}&#13;&#10;Value id=&quot;hcv&quot; name=&quot;hcv&quot;&#13;&#10;...&#13;&#10;StorableUnit|ItemUnit|MemberUnit id=&quot;su1&quot; &#13;&#10;...&#13;&#10;ActionElement id=&quot;ae1&quot; kind=&quot;Assign&#13;&#10;    Reads &quot;hcv&quot;&#13;&#10;    Writes &quot;su1&quot;&#13;&#10;...&#13;&#10;MarshalledResource|MessagingResource|DataManager|ExecutionResource id=&quot;nwr&quot; &#13;&#10;...&#13;&#10;ControlElement id=&quot;ce1&quot;  &#13;&#10;    ...&#13;&#10;    ActionELement id=&quot;ae2&quot; kind=&quot;Platform&quot;&#13;&#10;        ManagesResource|ReadsResource|WritesResource &quot;nwr&quot;&#13;&#10;...&#13;&#10;ActionElement id=&quot;ae3&quot; kind=&quot;Call|PtrCall|MethodCall|VirtualCall&quot;&#13;&#10;    Reads &quot;su1&quot;&#13;&#10;    ...&#13;&#10;    Calls &quot;ce1&quot;&#13;&#10;{code}&#13;&#10; &#13;&#10;" name="kdm_outline" xmi:id="id.sfgd.123.kdm_outline" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;Roles to report are&#13;&#10;- the &lt;InitializationStatement&gt; initialization statement&#13;&#10;- the &lt;ResourceAccessStatement&gt; resource access statement" name="reporting" xmi:id="id.sfgd.123.reporting" xmi:type="spms:PatternSection"/>
    <roles name="InitializationStatement" xmi:id="id.sfgd.123.InitializationStatement" xmi:type="spms:Role"/>
    <roles name="ResourceAccessStatement" xmi:id="id.sfgd.123.ResourceAccessStatement" xmi:type="spms:Role"/>
    <sections name="descriptor" body="ASCQM Ban Hard-Coded Literals used to Connect to Resource(InitializationStatement,ResourceAccessStatement)" xmi:id="id.sfgd.123.descriptor" xmi:type="spms:PatternSection"/>
    <relatedPatts pattern="id.wk.184" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="ASCQM Ban Unintended Paths" xmi:id="id.sfgd.140" xmi:type="spms:PatternDefition">
    <sections body="Identify occurrences in the application model where&#13;&#10;- the &lt;Relation&gt; call-type, data, use relations &#13;&#10;- between the &lt;Caller&gt; caller &#13;&#10;- grouped in the &lt;OriginModule&gt; origin layer, component, or subsystem &#13;&#10;- and the &lt;Callee&gt; callee &#13;&#10;- grouped into the &lt;TargetModule&gt; target layer, component, or subsystem &#13;&#10;- as defined in the &lt;ArchitectureModel&gt; architectural blueprint defining layers, components, or subsystems&#13;&#10;- where relations from the &lt;OriginModule&gt; layer, component, or subsystem to the &lt;TargetModule&gt; layer, component, or subsystem are not intended&#13;&#10;&#13;&#10;The architectural blueprint defining layers, components, or subsystems is application dependent.&#13;&#10;&#13;&#10;" name="description" xmi:id="id.sfgd.140.description" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;KDM outline illustrating only the essential elements related to micro KDM:&#13;&#10;{code:title=KDM outline}&#13;&#10;...&#13;&#10;Layer|Component|Subsystem id=&quot;m1&quot;&#13;&#10;    ...&#13;&#10;    CallableUnit callableKind=&quot;regular|external|stored&quot; | MethodUnit id=&quot;ce1&quot; name=&quot;...&quot;&#13;&#10;        ...&#13;&#10;        ActionElement id=&quot;ae1&quot;&#13;&#10;            UsesType|Reads|Writes|Creates|Addresses|Calls|Dispatches &quot;ce2&quot;&#13;&#10;...&#13;&#10;Layer|Component|Subsystem id=&quot;m2&quot;&#13;&#10;    ...&#13;&#10;    CallableUnit callableKind=&quot;regular|external|stored&quot; | MethodUnit id=&quot;ce2&quot; name=&quot;...&quot;&#13;&#10;...&#13;&#10;{code}&#13;&#10;With &quot;m1&quot; not intended to reference &quot;m2&quot;&#13;&#10;&#13;&#10;" name="kdm_outline" xmi:id="id.sfgd.140.kdm_outline" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;Roles to report are&#13;&#10;- the &lt;ArchitectureModel&gt; architectural blueprint&#13;&#10;- the &lt;Relation&gt; relation&#13;&#10;- the &lt;Caller&gt; caller&#13;&#10;- the &lt;Callee&gt; callee&#13;&#10;- the &lt;OriginModule&gt; origin layer, component, or subsystem&#13;&#10;- the &lt;TargetModule&gt; target layer, component, or subsystem &#13;&#10;" name="reporting" xmi:id="id.sfgd.140.reporting" xmi:type="spms:PatternSection"/>
    <roles name="ArchitectureModel" xmi:id="id.sfgd.140.ArchitectureModel" xmi:type="spms:Role"/>
    <roles name="Relation" xmi:id="id.sfgd.140.Relation" xmi:type="spms:Role"/>
    <roles name="Caller" xmi:id="id.sfgd.140.Caller" xmi:type="spms:Role"/>
    <roles name="Callee" xmi:id="id.sfgd.140.Callee" xmi:type="spms:Role"/>
    <roles name="OriginModule" xmi:id="id.sfgd.140.OriginModule" xmi:type="spms:Role"/>
    <roles name="TargetModule" xmi:id="id.sfgd.140.TargetModule" xmi:type="spms:Role"/>
    <sections name="descriptor" body="ASCQM Ban Unintended Paths(ArchitectureModel,Relation,Caller,Callee,OriginModule,TargetModule)" xmi:id="id.sfgd.140.descriptor" xmi:type="spms:PatternSection"/>
    <relatedPatts pattern="id.wk.185" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
    <relatedPatts pattern="id.wk.192" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
    <relatedPatts pattern="id.wk.193" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="ASCQM Ban Empty Exception Block" xmi:id="id.sfgd.134" xmi:type="spms:PatternDefition">
    <sections body="Identify occurrences in application model where&#13;&#10;- the &lt;CatchBlock&gt; catch block &#13;&#10;- is empty&#13;&#10;&#13;&#10;" name="description" xmi:id="id.sfgd.134.description" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;KDM outline illustrating only the essential elements related to micro KDM:&#13;&#10;{code:title=KDM outline}&#13;&#10;...&#13;&#10;CatchUnit id=&quot;cu1&quot;&#13;&#10;    ActionElement id=&quot;ae1&quot; kind=&quot;Nop&quot;&#13;&#10;...&#13;&#10;{code}&#13;&#10;&#13;&#10;&#13;&#10;" name="kdm_outline" xmi:id="id.sfgd.134.kdm_outline" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;Roles to report are&#13;&#10;- the &lt;CatchBlock&gt; catch block" name="reporting" xmi:id="id.sfgd.134.reporting" xmi:type="spms:PatternSection"/>
    <roles name="CatchBlock" xmi:id="id.sfgd.134.CatchBlock" xmi:type="spms:Role"/>
    <sections name="descriptor" body="ASCQM Ban Empty Exception Block(CatchBlock)" xmi:id="id.sfgd.134.descriptor" xmi:type="spms:PatternSection"/>
    <relatedPatts pattern="id.wk.186" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
    <relatedPatts pattern="id.wk.292" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
    <relatedPatts pattern="id.wk.299" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
    <relatedPatts pattern="id.wk.283" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="ASCQM Ban Use of Prohibited Low-Level Resource Management Functionality" xmi:id="id.sfgd.97" xmi:type="spms:PatternDefition">
    <sections body="Identify occurrences in application model where&#13;&#10;- the &lt;ResourceManagementPrimitiveCall&gt; low-level resource management primitive call &#13;&#10;- which is bypassing the resource management primitives provided by the &lt;TechnologyStack&gt; technology stack&#13;&#10;&#13;&#10;" name="description" xmi:id="id.sfgd.97.description" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;KDM outline illustrating only the essential elements related to micro KDM:&#13;&#10;{code:title=KDM outline}&#13;&#10;CodeModel&#13;&#10;    Package id=&quot;p1&quot; name=&quot;javax.ejb|javax.servlet|javax.jms|javax.faces|javax.xml.bind|javax.activation|javax.mail|...&quot;&#13;&#10;    ...&#13;&#10;    Package id=&quot;p2&quot; name=&quot;java.sql&quot;&#13;&#10;        ClassUnit id=&quot;cu2&quot; name=&quot;DriverManager&quot;&#13;&#10;            MethodUnit id=&quot;mu2&quot;&#13;&#10;    ...&#13;&#10;    CompilationUnit id=&quot;cu2&quot;&#13;&#10;        Imports &quot;p1&quot;&#13;&#10;        Imports &quot;p2&quot;&#13;&#10;        ...&#13;&#10;        ActionElement id=&quot;ae1&quot; kind=&quot;MethodCall&quot;&#13;&#10;            Calls &quot;mu2&quot;&#13;&#10;{code}&#13;&#10;or&#13;&#10;{code:title=KDM outline}&#13;&#10;CodeModel&#13;&#10;    Package id=&quot;p1&quot; name=&quot;javax.servlet&quot;&#13;&#10;    ...&#13;&#10;    Package id=&quot;p2&quot; name=&quot;java.net&quot;&#13;&#10;        ClassUnit id=&quot;cu2&quot; name=&quot;Socket|ServerSocket&quot;&#13;&#10;            MethodUnit id=&quot;mu2&quot;&#13;&#10;    ...&#13;&#10;    CompilationUnit id=&quot;cu2&quot;&#13;&#10;        Imports &quot;p1&quot;&#13;&#10;        Imports &quot;p2&quot;&#13;&#10;        ...&#13;&#10;        ActionElement id=&quot;ae1&quot; kind=&quot;MethodCall&quot;&#13;&#10;            Calls &quot;mu2&quot;&#13;&#10;{code}&#13;&#10;or&#13;&#10;{code:title=KDM outline}&#13;&#10;CodeModel&#13;&#10;    Package id=&quot;p1&quot; name=&quot;javax.ejb&quot;&#13;&#10;    ...&#13;&#10;    Package id=&quot;p2&quot; name=&quot;java.net&quot;&#13;&#10;        ClassUnit id=&quot;cu2&quot; name=&quot;Socket|ServerSocket&quot;&#13;&#10;            MethodUnit id=&quot;mu2&quot;&#13;&#10;    ...&#13;&#10;    Package id=&quot;p3&quot; name=&quot;java.lang&quot;&#13;&#10;        ClassUnit id=&quot;cu3&quot; name=&quot;ClassLoader&quot;&#13;&#10;            MethodUnit id=&quot;mu3&quot;&#13;&#10;    ...&#13;&#10;    Package id=&quot;p4&quot; name=&quot;java.io&quot;&#13;&#10;        ClassUnit id=&quot;cu4&quot; name=&quot;File&quot;&#13;&#10;            MethodUnit id=&quot;mu4&quot;&#13;&#10;    ...&#13;&#10;    Package id=&quot;p5&quot; name=&quot;java.awt&quot;&#13;&#10;        ClassUnit id=&quot;cu5&quot; &#13;&#10;            MethodUnit id=&quot;mu5&quot;&#13;&#10;    ...&#13;&#10;    CompilationUnit id=&quot;cu2&quot;&#13;&#10;        Imports &quot;p1&quot;&#13;&#10;        Imports &quot;p2&quot;&#13;&#10;        ...&#13;&#10;        ActionElement id=&quot;ae1&quot; kind=&quot;MethodCall&quot;&#13;&#10;            Calls &quot;mu2|mu3|mu4|mu5&quot;&#13;&#10;{code}&#13;&#10;or&#13;&#10;{code:title=KDM outline}&#13;&#10;CodeModel&#13;&#10;    Package id=&quot;p1&quot; name=&quot;javax.ejb&quot;&#13;&#10;    ...&#13;&#10;    ...&#13;&#10;    CompilationUnit id=&quot;cu2&quot;&#13;&#10;        Imports &quot;p1&quot;&#13;&#10;        Imports &quot;p2&quot;&#13;&#10;        ...&#13;&#10;        ActionElement id=&quot;ae1&quot; kind=&quot;MethodCall&quot; attribute=&quot;synchronized&quot;&#13;&#10;            ...&#13;&#10;{code}&#13;&#10; &#13;&#10;" name="kdm_outline" xmi:id="id.sfgd.97.kdm_outline" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;Roles to report&#13;&#10;- the &lt;ResourceManagementPrimitiveCall&gt; low-level resource management primitive call &#13;&#10;- the &lt;TechnologyStack&gt; technology stack" name="reporting" xmi:id="id.sfgd.97.reporting" xmi:type="spms:PatternSection"/>
    <roles name="ResourceManagementPrimitiveCall" xmi:id="id.sfgd.97.ResourceManagementPrimitiveCall" xmi:type="spms:Role"/>
    <roles name="TechnologyStack" xmi:id="id.sfgd.97.TechnologyStack" xmi:type="spms:Role"/>
    <sections name="descriptor" body="ASCQM Ban Use of Prohibited Low-Level Resource Management Functionality(ResourceManagementPrimitiveCall,TechnologyStack)" xmi:id="id.sfgd.97.descriptor" xmi:type="spms:PatternSection"/>
    <relatedPatts pattern="id.wk.196" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="ASCQM Ban Excessive Size of Index on Columns of Large Tables" xmi:id="id.sfgd.100" xmi:type="spms:PatternDefition">
    <sections body="Identify occurrences in application model where&#13;&#10;- the &lt;Table&gt; table&#13;&#10;- with &lt;TotalSizeOfIndexes&gt; number of indexes&#13;&#10;- which is greater than &lt;MaxTotalSizeOfIndexes&gt;&#13;&#10;- and with more than &lt;MinNumberOfRows&gt;&#13;&#10;&#13;&#10;The &lt;MaxTotalSizeOfIndexes&gt; value is a measurement parameter. Its default value is: 30&#13;&#10;The &lt;MinNumberOfRows&gt; value is a measurement parameter. Its default value is: 1000000&#13;&#10;&#13;&#10;" name="description" xmi:id="id.sfgd.100.description" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;KDM outline illustrating only the essential elements related to micro KDM:&#13;&#10;{code:title=KDM outline}&#13;&#10;DataModel&#13;&#10;    RelationalSchema&#13;&#10;        RelationalTable id=&quot;rt1&quot;&#13;&#10;            Index id=&quot;i1&quot; implementation=&quot;iu1&quot;&#13;&#10;            Index id=&quot;i2&quot; implementation=&quot;iu1 iu2&quot;&#13;&#10;            ... &#13;&#10;            itemUnit id=&quot;iu1&quot; type=&quot;dt1&quot;  &#13;&#10;            itemUnit id=&quot;iu2&quot; type=&quot;dt2&quot;  &#13;&#10;...&#13;&#10;CodeModel&#13;&#10;     DataType id=&quot;dt1&quot;&#13;&#10;     DataType id=&quot;dt2&quot;&#13;&#10;     ...&#13;&#10;{code}&#13;&#10;&#13;&#10;The size of an Index is the size in byte of the data types of the columns it relies on.&#13;&#10;&#13;&#10; &#13;&#10;" name="kdm_outline" xmi:id="id.sfgd.100.kdm_outline" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;Roles to report&#13;&#10;- the &lt;Table&gt; table&#13;&#10;- the &lt;TotalSizeOfIndexes&gt; value&#13;&#10;- the &lt;MaxTotalSizeOfIndexes&gt; value&#13;&#10;- the &lt;MinNumberOfRows&gt; value" name="reporting" xmi:id="id.sfgd.100.reporting" xmi:type="spms:PatternSection"/>
    <roles name="Table" xmi:id="id.sfgd.100.Table" xmi:type="spms:Role"/>
    <roles name="TotalSizeOfIndexes" xmi:id="id.sfgd.100.TotalSizeOfIndexes" xmi:type="spms:Role"/>
    <roles name="MaxTotalSizeOfIndexes" xmi:id="id.sfgd.100.MaxTotalSizeOfIndexes" xmi:type="spms:Role"/>
    <roles name="MinNumberOfRows" xmi:id="id.sfgd.100.MinNumberOfRows" xmi:type="spms:Role"/>
    <sections name="descriptor" body="ASCQM Ban Excessive Size of Index on Columns of Large Tables(Table,TotalSizeOfIndexes,MaxTotalSizeOfIndexes,MinNumberOfRows)" xmi:id="id.sfgd.100.descriptor" xmi:type="spms:PatternSection"/>
    <relatedPatts pattern="id.wk.197" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="ASCQM Implement Index Required by Query on Large Tables" xmi:id="id.sfgd.99" xmi:type="spms:PatternDefition">
    <sections body="Identify occurrences in application model where&#13;&#10;- the &lt;Query&gt; query&#13;&#10;- queries the &lt;Table&gt; table&#13;&#10;- using the &lt;Column&gt; column(s)&#13;&#10;- where the &lt;Table&gt; table has more than &lt;MinNumberOfRows&gt;&#13;&#10;- but lacks a proper index&#13;&#10;&#13;&#10;The &lt;MinNumberOfRows&gt; value is a measurement parameter. Its default value is: 1000000&#13;&#10;&#13;&#10;" name="description" xmi:id="id.sfgd.99.description" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;KDM outline illustrating only the essential elements related to micro KDM:&#13;&#10;{code:title=KDM outline}&#13;&#10;DataModel&#13;&#10;    RelationalSchema&#13;&#10;        RelationalTable id=&quot;rt1&quot;&#13;&#10;            itemUnit id=&quot;iu1&quot;&#13;&#10;        ...&#13;&#10;        DataAction id=&quot;da1&quot; kind=&quot;Select|Insert|Update|Delete&quot; &#13;&#10;            ...&#13;&#10;            Reads &quot;iu1&quot;&#13;&#10;            ...&#13;&#10;        ...&#13;&#10;    ...&#13;&#10;...&#13;&#10;{code}&#13;&#10;Absent from the application model&#13;&#10;{code:title=KDM outline of absent elements}&#13;&#10;DataModel&#13;&#10;    RelationalSchema&#13;&#10;        RelationalTable id=&quot;rt1&quot;&#13;&#10;            Index id=&quot;i1&quot; implementation=&quot;iu1&quot;&#13;&#10;            itemUnit id=&quot;iu1&quot;&#13;&#10;...&#13;&#10;{code}&#13;&#10;&#13;&#10; &#13;&#10;" name="kdm_outline" xmi:id="id.sfgd.99.kdm_outline" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;Roles to report&#13;&#10;- the &lt;Query&gt; query&#13;&#10;- the &lt;Table&gt; table&#13;&#10;- the &lt;Column&gt; column (list)&#13;&#10;- the &lt;MinNumberOfRows&gt; value&#13;&#10;" name="reporting" xmi:id="id.sfgd.99.reporting" xmi:type="spms:PatternSection"/>
    <roles name="Query" xmi:id="id.sfgd.99.Query" xmi:type="spms:Role"/>
    <roles name="Table" xmi:id="id.sfgd.99.Table" xmi:type="spms:Role"/>
    <roles name="Column" xmi:id="id.sfgd.99.Column" xmi:type="spms:Role"/>
    <roles name="MinNumberOfRows" xmi:id="id.sfgd.99.MinNumberOfRows" xmi:type="spms:Role"/>
    <sections name="descriptor" body="ASCQM Implement Index Required by Query on Large Tables(Query,Table,Column,MinNumberOfRows)" xmi:id="id.sfgd.99.descriptor" xmi:type="spms:PatternSection"/>
    <relatedPatts pattern="id.wk.198" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="ASCQM Ban Excessive Number of Index on Columns of Large Tables" xmi:id="id.sfgd.101" xmi:type="spms:PatternDefition">
    <sections body="Identify occurrences in application model where&#13;&#10;- the &lt;Table&gt; table&#13;&#10;- with &lt;NumberOfIndexes&gt; number of indexes&#13;&#10;- which is greater than &lt;MaxNumberOfIndexes&gt;&#13;&#10;- and with more than &lt;MinNumberOfRows&gt;&#13;&#10;&#13;&#10;The &lt;MaxNumberOfIndexes&gt; value is a measurement parameter. Its default value is: 3&#13;&#10;The &lt;MinNumberOfRows&gt; value is a measurement parameter. Its default value is: 1000000&#13;&#10;&#13;&#10;" name="description" xmi:id="id.sfgd.101.description" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;KDM outline illustrating only the essential elements related to micro KDM:&#13;&#10;{code:title=KDM outline}&#13;&#10;DataModel&#13;&#10;    RelationalSchema&#13;&#10;        RelationalTable id=&quot;rt1&quot;&#13;&#10;            Index id=&quot;i1&quot; &#13;&#10;            Index id=&quot;i2&quot; &#13;&#10;            Index id=&quot;i3&quot; &#13;&#10;            Index id=&quot;i4&quot; &#13;&#10;            Index id=&quot;i5&quot; &#13;&#10;            Index id=&quot;i6&quot; &#13;&#10;...&#13;&#10;{code}&#13;&#10;&#13;&#10;" name="kdm_outline" xmi:id="id.sfgd.101.kdm_outline" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;Roles to report&#13;&#10;- the &lt;Table&gt; table&#13;&#10;- the &lt;NumberOfIndexes&gt; value&#13;&#10;- the &lt;MaxNumberOfIndexes&gt; value&#13;&#10;- the &lt;MinNumberOfRows&gt; value&#13;&#10;" name="reporting" xmi:id="id.sfgd.101.reporting" xmi:type="spms:PatternSection"/>
    <roles name="Table" xmi:id="id.sfgd.101.Table" xmi:type="spms:Role"/>
    <roles name="NumberOfIndexes" xmi:id="id.sfgd.101.NumberOfIndexes" xmi:type="spms:Role"/>
    <roles name="MaxNumberOfIndexes" xmi:id="id.sfgd.101.MaxNumberOfIndexes" xmi:type="spms:Role"/>
    <roles name="MinNumberOfRows" xmi:id="id.sfgd.101.MinNumberOfRows" xmi:type="spms:Role"/>
    <sections name="descriptor" body="ASCQM Ban Excessive Number of Index on Columns of Large Tables(Table,NumberOfIndexes,MaxNumberOfIndexes,MinNumberOfRows)" xmi:id="id.sfgd.101.descriptor" xmi:type="spms:PatternSection"/>
    <relatedPatts pattern="id.wk.199" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="ASCQM Ban Excessive Complexity of Data Resource Access" xmi:id="id.sfgd.105" xmi:type="spms:PatternDefition">
    <sections body="Identify occurrences in application model where&#13;&#10;- the &lt;Query&gt; query&#13;&#10;- with &lt;NumberOfTables&gt; number of tables or views&#13;&#10;- which is greater than &lt;MaxNumberOfTables&gt;&#13;&#10;- and with &lt;NumberOfSubqueries&gt; number of subqueries&#13;&#10;- which is greater than &lt;MaxNumberOfSubqueries&gt;&#13;&#10;- with at least one table or view with more than &lt;MinNumberOfRows&gt;&#13;&#10;&#13;&#10;The &lt;MaxNumberOfTables&gt; value is a measurement parameter. Its default value is: 5&#13;&#10;The &lt;MaxNumberOfSubqueries&gt; value is a measurement parameter. Its default value is: 3&#13;&#10;The &lt;MinNumberOfRows&gt; value is a measurement parameter. Its default value is: 1000000&#13;&#10;&#13;&#10;" name="description" xmi:id="id.sfgd.105.description" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;KDM outline illustrating only the essential elements related to micro KDM:&#13;&#10;{code:title=KDM outline}&#13;&#10;DataModel&#13;&#10;    RelationalSchema&#13;&#10;        RelationalTable|RelationalView id=&quot;cs1&quot;&#13;&#10;        RelationalTable|RelationalView id=&quot;cs2&quot;&#13;&#10;        RelationalTable|RelationalView id=&quot;cs3&quot;&#13;&#10;        RelationalTable|RelationalView id=&quot;cs4&quot;&#13;&#10;        RelationalTable|RelationalView id=&quot;cs5&quot;&#13;&#10;        RelationalTable|RelationalView id=&quot;cs6&quot;&#13;&#10;        ...&#13;&#10;        DataAction id=&quot;da1&quot; kind=&quot;Select|Insert|Update|Delete&quot; &#13;&#10;            ...&#13;&#10;            ReadsColumnSet|WritesColumnSet &quot;cs1&quot;&#13;&#10;            ReadsColumnSet|WritesColumnSet &quot;cs2&quot;&#13;&#10;            ReadsColumnSet|WritesColumnSet &quot;cs3&quot;&#13;&#10;            ReadsColumnSet|WritesColumnSet &quot;cs4&quot;&#13;&#10;            ReadsColumnSet|WritesColumnSet &quot;cs5&quot;&#13;&#10;            ReadsColumnSet|WritesColumnSet &quot;cs6&quot;&#13;&#10;            ...&#13;&#10;            DataAction id=&quot;da2&quot; kind=&quot;Select&quot;&#13;&#10;                ...&#13;&#10;            DataAction id=&quot;da3&quot; kind=&quot;Select&quot;&#13;&#10;                ...&#13;&#10;            DataAction id=&quot;da4&quot; kind=&quot;Select&quot;&#13;&#10;                ...&#13;&#10;            DataAction id=&quot;da5&quot; kind=&quot;Select&quot;&#13;&#10;                ...&#13;&#10;            ...&#13;&#10;        ...&#13;&#10;    ...&#13;&#10;...&#13;&#10;{code}&#13;&#10; &#13;&#10;" name="kdm_outline" xmi:id="id.sfgd.105.kdm_outline" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;Roles to report&#13;&#10;- the &lt;Query&gt; query&#13;&#10;- the &lt;NumberOfTables&gt; value&#13;&#10;- the &lt;MaxNumberOfTables&gt; value&#13;&#10;- the &lt;NumberOfSubqueries&gt; value&#13;&#10;- the &lt;MaxNumberOfSubqueries&gt; value&#13;&#10;- the &lt;MinNumberOfRows&gt; value" name="reporting" xmi:id="id.sfgd.105.reporting" xmi:type="spms:PatternSection"/>
    <roles name="Query" xmi:id="id.sfgd.105.Query" xmi:type="spms:Role"/>
    <roles name="NumberOfTables" xmi:id="id.sfgd.105.NumberOfTables" xmi:type="spms:Role"/>
    <roles name="MaxNumberOfTables" xmi:id="id.sfgd.105.MaxNumberOfTables" xmi:type="spms:Role"/>
    <roles name="NumberOfSubqueries" xmi:id="id.sfgd.105.NumberOfSubqueries" xmi:type="spms:Role"/>
    <roles name="MaxNumberOfSubqueries" xmi:id="id.sfgd.105.MaxNumberOfSubqueries" xmi:type="spms:Role"/>
    <roles name="MinNumberOfRows" xmi:id="id.sfgd.105.MinNumberOfRows" xmi:type="spms:Role"/>
    <sections name="descriptor" body="ASCQM Ban Excessive Complexity of Data Resource Access(Query,NumberOfTables,MaxNumberOfTables,NumberOfSubqueries,MaxNumberOfSubqueries,MinNumberOfRows)" xmi:id="id.sfgd.105.descriptor" xmi:type="spms:PatternSection"/>
    <relatedPatts pattern="id.wk.200" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="ASCQM Ban Expensive Operations in Loops" xmi:id="id.sfgd.108" xmi:type="spms:PatternDefition">
    <sections body="Identify occurrences in application model where&#13;&#10;- the &lt;ResourceConsummingStatement&gt; resource consuming statement &#13;&#10;- is used within the &lt;Loop&gt; loop. &#13;&#10;&#13;&#10;" name="description" xmi:id="id.sfgd.108.description" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;KDM outline illustrating only the essential elements related to micro KDM:&#13;&#10;{code:title=KDM outline}&#13;&#10;ActionElement id=&quot;ae1&quot; kind=&quot;New|NewArray&quot;&#13;&#10;{code}&#13;&#10;or&#13;&#10;{code:title=KDM outline}&#13;&#10;ActionElement id=&quot;ae1&quot; kind=&quot;SizeOf|InstanceOf|DynCast|TypeCast&quot;&#13;&#10;{code}&#13;&#10;or&#13;&#10;{code:title=KDM outline}&#13;&#10;ActionElement id=&quot;ae1&quot; kind=&quot;New|NewArray&quot;&#13;&#10;{code}&#13;&#10;or&#13;&#10;{code:title=KDM outline}&#13;&#10;PlatformModel&#13;&#10;    ...&#13;&#10;    MarshalledResource|NamingResource|DataManager id=&quot;pr1&quot; &#13;&#10;    ...&#13;&#10;    PlatformAction  id=&quot;pa1&quot; implementation=&quot;ae1&quot;&#13;&#10;        ManagesResource|WritesResource|ReadsResource &quot;pr1&quot;&#13;&#10;    &#13;&#10;...&#13;&#10;CodeModel&#13;&#10;    ...&#13;&#10;    ActionElement id=&quot;ae1&quot; kind=&quot;PlatformAction&quot;&#13;&#10;...&#13;&#10;{code}&#13;&#10;or&#13;&#10;{code:title=KDM outline}&#13;&#10;PlatformModel&#13;&#10;    ...&#13;&#10;    FileResource|StreamResource|MessagingResource id=&quot;pr1&quot; &#13;&#10;    ...&#13;&#10;    PlatformAction id=&quot;pa1&quot; implementation=&quot;ce1&quot;&#13;&#10;        ManagesResource &quot;pr1&quot;&#13;&#10;    &#13;&#10;...&#13;&#10;CodeModel&#13;&#10;    ...&#13;&#10;    ActionElement id=&quot;ae1&quot; kind=&quot;PlatformAction&quot;&#13;&#10;....&#13;&#10;{code} &#13;&#10;with (while loops)&#13;&#10;{code:title=KDM outline}&#13;&#10;BooleanType id=&quot;booleanType&quot; &#13;&#10;Value id=&quot;true&quot; name=&quot;true&quot; type=&quot;booleanType&quot;&#13;&#10;ActionElement id=&quot;ae2&quot; kind=&quot;Compound&quot;&#13;&#10;    ActionElement id=&quot;ae3&quot; kind=&quot;Condition&quot;&#13;&#10;        Reads &quot;true&quot;&#13;&#10;        TrueFlow &quot;tf1&quot;&#13;&#10;        FalseFlow &quot;ff1&quot;&#13;&#10;    ActionElement id=&quot;tf1&quot; ...&#13;&#10;    ...&#13;&#10;        Flows &quot;ae1&quot; &#13;&#10;    ...&#13;&#10;    Flows &quot;ae3&quot;&#13;&#10;ActionElement id=&quot;ff1&quot; ...&#13;&#10;{code}&#13;&#10;or (for loops)&#13;&#10;{code:title=KDM outline}&#13;&#10;ActionElement id=&quot;ae2&quot; kind=&quot;compound&quot;&#13;&#10;    ActionElement id=&quot;ae3&quot; kind=&quot;Assign&quot;&#13;&#10;        Reads ...&#13;&#10;        Writes &quot;LoopVariable&quot;&#13;&#10;        Flows &quot;ae4&quot;&#13;&#10;    ActionElement id=&quot;ae4&quot; kind=&quot;LessThan|LessThanOrEqual|GreaterThan|GreaterThanOrEqual&quot;&#13;&#10;        Reads &quot;LoopVariable&quot;&#13;&#10;        Reads ...&#13;&#10;        TrueFlow &quot;ae5&quot;&#13;&#10;        FalseFlow &quot;ae7&quot;&#13;&#10;    ActionElement id=&quot;ae5&quot; kind=...&#13;&#10;    ...&#13;&#10;        Flows &quot;ae1&quot; &#13;&#10;    ...&#13;&#10;    ActionElement id=&quot;ae6&quot; kind=&quot;Incr|Decr&quot;&#13;&#10;        Addresses &quot;LoopVariable&quot;&#13;&#10;        Flows &quot;ae4&quot;&#13;&#10;    ActionElement id=&quot;ae7&quot; kind=&quot;Nop&quot;&#13;&#10;...&#13;&#10;{code}&#13;&#10; &#13;&#10;" name="kdm_outline" xmi:id="id.sfgd.108.kdm_outline" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;Roles to report are&#13;&#10;- the &lt;ResourceConsummingStatement&gt; resource consuming statement &#13;&#10;- the &lt;Loop&gt; loop. &#13;&#10;" name="reporting" xmi:id="id.sfgd.108.reporting" xmi:type="spms:PatternSection"/>
    <roles name="ResourceConsummingStatement" xmi:id="id.sfgd.108.ResourceConsummingStatement" xmi:type="spms:Role"/>
    <roles name="Loop" xmi:id="id.sfgd.108.Loop" xmi:type="spms:Role"/>
    <sections name="descriptor" body="ASCQM Ban Expensive Operations in Loops(ResourceConsummingStatement,Loop)" xmi:id="id.sfgd.108.descriptor" xmi:type="spms:PatternSection"/>
    <relatedPatts pattern="id.wk.201" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="ASCQM Limit Number of Aggregated Non-Primitive Data Types" xmi:id="id.sfgd.111" xmi:type="spms:PatternDefition">
    <sections body="Identify occurrences in application model where&#13;&#10;- the &lt;Class&gt; class&#13;&#10;- with &lt;NumberOfNonPrimitiveMembers&gt; number of non-primitive members&#13;&#10;- which is greater than &lt;MaxNumberOfNonPrimitiveMembers&gt;&#13;&#10;&#13;&#10;The &lt;MaxNumberOfNonPrimitiveMembers&gt; value is a measurement parameter. Its default value is: 5&#13;&#10;&#13;&#10;&#13;&#10;" name="description" xmi:id="id.sfgd.111.description" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;KDM outline illustrating only the essential elements related to micro KDM:&#13;&#10;{code:title=KDM outline}&#13;&#10;ClassUnit id=&quot;cu1&quot;&#13;&#10;ClassUnit id=&quot;cu2&quot;&#13;&#10;ClassUnit id=&quot;cu3&quot;&#13;&#10;ClassUnit id=&quot;cu4&quot;&#13;&#10;ClassUnit id=&quot;cu5&quot;&#13;&#10;ClassUnit id=&quot;cu6&quot;&#13;&#10;...&#13;&#10;ClassUnit id=&quot;cu0&quot;&#13;&#10;    MemberUnit id=&quot;mu1&quot; type=&quot;cu1&quot;&#13;&#10;    MemberUnit id=&quot;mu2&quot; type=&quot;cu2&quot;&#13;&#10;    MemberUnit id=&quot;mu3&quot; type=&quot;cu3&quot;&#13;&#10;    MemberUnit id=&quot;mu4&quot; type=&quot;cu4&quot;&#13;&#10;    MemberUnit id=&quot;mu5&quot; type=&quot;cu5&quot;&#13;&#10;    MemberUnit id=&quot;mu6&quot; type=&quot;cu6&quot;&#13;&#10;    ...&#13;&#10;{code}&#13;&#10; &#13;&#10;" name="kdm_outline" xmi:id="id.sfgd.111.kdm_outline" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;Roles to report&#13;&#10;- the &lt;Class&gt; class&#13;&#10;- the &lt;NumberOfNonPrimitiveMembers&gt; value&#13;&#10;- the &lt;MaxNumberOfNonPrimitiveMembers&gt; value" name="reporting" xmi:id="id.sfgd.111.reporting" xmi:type="spms:PatternSection"/>
    <roles name="Class" xmi:id="id.sfgd.111.Class" xmi:type="spms:Role"/>
    <roles name="NumberOfNonPrimitiveMembers" xmi:id="id.sfgd.111.NumberOfNonPrimitiveMembers" xmi:type="spms:Role"/>
    <roles name="MaxNumberOfNonPrimitiveMembers" xmi:id="id.sfgd.111.MaxNumberOfNonPrimitiveMembers" xmi:type="spms:Role"/>
    <sections name="descriptor" body="ASCQM Limit Number of Aggregated Non-Primitive Data Types(Class,NumberOfNonPrimitiveMembers,MaxNumberOfNonPrimitiveMembers)" xmi:id="id.sfgd.111.descriptor" xmi:type="spms:PatternSection"/>
    <relatedPatts pattern="id.wk.202" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="ASCQM Ban Excessive Number of Data Resource Access from non-stored SQL Procedure" xmi:id="id.sfgd.117" xmi:type="spms:PatternDefition">
    <sections body="Identify occurrences in application model where&#13;&#10;- the &lt;Function&gt; SQL function is not a stored procedure&#13;&#10;- with &lt;NumberOfDataAccess&gt; accesses to data resources&#13;&#10;- which is greater than &lt;MaxNumberOfDataAccess&gt;&#13;&#10;&#13;&#10;The &lt;MaxNumberOfDataAccess&gt; value is a measurement parameter. Its default value is: 5&#13;&#10;&#13;&#10;" name="description" xmi:id="id.sfgd.117.description" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;KDM outline illustrating only the essential elements related to micro KDM:&#13;&#10;{code:title=KDM outline}&#13;&#10;DataModel&#13;&#10;    RelationSchema id=&quot;rs1&quot; &#13;&#10;        ...&#13;&#10;        CallableUnit id=&quot;cu1&quot; &#13;&#10;            ...&#13;&#10;            ActionElement id=&quot;da1&quot; kind=&quot;Select|Insert|Update|Delete&quot; &#13;&#10;            ...&#13;&#10;            ActionElement id=&quot;da2&quot; kind=&quot;Select|Insert|Update|Delete&quot; &#13;&#10;            ...&#13;&#10;            ActionElement id=&quot;da3&quot; kind=&quot;Select|Insert|Update|Delete&quot; &#13;&#10;            ...&#13;&#10;            ActionElement id=&quot;da4&quot; kind=&quot;Select|Insert|Update|Delete&quot; &#13;&#10;            ...&#13;&#10;            ActionElement id=&quot;da5&quot; kind=&quot;Select|Insert|Update|Delete&quot; &#13;&#10;            ...&#13;&#10;            ActionElement id=&quot;da6&quot; kind=&quot;Select|Insert|Update|Delete&quot; &#13;&#10;            ...&#13;&#10;{code}&#13;&#10;Absent from the application model&#13;&#10;{code:title=KDM outline of absent elements}&#13;&#10;DataModel&#13;&#10;    RelationSchema id=&quot;rs1&quot; &#13;&#10;        ...&#13;&#10;        CallableUnit id=&quot;cu1&quot; kind=&quot;stored&quot;&#13;&#10;            ...&#13;&#10;{code}&#13;&#10; &#13;&#10;" name="kdm_outline" xmi:id="id.sfgd.117.kdm_outline" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;Roles to report&#13;&#10;- the &lt;Function&gt; function&#13;&#10;- the &lt;NumberOfDataAccess&gt; value&#13;&#10;- the &lt;MaxNumberOfDataAccess&gt; value" name="reporting" xmi:id="id.sfgd.117.reporting" xmi:type="spms:PatternSection"/>
    <roles name="Function" xmi:id="id.sfgd.117.Function" xmi:type="spms:Role"/>
    <roles name="NumberOfDataAccess" xmi:id="id.sfgd.117.NumberOfDataAccess" xmi:type="spms:Role"/>
    <roles name="MaxNumberOfDataAccess" xmi:id="id.sfgd.117.MaxNumberOfDataAccess" xmi:type="spms:Role"/>
    <sections name="descriptor" body="ASCQM Ban Excessive Number of Data Resource Access from non-stored SQL Procedure(Function,NumberOfDataAccess,MaxNumberOfDataAccess)" xmi:id="id.sfgd.117.descriptor" xmi:type="spms:PatternSection"/>
    <relatedPatts pattern="id.wk.203" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="ASCQM Ban Excessive Number of Data Resource Access from non-SQL Code" xmi:id="id.sfgd.118" xmi:type="spms:PatternDefition">
    <sections body="Identify occurrences in application model where&#13;&#10;- the &lt;FunctionProcedureOrMethod&gt; function, procedure, method, ...&#13;&#10;- with &lt;NumberOfDataAccess&gt; accesses to data resources&#13;&#10;- which is greater than &lt;MaxNumberOfDataAccess&gt;&#13;&#10;&#13;&#10;The &lt;MaxNumberOfDataAccess&gt; value is a measurement parameter. Its default value is: 2&#13;&#10;&#13;&#10;" name="description" xmi:id="id.sfgd.118.description" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;KDM outline illustrating only the essential elements related to micro KDM:&#13;&#10;{code:title=KDM outline}&#13;&#10;DataModel&#13;&#10;    RelationSchema id=&quot;rs1&quot; &#13;&#10;        ...&#13;&#10;        ActionElement id=&quot;da1&quot; kind=&quot;Select|Insert|Update|Delete&quot; implementation=&quot;i1&quot;&#13;&#10;        ActionElement id=&quot;da2&quot; kind=&quot;Select|Insert|Update|Delete&quot; implementation=&quot;i2&quot;&#13;&#10;        ActionElement id=&quot;da3&quot; kind=&quot;Select|Insert|Update|Delete&quot; implementation=&quot;i3&quot;&#13;&#10;...&#13;&#10;CodeModel&#13;&#10;    ...&#13;&#10;    CallableUnit id=&quot;cu1&quot; | MethodUnit id=&quot;mu1&quot; &#13;&#10;        ...&#13;&#10;        ActionElement id=&quot;i1&quot;&#13;&#10;        ...&#13;&#10;        ActionElement id=&quot;i2&quot;&#13;&#10;        ...&#13;&#10;        ActionElement id=&quot;i3&quot;&#13;&#10;        ...&#13;&#10;... &#13;&#10;{code}&#13;&#10;&#13;&#10;" name="kdm_outline" xmi:id="id.sfgd.118.kdm_outline" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;Roles to report&#13;&#10;- the &lt;FunctionProcedureOrMethod&gt; function, procedure, method, ...&#13;&#10;- the &lt;NumberOfDataAccess&gt; value&#13;&#10;- the &lt;MaxNumberOfDataAccess&gt; value" name="reporting" xmi:id="id.sfgd.118.reporting" xmi:type="spms:PatternSection"/>
    <roles name="FunctionProcedureOrMethod" xmi:id="id.sfgd.118.FunctionProcedureOrMethod" xmi:type="spms:Role"/>
    <roles name="NumberOfDataAccess" xmi:id="id.sfgd.118.NumberOfDataAccess" xmi:type="spms:Role"/>
    <roles name="MaxNumberOfDataAccess" xmi:id="id.sfgd.118.MaxNumberOfDataAccess" xmi:type="spms:Role"/>
    <sections name="descriptor" body="ASCQM Ban Excessive Number of Data Resource Access from non-SQL Code(FunctionProcedureOrMethod,NumberOfDataAccess,MaxNumberOfDataAccess)" xmi:id="id.sfgd.118.descriptor" xmi:type="spms:PatternSection"/>
    <relatedPatts pattern="id.wk.204" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="ASCQM Ban Incrementral Creation of Immutable Data" xmi:id="id.sfgd.139" xmi:type="spms:PatternDefition">
    <sections body="Identify occurrences in the application model where&#13;&#10;- a text variable is incrementaly updated in the &lt;StringConcatenationStatement&gt; string concatenation statement&#13;&#10;&#13;&#10;" name="description" xmi:id="id.sfgd.139.description" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;KDM outline illustrating only the essential elements related to micro KDM:&#13;&#10;{code:title=KDM outline}&#13;&#10;...&#13;&#10;StringType id=&quot;st1&quot;&#13;&#10;StorableUnit id=&quot;su1&quot; type=&quot;st1&quot;&#13;&#10;...&#13;&#10;ActionElement id=&quot;ae1&quot; kind=&quot;Append&quot;&#13;&#10;    Reads &quot;su1&quot;&#13;&#10;    Writes &quot;su1&quot;&#13;&#10;    ...&#13;&#10;...&#13;&#10;{code}&#13;&#10;&#13;&#10;" name="kdm_outline" xmi:id="id.sfgd.139.kdm_outline" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;Roles to report are&#13;&#10;- the &lt;StringConcatenationStatement&gt; string concatenation statement" name="reporting" xmi:id="id.sfgd.139.reporting" xmi:type="spms:PatternSection"/>
    <roles name="StringConcatenationStatement" xmi:id="id.sfgd.139.StringConcatenationStatement" xmi:type="spms:Role"/>
    <sections name="descriptor" body="ASCQM Ban Incrementral Creation of Immutable Data(StringConcatenationStatement)" xmi:id="id.sfgd.139.descriptor" xmi:type="spms:PatternSection"/>
    <relatedPatts pattern="id.wk.206" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="ASCQM Ban While TRUE Loop Without Path To Break" xmi:id="id.sfgd.107" xmi:type="spms:PatternDefition">
    <sections body="Identify occurrences in the application model where:&#13;&#10;- the &lt;WhileTrueLoop&gt; &quot;while true&quot; loop&#13;&#10;- lacks a control flow to a break statement out of the loop&#13;&#10;&#13;&#10;&#13;&#10;" name="description" xmi:id="id.sfgd.107.description" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;KDM outline illustrating only the essential elements related to micro KDM:&#13;&#10;{code:title=KDM outline}&#13;&#10;BooleanType id=&quot;booleanType&quot; &#13;&#10;Value id=&quot;true&quot; name=&quot;true&quot; type=&quot;booleanType&quot;&#13;&#10;ActionElement id=&quot;ae1&quot; kind=&quot;Compound&quot;&#13;&#10;    ActionElement id=&quot;ae2&quot; kind=&quot;Condition&quot;&#13;&#10;        Reads &quot;true&quot;&#13;&#10;        TrueFlow &quot;tf1&quot;&#13;&#10;        FalseFlow &quot;ff1&quot;&#13;&#10;    ActionElement id=&quot;tf1&quot; ...&#13;&#10;    ...&#13;&#10;    Flows &quot;ae2&quot;&#13;&#10;ActionElement id=&quot;ff1&quot; ...&#13;&#10;{code}&#13;&#10;Absent from the application model&#13;&#10;{code:title=KDM outline of absent elements}&#13;&#10;ActionElement id=&quot;ae1&quot; kind=&quot;Compound&quot;&#13;&#10;    ActionElement id=&quot;ae2&quot; kind=&quot;Condition&quot;&#13;&#10;        ...&#13;&#10;        TrueFlow &quot;tf1&quot;&#13;&#10;        ...&#13;&#10;        ActionElement id=&quot;tf1&quot; ...&#13;&#10;            Flows &quot;ae3&quot;&#13;&#10;        ActionElement id=&quot;ae3&quot;&#13;&#10;            Flows &quot;e1&quot;&#13;&#10;        ActionElement id=&quot;e1&quot; kind=&quot;Goto&quot;&#13;&#10;            Flows &quot;ff1&quot;&#13;&#10;    ...&#13;&#10;ActionElement id=&quot;ff1&quot; ...&#13;&#10;{code}&#13;&#10;&#13;&#10;&#13;&#10;" name="kdm_outline" xmi:id="id.sfgd.107.kdm_outline" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;Roles to report&#13;&#10;- the &lt;WhileTrueLoop&gt; &quot;while true&quot; loop" name="reporting" xmi:id="id.sfgd.107.reporting" xmi:type="spms:PatternSection"/>
    <roles name="WhileTrueLoop" xmi:id="id.sfgd.107.WhileTrueLoop" xmi:type="spms:Role"/>
    <sections name="descriptor" body="ASCQM Ban While TRUE Loop Without Path To Break(WhileTrueLoop)" xmi:id="id.sfgd.107.descriptor" xmi:type="spms:PatternSection"/>
    <relatedPatts pattern="id.wk.245" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="ASCQM Ban Unmodified Loop Variable Within Loop" xmi:id="id.sfgd.126" xmi:type="spms:PatternDefition">
    <sections body="Identify occurrences in the application model where:&#13;&#10;- the &lt;WhileLoop&gt;  while loop&#13;&#10;- lacks an update of the condition value within the loop&#13;&#10;&#13;&#10;" name="description" xmi:id="id.sfgd.126.description" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;KDM outline illustrating only the essential elements related to micro KDM:&#13;&#10;{code:title=KDM outline}&#13;&#10;BooleanType id=&quot;booleanType&quot; &#13;&#10;StorableUnit id=&quot;su1&quot;  type=&quot;booleanType&quot;&#13;&#10;ActionElement id=&quot;ae1&quot; kind=&quot;Compound&quot;&#13;&#10;    ...&#13;&#10;    ActionElement id=&quot;ae2&quot; kind=&quot;Condition&quot;&#13;&#10;        Reads &quot;su1&quot;&#13;&#10;        ...&#13;&#10;    ...&#13;&#10;...&#13;&#10;{code}&#13;&#10;Absent from the application model&#13;&#10;{code:title=KDM outline of absent elements}&#13;&#10;ActionElement id=&quot;ae1&quot; kind=&quot;Compound&quot;&#13;&#10;    ...&#13;&#10;    ActionElement id=&quot;ae3&quot; kind=&quot;Assign|Incr|Decr&quot;&#13;&#10;        Writes &quot;su1&quot;&#13;&#10;        ...&#13;&#10;    ...&#13;&#10;{code}&#13;&#10;&#13;&#10;&#13;&#10;" name="kdm_outline" xmi:id="id.sfgd.126.kdm_outline" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;Roles to report&#13;&#10;- the &lt;WhileLoop&gt;  while loop&#13;&#10;" name="reporting" xmi:id="id.sfgd.126.reporting" xmi:type="spms:PatternSection"/>
    <roles name="WhileLoop" xmi:id="id.sfgd.126.WhileLoop" xmi:type="spms:Role"/>
    <sections name="descriptor" body="ASCQM Ban Unmodified Loop Variable Within Loop(WhileLoop)" xmi:id="id.sfgd.126.descriptor" xmi:type="spms:PatternSection"/>
    <relatedPatts pattern="id.wk.245" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="ASCQM Release File Resource after Use in Class" xmi:id="id.sfgd.335" xmi:type="spms:PatternDefition">
    <sections body="Identify occurrences in application model where&#13;&#10;- the &lt;Class&gt; class, ...&#13;&#10;- uses the &lt;FileResourceOpenStatement&gt; file resource open statement &#13;&#10;- without releasing the file resource in any of its methods&#13;&#10;&#13;&#10;The path to exit the function, procedure, method, includes calls to other functions, procedures, methods, ...&#13;&#10;&#13;&#10;" name="description" xmi:id="id.sfgd.335.description" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;KDM outline illustrating only the essential elements related to micro KDM:&#13;&#10;{code:title=KDM outline}&#13;&#10;PlatformModel&#13;&#10;    ...&#13;&#10;    FileResource id=&quot;pr1&quot; &#13;&#10;    ...&#13;&#10;    PlatformAction id=&quot;pa1&quot; kind=&quot;open&quot; implementation=&quot;ae1&quot;&#13;&#10;        ManagesResource &quot;pr1&quot;&#13;&#10;    PlatformAction id=&quot;pa2&quot; kind=&quot;close&quot; implementation=&quot;ae2&quot;&#13;&#10;        ManagesResource &quot;pr1&quot;&#13;&#10;    &#13;&#10;...&#13;&#10;CodeModel&#13;&#10;    ...&#13;&#10;    ClassUnit id=&quot;cu1&quot;  &#13;&#10;        ...&#13;&#10;        ActionElement id=&quot;ae1&quot; kind=&quot;PlatformAction&quot;&#13;&#10;        ...&#13;&#10;...&#13;&#10;{code}&#13;&#10; Absent from the application model&#13;&#10;{code:title=KDM outline of absent elements}&#13;&#10;ClassUnit id=&quot;cu1&quot;  &#13;&#10;    ...&#13;&#10;    ActionElement id=&quot;ae2&quot; kind=&quot;PlatformAction&quot;&#13;&#10;...&#13;&#10;{code}&#13;&#10;&#13;&#10;" name="kdm_outline" xmi:id="id.sfgd.335.kdm_outline" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;Roles to report&#13;&#10;- the &lt;Class&gt; class&#13;&#10;- the &lt;FileResourceOpenStatement&gt; file resource open statement &#13;&#10;" name="reporting" xmi:id="id.sfgd.335.reporting" xmi:type="spms:PatternSection"/>
    <roles name="Class" xmi:id="id.sfgd.335.Class" xmi:type="spms:Role"/>
    <roles name="FileResourceOpenStatement" xmi:id="id.sfgd.335.FileResourceOpenStatement" xmi:type="spms:Role"/>
    <sections name="descriptor" body="ASCQM Release File Resource after Use in Class(Class,FileResourceOpenStatement)" xmi:id="id.sfgd.335.descriptor" xmi:type="spms:PatternSection"/>
    <relatedPatts pattern="id.wk.259" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
    <relatedPatts pattern="id.wk.71" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="ASCQM Catch Exceptions" xmi:id="id.sfgd.290" xmi:type="spms:PatternDefition">
    <sections body="Identify occurrences in application model where&#13;&#10;- the &lt;Method&gt; method &#13;&#10;- declared as throwwing the &lt;Exception&gt; exception&#13;&#10;- is called in the &lt;MethodCall&gt; method call&#13;&#10;- which doesn't catch exceptions of type &lt;Exception&gt;&#13;&#10;&#13;&#10;" name="description" xmi:id="id.sfgd.290.description" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;KDM outline illustrating only the essential elements related to micro KDM:&#13;&#10;{code:title=KDM outline}&#13;&#10;...&#13;&#10;ClassUnit id=&quot;cu1&quot; &#13;&#10;...&#13;&#10;MethodUnit id=&quot;mu1&quot; type=&quot;mu1_signature&quot;&#13;&#10;    Signature id=&quot;mu1_signature&quot;&#13;&#10;        ParameterUnit id=&quot;pu1&quot; type=&quot;cu1&quot; kind=&quot;throws&quot;&#13;&#10;    ...&#13;&#10;...&#13;&#10;ActionElement id=&quot;ae1&quot; kind=&quot;MethodCall&quot;&#13;&#10;    Calls &quot;mu1&quot;&#13;&#10;...&#13;&#10;{code}&#13;&#10;Absent from the application model&#13;&#10;{code:title=KDM outline of absent elements}&#13;&#10;...&#13;&#10;TryUnit id=&quot;t1&quot;&#13;&#10;    ...&#13;&#10;    ActionElement id=&quot;ae1&quot; kind=&quot;MethodCall&quot;&#13;&#10;        Calls &quot;mu1&quot;&#13;&#10;    ...&#13;&#10;    ExceptionFlow &quot;c1&quot;&#13;&#10;...&#13;&#10;CatchUnit id=&quot;c1&quot;&#13;&#10;    ParameterUnit id=&quot;pu2&quot; type=&quot;cu1&quot;&#13;&#10;    ...&#13;&#10;...&#13;&#10;{code}&#13;&#10;&#13;&#10;" name="kdm_outline" xmi:id="id.sfgd.290.kdm_outline" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;Roles to report are&#13;&#10;- the &lt;Method&gt; method &#13;&#10;- the &lt;Exception&gt; exception&#13;&#10;- the &lt;MethodCall&gt; method call" name="reporting" xmi:id="id.sfgd.290.reporting" xmi:type="spms:PatternSection"/>
    <roles name="Method" xmi:id="id.sfgd.290.Method" xmi:type="spms:Role"/>
    <roles name="Exception" xmi:id="id.sfgd.290.Exception" xmi:type="spms:Role"/>
    <roles name="MethodCall" xmi:id="id.sfgd.290.MethodCall" xmi:type="spms:Role"/>
    <sections name="descriptor" body="ASCQM Catch Exceptions(Method,Exception,MethodCall)" xmi:id="id.sfgd.290.descriptor" xmi:type="spms:PatternSection"/>
    <relatedPatts pattern="id.wk.289" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
    <relatedPatts pattern="id.wk.283" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="ASCQM Ban Incompatible Lock Acquisition Sequences" xmi:id="id.sfgd.301" xmi:type="spms:PatternDefition">
    <sections body="Identify occurrences in application model where&#13;&#10;- the &lt;LockAcquisitionSequence&gt; sequence of lock acquisition &#13;&#10;- is the reverse of the &lt;ReverseLockAcquisitionSequence&gt; sequence of lock acquisition&#13;&#10;&#13;&#10;The locking mechanism is technology, framework, and language dependent. &#13;&#10;&#13;&#10;" name="description" xmi:id="id.sfgd.301.description" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;KDM outline illustrating only the essential elements related to micro KDM:&#13;&#10;{code:title=KDM outline}&#13;&#10;PlatformModel&#13;&#10;    DeployedResource id=&quot;dr1&quot;&#13;&#10;        ...&#13;&#10;        LockResource id=&quot;lr1&quot; &#13;&#10;        LockResource id=&quot;lr2&quot; &#13;&#10;        ...&#13;&#10;        PlatformAction id=&quot;pa1&quot; kind=&quot;lock&quot; implementation=&quot;ae1 ae12&quot;&#13;&#10;            ManagesResource|ReadsResource|WritesResource &quot;lr1&quot;&#13;&#10;        PlatformAction id=&quot;pa2&quot; kind=&quot;lock&quot; implementation=&quot;ae3 ae10&quot;&#13;&#10;            ManagesResource|ReadsResource|WritesResource &quot;lr2&quot;&#13;&#10;...&#13;&#10;CodeModel&#13;&#10;    ...&#13;&#10;    ActionElement id=&quot;ae1&quot; kind=&quot;PlatformAction&quot;&#13;&#10;        Flows &quot;ae2&quot;&#13;&#10;    ActionElement id=&quot;ae2&quot; ...&#13;&#10;        Flows &quot;ae3&quot;&#13;&#10;    ActionElement id=&quot;ae3&quot; kind=&quot;PlatformAction&quot;&#13;&#10;        Flows &quot;ae4&quot;&#13;&#10;    ActionElement id=&quot;ae4&quot; ...&#13;&#10;    ...&#13;&#10;    ActionElement id=&quot;ae10&quot; kind=&quot;PlatformAction&quot;&#13;&#10;        Flows &quot;ae11&quot;&#13;&#10;    ActionElement id=&quot;ae11&quot; ...&#13;&#10;        Flows &quot;ae12&quot;&#13;&#10;    ActionElement id=&quot;ae12&quot; kind=&quot;PlatformAction&quot;&#13;&#10;        Flows &quot;ae13&quot;&#13;&#10;    ActionElement id=&quot;ae13&quot;  ...&#13;&#10;&#13;&#10;{code}&#13;&#10; &#13;&#10;" name="kdm_outline" xmi:id="id.sfgd.301.kdm_outline" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;Roles to report are&#13;&#10;- the &lt;LockAcquisitionSequence&gt; sequence of lock acquisition &#13;&#10;- the &lt;ReverseLockAcquisitionSequence&gt; sequence of lock acquisition&#13;&#10;" name="reporting" xmi:id="id.sfgd.301.reporting" xmi:type="spms:PatternSection"/>
    <roles name="LockAcquisitionSequence" xmi:id="id.sfgd.301.LockAcquisitionSequence" xmi:type="spms:Role"/>
    <roles name="ReverseLockAcquisitionSequence" xmi:id="id.sfgd.301.ReverseLockAcquisitionSequence" xmi:type="spms:Role"/>
    <sections name="descriptor" body="ASCQM Ban Incompatible Lock Acquisition Sequences(LockAcquisitionSequence,ReverseLockAcquisitionSequence)" xmi:id="id.sfgd.301.descriptor" xmi:type="spms:PatternSection"/>
    <relatedPatts pattern="id.wk.300" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="ASCQM Ban Use of Thread Control Primitives with Known Deadlock Issues" xmi:id="id.sfgd.326" xmi:type="spms:PatternDefition">
    <sections body="Identify occurrences in application model where&#13;&#10;- the &lt;ThreadControlPrimitiveCall&gt; call to a thread control function, procedure, method, ... with known deadlock issues.&#13;&#10;&#13;&#10;The list of primitives is technology, framework, language dependant. E.g. in Java: java.lang.Thread.suspend(), java.lang.Thread.resume(), java.lang.ThreadGroup.suspend(), java.lang.ThreadGroup.resume()  and dependent methods java.lang.ThreadGroup.allowThreadSuspension().&#13;&#10;&#13;&#10;" name="description" xmi:id="id.sfgd.326.description" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;KDM outline illustrating only the essential elements related to micro KDM:&#13;&#10;{code:title=KDM outline}&#13;&#10;ControlElement id=&quot;ce1&quot; name=&quot;java.lang.Thread.suspend|java.lang.Thread.resume|...&quot;&#13;&#10;    ...&#13;&#10;...&#13;&#10;ActionElement id=&quot;ae3&quot; kind=&quot;Call|PtrCall|MethodCall|VirtualCall&quot;&#13;&#10;    ...&#13;&#10;    Calls &quot;ce1&quot;&#13;&#10;{code}&#13;&#10; &#13;&#10;" name="kdm_outline" xmi:id="id.sfgd.326.kdm_outline" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;Roles to report:&#13;&#10;- the &lt;ThreadControlPrimitiveCall&gt; call to a thread control function, procedure, method, ... with known deadlock issues." name="reporting" xmi:id="id.sfgd.326.reporting" xmi:type="spms:PatternSection"/>
    <roles name="ThreadControlPrimitiveCall" xmi:id="id.sfgd.326.ThreadControlPrimitiveCall" xmi:type="spms:Role"/>
    <sections name="descriptor" body="ASCQM Ban Use of Thread Control Primitives with Known Deadlock Issues(ThreadControlPrimitiveCall)" xmi:id="id.sfgd.326.descriptor" xmi:type="spms:PatternSection"/>
    <relatedPatts pattern="id.wk.300" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="ASCQM Ban Unboxing in Loops" xmi:id="id.sfgd.378" xmi:type="spms:PatternDefition">
    <sections body="Identify occurrences in application model where&#13;&#10;- the &lt;Unboxing&gt; unboxing statement &#13;&#10;- is used within the &lt;Loop&gt; loop. &#13;&#10;&#13;&#10;" name="description" xmi:id="id.sfgd.378.description" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;KDM outline illustrating only the essential elements related to micro KDM:&#13;&#10;{code:title=KDM outline}&#13;&#10;IntegerType|DecimalType|BooleanType|BitType|CharType|... id=&quot;dt1&quot; &#13;&#10;...&#13;&#10;StorableUnit|ItemUnit|MemberUnit|Value id=&quot;de1&quot; type=&quot;dt1&quot;&#13;&#10;...&#13;&#10;ClassUnit|... id=&quot;dt2&quot; &#13;&#10;   MemberUnit id=&quot;fu1&quot; type=&quot;dt1&quot; &#13;&#10;...&#13;&#10;BooleanType id=&quot;booleanType&quot; &#13;&#10;Value id=&quot;true&quot; name=&quot;true&quot; type=&quot;booleanType&quot;&#13;&#10;ActionElement id=&quot;ae2&quot; kind=&quot;Compound&quot;&#13;&#10;    ActionElement id=&quot;ae3&quot; kind=&quot;Condition&quot;&#13;&#10;        Reads &quot;true&quot;&#13;&#10;        TrueFlow &quot;tf1&quot;&#13;&#10;        FalseFlow &quot;ff1&quot;&#13;&#10;    ActionElement id=&quot;tf1&quot; ...&#13;&#10;    ...&#13;&#10;    StorableUnit|ItemUnit|MemberUnit id=&quot;de2&quot; type=&quot;dt2&quot;&#13;&#10;    ...&#13;&#10;    ActionElement id=&quot;ae1&quot; kind=&quot;Assign&quot;&#13;&#10;        Writes &quot;de1&quot;&#13;&#10;        Reads &quot;de2&quot;&#13;&#10;    ...&#13;&#10;    Flows &quot;ae3&quot;&#13;&#10;ActionElement id=&quot;ff1&quot; ...&#13;&#10;{code}&#13;&#10;or&#13;&#10;{code:title=KDM outline}&#13;&#10;IntegerType|DecimalType|BooleanType|BitType|CharType|... id=&quot;dt1&quot; &#13;&#10;...&#13;&#10;StorableUnit|ItemUnit|MemberUnit|Value id=&quot;de1&quot; type=&quot;dt1&quot;&#13;&#10;...&#13;&#10;ClassUnit|... id=&quot;dt2&quot; &#13;&#10;   MemberUnit id=&quot;fu1&quot; type=&quot;dt1&quot; &#13;&#10;...&#13;&#10;ActionElement id=&quot;ae2&quot; kind=&quot;compound&quot;&#13;&#10;    ActionElement id=&quot;ae3&quot; kind=&quot;Assign&quot;&#13;&#10;        Reads ...&#13;&#10;        Writes &quot;LoopVariable&quot;&#13;&#10;        Flows &quot;ae4&quot;&#13;&#10;    ActionElement id=&quot;ae4&quot; kind=&quot;LessThan|LessThanOrEqual|GreaterThan|GreaterThanOrEqual&quot;&#13;&#10;        Reads &quot;LoopVariable&quot;&#13;&#10;        Reads ...&#13;&#10;        TrueFlow &quot;ae5&quot;&#13;&#10;        FalseFlow &quot;ae7&quot;&#13;&#10;    ActionElement id=&quot;ae5&quot; kind=...&#13;&#10;    ...&#13;&#10;    StorableUnit|ItemUnit|MemberUnit id=&quot;de2&quot; type=&quot;dt2&quot;&#13;&#10;    ...&#13;&#10;    ActionElement id=&quot;ae1&quot; kind=&quot;Assign&quot;&#13;&#10;        Writes &quot;de1&quot;&#13;&#10;        Reads &quot;de2&quot;&#13;&#10;    ...&#13;&#10;    ActionElement id=&quot;ae7&quot; kind=&quot;Nop&quot;&#13;&#10;...&#13;&#10;{code}&#13;&#10;&#13;&#10;&#13;&#10;" name="kdm_outline" xmi:id="id.sfgd.378.kdm_outline" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;Roles to report are&#13;&#10;- the &lt;Unboxing&gt; unboxing statement &#13;&#10;- the &lt;Loop&gt; loop. &#13;&#10;" name="reporting" xmi:id="id.sfgd.378.reporting" xmi:type="spms:PatternSection"/>
    <roles name="Unboxing" xmi:id="id.sfgd.378.Unboxing" xmi:type="spms:Role"/>
    <roles name="Loop" xmi:id="id.sfgd.378.Loop" xmi:type="spms:Role"/>
    <sections name="descriptor" body="ASCQM Ban Unboxing in Loops(Unboxing,Loop)" xmi:id="id.sfgd.378.descriptor" xmi:type="spms:PatternSection"/>
    <relatedPatts pattern="id.wk.377" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
  </spms:PatternDefinition>
  <spms:PatternDefinition name="ASCQM Ban Autoboxing in Loops" xmi:id="id.sfgd.379" xmi:type="spms:PatternDefition">
    <sections body="Identify occurrences in application model where&#13;&#10;- the &lt;Autoboxing&gt; autoboxing statement &#13;&#10;- is used within the &lt;Loop&gt; loop. &#13;&#10;&#13;&#10;" name="description" xmi:id="id.sfgd.379.description" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;KDM outline illustrating only the essential elements related to micro KDM:&#13;&#10;{code:title=KDM outline}&#13;&#10;IntegerType|DecimalType|BooleanType|BitType|CharType|... id=&quot;dt1&quot; &#13;&#10;...&#13;&#10;ClassUnit|... id=&quot;dt2&quot; &#13;&#10;   MemberUnit id=&quot;fu1&quot; type=&quot;dt1&quot; &#13;&#10;...&#13;&#10;StorableUnit|ItemUnit|MemberUnit id=&quot;de2&quot; type=&quot;dt2&quot;&#13;&#10;...&#13;&#10;BooleanType id=&quot;booleanType&quot; &#13;&#10;Value id=&quot;true&quot; name=&quot;true&quot; type=&quot;booleanType&quot;&#13;&#10;ActionElement id=&quot;ae2&quot; kind=&quot;Compound&quot;&#13;&#10;    ActionElement id=&quot;ae3&quot; kind=&quot;Condition&quot;&#13;&#10;        Reads &quot;true&quot;&#13;&#10;        TrueFlow &quot;tf1&quot;&#13;&#10;        FalseFlow &quot;ff1&quot;&#13;&#10;    ActionElement id=&quot;tf1&quot; ...&#13;&#10;    ...&#13;&#10;   StorableUnit|ItemUnit|MemberUnit|Value id=&quot;de1&quot; type=&quot;dt1&quot;&#13;&#10;   ...&#13;&#10;    ActionElement id=&quot;ae1&quot; kind=&quot;Assign&quot;&#13;&#10;        Writes &quot;de2&quot;&#13;&#10;        Reads &quot;de1&quot;&#13;&#10;    ...&#13;&#10;    Flows &quot;ae3&quot;&#13;&#10;ActionElement id=&quot;ff1&quot; ...&#13;&#10;{code}&#13;&#10;or&#13;&#10;{code:title=KDM outline}&#13;&#10;IntegerType|DecimalType|BooleanType|BitType|CharType|... id=&quot;dt1&quot; &#13;&#10;...&#13;&#10;ClassUnit|... id=&quot;dt2&quot; &#13;&#10;   MemberUnit id=&quot;fu1&quot; type=&quot;dt1&quot; &#13;&#10;...&#13;&#10;StorableUnit|ItemUnit|MemberUnit id=&quot;de2&quot; type=&quot;dt2&quot;&#13;&#10;...&#13;&#10;ActionElement id=&quot;ae2&quot; kind=&quot;compound&quot;&#13;&#10;    ActionElement id=&quot;ae3&quot; kind=&quot;Assign&quot;&#13;&#10;        Reads ...&#13;&#10;        Writes &quot;LoopVariable&quot;&#13;&#10;        Flows &quot;ae4&quot;&#13;&#10;    ActionElement id=&quot;ae4&quot; kind=&quot;LessThan|LessThanOrEqual|GreaterThan|GreaterThanOrEqual&quot;&#13;&#10;        Reads &quot;LoopVariable&quot;&#13;&#10;        Reads ...&#13;&#10;        TrueFlow &quot;ae5&quot;&#13;&#10;        FalseFlow &quot;ae7&quot;&#13;&#10;    ActionElement id=&quot;ae5&quot; kind=...&#13;&#10;    ...&#13;&#10;   StorableUnit|ItemUnit|MemberUnit|Value id=&quot;de1&quot; type=&quot;dt1&quot;&#13;&#10;   ...&#13;&#10;    ActionElement id=&quot;ae1&quot; kind=&quot;Assign&quot;&#13;&#10;        Writes &quot;de2&quot;&#13;&#10;        Reads &quot;de1&quot;&#13;&#10;    ...&#13;&#10;    ActionElement id=&quot;ae7&quot; kind=&quot;Nop&quot;&#13;&#10;...&#13;&#10;{code}&#13;&#10;&#13;&#10;" name="kdm_outline" xmi:id="id.sfgd.379.kdm_outline" xmi:type="spms:PatternSection"/>
    <sections body="&#13;&#10;Roles to report are&#13;&#10;- the &lt;Autoboxing&gt; autoboxing statement &#13;&#10;- the &lt;Loop&gt; loop. &#13;&#10;" name="reporting" xmi:id="id.sfgd.379.reporting" xmi:type="spms:PatternSection"/>
    <roles name="Autoboxing" xmi:id="id.sfgd.379.Autoboxing" xmi:type="spms:Role"/>
    <roles name="Loop" xmi:id="id.sfgd.379.Loop" xmi:type="spms:Role"/>
    <sections name="descriptor" body="ASCQM Ban Autoboxing in Loops(Autoboxing,Loop)" xmi:id="id.sfgd.379.descriptor" xmi:type="spms:PatternSection"/>
    <relatedPatts pattern="id.wk.377" xmi:type="spms:RelatedPattern" nature="id.nat.2"/>
  </spms:PatternDefinition>
  <smm:MeasureLibrary xmi:id="AutomatedSourceCodeQualityMeasurementSmmLibrary" name="AutomatedSourceCodeQualityMeasurementSmmLibrary" shortDescription="Automated Source Code Quality Measurement SMM library" Description="SMM part of the representation of the Automated Source Code Quality Measurement specifications which now regroups all 4 quality characteristics specifications and whose content was reviewed for validity and coverage of embedded and IoT devices.">
    <measureElements xmi:id="id.smm.scope.1" xmi:type="smm:Scope" name="CodeItem" class="kdm:kdm::CodeItem"/>
    <measureElements xmi:id="id.smm.characteristic.1" xmi:type="smm:Characteristic" name="AutomatedSourceCodeQualityCharacteristicMeasure"/>
    <measureElements xmi:id="id.cat.376" name="Weakness Category Resource Sustainability" xmi:type="smm:MeasureCatogory" categoryMeasure="id.wk.173.occurrence-count id.wk.184.occurrence-count id.wk.185.occurrence-count id.wk.186.occurrence-count id.wk.192.occurrence-count id.wk.193.occurrence-count id.wk.196.occurrence-count id.wk.197.occurrence-count id.wk.198.occurrence-count id.wk.199.occurrence-count id.wk.200.occurrence-count id.wk.201.occurrence-count id.wk.202.occurrence-count id.wk.203.occurrence-count id.wk.204.occurrence-count id.wk.205.occurrence-count id.wk.206.occurrence-count id.wk.245.occurrence-count id.wk.259.occurrence-count id.wk.283.occurrence-count id.wk.289.occurrence-count id.wk.292.occurrence-count id.wk.299.occurrence-count id.wk.300.occurrence-count id.wk.377.occurrence-count id.wk.40.occurrence-count id.wk.42.occurrence-count id.wk.46.occurrence-count id.wk.70.occurrence-count id.wk.71.occurrence-count id.wk.74.occurrence-count id.wk.75.occurrence-count id.wk.77.occurrence-count"/>
    <measureElements xmi:id="id.sfgd.41.recognizer" name="Occurrence Scope Recognizer of ASCQM Handle Return Value of Resource Operations" xmi:type="smm:Operation" language="OCL" body="id.sfgd.41.A_instanceOf_PatternInstance::PatternInstance()"/>
    <measureElements xmi:id="id.sfgd.327.recognizer" name="Occurrence Scope Recognizer of ASCQM Ban Incorrect Numeric Conversion of Return Value" xmi:type="smm:Operation" language="OCL" body="id.sfgd.327.A_instanceOf_PatternInstance::PatternInstance()"/>
    <measureElements xmi:id="id.sfgd.340.recognizer" name="Occurrence Scope Recognizer of ASCQM Handle Return Value of Must Check Operations" xmi:type="smm:Operation" language="OCL" body="id.sfgd.340.A_instanceOf_PatternInstance::PatternInstance()"/>
    <measureElements xmi:id="id.sfgd.44.recognizer" name="Occurrence Scope Recognizer of ASCQM Check Return Value of Resource Operations Immediately" xmi:type="smm:Operation" language="OCL" body="id.sfgd.44.A_instanceOf_PatternInstance::PatternInstance()"/>
    <measureElements xmi:id="id.sfgd.45.recognizer" name="Occurrence Scope Recognizer of ASCQM Ban Useless Handling of Exceptions" xmi:type="smm:Operation" language="OCL" body="id.sfgd.45.A_instanceOf_PatternInstance::PatternInstance()"/>
    <measureElements xmi:id="id.sfgd.69.recognizer" name="Occurrence Scope Recognizer of ASCQM Ban Comma Operator from Delete Statement" xmi:type="smm:Operation" language="OCL" body="id.sfgd.69.A_instanceOf_PatternInstance::PatternInstance()"/>
    <measureElements xmi:id="id.sfgd.78.recognizer" name="Occurrence Scope Recognizer of ASCQM Release in Destructor Memory Allocated in Constructor" xmi:type="smm:Operation" language="OCL" body="id.sfgd.78.A_instanceOf_PatternInstance::PatternInstance()"/>
    <measureElements xmi:id="id.sfgd.138.recognizer" name="Occurrence Scope Recognizer of ASCQM Release Memory after Use with Correct Operation" xmi:type="smm:Operation" language="OCL" body="id.sfgd.138.A_instanceOf_PatternInstance::PatternInstance()"/>
    <measureElements xmi:id="id.sfgd.157.recognizer" name="Occurrence Scope Recognizer of ASCQM Implement Required Operations for Manual Resource Management" xmi:type="smm:Operation" language="OCL" body="id.sfgd.157.A_instanceOf_PatternInstance::PatternInstance()"/>
    <measureElements xmi:id="id.sfgd.260.recognizer" name="Occurrence Scope Recognizer of ASCQM Release Platform Resource after Use" xmi:type="smm:Operation" language="OCL" body="id.sfgd.260.A_instanceOf_PatternInstance::PatternInstance()"/>
    <measureElements xmi:id="id.sfgd.344.recognizer" name="Occurrence Scope Recognizer of ASCQM Release Memory After Use" xmi:type="smm:Operation" language="OCL" body="id.sfgd.344.A_instanceOf_PatternInstance::PatternInstance()"/>
    <measureElements xmi:id="id.sfgd.373.recognizer" name="Occurrence Scope Recognizer of ASCQM Release Memory after Use with Correct Reference" xmi:type="smm:Operation" language="OCL" body="id.sfgd.373.A_instanceOf_PatternInstance::PatternInstance()"/>
    <measureElements xmi:id="id.sfgd.127.recognizer" name="Occurrence Scope Recognizer of ASCQM Implement Virtual Destructor for Classes Derived from Class with Virtual Destructor" xmi:type="smm:Operation" language="OCL" body="id.sfgd.127.A_instanceOf_PatternInstance::PatternInstance()"/>
    <measureElements xmi:id="id.sfgd.128.recognizer" name="Occurrence Scope Recognizer of ASCQM Implement Virtual Destructor for Parent Classes" xmi:type="smm:Operation" language="OCL" body="id.sfgd.128.A_instanceOf_PatternInstance::PatternInstance()"/>
    <measureElements xmi:id="id.sfgd.106.recognizer" name="Occurrence Scope Recognizer of ASCQM Release File Resource after Use in Operation" xmi:type="smm:Operation" language="OCL" body="id.sfgd.106.A_instanceOf_PatternInstance::PatternInstance()"/>
    <measureElements xmi:id="id.sfgd.125.recognizer" name="Occurrence Scope Recognizer of ASCQM Implement Virtual Destructor for Classes with Virtual Methods" xmi:type="smm:Operation" language="OCL" body="id.sfgd.125.A_instanceOf_PatternInstance::PatternInstance()"/>
    <measureElements xmi:id="id.sfgd.154.recognizer" name="Occurrence Scope Recognizer of ASCQM Manage Time-Out Mechanisms in Blocking Synchronous Calls" xmi:type="smm:Operation" language="OCL" body="id.sfgd.154.A_instanceOf_PatternInstance::PatternInstance()"/>
    <measureElements xmi:id="id.sfgd.123.recognizer" name="Occurrence Scope Recognizer of ASCQM Ban Hard-Coded Literals used to Connect to Resource" xmi:type="smm:Operation" language="OCL" body="id.sfgd.123.A_instanceOf_PatternInstance::PatternInstance()"/>
    <measureElements xmi:id="id.sfgd.140.recognizer" name="Occurrence Scope Recognizer of ASCQM Ban Unintended Paths" xmi:type="smm:Operation" language="OCL" body="id.sfgd.140.A_instanceOf_PatternInstance::PatternInstance()"/>
    <measureElements xmi:id="id.sfgd.134.recognizer" name="Occurrence Scope Recognizer of ASCQM Ban Empty Exception Block" xmi:type="smm:Operation" language="OCL" body="id.sfgd.134.A_instanceOf_PatternInstance::PatternInstance()"/>
    <measureElements xmi:id="id.sfgd.97.recognizer" name="Occurrence Scope Recognizer of ASCQM Ban Use of Prohibited Low-Level Resource Management Functionality" xmi:type="smm:Operation" language="OCL" body="id.sfgd.97.A_instanceOf_PatternInstance::PatternInstance()"/>
    <measureElements xmi:id="id.sfgd.100.recognizer" name="Occurrence Scope Recognizer of ASCQM Ban Excessive Size of Index on Columns of Large Tables" xmi:type="smm:Operation" language="OCL" body="id.sfgd.100.A_instanceOf_PatternInstance::PatternInstance()"/>
    <measureElements xmi:id="id.sfgd.99.recognizer" name="Occurrence Scope Recognizer of ASCQM Implement Index Required by Query on Large Tables" xmi:type="smm:Operation" language="OCL" body="id.sfgd.99.A_instanceOf_PatternInstance::PatternInstance()"/>
    <measureElements xmi:id="id.sfgd.101.recognizer" name="Occurrence Scope Recognizer of ASCQM Ban Excessive Number of Index on Columns of Large Tables" xmi:type="smm:Operation" language="OCL" body="id.sfgd.101.A_instanceOf_PatternInstance::PatternInstance()"/>
    <measureElements xmi:id="id.sfgd.105.recognizer" name="Occurrence Scope Recognizer of ASCQM Ban Excessive Complexity of Data Resource Access" xmi:type="smm:Operation" language="OCL" body="id.sfgd.105.A_instanceOf_PatternInstance::PatternInstance()"/>
    <measureElements xmi:id="id.sfgd.108.recognizer" name="Occurrence Scope Recognizer of ASCQM Ban Expensive Operations in Loops" xmi:type="smm:Operation" language="OCL" body="id.sfgd.108.A_instanceOf_PatternInstance::PatternInstance()"/>
    <measureElements xmi:id="id.sfgd.111.recognizer" name="Occurrence Scope Recognizer of ASCQM Limit Number of Aggregated Non-Primitive Data Types" xmi:type="smm:Operation" language="OCL" body="id.sfgd.111.A_instanceOf_PatternInstance::PatternInstance()"/>
    <measureElements xmi:id="id.sfgd.117.recognizer" name="Occurrence Scope Recognizer of ASCQM Ban Excessive Number of Data Resource Access from non-stored SQL Procedure" xmi:type="smm:Operation" language="OCL" body="id.sfgd.117.A_instanceOf_PatternInstance::PatternInstance()"/>
    <measureElements xmi:id="id.sfgd.118.recognizer" name="Occurrence Scope Recognizer of ASCQM Ban Excessive Number of Data Resource Access from non-SQL Code" xmi:type="smm:Operation" language="OCL" body="id.sfgd.118.A_instanceOf_PatternInstance::PatternInstance()"/>
    <measureElements xmi:id="id.sfgd.139.recognizer" name="Occurrence Scope Recognizer of ASCQM Ban Incrementral Creation of Immutable Data" xmi:type="smm:Operation" language="OCL" body="id.sfgd.139.A_instanceOf_PatternInstance::PatternInstance()"/>
    <measureElements xmi:id="id.sfgd.107.recognizer" name="Occurrence Scope Recognizer of ASCQM Ban While TRUE Loop Without Path To Break" xmi:type="smm:Operation" language="OCL" body="id.sfgd.107.A_instanceOf_PatternInstance::PatternInstance()"/>
    <measureElements xmi:id="id.sfgd.126.recognizer" name="Occurrence Scope Recognizer of ASCQM Ban Unmodified Loop Variable Within Loop" xmi:type="smm:Operation" language="OCL" body="id.sfgd.126.A_instanceOf_PatternInstance::PatternInstance()"/>
    <measureElements xmi:id="id.sfgd.335.recognizer" name="Occurrence Scope Recognizer of ASCQM Release File Resource after Use in Class" xmi:type="smm:Operation" language="OCL" body="id.sfgd.335.A_instanceOf_PatternInstance::PatternInstance()"/>
    <measureElements xmi:id="id.sfgd.290.recognizer" name="Occurrence Scope Recognizer of ASCQM Catch Exceptions" xmi:type="smm:Operation" language="OCL" body="id.sfgd.290.A_instanceOf_PatternInstance::PatternInstance()"/>
    <measureElements xmi:id="id.sfgd.301.recognizer" name="Occurrence Scope Recognizer of ASCQM Ban Incompatible Lock Acquisition Sequences" xmi:type="smm:Operation" language="OCL" body="id.sfgd.301.A_instanceOf_PatternInstance::PatternInstance()"/>
    <measureElements xmi:id="id.sfgd.326.recognizer" name="Occurrence Scope Recognizer of ASCQM Ban Use of Thread Control Primitives with Known Deadlock Issues" xmi:type="smm:Operation" language="OCL" body="id.sfgd.326.A_instanceOf_PatternInstance::PatternInstance()"/>
    <measureElements xmi:id="id.sfgd.378.recognizer" name="Occurrence Scope Recognizer of ASCQM Ban Unboxing in Loops" xmi:type="smm:Operation" language="OCL" body="id.sfgd.378.A_instanceOf_PatternInstance::PatternInstance()"/>
    <measureElements xmi:id="id.sfgd.379.recognizer" name="Occurrence Scope Recognizer of ASCQM Ban Autoboxing in Loops" xmi:type="smm:Operation" language="OCL" body="id.sfgd.379.A_instanceOf_PatternInstance::PatternInstance()"/>
    <measureElements xmi:id="id.sfgd.41.scope" name="Occurrence Scope of ASCQM Handle Return Value of Resource Operations" xmi:type="smm:Scope" class="spms:Observations::PatternInstance" measures="id.sfgd.41.occurrence.count" recognizer="id.sfgd.41.recognizer"/>
    <measureElements xmi:id="id.sfgd.327.scope" name="Occurrence Scope of ASCQM Ban Incorrect Numeric Conversion of Return Value" xmi:type="smm:Scope" class="spms:Observations::PatternInstance" measures="id.sfgd.327.occurrence.count" recognizer="id.sfgd.327.recognizer"/>
    <measureElements xmi:id="id.sfgd.340.scope" name="Occurrence Scope of ASCQM Handle Return Value of Must Check Operations" xmi:type="smm:Scope" class="spms:Observations::PatternInstance" measures="id.sfgd.340.occurrence.count" recognizer="id.sfgd.340.recognizer"/>
    <measureElements xmi:id="id.sfgd.44.scope" name="Occurrence Scope of ASCQM Check Return Value of Resource Operations Immediately" xmi:type="smm:Scope" class="spms:Observations::PatternInstance" measures="id.sfgd.44.occurrence.count" recognizer="id.sfgd.44.recognizer"/>
    <measureElements xmi:id="id.sfgd.45.scope" name="Occurrence Scope of ASCQM Ban Useless Handling of Exceptions" xmi:type="smm:Scope" class="spms:Observations::PatternInstance" measures="id.sfgd.45.occurrence.count" recognizer="id.sfgd.45.recognizer"/>
    <measureElements xmi:id="id.sfgd.69.scope" name="Occurrence Scope of ASCQM Ban Comma Operator from Delete Statement" xmi:type="smm:Scope" class="spms:Observations::PatternInstance" measures="id.sfgd.69.occurrence.count" recognizer="id.sfgd.69.recognizer"/>
    <measureElements xmi:id="id.sfgd.78.scope" name="Occurrence Scope of ASCQM Release in Destructor Memory Allocated in Constructor" xmi:type="smm:Scope" class="spms:Observations::PatternInstance" measures="id.sfgd.78.occurrence.count" recognizer="id.sfgd.78.recognizer"/>
    <measureElements xmi:id="id.sfgd.138.scope" name="Occurrence Scope of ASCQM Release Memory after Use with Correct Operation" xmi:type="smm:Scope" class="spms:Observations::PatternInstance" measures="id.sfgd.138.occurrence.count" recognizer="id.sfgd.138.recognizer"/>
    <measureElements xmi:id="id.sfgd.157.scope" name="Occurrence Scope of ASCQM Implement Required Operations for Manual Resource Management" xmi:type="smm:Scope" class="spms:Observations::PatternInstance" measures="id.sfgd.157.occurrence.count" recognizer="id.sfgd.157.recognizer"/>
    <measureElements xmi:id="id.sfgd.260.scope" name="Occurrence Scope of ASCQM Release Platform Resource after Use" xmi:type="smm:Scope" class="spms:Observations::PatternInstance" measures="id.sfgd.260.occurrence.count" recognizer="id.sfgd.260.recognizer"/>
    <measureElements xmi:id="id.sfgd.344.scope" name="Occurrence Scope of ASCQM Release Memory After Use" xmi:type="smm:Scope" class="spms:Observations::PatternInstance" measures="id.sfgd.344.occurrence.count" recognizer="id.sfgd.344.recognizer"/>
    <measureElements xmi:id="id.sfgd.373.scope" name="Occurrence Scope of ASCQM Release Memory after Use with Correct Reference" xmi:type="smm:Scope" class="spms:Observations::PatternInstance" measures="id.sfgd.373.occurrence.count" recognizer="id.sfgd.373.recognizer"/>
    <measureElements xmi:id="id.sfgd.127.scope" name="Occurrence Scope of ASCQM Implement Virtual Destructor for Classes Derived from Class with Virtual Destructor" xmi:type="smm:Scope" class="spms:Observations::PatternInstance" measures="id.sfgd.127.occurrence.count" recognizer="id.sfgd.127.recognizer"/>
    <measureElements xmi:id="id.sfgd.128.scope" name="Occurrence Scope of ASCQM Implement Virtual Destructor for Parent Classes" xmi:type="smm:Scope" class="spms:Observations::PatternInstance" measures="id.sfgd.128.occurrence.count" recognizer="id.sfgd.128.recognizer"/>
    <measureElements xmi:id="id.sfgd.106.scope" name="Occurrence Scope of ASCQM Release File Resource after Use in Operation" xmi:type="smm:Scope" class="spms:Observations::PatternInstance" measures="id.sfgd.106.occurrence.count" recognizer="id.sfgd.106.recognizer"/>
    <measureElements xmi:id="id.sfgd.125.scope" name="Occurrence Scope of ASCQM Implement Virtual Destructor for Classes with Virtual Methods" xmi:type="smm:Scope" class="spms:Observations::PatternInstance" measures="id.sfgd.125.occurrence.count" recognizer="id.sfgd.125.recognizer"/>
    <measureElements xmi:id="id.sfgd.154.scope" name="Occurrence Scope of ASCQM Manage Time-Out Mechanisms in Blocking Synchronous Calls" xmi:type="smm:Scope" class="spms:Observations::PatternInstance" measures="id.sfgd.154.occurrence.count" recognizer="id.sfgd.154.recognizer"/>
    <measureElements xmi:id="id.sfgd.123.scope" name="Occurrence Scope of ASCQM Ban Hard-Coded Literals used to Connect to Resource" xmi:type="smm:Scope" class="spms:Observations::PatternInstance" measures="id.sfgd.123.occurrence.count" recognizer="id.sfgd.123.recognizer"/>
    <measureElements xmi:id="id.sfgd.140.scope" name="Occurrence Scope of ASCQM Ban Unintended Paths" xmi:type="smm:Scope" class="spms:Observations::PatternInstance" measures="id.sfgd.140.occurrence.count" recognizer="id.sfgd.140.recognizer"/>
    <measureElements xmi:id="id.sfgd.134.scope" name="Occurrence Scope of ASCQM Ban Empty Exception Block" xmi:type="smm:Scope" class="spms:Observations::PatternInstance" measures="id.sfgd.134.occurrence.count" recognizer="id.sfgd.134.recognizer"/>
    <measureElements xmi:id="id.sfgd.97.scope" name="Occurrence Scope of ASCQM Ban Use of Prohibited Low-Level Resource Management Functionality" xmi:type="smm:Scope" class="spms:Observations::PatternInstance" measures="id.sfgd.97.occurrence.count" recognizer="id.sfgd.97.recognizer"/>
    <measureElements xmi:id="id.sfgd.100.scope" name="Occurrence Scope of ASCQM Ban Excessive Size of Index on Columns of Large Tables" xmi:type="smm:Scope" class="spms:Observations::PatternInstance" measures="id.sfgd.100.occurrence.count" recognizer="id.sfgd.100.recognizer"/>
    <measureElements xmi:id="id.sfgd.99.scope" name="Occurrence Scope of ASCQM Implement Index Required by Query on Large Tables" xmi:type="smm:Scope" class="spms:Observations::PatternInstance" measures="id.sfgd.99.occurrence.count" recognizer="id.sfgd.99.recognizer"/>
    <measureElements xmi:id="id.sfgd.101.scope" name="Occurrence Scope of ASCQM Ban Excessive Number of Index on Columns of Large Tables" xmi:type="smm:Scope" class="spms:Observations::PatternInstance" measures="id.sfgd.101.occurrence.count" recognizer="id.sfgd.101.recognizer"/>
    <measureElements xmi:id="id.sfgd.105.scope" name="Occurrence Scope of ASCQM Ban Excessive Complexity of Data Resource Access" xmi:type="smm:Scope" class="spms:Observations::PatternInstance" measures="id.sfgd.105.occurrence.count" recognizer="id.sfgd.105.recognizer"/>
    <measureElements xmi:id="id.sfgd.108.scope" name="Occurrence Scope of ASCQM Ban Expensive Operations in Loops" xmi:type="smm:Scope" class="spms:Observations::PatternInstance" measures="id.sfgd.108.occurrence.count" recognizer="id.sfgd.108.recognizer"/>
    <measureElements xmi:id="id.sfgd.111.scope" name="Occurrence Scope of ASCQM Limit Number of Aggregated Non-Primitive Data Types" xmi:type="smm:Scope" class="spms:Observations::PatternInstance" measures="id.sfgd.111.occurrence.count" recognizer="id.sfgd.111.recognizer"/>
    <measureElements xmi:id="id.sfgd.117.scope" name="Occurrence Scope of ASCQM Ban Excessive Number of Data Resource Access from non-stored SQL Procedure" xmi:type="smm:Scope" class="spms:Observations::PatternInstance" measures="id.sfgd.117.occurrence.count" recognizer="id.sfgd.117.recognizer"/>
    <measureElements xmi:id="id.sfgd.118.scope" name="Occurrence Scope of ASCQM Ban Excessive Number of Data Resource Access from non-SQL Code" xmi:type="smm:Scope" class="spms:Observations::PatternInstance" measures="id.sfgd.118.occurrence.count" recognizer="id.sfgd.118.recognizer"/>
    <measureElements xmi:id="id.sfgd.139.scope" name="Occurrence Scope of ASCQM Ban Incrementral Creation of Immutable Data" xmi:type="smm:Scope" class="spms:Observations::PatternInstance" measures="id.sfgd.139.occurrence.count" recognizer="id.sfgd.139.recognizer"/>
    <measureElements xmi:id="id.sfgd.107.scope" name="Occurrence Scope of ASCQM Ban While TRUE Loop Without Path To Break" xmi:type="smm:Scope" class="spms:Observations::PatternInstance" measures="id.sfgd.107.occurrence.count" recognizer="id.sfgd.107.recognizer"/>
    <measureElements xmi:id="id.sfgd.126.scope" name="Occurrence Scope of ASCQM Ban Unmodified Loop Variable Within Loop" xmi:type="smm:Scope" class="spms:Observations::PatternInstance" measures="id.sfgd.126.occurrence.count" recognizer="id.sfgd.126.recognizer"/>
    <measureElements xmi:id="id.sfgd.335.scope" name="Occurrence Scope of ASCQM Release File Resource after Use in Class" xmi:type="smm:Scope" class="spms:Observations::PatternInstance" measures="id.sfgd.335.occurrence.count" recognizer="id.sfgd.335.recognizer"/>
    <measureElements xmi:id="id.sfgd.290.scope" name="Occurrence Scope of ASCQM Catch Exceptions" xmi:type="smm:Scope" class="spms:Observations::PatternInstance" measures="id.sfgd.290.occurrence.count" recognizer="id.sfgd.290.recognizer"/>
    <measureElements xmi:id="id.sfgd.301.scope" name="Occurrence Scope of ASCQM Ban Incompatible Lock Acquisition Sequences" xmi:type="smm:Scope" class="spms:Observations::PatternInstance" measures="id.sfgd.301.occurrence.count" recognizer="id.sfgd.301.recognizer"/>
    <measureElements xmi:id="id.sfgd.326.scope" name="Occurrence Scope of ASCQM Ban Use of Thread Control Primitives with Known Deadlock Issues" xmi:type="smm:Scope" class="spms:Observations::PatternInstance" measures="id.sfgd.326.occurrence.count" recognizer="id.sfgd.326.recognizer"/>
    <measureElements xmi:id="id.sfgd.378.scope" name="Occurrence Scope of ASCQM Ban Unboxing in Loops" xmi:type="smm:Scope" class="spms:Observations::PatternInstance" measures="id.sfgd.378.occurrence.count" recognizer="id.sfgd.378.recognizer"/>
    <measureElements xmi:id="id.sfgd.379.scope" name="Occurrence Scope of ASCQM Ban Autoboxing in Loops" xmi:type="smm:Scope" class="spms:Observations::PatternInstance" measures="id.sfgd.379.occurrence.count" recognizer="id.sfgd.379.recognizer"/>
    <measureElements xmi:id="id.sfgd.41.occurrence-count" name="Occurrence Count of ASCQM Handle Return Value of Resource Operations" xmi:type="smm:Counting" scope="id.sfgd.41.scope" trait="id.smm.characteristic.1" unit="Integer" baseMeasureFrom="id.wk.299.occurrence-count_to_id.sfgd.41.occurrence-count id.wk.40.occurrence-count_to_id.sfgd.41.occurrence-count"/>
    <measureElements xmi:id="id.sfgd.327.occurrence-count" name="Occurrence Count of ASCQM Ban Incorrect Numeric Conversion of Return Value" xmi:type="smm:Counting" scope="id.sfgd.327.scope" trait="id.smm.characteristic.1" unit="Integer" baseMeasureFrom="id.wk.40.occurrence-count_to_id.sfgd.327.occurrence-count"/>
    <measureElements xmi:id="id.sfgd.340.occurrence-count" name="Occurrence Count of ASCQM Handle Return Value of Must Check Operations" xmi:type="smm:Counting" scope="id.sfgd.340.scope" trait="id.smm.characteristic.1" unit="Integer" baseMeasureFrom="id.wk.40.occurrence-count_to_id.sfgd.340.occurrence-count id.wk.42.occurrence-count_to_id.sfgd.340.occurrence-count"/>
    <measureElements xmi:id="id.sfgd.44.occurrence-count" name="Occurrence Count of ASCQM Check Return Value of Resource Operations Immediately" xmi:type="smm:Counting" scope="id.sfgd.44.scope" trait="id.smm.characteristic.1" unit="Integer" baseMeasureFrom="id.wk.42.occurrence-count_to_id.sfgd.44.occurrence-count"/>
    <measureElements xmi:id="id.sfgd.45.occurrence-count" name="Occurrence Count of ASCQM Ban Useless Handling of Exceptions" xmi:type="smm:Counting" scope="id.sfgd.45.scope" trait="id.smm.characteristic.1" unit="Integer" baseMeasureFrom="id.wk.283.occurrence-count_to_id.sfgd.45.occurrence-count id.wk.292.occurrence-count_to_id.sfgd.45.occurrence-count id.wk.46.occurrence-count_to_id.sfgd.45.occurrence-count"/>
    <measureElements xmi:id="id.sfgd.69.occurrence-count" name="Occurrence Count of ASCQM Ban Comma Operator from Delete Statement" xmi:type="smm:Counting" scope="id.sfgd.69.scope" trait="id.smm.characteristic.1" unit="Integer" baseMeasureFrom="id.wk.70.occurrence-count_to_id.sfgd.69.occurrence-count id.wk.71.occurrence-count_to_id.sfgd.69.occurrence-count"/>
    <measureElements xmi:id="id.sfgd.78.occurrence-count" name="Occurrence Count of ASCQM Release in Destructor Memory Allocated in Constructor" xmi:type="smm:Counting" scope="id.sfgd.78.scope" trait="id.smm.characteristic.1" unit="Integer" baseMeasureFrom="id.wk.70.occurrence-count_to_id.sfgd.78.occurrence-count id.wk.71.occurrence-count_to_id.sfgd.78.occurrence-count id.wk.77.occurrence-count_to_id.sfgd.78.occurrence-count"/>
    <measureElements xmi:id="id.sfgd.138.occurrence-count" name="Occurrence Count of ASCQM Release Memory after Use with Correct Operation" xmi:type="smm:Counting" scope="id.sfgd.138.scope" trait="id.smm.characteristic.1" unit="Integer" baseMeasureFrom="id.wk.70.occurrence-count_to_id.sfgd.138.occurrence-count id.wk.71.occurrence-count_to_id.sfgd.138.occurrence-count id.wk.74.occurrence-count_to_id.sfgd.138.occurrence-count id.wk.75.occurrence-count_to_id.sfgd.138.occurrence-count"/>
    <measureElements xmi:id="id.sfgd.157.occurrence-count" name="Occurrence Count of ASCQM Implement Required Operations for Manual Resource Management" xmi:type="smm:Counting" scope="id.sfgd.157.scope" trait="id.smm.characteristic.1" unit="Integer" baseMeasureFrom="id.wk.205.occurrence-count_to_id.sfgd.157.occurrence-count id.wk.70.occurrence-count_to_id.sfgd.157.occurrence-count id.wk.71.occurrence-count_to_id.sfgd.157.occurrence-count"/>
    <measureElements xmi:id="id.sfgd.260.occurrence-count" name="Occurrence Count of ASCQM Release Platform Resource after Use" xmi:type="smm:Counting" scope="id.sfgd.260.scope" trait="id.smm.characteristic.1" unit="Integer" baseMeasureFrom="id.wk.70.occurrence-count_to_id.sfgd.260.occurrence-count id.wk.71.occurrence-count_to_id.sfgd.260.occurrence-count id.wk.77.occurrence-count_to_id.sfgd.260.occurrence-count"/>
    <measureElements xmi:id="id.sfgd.344.occurrence-count" name="Occurrence Count of ASCQM Release Memory After Use" xmi:type="smm:Counting" scope="id.sfgd.344.scope" trait="id.smm.characteristic.1" unit="Integer" baseMeasureFrom="id.wk.70.occurrence-count_to_id.sfgd.344.occurrence-count id.wk.71.occurrence-count_to_id.sfgd.344.occurrence-count"/>
    <measureElements xmi:id="id.sfgd.373.occurrence-count" name="Occurrence Count of ASCQM Release Memory after Use with Correct Reference" xmi:type="smm:Counting" scope="id.sfgd.373.scope" trait="id.smm.characteristic.1" unit="Integer" baseMeasureFrom="id.wk.70.occurrence-count_to_id.sfgd.373.occurrence-count id.wk.71.occurrence-count_to_id.sfgd.373.occurrence-count id.wk.75.occurrence-count_to_id.sfgd.373.occurrence-count"/>
    <measureElements xmi:id="id.sfgd.127.occurrence-count" name="Occurrence Count of ASCQM Implement Virtual Destructor for Classes Derived from Class with Virtual Destructor" xmi:type="smm:Counting" scope="id.sfgd.127.scope" trait="id.smm.characteristic.1" unit="Integer" baseMeasureFrom="id.wk.71.occurrence-count_to_id.sfgd.127.occurrence-count"/>
    <measureElements xmi:id="id.sfgd.128.occurrence-count" name="Occurrence Count of ASCQM Implement Virtual Destructor for Parent Classes" xmi:type="smm:Counting" scope="id.sfgd.128.scope" trait="id.smm.characteristic.1" unit="Integer" baseMeasureFrom="id.wk.71.occurrence-count_to_id.sfgd.128.occurrence-count"/>
    <measureElements xmi:id="id.sfgd.106.occurrence-count" name="Occurrence Count of ASCQM Release File Resource after Use in Operation" xmi:type="smm:Counting" scope="id.sfgd.106.scope" trait="id.smm.characteristic.1" unit="Integer" baseMeasureFrom="id.wk.259.occurrence-count_to_id.sfgd.106.occurrence-count id.wk.71.occurrence-count_to_id.sfgd.106.occurrence-count id.wk.77.occurrence-count_to_id.sfgd.106.occurrence-count"/>
    <measureElements xmi:id="id.sfgd.125.occurrence-count" name="Occurrence Count of ASCQM Implement Virtual Destructor for Classes with Virtual Methods" xmi:type="smm:Counting" scope="id.sfgd.125.scope" trait="id.smm.characteristic.1" unit="Integer" baseMeasureFrom="id.wk.71.occurrence-count_to_id.sfgd.125.occurrence-count"/>
    <measureElements xmi:id="id.sfgd.154.occurrence-count" name="Occurrence Count of ASCQM Manage Time-Out Mechanisms in Blocking Synchronous Calls" xmi:type="smm:Counting" scope="id.sfgd.154.scope" trait="id.smm.characteristic.1" unit="Integer" baseMeasureFrom="id.wk.173.occurrence-count_to_id.sfgd.154.occurrence-count"/>
    <measureElements xmi:id="id.sfgd.123.occurrence-count" name="Occurrence Count of ASCQM Ban Hard-Coded Literals used to Connect to Resource" xmi:type="smm:Counting" scope="id.sfgd.123.scope" trait="id.smm.characteristic.1" unit="Integer" baseMeasureFrom="id.wk.184.occurrence-count_to_id.sfgd.123.occurrence-count"/>
    <measureElements xmi:id="id.sfgd.140.occurrence-count" name="Occurrence Count of ASCQM Ban Unintended Paths" xmi:type="smm:Counting" scope="id.sfgd.140.scope" trait="id.smm.characteristic.1" unit="Integer" baseMeasureFrom="id.wk.185.occurrence-count_to_id.sfgd.140.occurrence-count id.wk.192.occurrence-count_to_id.sfgd.140.occurrence-count id.wk.193.occurrence-count_to_id.sfgd.140.occurrence-count"/>
    <measureElements xmi:id="id.sfgd.134.occurrence-count" name="Occurrence Count of ASCQM Ban Empty Exception Block" xmi:type="smm:Counting" scope="id.sfgd.134.scope" trait="id.smm.characteristic.1" unit="Integer" baseMeasureFrom="id.wk.186.occurrence-count_to_id.sfgd.134.occurrence-count id.wk.283.occurrence-count_to_id.sfgd.134.occurrence-count id.wk.292.occurrence-count_to_id.sfgd.134.occurrence-count id.wk.299.occurrence-count_to_id.sfgd.134.occurrence-count"/>
    <measureElements xmi:id="id.sfgd.97.occurrence-count" name="Occurrence Count of ASCQM Ban Use of Prohibited Low-Level Resource Management Functionality" xmi:type="smm:Counting" scope="id.sfgd.97.scope" trait="id.smm.characteristic.1" unit="Integer" baseMeasureFrom="id.wk.196.occurrence-count_to_id.sfgd.97.occurrence-count"/>
    <measureElements xmi:id="id.sfgd.100.occurrence-count" name="Occurrence Count of ASCQM Ban Excessive Size of Index on Columns of Large Tables" xmi:type="smm:Counting" scope="id.sfgd.100.scope" trait="id.smm.characteristic.1" unit="Integer" baseMeasureFrom="id.wk.197.occurrence-count_to_id.sfgd.100.occurrence-count"/>
    <measureElements xmi:id="id.sfgd.99.occurrence-count" name="Occurrence Count of ASCQM Implement Index Required by Query on Large Tables" xmi:type="smm:Counting" scope="id.sfgd.99.scope" trait="id.smm.characteristic.1" unit="Integer" baseMeasureFrom="id.wk.198.occurrence-count_to_id.sfgd.99.occurrence-count"/>
    <measureElements xmi:id="id.sfgd.101.occurrence-count" name="Occurrence Count of ASCQM Ban Excessive Number of Index on Columns of Large Tables" xmi:type="smm:Counting" scope="id.sfgd.101.scope" trait="id.smm.characteristic.1" unit="Integer" baseMeasureFrom="id.wk.199.occurrence-count_to_id.sfgd.101.occurrence-count"/>
    <measureElements xmi:id="id.sfgd.105.occurrence-count" name="Occurrence Count of ASCQM Ban Excessive Complexity of Data Resource Access" xmi:type="smm:Counting" scope="id.sfgd.105.scope" trait="id.smm.characteristic.1" unit="Integer" baseMeasureFrom="id.wk.200.occurrence-count_to_id.sfgd.105.occurrence-count"/>
    <measureElements xmi:id="id.sfgd.108.occurrence-count" name="Occurrence Count of ASCQM Ban Expensive Operations in Loops" xmi:type="smm:Counting" scope="id.sfgd.108.scope" trait="id.smm.characteristic.1" unit="Integer" baseMeasureFrom="id.wk.201.occurrence-count_to_id.sfgd.108.occurrence-count"/>
    <measureElements xmi:id="id.sfgd.111.occurrence-count" name="Occurrence Count of ASCQM Limit Number of Aggregated Non-Primitive Data Types" xmi:type="smm:Counting" scope="id.sfgd.111.scope" trait="id.smm.characteristic.1" unit="Integer" baseMeasureFrom="id.wk.202.occurrence-count_to_id.sfgd.111.occurrence-count"/>
    <measureElements xmi:id="id.sfgd.117.occurrence-count" name="Occurrence Count of ASCQM Ban Excessive Number of Data Resource Access from non-stored SQL Procedure" xmi:type="smm:Counting" scope="id.sfgd.117.scope" trait="id.smm.characteristic.1" unit="Integer" baseMeasureFrom="id.wk.203.occurrence-count_to_id.sfgd.117.occurrence-count"/>
    <measureElements xmi:id="id.sfgd.118.occurrence-count" name="Occurrence Count of ASCQM Ban Excessive Number of Data Resource Access from non-SQL Code" xmi:type="smm:Counting" scope="id.sfgd.118.scope" trait="id.smm.characteristic.1" unit="Integer" baseMeasureFrom="id.wk.204.occurrence-count_to_id.sfgd.118.occurrence-count"/>
    <measureElements xmi:id="id.sfgd.139.occurrence-count" name="Occurrence Count of ASCQM Ban Incrementral Creation of Immutable Data" xmi:type="smm:Counting" scope="id.sfgd.139.scope" trait="id.smm.characteristic.1" unit="Integer" baseMeasureFrom="id.wk.206.occurrence-count_to_id.sfgd.139.occurrence-count"/>
    <measureElements xmi:id="id.sfgd.107.occurrence-count" name="Occurrence Count of ASCQM Ban While TRUE Loop Without Path To Break" xmi:type="smm:Counting" scope="id.sfgd.107.scope" trait="id.smm.characteristic.1" unit="Integer" baseMeasureFrom="id.wk.245.occurrence-count_to_id.sfgd.107.occurrence-count"/>
    <measureElements xmi:id="id.sfgd.126.occurrence-count" name="Occurrence Count of ASCQM Ban Unmodified Loop Variable Within Loop" xmi:type="smm:Counting" scope="id.sfgd.126.scope" trait="id.smm.characteristic.1" unit="Integer" baseMeasureFrom="id.wk.245.occurrence-count_to_id.sfgd.126.occurrence-count"/>
    <measureElements xmi:id="id.sfgd.335.occurrence-count" name="Occurrence Count of ASCQM Release File Resource after Use in Class" xmi:type="smm:Counting" scope="id.sfgd.335.scope" trait="id.smm.characteristic.1" unit="Integer" baseMeasureFrom="id.wk.259.occurrence-count_to_id.sfgd.335.occurrence-count id.wk.71.occurrence-count_to_id.sfgd.335.occurrence-count"/>
    <measureElements xmi:id="id.sfgd.290.occurrence-count" name="Occurrence Count of ASCQM Catch Exceptions" xmi:type="smm:Counting" scope="id.sfgd.290.scope" trait="id.smm.characteristic.1" unit="Integer" baseMeasureFrom="id.wk.283.occurrence-count_to_id.sfgd.290.occurrence-count id.wk.289.occurrence-count_to_id.sfgd.290.occurrence-count"/>
    <measureElements xmi:id="id.sfgd.301.occurrence-count" name="Occurrence Count of ASCQM Ban Incompatible Lock Acquisition Sequences" xmi:type="smm:Counting" scope="id.sfgd.301.scope" trait="id.smm.characteristic.1" unit="Integer" baseMeasureFrom="id.wk.300.occurrence-count_to_id.sfgd.301.occurrence-count"/>
    <measureElements xmi:id="id.sfgd.326.occurrence-count" name="Occurrence Count of ASCQM Ban Use of Thread Control Primitives with Known Deadlock Issues" xmi:type="smm:Counting" scope="id.sfgd.326.scope" trait="id.smm.characteristic.1" unit="Integer" baseMeasureFrom="id.wk.300.occurrence-count_to_id.sfgd.326.occurrence-count"/>
    <measureElements xmi:id="id.sfgd.378.occurrence-count" name="Occurrence Count of ASCQM Ban Unboxing in Loops" xmi:type="smm:Counting" scope="id.sfgd.378.scope" trait="id.smm.characteristic.1" unit="Integer" baseMeasureFrom="id.wk.377.occurrence-count_to_id.sfgd.378.occurrence-count"/>
    <measureElements xmi:id="id.sfgd.379.occurrence-count" name="Occurrence Count of ASCQM Ban Autoboxing in Loops" xmi:type="smm:Counting" scope="id.sfgd.379.scope" trait="id.smm.characteristic.1" unit="Integer" baseMeasureFrom="id.wk.377.occurrence-count_to_id.sfgd.379.occurrence-count"/>
    <measureElements xmi:id="id.wk.40.occurrence-count" name="Occurrence Count of Weakness CWE-394 Unexpected Status Code or Return Value" xmi:type="smm:CollectiveMeasure" scope="id.smm.scope.1" trait="id.smm.characteristic.1" unit="Integer" accumulator="sum" baseMeasureTo="id.wk.40.occurrence-count_to_id.sfgd.327.occurrence-count id.wk.40.occurrence-count_to_id.sfgd.340.occurrence-count id.wk.40.occurrence-count_to_id.sfgd.41.occurrence-count"/>
    <measureElements xmi:id="id.wk.42.occurrence-count" name="Occurrence Count of Weakness CWE-252 Unchecked Return Value" xmi:type="smm:CollectiveMeasure" scope="id.smm.scope.1" trait="id.smm.characteristic.1" unit="Integer" accumulator="sum" baseMeasureTo="id.wk.42.occurrence-count_to_id.sfgd.340.occurrence-count id.wk.42.occurrence-count_to_id.sfgd.44.occurrence-count"/>
    <measureElements xmi:id="id.wk.46.occurrence-count" name="Occurrence Count of Weakness CWE-392 Missing Report of Error Condition" xmi:type="smm:CollectiveMeasure" scope="id.smm.scope.1" trait="id.smm.characteristic.1" unit="Integer" accumulator="sum" baseMeasureTo="id.wk.46.occurrence-count_to_id.sfgd.45.occurrence-count"/>
    <measureElements xmi:id="id.wk.70.occurrence-count" name="Occurrence Count of Weakness CWE-401 Improper Release of Memory Before Removing Last Reference ('Memory Leak')" xmi:type="smm:CollectiveMeasure" scope="id.smm.scope.1" trait="id.smm.characteristic.1" unit="Integer" accumulator="sum" baseMeasureTo="id.wk.70.occurrence-count_to_id.sfgd.138.occurrence-count id.wk.70.occurrence-count_to_id.sfgd.157.occurrence-count id.wk.70.occurrence-count_to_id.sfgd.260.occurrence-count id.wk.70.occurrence-count_to_id.sfgd.344.occurrence-count id.wk.70.occurrence-count_to_id.sfgd.373.occurrence-count id.wk.70.occurrence-count_to_id.sfgd.69.occurrence-count id.wk.70.occurrence-count_to_id.sfgd.78.occurrence-count"/>
    <measureElements xmi:id="id.wk.71.occurrence-count" name="Occurrence Count of Weakness CWE-404 Improper Resource Shutdown or Release" xmi:type="smm:CollectiveMeasure" scope="id.smm.scope.1" trait="id.smm.characteristic.1" unit="Integer" accumulator="sum" baseMeasureTo="id.wk.71.occurrence-count_to_id.sfgd.106.occurrence-count id.wk.71.occurrence-count_to_id.sfgd.125.occurrence-count id.wk.71.occurrence-count_to_id.sfgd.127.occurrence-count id.wk.71.occurrence-count_to_id.sfgd.128.occurrence-count id.wk.71.occurrence-count_to_id.sfgd.138.occurrence-count id.wk.71.occurrence-count_to_id.sfgd.157.occurrence-count id.wk.71.occurrence-count_to_id.sfgd.260.occurrence-count id.wk.71.occurrence-count_to_id.sfgd.335.occurrence-count id.wk.71.occurrence-count_to_id.sfgd.344.occurrence-count id.wk.71.occurrence-count_to_id.sfgd.373.occurrence-count id.wk.71.occurrence-count_to_id.sfgd.69.occurrence-count id.wk.71.occurrence-count_to_id.sfgd.78.occurrence-count"/>
    <measureElements xmi:id="id.wk.74.occurrence-count" name="Occurrence Count of Weakness CWE-762 Mismatched Memory Management Routines" xmi:type="smm:CollectiveMeasure" scope="id.smm.scope.1" trait="id.smm.characteristic.1" unit="Integer" accumulator="sum" baseMeasureTo="id.wk.74.occurrence-count_to_id.sfgd.138.occurrence-count"/>
    <measureElements xmi:id="id.wk.75.occurrence-count" name="Occurrence Count of Weakness CWE-459 Incomplete Cleanup" xmi:type="smm:CollectiveMeasure" scope="id.smm.scope.1" trait="id.smm.characteristic.1" unit="Integer" accumulator="sum" baseMeasureTo="id.wk.75.occurrence-count_to_id.sfgd.138.occurrence-count id.wk.75.occurrence-count_to_id.sfgd.373.occurrence-count"/>
    <measureElements xmi:id="id.wk.77.occurrence-count" name="Occurrence Count of Weakness CWE-772 Missing Release of Resource after Effective Lifetime" xmi:type="smm:CollectiveMeasure" scope="id.smm.scope.1" trait="id.smm.characteristic.1" unit="Integer" accumulator="sum" baseMeasureTo="id.wk.77.occurrence-count_to_id.sfgd.106.occurrence-count id.wk.77.occurrence-count_to_id.sfgd.260.occurrence-count id.wk.77.occurrence-count_to_id.sfgd.78.occurrence-count"/>
    <measureElements xmi:id="id.wk.173.occurrence-count" name="Occurrence Count of Weakness CWE-1088 Synchronous Call Time-Out Absence" xmi:type="smm:CollectiveMeasure" scope="id.smm.scope.1" trait="id.smm.characteristic.1" unit="Integer" accumulator="sum" baseMeasureTo="id.wk.173.occurrence-count_to_id.sfgd.154.occurrence-count"/>
    <measureElements xmi:id="id.wk.184.occurrence-count" name="Occurrence Count of Weakness CWE-1051 Storable and Member Data Element Initialization with Hard-Coded Network Resource Configuration Data" xmi:type="smm:CollectiveMeasure" scope="id.smm.scope.1" trait="id.smm.characteristic.1" unit="Integer" accumulator="sum" baseMeasureTo="id.wk.184.occurrence-count_to_id.sfgd.123.occurrence-count"/>
    <measureElements xmi:id="id.wk.185.occurrence-count" name="Occurrence Count of Weakness CWE-1083 Data Access Control Element from Outside Designated Data Manager Component" xmi:type="smm:CollectiveMeasure" scope="id.smm.scope.1" trait="id.smm.characteristic.1" unit="Integer" accumulator="sum" baseMeasureTo="id.wk.185.occurrence-count_to_id.sfgd.140.occurrence-count"/>
    <measureElements xmi:id="id.wk.186.occurrence-count" name="Occurrence Count of Weakness CWE-1069 Empty Exception Block" xmi:type="smm:CollectiveMeasure" scope="id.smm.scope.1" trait="id.smm.characteristic.1" unit="Integer" accumulator="sum" baseMeasureTo="id.wk.186.occurrence-count_to_id.sfgd.134.occurrence-count"/>
    <measureElements xmi:id="id.wk.192.occurrence-count" name="Occurrence Count of Weakness CWE-1057 Data Access Control Element from Outside Designated Data Manager Component" xmi:type="smm:CollectiveMeasure" scope="id.smm.scope.1" trait="id.smm.characteristic.1" unit="Integer" accumulator="sum" baseMeasureTo="id.wk.192.occurrence-count_to_id.sfgd.140.occurrence-count"/>
    <measureElements xmi:id="id.wk.193.occurrence-count" name="Occurrence Count of Weakness CWE-424 Improper Protection of Alternate Path" xmi:type="smm:CollectiveMeasure" scope="id.smm.scope.1" trait="id.smm.characteristic.1" unit="Integer" accumulator="sum" baseMeasureTo="id.wk.193.occurrence-count_to_id.sfgd.140.occurrence-count"/>
    <measureElements xmi:id="id.wk.196.occurrence-count" name="Occurrence Count of Weakness CWE-1072 Data Resource Access not using Connection Pooling Capability" xmi:type="smm:CollectiveMeasure" scope="id.smm.scope.1" trait="id.smm.characteristic.1" unit="Integer" accumulator="sum" baseMeasureTo="id.wk.196.occurrence-count_to_id.sfgd.97.occurrence-count"/>
    <measureElements xmi:id="id.wk.197.occurrence-count" name="Occurrence Count of Weakness CWE-1094 Large Data Resource ColumnSet with Index Element of Excessive Size" xmi:type="smm:CollectiveMeasure" scope="id.smm.scope.1" trait="id.smm.characteristic.1" unit="Integer" accumulator="sum" baseMeasureTo="id.wk.197.occurrence-count_to_id.sfgd.100.occurrence-count"/>
    <measureElements xmi:id="id.wk.198.occurrence-count" name="Occurrence Count of Weakness CWE-1067 Data Resource Read Access Unsupported by Index Element" xmi:type="smm:CollectiveMeasure" scope="id.smm.scope.1" trait="id.smm.characteristic.1" unit="Integer" accumulator="sum" baseMeasureTo="id.wk.198.occurrence-count_to_id.sfgd.99.occurrence-count"/>
    <measureElements xmi:id="id.wk.199.occurrence-count" name="Occurrence Count of Weakness CWE-1089 Large Data Resource ColumnSet Excessive Number of Index Elements" xmi:type="smm:CollectiveMeasure" scope="id.smm.scope.1" trait="id.smm.characteristic.1" unit="Integer" accumulator="sum" baseMeasureTo="id.wk.199.occurrence-count_to_id.sfgd.101.occurrence-count"/>
    <measureElements xmi:id="id.wk.200.occurrence-count" name="Occurrence Count of Weakness CWE-1049 Data Resource Read and Write Access Excessive Complexity" xmi:type="smm:CollectiveMeasure" scope="id.smm.scope.1" trait="id.smm.characteristic.1" unit="Integer" accumulator="sum" baseMeasureTo="id.wk.200.occurrence-count_to_id.sfgd.105.occurrence-count"/>
    <measureElements xmi:id="id.wk.201.occurrence-count" name="Occurrence Count of Weakness CWE-1050 Control Elements Requiring Significant Resource Element within Control Flow Loop Block" xmi:type="smm:CollectiveMeasure" scope="id.smm.scope.1" trait="id.smm.characteristic.1" unit="Integer" accumulator="sum" baseMeasureTo="id.wk.201.occurrence-count_to_id.sfgd.108.occurrence-count"/>
    <measureElements xmi:id="id.wk.202.occurrence-count" name="Occurrence Count of Weakness CWE-1043 Storable and Member Data Element Excessive Number of Aggregated Storable and Member Data Elements" xmi:type="smm:CollectiveMeasure" scope="id.smm.scope.1" trait="id.smm.characteristic.1" unit="Integer" accumulator="sum" baseMeasureTo="id.wk.202.occurrence-count_to_id.sfgd.111.occurrence-count"/>
    <measureElements xmi:id="id.wk.203.occurrence-count" name="Occurrence Count of Weakness CWE-1060 Non-stored SQL Callable Control Element with Excessive Number of Data Resource Access" xmi:type="smm:CollectiveMeasure" scope="id.smm.scope.1" trait="id.smm.characteristic.1" unit="Integer" accumulator="sum" baseMeasureTo="id.wk.203.occurrence-count_to_id.sfgd.117.occurrence-count"/>
    <measureElements xmi:id="id.wk.204.occurrence-count" name="Occurrence Count of Weakness CWE-1073 Non-SQL Named Callable and Method Control Element with Excessive Number of Data Resource Access" xmi:type="smm:CollectiveMeasure" scope="id.smm.scope.1" trait="id.smm.characteristic.1" unit="Integer" accumulator="sum" baseMeasureTo="id.wk.204.occurrence-count_to_id.sfgd.118.occurrence-count"/>
    <measureElements xmi:id="id.wk.205.occurrence-count" name="Occurrence Count of Weakness CWE-1091 Storable and Member Data Element Reference Missing De-referencing Control Element" xmi:type="smm:CollectiveMeasure" scope="id.smm.scope.1" trait="id.smm.characteristic.1" unit="Integer" accumulator="sum" baseMeasureTo="id.wk.205.occurrence-count_to_id.sfgd.157.occurrence-count"/>
    <measureElements xmi:id="id.wk.206.occurrence-count" name="Occurrence Count of Weakness CWE-1046 Immutable Storable and Member Data Element Creation" xmi:type="smm:CollectiveMeasure" scope="id.smm.scope.1" trait="id.smm.characteristic.1" unit="Integer" accumulator="sum" baseMeasureTo="id.wk.206.occurrence-count_to_id.sfgd.139.occurrence-count"/>
    <measureElements xmi:id="id.wk.245.occurrence-count" name="Occurrence Count of Weakness CWE-835 Loop with Unreachable Exit Condition ('Infinite Loop')" xmi:type="smm:CollectiveMeasure" scope="id.smm.scope.1" trait="id.smm.characteristic.1" unit="Integer" accumulator="sum" baseMeasureTo="id.wk.245.occurrence-count_to_id.sfgd.107.occurrence-count id.wk.245.occurrence-count_to_id.sfgd.126.occurrence-count"/>
    <measureElements xmi:id="id.wk.259.occurrence-count" name="Occurrence Count of Weakness CWE-775 Missing Release of File Descriptor or Handle after Effective Lifetime" xmi:type="smm:CollectiveMeasure" scope="id.smm.scope.1" trait="id.smm.characteristic.1" unit="Integer" accumulator="sum" baseMeasureTo="id.wk.259.occurrence-count_to_id.sfgd.106.occurrence-count id.wk.259.occurrence-count_to_id.sfgd.335.occurrence-count"/>
    <measureElements xmi:id="id.wk.283.occurrence-count" name="Occurrence Count of Weakness CWE-703 Improper Check or Handling of Exceptional Conditions" xmi:type="smm:CollectiveMeasure" scope="id.smm.scope.1" trait="id.smm.characteristic.1" unit="Integer" accumulator="sum" baseMeasureTo="id.wk.283.occurrence-count_to_id.sfgd.134.occurrence-count id.wk.283.occurrence-count_to_id.sfgd.290.occurrence-count id.wk.283.occurrence-count_to_id.sfgd.45.occurrence-count"/>
    <measureElements xmi:id="id.wk.289.occurrence-count" name="Occurrence Count of Weakness CWE-248 Uncaught Exception" xmi:type="smm:CollectiveMeasure" scope="id.smm.scope.1" trait="id.smm.characteristic.1" unit="Integer" accumulator="sum" baseMeasureTo="id.wk.289.occurrence-count_to_id.sfgd.290.occurrence-count"/>
    <measureElements xmi:id="id.wk.292.occurrence-count" name="Occurrence Count of Weakness CWE-391 Unchecked Error Condition" xmi:type="smm:CollectiveMeasure" scope="id.smm.scope.1" trait="id.smm.characteristic.1" unit="Integer" accumulator="sum" baseMeasureTo="id.wk.292.occurrence-count_to_id.sfgd.134.occurrence-count id.wk.292.occurrence-count_to_id.sfgd.45.occurrence-count"/>
    <measureElements xmi:id="id.wk.299.occurrence-count" name="Occurrence Count of Weakness CWE-390 Detection of Error Condition Without Action" xmi:type="smm:CollectiveMeasure" scope="id.smm.scope.1" trait="id.smm.characteristic.1" unit="Integer" accumulator="sum" baseMeasureTo="id.wk.299.occurrence-count_to_id.sfgd.134.occurrence-count id.wk.299.occurrence-count_to_id.sfgd.41.occurrence-count"/>
    <measureElements xmi:id="id.wk.300.occurrence-count" name="Occurrence Count of Weakness CWE-833 Deadlock" xmi:type="smm:CollectiveMeasure" scope="id.smm.scope.1" trait="id.smm.characteristic.1" unit="Integer" accumulator="sum" baseMeasureTo="id.wk.300.occurrence-count_to_id.sfgd.301.occurrence-count id.wk.300.occurrence-count_to_id.sfgd.326.occurrence-count"/>
    <measureElements xmi:id="id.wk.377.occurrence-count" name="Occurrence Count of Weakness CWE-1235 Incorrect Use of Autoboxing and Unboxing for Performance Critical Operations" xmi:type="smm:CollectiveMeasure" scope="id.smm.scope.1" trait="id.smm.characteristic.1" unit="Integer" accumulator="sum" baseMeasureTo="id.wk.377.occurrence-count_to_id.sfgd.378.occurrence-count id.wk.377.occurrence-count_to_id.sfgd.379.occurrence-count"/>
    <measureElements xmi:id="id.wk.40.occurrence-count_to_id.sfgd.41.occurrence-count" name="id.wk.40.occurrence-count to id.sfgd.41.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.40.occurrence-count" to="id.sfgd.41.occurrence-count"/>
    <measureElements xmi:id="id.wk.40.occurrence-count_to_id.sfgd.327.occurrence-count" name="id.wk.40.occurrence-count to id.sfgd.327.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.40.occurrence-count" to="id.sfgd.327.occurrence-count"/>
    <measureElements xmi:id="id.wk.40.occurrence-count_to_id.sfgd.340.occurrence-count" name="id.wk.40.occurrence-count to id.sfgd.340.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.40.occurrence-count" to="id.sfgd.340.occurrence-count"/>
    <measureElements xmi:id="id.wk.42.occurrence-count_to_id.sfgd.44.occurrence-count" name="id.wk.42.occurrence-count to id.sfgd.44.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.42.occurrence-count" to="id.sfgd.44.occurrence-count"/>
    <measureElements xmi:id="id.wk.42.occurrence-count_to_id.sfgd.340.occurrence-count" name="id.wk.42.occurrence-count to id.sfgd.340.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.42.occurrence-count" to="id.sfgd.340.occurrence-count"/>
    <measureElements xmi:id="id.wk.46.occurrence-count_to_id.sfgd.45.occurrence-count" name="id.wk.46.occurrence-count to id.sfgd.45.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.46.occurrence-count" to="id.sfgd.45.occurrence-count"/>
    <measureElements xmi:id="id.wk.70.occurrence-count_to_id.sfgd.69.occurrence-count" name="id.wk.70.occurrence-count to id.sfgd.69.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.70.occurrence-count" to="id.sfgd.69.occurrence-count"/>
    <measureElements xmi:id="id.wk.70.occurrence-count_to_id.sfgd.78.occurrence-count" name="id.wk.70.occurrence-count to id.sfgd.78.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.70.occurrence-count" to="id.sfgd.78.occurrence-count"/>
    <measureElements xmi:id="id.wk.70.occurrence-count_to_id.sfgd.138.occurrence-count" name="id.wk.70.occurrence-count to id.sfgd.138.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.70.occurrence-count" to="id.sfgd.138.occurrence-count"/>
    <measureElements xmi:id="id.wk.70.occurrence-count_to_id.sfgd.157.occurrence-count" name="id.wk.70.occurrence-count to id.sfgd.157.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.70.occurrence-count" to="id.sfgd.157.occurrence-count"/>
    <measureElements xmi:id="id.wk.70.occurrence-count_to_id.sfgd.260.occurrence-count" name="id.wk.70.occurrence-count to id.sfgd.260.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.70.occurrence-count" to="id.sfgd.260.occurrence-count"/>
    <measureElements xmi:id="id.wk.70.occurrence-count_to_id.sfgd.344.occurrence-count" name="id.wk.70.occurrence-count to id.sfgd.344.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.70.occurrence-count" to="id.sfgd.344.occurrence-count"/>
    <measureElements xmi:id="id.wk.70.occurrence-count_to_id.sfgd.373.occurrence-count" name="id.wk.70.occurrence-count to id.sfgd.373.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.70.occurrence-count" to="id.sfgd.373.occurrence-count"/>
    <measureElements xmi:id="id.wk.71.occurrence-count_to_id.sfgd.127.occurrence-count" name="id.wk.71.occurrence-count to id.sfgd.127.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.71.occurrence-count" to="id.sfgd.127.occurrence-count"/>
    <measureElements xmi:id="id.wk.71.occurrence-count_to_id.sfgd.128.occurrence-count" name="id.wk.71.occurrence-count to id.sfgd.128.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.71.occurrence-count" to="id.sfgd.128.occurrence-count"/>
    <measureElements xmi:id="id.wk.71.occurrence-count_to_id.sfgd.69.occurrence-count" name="id.wk.71.occurrence-count to id.sfgd.69.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.71.occurrence-count" to="id.sfgd.69.occurrence-count"/>
    <measureElements xmi:id="id.wk.71.occurrence-count_to_id.sfgd.78.occurrence-count" name="id.wk.71.occurrence-count to id.sfgd.78.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.71.occurrence-count" to="id.sfgd.78.occurrence-count"/>
    <measureElements xmi:id="id.wk.71.occurrence-count_to_id.sfgd.106.occurrence-count" name="id.wk.71.occurrence-count to id.sfgd.106.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.71.occurrence-count" to="id.sfgd.106.occurrence-count"/>
    <measureElements xmi:id="id.wk.71.occurrence-count_to_id.sfgd.125.occurrence-count" name="id.wk.71.occurrence-count to id.sfgd.125.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.71.occurrence-count" to="id.sfgd.125.occurrence-count"/>
    <measureElements xmi:id="id.wk.71.occurrence-count_to_id.sfgd.260.occurrence-count" name="id.wk.71.occurrence-count to id.sfgd.260.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.71.occurrence-count" to="id.sfgd.260.occurrence-count"/>
    <measureElements xmi:id="id.wk.74.occurrence-count_to_id.sfgd.138.occurrence-count" name="id.wk.74.occurrence-count to id.sfgd.138.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.74.occurrence-count" to="id.sfgd.138.occurrence-count"/>
    <measureElements xmi:id="id.wk.75.occurrence-count_to_id.sfgd.138.occurrence-count" name="id.wk.75.occurrence-count to id.sfgd.138.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.75.occurrence-count" to="id.sfgd.138.occurrence-count"/>
    <measureElements xmi:id="id.wk.75.occurrence-count_to_id.sfgd.373.occurrence-count" name="id.wk.75.occurrence-count to id.sfgd.373.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.75.occurrence-count" to="id.sfgd.373.occurrence-count"/>
    <measureElements xmi:id="id.wk.77.occurrence-count_to_id.sfgd.78.occurrence-count" name="id.wk.77.occurrence-count to id.sfgd.78.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.77.occurrence-count" to="id.sfgd.78.occurrence-count"/>
    <measureElements xmi:id="id.wk.77.occurrence-count_to_id.sfgd.106.occurrence-count" name="id.wk.77.occurrence-count to id.sfgd.106.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.77.occurrence-count" to="id.sfgd.106.occurrence-count"/>
    <measureElements xmi:id="id.wk.77.occurrence-count_to_id.sfgd.260.occurrence-count" name="id.wk.77.occurrence-count to id.sfgd.260.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.77.occurrence-count" to="id.sfgd.260.occurrence-count"/>
    <measureElements xmi:id="id.wk.173.occurrence-count_to_id.sfgd.154.occurrence-count" name="id.wk.173.occurrence-count to id.sfgd.154.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.173.occurrence-count" to="id.sfgd.154.occurrence-count"/>
    <measureElements xmi:id="id.wk.184.occurrence-count_to_id.sfgd.123.occurrence-count" name="id.wk.184.occurrence-count to id.sfgd.123.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.184.occurrence-count" to="id.sfgd.123.occurrence-count"/>
    <measureElements xmi:id="id.wk.185.occurrence-count_to_id.sfgd.140.occurrence-count" name="id.wk.185.occurrence-count to id.sfgd.140.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.185.occurrence-count" to="id.sfgd.140.occurrence-count"/>
    <measureElements xmi:id="id.wk.186.occurrence-count_to_id.sfgd.134.occurrence-count" name="id.wk.186.occurrence-count to id.sfgd.134.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.186.occurrence-count" to="id.sfgd.134.occurrence-count"/>
    <measureElements xmi:id="id.wk.192.occurrence-count_to_id.sfgd.140.occurrence-count" name="id.wk.192.occurrence-count to id.sfgd.140.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.192.occurrence-count" to="id.sfgd.140.occurrence-count"/>
    <measureElements xmi:id="id.wk.193.occurrence-count_to_id.sfgd.140.occurrence-count" name="id.wk.193.occurrence-count to id.sfgd.140.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.193.occurrence-count" to="id.sfgd.140.occurrence-count"/>
    <measureElements xmi:id="id.wk.196.occurrence-count_to_id.sfgd.97.occurrence-count" name="id.wk.196.occurrence-count to id.sfgd.97.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.196.occurrence-count" to="id.sfgd.97.occurrence-count"/>
    <measureElements xmi:id="id.wk.197.occurrence-count_to_id.sfgd.100.occurrence-count" name="id.wk.197.occurrence-count to id.sfgd.100.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.197.occurrence-count" to="id.sfgd.100.occurrence-count"/>
    <measureElements xmi:id="id.wk.198.occurrence-count_to_id.sfgd.99.occurrence-count" name="id.wk.198.occurrence-count to id.sfgd.99.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.198.occurrence-count" to="id.sfgd.99.occurrence-count"/>
    <measureElements xmi:id="id.wk.199.occurrence-count_to_id.sfgd.101.occurrence-count" name="id.wk.199.occurrence-count to id.sfgd.101.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.199.occurrence-count" to="id.sfgd.101.occurrence-count"/>
    <measureElements xmi:id="id.wk.200.occurrence-count_to_id.sfgd.105.occurrence-count" name="id.wk.200.occurrence-count to id.sfgd.105.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.200.occurrence-count" to="id.sfgd.105.occurrence-count"/>
    <measureElements xmi:id="id.wk.201.occurrence-count_to_id.sfgd.108.occurrence-count" name="id.wk.201.occurrence-count to id.sfgd.108.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.201.occurrence-count" to="id.sfgd.108.occurrence-count"/>
    <measureElements xmi:id="id.wk.202.occurrence-count_to_id.sfgd.111.occurrence-count" name="id.wk.202.occurrence-count to id.sfgd.111.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.202.occurrence-count" to="id.sfgd.111.occurrence-count"/>
    <measureElements xmi:id="id.wk.203.occurrence-count_to_id.sfgd.117.occurrence-count" name="id.wk.203.occurrence-count to id.sfgd.117.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.203.occurrence-count" to="id.sfgd.117.occurrence-count"/>
    <measureElements xmi:id="id.wk.204.occurrence-count_to_id.sfgd.118.occurrence-count" name="id.wk.204.occurrence-count to id.sfgd.118.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.204.occurrence-count" to="id.sfgd.118.occurrence-count"/>
    <measureElements xmi:id="id.wk.205.occurrence-count_to_id.sfgd.157.occurrence-count" name="id.wk.205.occurrence-count to id.sfgd.157.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.205.occurrence-count" to="id.sfgd.157.occurrence-count"/>
    <measureElements xmi:id="id.wk.206.occurrence-count_to_id.sfgd.139.occurrence-count" name="id.wk.206.occurrence-count to id.sfgd.139.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.206.occurrence-count" to="id.sfgd.139.occurrence-count"/>
    <measureElements xmi:id="id.wk.245.occurrence-count_to_id.sfgd.107.occurrence-count" name="id.wk.245.occurrence-count to id.sfgd.107.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.245.occurrence-count" to="id.sfgd.107.occurrence-count"/>
    <measureElements xmi:id="id.wk.245.occurrence-count_to_id.sfgd.126.occurrence-count" name="id.wk.245.occurrence-count to id.sfgd.126.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.245.occurrence-count" to="id.sfgd.126.occurrence-count"/>
    <measureElements xmi:id="id.wk.259.occurrence-count_to_id.sfgd.106.occurrence-count" name="id.wk.259.occurrence-count to id.sfgd.106.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.259.occurrence-count" to="id.sfgd.106.occurrence-count"/>
    <measureElements xmi:id="id.wk.259.occurrence-count_to_id.sfgd.335.occurrence-count" name="id.wk.259.occurrence-count to id.sfgd.335.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.259.occurrence-count" to="id.sfgd.335.occurrence-count"/>
    <measureElements xmi:id="id.wk.283.occurrence-count_to_id.sfgd.45.occurrence-count" name="id.wk.283.occurrence-count to id.sfgd.45.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.283.occurrence-count" to="id.sfgd.45.occurrence-count"/>
    <measureElements xmi:id="id.wk.289.occurrence-count_to_id.sfgd.290.occurrence-count" name="id.wk.289.occurrence-count to id.sfgd.290.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.289.occurrence-count" to="id.sfgd.290.occurrence-count"/>
    <measureElements xmi:id="id.wk.292.occurrence-count_to_id.sfgd.45.occurrence-count" name="id.wk.292.occurrence-count to id.sfgd.45.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.292.occurrence-count" to="id.sfgd.45.occurrence-count"/>
    <measureElements xmi:id="id.wk.292.occurrence-count_to_id.sfgd.134.occurrence-count" name="id.wk.292.occurrence-count to id.sfgd.134.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.292.occurrence-count" to="id.sfgd.134.occurrence-count"/>
    <measureElements xmi:id="id.wk.299.occurrence-count_to_id.sfgd.41.occurrence-count" name="id.wk.299.occurrence-count to id.sfgd.41.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.299.occurrence-count" to="id.sfgd.41.occurrence-count"/>
    <measureElements xmi:id="id.wk.299.occurrence-count_to_id.sfgd.134.occurrence-count" name="id.wk.299.occurrence-count to id.sfgd.134.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.299.occurrence-count" to="id.sfgd.134.occurrence-count"/>
    <measureElements xmi:id="id.wk.300.occurrence-count_to_id.sfgd.301.occurrence-count" name="id.wk.300.occurrence-count to id.sfgd.301.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.300.occurrence-count" to="id.sfgd.301.occurrence-count"/>
    <measureElements xmi:id="id.wk.300.occurrence-count_to_id.sfgd.326.occurrence-count" name="id.wk.300.occurrence-count to id.sfgd.326.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.300.occurrence-count" to="id.sfgd.326.occurrence-count"/>
    <measureElements xmi:id="id.wk.377.occurrence-count_to_id.sfgd.378.occurrence-count" name="id.wk.377.occurrence-count to id.sfgd.378.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.377.occurrence-count" to="id.sfgd.378.occurrence-count"/>
    <measureElements xmi:id="id.wk.377.occurrence-count_to_id.sfgd.379.occurrence-count" name="id.wk.377.occurrence-count to id.sfgd.379.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.377.occurrence-count" to="id.sfgd.379.occurrence-count"/>
    <measureElements xmi:id="id.wk.283.occurrence-count_to_id.sfgd.290.occurrence-count" name="id.wk.283.occurrence-count to id.sfgd.290.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.283.occurrence-count" to="id.sfgd.290.occurrence-count"/>
    <measureElements xmi:id="id.wk.283.occurrence-count_to_id.sfgd.134.occurrence-count" name="id.wk.283.occurrence-count to id.sfgd.134.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.283.occurrence-count" to="id.sfgd.134.occurrence-count"/>
    <measureElements xmi:id="id.wk.71.occurrence-count_to_id.sfgd.138.occurrence-count" name="id.wk.71.occurrence-count to id.sfgd.138.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.71.occurrence-count" to="id.sfgd.138.occurrence-count"/>
    <measureElements xmi:id="id.wk.71.occurrence-count_to_id.sfgd.157.occurrence-count" name="id.wk.71.occurrence-count to id.sfgd.157.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.71.occurrence-count" to="id.sfgd.157.occurrence-count"/>
    <measureElements xmi:id="id.wk.71.occurrence-count_to_id.sfgd.344.occurrence-count" name="id.wk.71.occurrence-count to id.sfgd.344.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.71.occurrence-count" to="id.sfgd.344.occurrence-count"/>
    <measureElements xmi:id="id.wk.71.occurrence-count_to_id.sfgd.373.occurrence-count" name="id.wk.71.occurrence-count to id.sfgd.373.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.71.occurrence-count" to="id.sfgd.373.occurrence-count"/>
    <measureElements xmi:id="id.wk.71.occurrence-count_to_id.sfgd.335.occurrence-count" name="id.wk.71.occurrence-count to id.sfgd.335.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.wk.71.occurrence-count" to="id.sfgd.335.occurrence-count"/>
    <measureElements xmi:id="id.cat.376.occurrence-count" name="Occurrence Count of Weakness Category Resource Sustainability" xmi:type="smm:CollectiveMeasure" scope="id.smm.scope.1" trait="id.smm.characteristic.1" unit="Integer" accumulator="sum" baseMeasureTo="id.cat.376.occurrence-count_to_id.sfgd.100.occurrence-count id.cat.376.occurrence-count_to_id.sfgd.101.occurrence-count id.cat.376.occurrence-count_to_id.sfgd.105.occurrence-count id.cat.376.occurrence-count_to_id.sfgd.106.occurrence-count id.cat.376.occurrence-count_to_id.sfgd.107.occurrence-count id.cat.376.occurrence-count_to_id.sfgd.108.occurrence-count id.cat.376.occurrence-count_to_id.sfgd.111.occurrence-count id.cat.376.occurrence-count_to_id.sfgd.117.occurrence-count id.cat.376.occurrence-count_to_id.sfgd.118.occurrence-count id.cat.376.occurrence-count_to_id.sfgd.123.occurrence-count id.cat.376.occurrence-count_to_id.sfgd.125.occurrence-count id.cat.376.occurrence-count_to_id.sfgd.126.occurrence-count id.cat.376.occurrence-count_to_id.sfgd.127.occurrence-count id.cat.376.occurrence-count_to_id.sfgd.128.occurrence-count id.cat.376.occurrence-count_to_id.sfgd.134.occurrence-count id.cat.376.occurrence-count_to_id.sfgd.138.occurrence-count id.cat.376.occurrence-count_to_id.sfgd.139.occurrence-count id.cat.376.occurrence-count_to_id.sfgd.140.occurrence-count id.cat.376.occurrence-count_to_id.sfgd.154.occurrence-count id.cat.376.occurrence-count_to_id.sfgd.157.occurrence-count id.cat.376.occurrence-count_to_id.sfgd.260.occurrence-count id.cat.376.occurrence-count_to_id.sfgd.290.occurrence-count id.cat.376.occurrence-count_to_id.sfgd.301.occurrence-count id.cat.376.occurrence-count_to_id.sfgd.326.occurrence-count id.cat.376.occurrence-count_to_id.sfgd.327.occurrence-count id.cat.376.occurrence-count_to_id.sfgd.335.occurrence-count id.cat.376.occurrence-count_to_id.sfgd.340.occurrence-count id.cat.376.occurrence-count_to_id.sfgd.344.occurrence-count id.cat.376.occurrence-count_to_id.sfgd.373.occurrence-count id.cat.376.occurrence-count_to_id.sfgd.378.occurrence-count id.cat.376.occurrence-count_to_id.sfgd.379.occurrence-count id.cat.376.occurrence-count_to_id.sfgd.41.occurrence-count id.cat.376.occurrence-count_to_id.sfgd.44.occurrence-count id.cat.376.occurrence-count_to_id.sfgd.45.occurrence-count id.cat.376.occurrence-count_to_id.sfgd.69.occurrence-count id.cat.376.occurrence-count_to_id.sfgd.78.occurrence-count id.cat.376.occurrence-count_to_id.sfgd.97.occurrence-count id.cat.376.occurrence-count_to_id.sfgd.99.occurrence-count"/>
    <measureElements xmi:id="id.cat.376.occurrence-count_to_id.sfgd.154.occurrence-count" name="id.cat.376.occurrence-count to id.sfgd.154.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.cat.376.occurrence-count" to="id.sfgd.154.occurrence-count"/>
    <measureElements xmi:id="id.cat.376.occurrence-count_to_id.sfgd.123.occurrence-count" name="id.cat.376.occurrence-count to id.sfgd.123.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.cat.376.occurrence-count" to="id.sfgd.123.occurrence-count"/>
    <measureElements xmi:id="id.cat.376.occurrence-count_to_id.sfgd.140.occurrence-count" name="id.cat.376.occurrence-count to id.sfgd.140.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.cat.376.occurrence-count" to="id.sfgd.140.occurrence-count"/>
    <measureElements xmi:id="id.cat.376.occurrence-count_to_id.sfgd.134.occurrence-count" name="id.cat.376.occurrence-count to id.sfgd.134.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.cat.376.occurrence-count" to="id.sfgd.134.occurrence-count"/>
    <measureElements xmi:id="id.cat.376.occurrence-count_to_id.sfgd.97.occurrence-count" name="id.cat.376.occurrence-count to id.sfgd.97.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.cat.376.occurrence-count" to="id.sfgd.97.occurrence-count"/>
    <measureElements xmi:id="id.cat.376.occurrence-count_to_id.sfgd.100.occurrence-count" name="id.cat.376.occurrence-count to id.sfgd.100.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.cat.376.occurrence-count" to="id.sfgd.100.occurrence-count"/>
    <measureElements xmi:id="id.cat.376.occurrence-count_to_id.sfgd.99.occurrence-count" name="id.cat.376.occurrence-count to id.sfgd.99.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.cat.376.occurrence-count" to="id.sfgd.99.occurrence-count"/>
    <measureElements xmi:id="id.cat.376.occurrence-count_to_id.sfgd.101.occurrence-count" name="id.cat.376.occurrence-count to id.sfgd.101.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.cat.376.occurrence-count" to="id.sfgd.101.occurrence-count"/>
    <measureElements xmi:id="id.cat.376.occurrence-count_to_id.sfgd.105.occurrence-count" name="id.cat.376.occurrence-count to id.sfgd.105.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.cat.376.occurrence-count" to="id.sfgd.105.occurrence-count"/>
    <measureElements xmi:id="id.cat.376.occurrence-count_to_id.sfgd.108.occurrence-count" name="id.cat.376.occurrence-count to id.sfgd.108.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.cat.376.occurrence-count" to="id.sfgd.108.occurrence-count"/>
    <measureElements xmi:id="id.cat.376.occurrence-count_to_id.sfgd.111.occurrence-count" name="id.cat.376.occurrence-count to id.sfgd.111.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.cat.376.occurrence-count" to="id.sfgd.111.occurrence-count"/>
    <measureElements xmi:id="id.cat.376.occurrence-count_to_id.sfgd.117.occurrence-count" name="id.cat.376.occurrence-count to id.sfgd.117.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.cat.376.occurrence-count" to="id.sfgd.117.occurrence-count"/>
    <measureElements xmi:id="id.cat.376.occurrence-count_to_id.sfgd.118.occurrence-count" name="id.cat.376.occurrence-count to id.sfgd.118.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.cat.376.occurrence-count" to="id.sfgd.118.occurrence-count"/>
    <measureElements xmi:id="id.cat.376.occurrence-count_to_id.sfgd.157.occurrence-count" name="id.cat.376.occurrence-count to id.sfgd.157.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.cat.376.occurrence-count" to="id.sfgd.157.occurrence-count"/>
    <measureElements xmi:id="id.cat.376.occurrence-count_to_id.sfgd.139.occurrence-count" name="id.cat.376.occurrence-count to id.sfgd.139.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.cat.376.occurrence-count" to="id.sfgd.139.occurrence-count"/>
    <measureElements xmi:id="id.cat.376.occurrence-count_to_id.sfgd.107.occurrence-count" name="id.cat.376.occurrence-count to id.sfgd.107.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.cat.376.occurrence-count" to="id.sfgd.107.occurrence-count"/>
    <measureElements xmi:id="id.cat.376.occurrence-count_to_id.sfgd.126.occurrence-count" name="id.cat.376.occurrence-count to id.sfgd.126.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.cat.376.occurrence-count" to="id.sfgd.126.occurrence-count"/>
    <measureElements xmi:id="id.cat.376.occurrence-count_to_id.sfgd.106.occurrence-count" name="id.cat.376.occurrence-count to id.sfgd.106.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.cat.376.occurrence-count" to="id.sfgd.106.occurrence-count"/>
    <measureElements xmi:id="id.cat.376.occurrence-count_to_id.sfgd.335.occurrence-count" name="id.cat.376.occurrence-count to id.sfgd.335.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.cat.376.occurrence-count" to="id.sfgd.335.occurrence-count"/>
    <measureElements xmi:id="id.cat.376.occurrence-count_to_id.sfgd.45.occurrence-count" name="id.cat.376.occurrence-count to id.sfgd.45.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.cat.376.occurrence-count" to="id.sfgd.45.occurrence-count"/>
    <measureElements xmi:id="id.cat.376.occurrence-count_to_id.sfgd.290.occurrence-count" name="id.cat.376.occurrence-count to id.sfgd.290.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.cat.376.occurrence-count" to="id.sfgd.290.occurrence-count"/>
    <measureElements xmi:id="id.cat.376.occurrence-count_to_id.sfgd.41.occurrence-count" name="id.cat.376.occurrence-count to id.sfgd.41.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.cat.376.occurrence-count" to="id.sfgd.41.occurrence-count"/>
    <measureElements xmi:id="id.cat.376.occurrence-count_to_id.sfgd.301.occurrence-count" name="id.cat.376.occurrence-count to id.sfgd.301.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.cat.376.occurrence-count" to="id.sfgd.301.occurrence-count"/>
    <measureElements xmi:id="id.cat.376.occurrence-count_to_id.sfgd.326.occurrence-count" name="id.cat.376.occurrence-count to id.sfgd.326.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.cat.376.occurrence-count" to="id.sfgd.326.occurrence-count"/>
    <measureElements xmi:id="id.cat.376.occurrence-count_to_id.sfgd.378.occurrence-count" name="id.cat.376.occurrence-count to id.sfgd.378.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.cat.376.occurrence-count" to="id.sfgd.378.occurrence-count"/>
    <measureElements xmi:id="id.cat.376.occurrence-count_to_id.sfgd.379.occurrence-count" name="id.cat.376.occurrence-count to id.sfgd.379.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.cat.376.occurrence-count" to="id.sfgd.379.occurrence-count"/>
    <measureElements xmi:id="id.cat.376.occurrence-count_to_id.sfgd.327.occurrence-count" name="id.cat.376.occurrence-count to id.sfgd.327.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.cat.376.occurrence-count" to="id.sfgd.327.occurrence-count"/>
    <measureElements xmi:id="id.cat.376.occurrence-count_to_id.sfgd.340.occurrence-count" name="id.cat.376.occurrence-count to id.sfgd.340.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.cat.376.occurrence-count" to="id.sfgd.340.occurrence-count"/>
    <measureElements xmi:id="id.cat.376.occurrence-count_to_id.sfgd.44.occurrence-count" name="id.cat.376.occurrence-count to id.sfgd.44.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.cat.376.occurrence-count" to="id.sfgd.44.occurrence-count"/>
    <measureElements xmi:id="id.cat.376.occurrence-count_to_id.sfgd.69.occurrence-count" name="id.cat.376.occurrence-count to id.sfgd.69.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.cat.376.occurrence-count" to="id.sfgd.69.occurrence-count"/>
    <measureElements xmi:id="id.cat.376.occurrence-count_to_id.sfgd.78.occurrence-count" name="id.cat.376.occurrence-count to id.sfgd.78.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.cat.376.occurrence-count" to="id.sfgd.78.occurrence-count"/>
    <measureElements xmi:id="id.cat.376.occurrence-count_to_id.sfgd.138.occurrence-count" name="id.cat.376.occurrence-count to id.sfgd.138.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.cat.376.occurrence-count" to="id.sfgd.138.occurrence-count"/>
    <measureElements xmi:id="id.cat.376.occurrence-count_to_id.sfgd.260.occurrence-count" name="id.cat.376.occurrence-count to id.sfgd.260.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.cat.376.occurrence-count" to="id.sfgd.260.occurrence-count"/>
    <measureElements xmi:id="id.cat.376.occurrence-count_to_id.sfgd.344.occurrence-count" name="id.cat.376.occurrence-count to id.sfgd.344.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.cat.376.occurrence-count" to="id.sfgd.344.occurrence-count"/>
    <measureElements xmi:id="id.cat.376.occurrence-count_to_id.sfgd.373.occurrence-count" name="id.cat.376.occurrence-count to id.sfgd.373.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.cat.376.occurrence-count" to="id.sfgd.373.occurrence-count"/>
    <measureElements xmi:id="id.cat.376.occurrence-count_to_id.sfgd.127.occurrence-count" name="id.cat.376.occurrence-count to id.sfgd.127.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.cat.376.occurrence-count" to="id.sfgd.127.occurrence-count"/>
    <measureElements xmi:id="id.cat.376.occurrence-count_to_id.sfgd.128.occurrence-count" name="id.cat.376.occurrence-count to id.sfgd.128.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.cat.376.occurrence-count" to="id.sfgd.128.occurrence-count"/>
    <measureElements xmi:id="id.cat.376.occurrence-count_to_id.sfgd.125.occurrence-count" name="id.cat.376.occurrence-count to id.sfgd.125.occurrence-count" xmi:type="smm:BaseMeasureRelationship" from="id.cat.376.occurrence-count" to="id.sfgd.125.occurrence-count"/>
  </smm:MeasureLibrary>
</xmi:XMI>
