<?xml version="1.0" encoding="utf-8"?>
<xmi:XMI xmlns:xmi="http://www.omg.org/spec/XMI/20131001"
xmlns:ipmss="http://www.omg.org/spec/ipmss/20140201/">
  <ipmss:PatternDefinition xmi:id="ASCCMM-MNT-1"
  name="ASCCMM-MNT-1: Control Flow Transfer Control Element outside Switch Block">
    <relatedPatts xmi:id="ASCCMM-MNT-1-relatedPatts-maintainability" xmi:type="ipmss:MemberOf"
    category="ASCCMM_Maintainability" />
    <sections xmi:id="ASCCMM-MNT-1-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid the unconditional transfer of control flow outside of switch structures" />
    <sections xmi:id="ASCCMM-MNT-1-consequence" xmi:type="ipmss:PatternSection" name="Consequence"
    body="Software that does not follow the principles of structured programming degrades comprehensibility" />
    <sections xmi:id="ASCCMM-MNT-1-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where an unconditional transfer of control is located outside the branching based on the value of a storable element" />
    <sections xmi:id="ASCCMM-MNT-1-description" xmi:type="ipmss:PatternSection" name="Description"
    body="This pattern identifies situations where &lt;ControlFlowJumpStatement&gt; control flow (action:ActionElement with micro KDM kind such as 'Goto') unconditional transfer of control is located outside the &lt;SwitchBranching&gt; branching based on the value of a storable element (action:ActionElement with micro KDM kind 'Switch')." />
    <sections xmi:id="ASCCMM-MNT-1-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCMM-MNT-1(ControlFlowJumpStatement: controlFlowJumpStatement,SwitchBranching: switchBranching)" />
    <roles xmi:id="ASCCMM-MNT-1-roles-controlFlowJumpStatement" xmi:type="ipmss:Role"
    name="ControlFlowJumpStatement" />
    <roles xmi:id="ASCCMM-MNT-1-roles-switchBranching" xmi:type="ipmss:Role"
    name="SwitchBranching" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCMM-MNT-10"
  name="ASCCMM-MNT-10: Horizontal Layer Excessive Number">
    <relatedPatts xmi:id="ASCCMM-MNT-10-relatedPatts-maintainability" xmi:type="ipmss:MemberOf"
    category="ASCCMM_Maintainability" />
    <sections xmi:id="ASCCMM-MNT-10-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid the existence of too many or too few horizontal layers" />
    <sections xmi:id="ASCCMM-MNT-10-consequence" xmi:type="ipmss:PatternSection" name="Consequence"
    body="Software that does not follow the principles of layered architectures (such as strict partitioning and strict call hierarchy) decreases comprehensibility as well as simplicity to evolve the code" />
    <sections xmi:id="ASCCMM-MNT-10-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where a model of the architectural layers of an application contains too may or too few horizontal layers (excluding the vertical utility layers) based on comparison to a threshold value. The default value for the minimal number of horizontal layers is 4, and the default value for maximal number of horizontal layers is 8." />
    <sections xmi:id="ASCCMM-MNT-10-description" xmi:type="ipmss:PatternSection" name="Description"
    body="This pattern identifies situations where the &lt;ArchitectureModel&gt; model of the architectural layers contains too may or too few horizontal layers (structure:Layer), based on its &lt;NumberOfHorizontalLayers&gt; number of horizontal layers (that is, excluding the vertical utility layers) that is smaller than the &lt;NumberOfHorizontalLayerThresholdMinimalValue&gt; threshold value or greater than the &lt;NumberOfHorizontalLayerThresholdMaximalValue&gt; threshold value. The default value for &lt;NumberOfHorizontalLayerThresholdMinimalValue&gt; is 4. The default value for &lt;NumberOfHorizontalLayerThresholdMaximalValue&gt; is 8." />
    <sections xmi:id="ASCCMM-MNT-10-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCMM-MNT-10(NumberOfHorizontalLayers: numberOfHorizontalLayers,NumberOfHorizontalLayerThresholdMinimalValue: numberOfHorizontalLayerThresholdMinimalValue, NumberOfHorizontalLayerThresholdMaximalValue: numberOfHorizontalLayerThresholdMaximalValue, ArchitectureModel: architectureModel)" />
    <sections xmi:id="ASCCMM-MNT-10-input" xmi:type="ipmss:PatternSection" name="Input"
    body="&lt;ArchitectureModel&gt; defining the application's architectural blueprint. &lt;NumberOfHorizontalLayerThresholdMinimalValue&gt; minimal value &lt;NumberOfHorizontalLayerThresholdMaximalValue&gt; maximal value." />
    <roles xmi:id="ASCCMM-MNT-10-roles-numberOfHorizontalLayers" xmi:type="ipmss:Role"
    name="NumberOfHorizontalLayers" />
    <roles xmi:id="ASCCMM-MNT-10-roles-numberOfHorizontalLayerThresholdMinimalValue"
    xmi:type="ipmss:Role" name="NumberOfHorizontalLayerThresholdMinimalValue" />
    <roles xmi:id="ASCCMM-MNT-10-roles-numberOfHorizontalLayerThresholdMaximalValue"
    xmi:type="ipmss:Role" name="NumberOfHorizontalLayerThresholdMaximalValue" />
    <roles xmi:id="ASCCMM-MNT-10-roles-architectureModel" xmi:type="ipmss:Role"
    name="ArchitectureModel" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCMM-MNT-11"
  name="ASCCMM-MNT-11: Named Callable and Method Control Element Multi-Layer Span">
    <relatedPatts xmi:id="ASCCMM-MNT-11-relatedPatts-maintainability" xmi:type="ipmss:MemberOf"
    category="ASCCMM_Maintainability" />
    <sections xmi:id="ASCCMM-MNT-11-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid unclear allocation of software elements to a single architectural layer" />
    <sections xmi:id="ASCCMM-MNT-11-consequence" xmi:type="ipmss:PatternSection" name="Consequence"
    body="Software that does not follow the principles of layered architectures (such as strict partitioning and strict call hierarchy) decreases comprehensibility as well as simplicity to evolve the code" />
    <sections xmi:id="ASCCMM-MNT-11-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where a callable or method control element is part of two architectural layers" />
    <sections xmi:id="ASCCMM-MNT-11-description" xmi:type="ipmss:PatternSection" name="Description"
    body="This pattern identifies siuations where the &lt;ControlElement&gt; callable or method control element (code:ControlElement) is part of both &lt;Layer1&gt; and &lt;Layer2&gt; architectural layers (structure:Layer)" />
    <sections xmi:id="ASCCMM-MNT-11-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCMM-MNT-11(ControlElement: controlElement,Layer1: layer1, Layer2: layer2)" />
    <sections xmi:id="ASCCMM-MNT-11-input" xmi:type="ipmss:PatternSection" name="Input"
    body="&lt;ArchitectureModel&gt; defining the application's architectural blueprint." />
    <roles xmi:id="ASCCMM-MNT-11-roles-controlElement" xmi:type="ipmss:Role"
    name="ControlElement" />
    <roles xmi:id="ASCCMM-MNT-11-roles-layer1" xmi:type="ipmss:Role" name="Layer1" />
    <roles xmi:id="ASCCMM-MNT-11-roles-layer2" xmi:type="ipmss:Role" name="Layer2" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCMM-MNT-12"
  name="ASCCMM-MNT-12: Callable and Method Control Element Excessive Cyclomatic Complexity Value">
    <relatedPatts xmi:id="ASCCMM-MNT-12-relatedPatts-maintainability" xmi:type="ipmss:MemberOf"
    category="ASCCMM_Maintainability" />
    <sections xmi:id="ASCCMM-MNT-12-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid overly complex control flow" />
    <sections xmi:id="ASCCMM-MNT-12-consequence" xmi:type="ipmss:PatternSection" name="Consequence"
    body="Software that does not follow the principles of structured programming degrades comprehensibility" />
    <sections xmi:id="ASCCMM-MNT-12-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where a named callable control element or method control element has a control flow with a Cyclomatic Complexity number that exceeds a threshold value. Default threshold value for Cyclomatic Complexity is 20" />
    <sections xmi:id="ASCCMM-MNT-12-description" xmi:type="ipmss:PatternSection" name="Description"
    body="This pattern identifies situations where the &lt;ControlElement&gt; named callable control element (code:CallableUnit with code:CallableKind 'regular', 'external' or 'stored') or method control element (code:MethodUnit) has a control flow (action:ControlFlow) with a &lt;CyclomaticComplexityValue&gt; Cyclomatic Complexity which is greater than the &lt;CyclomaticComplexityThresholdValue&gt; threshold value. Default value for &lt;CyclomaticComplexityThreshold&gt; is 20." />
    <sections xmi:id="ASCCMM-MNT-12-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCMM-MNT-12(ControlElement: controlElement,CyclomaticComplexity: cyclomaticComplexity, CyclomaticComplexityThresholdValue: cyclomaticComplexityThresholdValue)" />
    <sections xmi:id="ASCCMM-MNT-12-input" xmi:type="ipmss:PatternSection" name="Input"
    body="&lt;CyclomaticComplexityThresholdValue&gt; maximum value of distinct path through the control element" />
    <roles xmi:id="ASCCMM-MNT-12-roles-controlElement" xmi:type="ipmss:Role"
    name="ControlElement" />
    <roles xmi:id="ASCCMM-MNT-12-roles-cyclomaticComplexity" xmi:type="ipmss:Role"
    name="CyclomaticComplexity" />
    <roles xmi:id="ASCCMM-MNT-12-roles-cyclomaticComplexityThresholdValue" xmi:type="ipmss:Role"
    name="CyclomaticComplexityThresholdValue" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCMM-MNT-13"
  name="ASCCMM-MNT-13: Named Callable and Method Control Element with Layer-skipping Call">
    <relatedPatts xmi:id="ASCCMM-MNT-13-relatedPatts-maintainability" xmi:type="ipmss:MemberOf"
    category="ASCCMM_Maintainability" />
    <sections xmi:id="ASCCMM-MNT-13-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid breaches of layered architecture principles due to layer-skipping references" />
    <sections xmi:id="ASCCMM-MNT-13-consequence" xmi:type="ipmss:PatternSection" name="Consequence"
    body="Software that does not follow the principles of layered architectures (such as strict partitioning and strict call hierarchy) decreases comprehensibility as well as simplicity to evolve the code" />
    <sections xmi:id="ASCCMM-MNT-13-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where a named callable or method control element from a higher horizontal layer directly calls a named callable or method control element in a lower horizontal layer that is not adjacent to the upper layer making the call, as defined in a model of the application’s architectural layers (this excludes the vertical utility layers that can be referenced from any horizontal layer)" />
    <sections xmi:id="ASCCMM-MNT-13-description" xmi:type="ipmss:PatternSection" name="Description"
    body="This pattern identifies situations where the &lt;CallerObject&gt; named callable and method control elements (code:MethodUnit or code:CallableUnit with code:CallableKind 'regular', 'external' or 'stored') from the &lt;HigherLayer&gt; higher horizontal layer (structure:Layer) directly calls (action:CallableRelations) the &lt;CalleeObject&gt; named callable or method control element from the &lt;LowerLayer&gt; lower horizontal layer (structure:Layer), while the &lt;LowerLayer&gt; layer is not the next lower layer to the &lt;UpperLayer&gt; layer, as defined in the &lt;ArchitectureModel&gt; model of the architectural layers; this excludes the vertical utility layers that can be referenced from any horizontal layers" />
    <sections xmi:id="ASCCMM-MNT-13-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCMM-MNT-13(CallerObject: callerObject,HigherLayer: higherLayer, CalleeObject: calleeObject, LowerLayer: lowerLayer, ArchitectureModel: architectureModel)" />
    <sections xmi:id="ASCCMM-MNT-13-input" xmi:type="ipmss:PatternSection" name="Input"
    body="&lt;ArchitectureModel&gt; defining the application's architectural blueprint." />
    <roles xmi:id="ASCCMM-MNT-13-roles-callerObject" xmi:type="ipmss:Role" name="CallerObject" />
    <roles xmi:id="ASCCMM-MNT-13-roles-higherLayer" xmi:type="ipmss:Role" name="HigherLayer" />
    <roles xmi:id="ASCCMM-MNT-13-roles-calleeObject" xmi:type="ipmss:Role" name="CalleeObject" />
    <roles xmi:id="ASCCMM-MNT-13-roles-lowerLayer" xmi:type="ipmss:Role" name="LowerLayer" />
    <roles xmi:id="ASCCMM-MNT-13-roles-architectureModel" xmi:type="ipmss:Role"
    name="ArchitectureModel" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCMM-MNT-14"
  name="ASCCMM-MNT-14: Callable and Method Control Element Excessive Number of Parameters">
    <relatedPatts xmi:id="ASCCMM-MNT-14-relatedPatts-maintainability" xmi:type="ipmss:MemberOf"
    category="ASCCMM_Maintainability" />
    <sections xmi:id="ASCCMM-MNT-14-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid over-parameterization" />
    <sections xmi:id="ASCCMM-MNT-14-consequence" xmi:type="ipmss:PatternSection" name="Consequence"
    body="Software that does not cap the number of parameters degrades comprehensibility" />
    <sections xmi:id="ASCCMM-MNT-14-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where a named callable control element or method control element has a number of parameters in its signature that exceeds a threshold value. Default threshold value for the number of parameters is 7." />
    <sections xmi:id="ASCCMM-MNT-14-description" xmi:type="ipmss:PatternSection" name="Description"
    body="This pattern identifies situations where the &lt;ControlElement&gt; named callable control element (code:CallableUnit with code:CallableKind 'regular', 'external' or 'stored') or method control element (code:MethodUnit) has &lt;ParameterNumber&gt; parameters (code:ParameterUnit with ParameterKind 'byValue', 'byName', 'byReference', or 'variadic') in its signature (code:Signature) which is greater than the &lt;ParameterNumberThreshold&gt; threshold value. Default value for the &lt;ParameterNumberThreshold&gt; is 7." />
    <sections xmi:id="ASCCMM-MNT-14-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCMM-MNT-14(ControlElement: controlElement,ParameterNumber: parameterNumber, ParameterNumberThreshold: parameterNumberThreshold)" />
    <sections xmi:id="ASCCMM-MNT-14-input" xmi:type="ipmss:PatternSection" name="Input"
    body="&lt;ParameterNumberThreshold&gt; maximum value of parameters in signature" />
    <roles xmi:id="ASCCMM-MNT-14-roles-controlElement" xmi:type="ipmss:Role"
    name="ControlElement" />
    <roles xmi:id="ASCCMM-MNT-14-roles-parameterNumber" xmi:type="ipmss:Role"
    name="ParameterNumber" />
    <roles xmi:id="ASCCMM-MNT-14-roles-parameterNumberThreshold" xmi:type="ipmss:Role"
    name="ParameterNumberThreshold" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCMM-MNT-15"
  name="ASCCMM-MNT-15: Callable and Method Control Element Excessive Number of Control Elements involving Data Element from Data Manager or File Resource">

    <relatedPatts xmi:id="ASCCMM-MNT-15-relatedPatts-maintainability" xmi:type="ipmss:MemberOf"
    category="ASCCMM_Maintainability" />
    <sections xmi:id="ASCCMM-MNT-15-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid the existence of control elements with too many data operations" />
    <sections xmi:id="ASCCMM-MNT-15-consequence" xmi:type="ipmss:PatternSection" name="Consequence"
    body="Software that does not cap the number of data operations degrades comprehensibility by requiring the understanding of too many external data structures" />
    <sections xmi:id="ASCCMM-MNT-15-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where a named callable control element or method control element has a number of operations involving a data manager or a file resource that exceeds a threshold value. Default threshold value for the number of data operations is 7" />
    <sections xmi:id="ASCCMM-MNT-15-description" xmi:type="ipmss:PatternSection" name="Description"
    body="This pattern identifies situations where the &lt;ControlElement&gt; named callable and method control elements (code:MethodUnit or code:CallableUnit with code:CallableKind 'regular', 'external' or 'stored') has too many control elements involving a data manager (platform:DataManager) or a file resource (platform:FileResource), based on its &lt;NumberOfDataOperations&gt; number of such control elements, which exceeds the &lt;NumberOfDataOperationsThresholdValue&gt; threshold value. Default value for &lt;NumberOfDataOperationsThresholdValue&gt; is 7." />
    <sections xmi:id="ASCCMM-MNT-15-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCMM-MNT-15(ControlElement: controlElement,NumberOfDataOperations: numberOfDataOperations, NumberOfDataOperationsThresholdValue: numberOfDataOperationsThresholdValue)" />
    <sections xmi:id="ASCCMM-MNT-15-input" xmi:type="ipmss:PatternSection" name="Input"
    body="&lt;NumberOfDataOperationsThresholdValue&gt; maximum value of data operation in control element" />
    <roles xmi:id="ASCCMM-MNT-15-roles-controlElement" xmi:type="ipmss:Role"
    name="ControlElement" />
    <roles xmi:id="ASCCMM-MNT-15-roles-numberOfDataOperations" xmi:type="ipmss:Role"
    name="NumberOfDataOperations" />
    <roles xmi:id="ASCCMM-MNT-15-roles-numberOfDataOperationsThresholdValue" xmi:type="ipmss:Role"
    name="NumberOfDataOperationsThresholdValue" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCMM-MNT-16" name="ASCCMM-MNT-16: Public Member Element">
    <relatedPatts xmi:id="ASCCMM-MNT-16-relatedPatts-maintainability" xmi:type="ipmss:MemberOf"
    category="ASCCMM_Maintainability" />
    <sections xmi:id="ASCCMM-MNT-16-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid openly accessible data elements" />
    <sections xmi:id="ASCCMM-MNT-16-consequence" xmi:type="ipmss:PatternSection" name="Consequence"
    body="Software that does not follow the principles of data encapsulation incurs the risk of data corruption" />
    <sections xmi:id="ASCCMM-MNT-16-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where a storable data element or member data element is declared as public through a Create action" />
    <sections xmi:id="ASCCMM-MNT-16-description" xmi:type="ipmss:PatternSection" name="Description"
    body="This pattern identifies situations where the &lt;PublicDataElement&gt; storable data element (code:StorableUnit) or member data element (code:MemberUnit) is declared as public (code:ExportKind 'public') through the &lt;DataElementDeclarationStatement&gt; Create action (action:Creates)." />
    <sections xmi:id="ASCCMM-MNT-16-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCMM-MNT-16(PublicDataElement: publicDataElement,DataElementDeclarationStatement: dataElementDeclarationStatement)" />
    <roles xmi:id="ASCCMM-MNT-16-roles-publicDataElement" xmi:type="ipmss:Role"
    name="PublicDataElement" />
    <roles xmi:id="ASCCMM-MNT-16-roles-dataElementDeclarationStatement" xmi:type="ipmss:Role"
    name="DataElementDeclarationStatement" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCMM-MNT-17"
  name="ASCCMM-MNT-17: Method Control Element Usage of Member Element from other Class Element">
    <relatedPatts xmi:id="ASCCMM-MNT-17-relatedPatts-maintainability" xmi:type="ipmss:MemberOf"
    category="ASCCMM_Maintainability" />
    <sections xmi:id="ASCCMM-MNT-17-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid direct access to data elements of another entity" />
    <sections xmi:id="ASCCMM-MNT-17-consequence" xmi:type="ipmss:PatternSection" name="Consequence"
    body="Software that does not follow the principles of data encapsulation incurs the risk of data corruption" />
    <sections xmi:id="ASCCMM-MNT-17-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where a method control element from a class element accesses a member element from another class element" />
    <sections xmi:id="ASCCMM-MNT-17-description" xmi:type="ipmss:PatternSection" name="Description"
    body="This pattern identifies situations where the &lt;Method&gt; method control element (code:MethodUnit) from &lt;Class1&gt; class element (code:StorableUnit of code:DataType code:ClassUnit) accesses (action:DataRelations) the &lt;Field&gt; member element (code:MemberUnit) from &lt;Class2&gt; class element." />
    <sections xmi:id="ASCCMM-MNT-17-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCMM-MNT-17(Class1: class1,Class2: class2, Field: field)" />
    <roles xmi:id="ASCCMM-MNT-17-roles-class1" xmi:type="ipmss:Role" name="Class1" />
    <roles xmi:id="ASCCMM-MNT-17-roles-class2" xmi:type="ipmss:Role" name="Class2" />
    <roles xmi:id="ASCCMM-MNT-17-roles-field" xmi:type="ipmss:Role" name="Field" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCMM-MNT-18"
  name="ASCCMM-MNT-18: Class Element Excessive Inheritance Level">
    <relatedPatts xmi:id="ASCCMM-MNT-18-relatedPatts-maintainability" xmi:type="ipmss:MemberOf"
    category="ASCCMM_Maintainability" />
    <sections xmi:id="ASCCMM-MNT-18-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid overly complex object-oriented inheritance capabilities when dealing with the number of levels of inheritance of classes" />
    <sections xmi:id="ASCCMM-MNT-18-consequence" xmi:type="ipmss:PatternSection" name="Consequence"
    body="Software that does not follow the principles of reuse requires more maintenance effort in order to propagate changes to all instances of duplicated code" />
    <sections xmi:id="ASCCMM-MNT-18-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where the inheritance level of a class element (that is, the number of parent class units) exceeds a threshold value. The default threshold value for number of inheritance levels is 7" />
    <sections xmi:id="ASCCMM-MNT-18-description" xmi:type="ipmss:PatternSection" name="Description"
    body="This pattern idendifies situations where the inheritence level (number of level of code:Extends relations) of the &lt;Class&gt; class element (code:StorableUnit with code:DataType code:ClassUnit) is considered as too large, based on its &lt;NumberOfInheritenceLevels&gt; number of parent class units which exceeds the &lt;NumberOfInheritenceLevelsThresholdValue&gt; threshold value. The default value for &lt;NumberOfInheritenceLevelsThresholdValue&gt; is 7." />
    <sections xmi:id="ASCCMM-MNT-18-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCMM-MNT-18(Class: class,NumberOfInheritenceLevels: numberOfInheritenceLevels, NumberOfInheritenceLevelsThresholdValue: numberOfInheritenceLevelsThresholdValue)" />
    <sections xmi:id="ASCCMM-MNT-18-input" xmi:type="ipmss:PatternSection" name="Input"
    body="&lt;NumberOfInheritenceLevelsThresholdValue&gt; maximum value" />
    <roles xmi:id="ASCCMM-MNT-18-roles-class" xmi:type="ipmss:Role" name="Class" />
    <roles xmi:id="ASCCMM-MNT-18-roles-numberOfInheritenceLevels" xmi:type="ipmss:Role"
    name="NumberOfInheritenceLevels" />
    <roles xmi:id="ASCCMM-MNT-18-roles-numberOfInheritenceLevelsThresholdValue"
    xmi:type="ipmss:Role" name="NumberOfInheritenceLevelsThresholdValue" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCMM-MNT-19"
  name="ASCCMM-MNT-19: Class Element Excessive Number of Children">
    <relatedPatts xmi:id="ASCCMM-MNT-19-relatedPatts-maintainability" xmi:type="ipmss:MemberOf"
    category="ASCCMM_Maintainability" />
    <sections xmi:id="ASCCMM-MNT-19-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid overly complex object-oriented inheritance capabilities when dealing with the number of direct children of classes" />
    <sections xmi:id="ASCCMM-MNT-19-consequence" xmi:type="ipmss:PatternSection" name="Consequence"
    body="Software that does not follow the principles of reuse requires more maintenance effort in order to propagate changes to all instances of duplicated code" />
    <sections xmi:id="ASCCMM-MNT-19-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where the number of children of a class element (that is, its number of child classes) exceeds a threshold value. The default threshold value for number of children of a class element is 10" />
    <sections xmi:id="ASCCMM-MNT-19-description" xmi:type="ipmss:PatternSection" name="Description"
    body="This pattern idendifies situations where the number of children (code:StorableUnit of code:DataType code:ClassUnit with direct code:Extends relation) of the &lt;Class&gt; class element (code:StorableUnit of code:DataType code:ClassUnit) is considered as too large, based on its &lt;NumberOfChildren&gt; number of child classes which exceeds the &lt;NumberOfChildrenThresholdValue&gt; threshold value. The default value for &lt;NumberOfChildrenThresholdValue&gt; is 10." />
    <sections xmi:id="ASCCMM-MNT-19-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCMM-MNT-19(Class: class,NumberOfChildren: numberOfChildren, NumberOfChildrenThresholdValue: numberOfChildrenThresholdValue)" />
    <sections xmi:id="ASCCMM-MNT-19-input" xmi:type="ipmss:PatternSection" name="Input"
    body="&lt;NumberOfChildrenThresholdValue&gt; maximum value" />
    <roles xmi:id="ASCCMM-MNT-19-roles-class" xmi:type="ipmss:Role" name="Class" />
    <roles xmi:id="ASCCMM-MNT-19-roles-numberOfChildren" xmi:type="ipmss:Role"
    name="NumberOfChildren" />
    <roles xmi:id="ASCCMM-MNT-19-roles-numberOfChildrenThresholdValue" xmi:type="ipmss:Role"
    name="NumberOfChildrenThresholdValue" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCMM-MNT-2"
  name="ASCCMM-MNT-2: Class Element Excessive Inheritance of Class Elements with Concrete Implementation">

    <relatedPatts xmi:id="ASCCMM-MNT-2-relatedPatts-maintainability" xmi:type="ipmss:MemberOf"
    category="ASCCMM_Maintainability" />
    <sections xmi:id="ASCCMM-MNT-2-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid the multiple inheritance of classes with concrete implementations" />
    <sections xmi:id="ASCCMM-MNT-2-consequence" xmi:type="ipmss:PatternSection" name="Consequence"
    body="Software that does not follow the principles of reuse requires more maintenance effort in order to propagate changes to all instances of duplicated code" />
    <sections xmi:id="ASCCMM-MNT-2-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where the number of inheritances of concrete classes of a class element is considered too large, based on exceeding a threshold value. Default value for the number of concrete class Inheritances is 1." />
    <sections xmi:id="ASCCMM-MNT-2-description" xmi:type="ipmss:PatternSection" name="Description"
    body="This pattern idendifies situations where the number of inheritence (code:Extends relation) of concrete classes (code:StorableUnit of code:DataType code:ClassUnit having code:MethodUnit with code:MethodKind different from 'abstract') of the &lt;Class&gt; class element (code:StorableUnit of code:DataType code:ClassUnit) is considered as too large, based on its &lt;NumberOfConcreteClasseInheritences&gt; number of inheritence of concrete classes which exceeds the &lt;NumberOfConcreteClasseInheritencesThresholdValue&gt; threshold value. Default value for &lt;NumberOfConcreteClasseInheritencesThresholdValue&gt; is 1." />
    <sections xmi:id="ASCCMM-MNT-2-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCMM-MNT-2(Class: class,NumberOfConcreteClasseInheritences: numberOfConcreteClasseInheritences, NumberOfConcreteClasseInheritencesThresholdValue: numberOfConcreteClasseInheritencesThresholdValue)" />
    <sections xmi:id="ASCCMM-MNT-2-input" xmi:type="ipmss:PatternSection" name="Input"
    body="&lt;NumberOfConcreteClasseInheritencesThresholdValue&gt; maximum value" />
    <roles xmi:id="ASCCMM-MNT-2-roles-class" xmi:type="ipmss:Role" name="Class" />
    <roles xmi:id="ASCCMM-MNT-2-roles-numberOfConcreteClasseInheritences" xmi:type="ipmss:Role"
    name="NumberOfConcreteClasseInheritences" />
    <roles xmi:id="ASCCMM-MNT-2-roles-numberOfConcreteClasseInheritencesThresholdValue"
    xmi:type="ipmss:Role" name="NumberOfConcreteClasseInheritencesThresholdValue" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCMM-MNT-20"
  name="ASCCMM-MNT-20: Named Callable and Method Control Element Excessive Similarity">
    <relatedPatts xmi:id="ASCCMM-MNT-20-relatedPatts-maintainability" xmi:type="ipmss:MemberOf"
    category="ASCCMM_Maintainability" />
    <sections xmi:id="ASCCMM-MNT-20-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid software element redundancy" />
    <sections xmi:id="ASCCMM-MNT-20-consequence" xmi:type="ipmss:PatternSection" name="Consequence"
    body="Software that does not follow the principles of reuse requires more maintenance effort in order to propagate changes to all instances of duplicated code" />
    <sections xmi:id="ASCCMM-MNT-20-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where a named callable control element or method control element contains multiple computational objects that are identical to computational objects in another named callable or method control element in the application (the application determines the scope of the search for the second code item)" />
    <sections xmi:id="ASCCMM-MNT-20-description" xmi:type="ipmss:PatternSection" name="Description"
    body="This pattern identifies situations where the &lt;ControlElement1&gt; named callable control element (code:CallableUnit with code:CallableKind 'regular', 'external' or 'stored') or method control element (code:MethodUnit) contains too many identical computational objects (code:ComputationalObject), based on the &lt;NumberOfIdenticalTokens&gt; number of identical computational objects with the &lt;ControlElement2&gt; named callable or method control element within the &lt;Application&gt; application; the &lt;Application&gt; application determines the scope of the search for the &lt;ControlElement2&gt; code item." />
    <sections xmi:id="ASCCMM-MNT-20-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCMM-MNT-20(ControlElement1: controlElement1,ControlElement2: controlElement2, NumberOfIdenticalTokens: numberOfIdenticalTokens, Application: application)" />
    <roles xmi:id="ASCCMM-MNT-20-roles-controlElement1" xmi:type="ipmss:Role"
    name="ControlElement1" />
    <roles xmi:id="ASCCMM-MNT-20-roles-controlElement2" xmi:type="ipmss:Role"
    name="ControlElement2" />
    <roles xmi:id="ASCCMM-MNT-20-roles-numberOfIdenticalTokens" xmi:type="ipmss:Role"
    name="NumberOfIdenticalTokens" />
    <roles xmi:id="ASCCMM-MNT-20-roles-application" xmi:type="ipmss:Role" name="Application" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCMM-MNT-21"
  name="ASCCMM-MNT-21: Unreachable Named Callable or Method Control Element">
    <relatedPatts xmi:id="ASCCMM-MNT-21-relatedPatts-maintainability" xmi:type="ipmss:MemberOf"
    category="ASCCMM_Maintainability" />
    <sections xmi:id="ASCCMM-MNT-21-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid inactive code blocks that can mistakenly be considered as active and that can hide the active code in noise" />
    <sections xmi:id="ASCCMM-MNT-21-consequence" xmi:type="ipmss:PatternSection" name="Consequence"
    body="Software that does not follow the principles of reuse requires more maintenance effort in order to propagate changes to all instances of duplicated code" />
    <sections xmi:id="ASCCMM-MNT-21-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where a named callable control element or method control element is unreferenced by any other code item in the application (the application determines the scope of the search for code items that could call a callable or method control element)" />
    <sections xmi:id="ASCCMM-MNT-21-description" xmi:type="ipmss:PatternSection" name="Description"
    body="This pattern identifies situations where the &lt;ControlElement&gt; named callable control element (code:CallableUnit with code:CallableKind 'regular', 'external' or 'stored') or method control element (code:MethodUnit) is unreferenced (action:CallableRelations) by any other code item (code:CodeItem) in the &lt;Application&gt; application; the &lt;Application&gt; application determines the scope of the search for code items that could call the &lt;ControlElement&gt; callable or method control element." />
    <sections xmi:id="ASCCMM-MNT-21-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCMM-MNT-21(ControlElement: controlElement,Application: application)" />
    <roles xmi:id="ASCCMM-MNT-21-roles-controlElement" xmi:type="ipmss:Role"
    name="ControlElement" />
    <roles xmi:id="ASCCMM-MNT-21-roles-application" xmi:type="ipmss:Role" name="Application" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCMM-MNT-3"
  name="ASCCMM-MNT-3: Storable and Member Data Element Initialization with Hard-Coded Literals">
    <relatedPatts xmi:id="ASCCMM-MNT-3-relatedPatts-maintainability" xmi:type="ipmss:MemberOf"
    category="ASCCMM_Maintainability" />
    <sections xmi:id="ASCCMM-MNT-3-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid hard-coded non-trivial values in the code" />
    <sections xmi:id="ASCCMM-MNT-3-consequence" xmi:type="ipmss:PatternSection" name="Consequence"
    body="Software featuring hard-coded pieces of information within its own code reduces adaptability" />
    <sections xmi:id="ASCCMM-MNT-3-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where a literal value element is used to intialize a storable data element or member data element via a ‘Write’ action; exceptions are simple integers and static constant storable or member data elements" />
    <sections xmi:id="ASCCMM-MNT-3-description" xmi:type="ipmss:PatternSection" name="Description"
    body="This pattern identifies situations where the &lt;ValueElement&gt; literal value element (code:Value) is used to intialize the storable data element (code:StorableUnit) or member data element (code:MemberUnit) via the &lt;InitialisationStatement&gt; Write action (action:Writes); exceptions are simple integers and static of constant storable or member data elements." />
    <sections xmi:id="ASCCMM-MNT-3-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCMM-MNT-3(ValueElement: valueElement,InitialisationStatement: initialisationStatement)" />
    <roles xmi:id="ASCCMM-MNT-3-roles-valueElement" xmi:type="ipmss:Role" name="ValueElement" />
    <roles xmi:id="ASCCMM-MNT-3-roles-initialisationStatement" xmi:type="ipmss:Role"
    name="InitialisationStatement" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCMM-MNT-4"
  name="ASCCMM-MNT-4: Callable and Method Control Element Number of Outward Calls">
    <relatedPatts xmi:id="ASCCMM-MNT-4-relatedPatts-maintainability" xmi:type="ipmss:MemberOf"
    category="ASCCMM_Maintainability" />
    <sections xmi:id="ASCCMM-MNT-4-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid overly complex outward dependencies" />
    <sections xmi:id="ASCCMM-MNT-4-consequence" xmi:type="ipmss:PatternSection" name="Consequence"
    body="Software that does not follow the principles of modularity causes excessive propagation of modification impacts" />
    <sections xmi:id="ASCCMM-MNT-4-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where a named callable control element or method control element has a Fan-Out value that is too large, that is, its number of references to other objects within the application exceeds a threshold value (the application determines the scope of the search for the referenced objects). Default threshold value for the number of references to other objects within the application is 5" />
    <sections xmi:id="ASCCMM-MNT-4-description" xmi:type="ipmss:PatternSection" name="Description"
    body="This pattern identifies situations where the &lt;ControlElement&gt; named callable control element (code:CallableUnit with code:CallableKind 'regular', 'external' or 'stored') or method control element (code:MethodUnit) has a Fan-Out value (number of code:Calls relations where it is used in the 'from' association) that is too large, based on its &lt;NumberOfOutwardReferences&gt; number of references to other objects within the &lt;Application&gt; application which exceeds the &lt;NumberOfOutwardReferencesThresholdValue&gt; threshold value; the &lt;Application&gt; application determines the scope of the search for the referenced objects. Default value for &lt;NumberOfOutwardReferencesThresholdValue&gt; threshold value is 5." />
    <sections xmi:id="ASCCMM-MNT-4-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCMM-MNT-4(ControlElement: controlElement,NumberOfOutwardReferences: numberOfOutwardReferences, NumberOfOutwardReferencesThresholdValue: numberOfOutwardReferencesThresholdValue, Application: application)" />
    <sections xmi:id="ASCCMM-MNT-4-input" xmi:type="ipmss:PatternSection" name="Input"
    body="&lt;NumberOfOutwardReferencesThresholdValue&gt; maximum value" />
    <roles xmi:id="ASCCMM-MNT-4-roles-controlElement" xmi:type="ipmss:Role"
    name="ControlElement" />
    <roles xmi:id="ASCCMM-MNT-4-roles-numberOfOutwardReferences" xmi:type="ipmss:Role"
    name="NumberOfOutwardReferences" />
    <roles xmi:id="ASCCMM-MNT-4-roles-numberOfOutwardReferencesThresholdValue"
    xmi:type="ipmss:Role" name="NumberOfOutwardReferencesThresholdValue" />
    <roles xmi:id="ASCCMM-MNT-4-roles-application" xmi:type="ipmss:Role" name="Application" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCMM-MNT-6"
  name="ASCCMM-MNT-6: Loop Value Update within the Loop">
    <relatedPatts xmi:id="ASCCMM-MNT-6-relatedPatts-maintainability" xmi:type="ipmss:MemberOf"
    category="ASCCMM_Maintainability" />
    <sections xmi:id="ASCCMM-MNT-6-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid overly complex behaviors of loop indices" />
    <sections xmi:id="ASCCMM-MNT-6-consequence" xmi:type="ipmss:PatternSection" name="Consequence"
    body="Software that does not follow the principles of modularity causes excessive propagation of modification impacts" />
    <sections xmi:id="ASCCMM-MNT-6-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where a value of a local storable data element used in the condition of the loop control flow is updated within the ‘Write’ action located in the loop body block" />
    <sections xmi:id="ASCCMM-MNT-6-description" xmi:type="ipmss:PatternSection" name="Description"
    body="This pattern identifies situations where the value (code:Value) of the &lt;LoopElement&gt; local storable data element (code:StorableUnit with code:StorableKind 'local') used in the condition of the loop control flow of code is updated within the &lt;UpdateStatement&gt; Write action (action:Writes) located in the loop body block (action:BlockUnit starting as the action:TrueFlow of the loop action:GuardedFlow and ending with an action:Flow back to the loop action:GuardedFlow)" />
    <sections xmi:id="ASCCMM-MNT-6-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCMM-MNT-6(LoopElement: loopElement,UpdateStatement: updateStatement)" />
    <roles xmi:id="ASCCMM-MNT-6-roles-loopElement" xmi:type="ipmss:Role" name="LoopElement" />
    <roles xmi:id="ASCCMM-MNT-6-roles-updateStatement" xmi:type="ipmss:Role"
    name="UpdateStatement" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCMM-MNT-7"
  name="ASCCMM-MNT-7: Commented-out Code Element Excessive Volume">
    <relatedPatts xmi:id="ASCCMM-MNT-7-relatedPatts-maintainability" xmi:type="ipmss:MemberOf"
    category="ASCCMM_Maintainability" />
    <sections xmi:id="ASCCMM-MNT-7-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid code blocks found in comments" />
    <sections xmi:id="ASCCMM-MNT-7-consequence" xmi:type="ipmss:PatternSection" name="Consequence"
    body="Software that does contain commented-out code that can mistakenly be considered as active code and that can hide a lack of comments causes excessive modification effort" />
    <sections xmi:id="ASCCMM-MNT-7-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where a named callable control element or method control element contains too many commented-out code items compared to a threshold that is based on the percentage of instructions in the callable control element or method control element that are in comments. Default threshold value for the percentage of commented-out out instructions is 2%." />
    <sections xmi:id="ASCCMM-MNT-7-description" xmi:type="ipmss:PatternSection" name="Description"
    body="This pattern identifies situations where the &lt;ControlElement&gt; named callable control element (code:CallableUnit with code:CallableKind 'regular', 'external' or 'stored') or method control element (code:MethodUnit) contains too much commented-out code items (code:CodeItem), based on the &lt;PercentageOfCommentedOutInstructions&gt; percentage of instructions in the &lt;ControlElement&gt; callable or method control element that are in comments (code:CommentUnit) which exceeds the &lt;PercentageOfCommentedOutInstructionsThresholdValue&gt; threshold value. Default value for &lt;PercentageOfCommentedOutInstructionsThresholdValue&gt; threshold value is 2%." />
    <sections xmi:id="ASCCMM-MNT-7-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCMM-MNT-7(ControlElement: controlElement,PercentageOfCommentedOutInstructions: percentageOfCommentedOutInstructions, PercentageOfCommentedOutInstructionsThresholdValue: percentageOfCommentedOutInstructionsThresholdValue)" />
    <sections xmi:id="ASCCMM-MNT-7-input" xmi:type="ipmss:PatternSection" name="Input"
    body="&lt;PercentageOfCommentedOutInstructionsThresholdValue&gt; maximum value" />
    <roles xmi:id="ASCCMM-MNT-7-roles-controlElement" xmi:type="ipmss:Role"
    name="ControlElement" />
    <roles xmi:id="ASCCMM-MNT-7-roles-percentageOfCommentedOutInstructions" xmi:type="ipmss:Role"
    name="PercentageOfCommentedOutInstructions" />
    <roles xmi:id="ASCCMM-MNT-7-roles-percentageOfCommentedOutInstructionsThresholdValue"
    xmi:type="ipmss:Role" name="PercentageOfCommentedOutInstructionsThresholdValue" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCMM-MNT-8"
  name="ASCCMM-MNT-8: Inter-Module Dependency Cycles">
    <relatedPatts xmi:id="ASCCMM-MNT-8-relatedPatts-maintainability" xmi:type="ipmss:MemberOf"
    category="ASCCMM_Maintainability" />
    <sections xmi:id="ASCCMM-MNT-8-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid circular dependencies between modules" />
    <sections xmi:id="ASCCMM-MNT-8-consequence" xmi:type="ipmss:PatternSection" name="Consequence"
    body="Software that does not follow the principles of modularity causes excessive propagation of modification impacts" />
    <sections xmi:id="ASCCMM-MNT-8-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where a module has references that cycle back to itself via the module callable or data relations cycle (for example, with JAVA this pattern means cycles between packages)" />
    <sections xmi:id="ASCCMM-MNT-8-description" xmi:type="ipmss:PatternSection" name="Description"
    body="This pattern identifies situations where the &lt;Module&gt; module (code:Module) has references that cycle back to itself via the &lt;ModuleDependencyCycle&gt; module callable or data relations cycle (action:BlockUnit composed of action:CallableActions or action:DataActions). As an example, with JAVA, this pattern means cycles between packages (code:Package)." />
    <sections xmi:id="ASCCMM-MNT-8-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCMM-MNT-8(Module: module,ModuleDependencyCycle: moduleDependencyCycle)" />
    <sections xmi:id="ASCCMM-MNT-8-comment" xmi:type="ipmss:PatternSection" name="Comment"
    body="Measure element contributes to Maintainability and Reliability" />
    <roles xmi:id="ASCCMM-MNT-8-roles-module" xmi:type="ipmss:Role" name="Module" />
    <roles xmi:id="ASCCMM-MNT-8-roles-moduleDependencyCycle" xmi:type="ipmss:Role"
    name="ModuleDependencyCycle" />
  </ipmss:PatternDefinition>
  <ipmss:PatternDefinition xmi:id="ASCCMM-MNT-9"
  name="ASCCMM-MNT-9: Source Element Excessive Size">
    <relatedPatts xmi:id="ASCCMM-MNT-9-relatedPatts-maintainability" xmi:type="ipmss:MemberOf"
    category="ASCCMM_Maintainability" />
    <sections xmi:id="ASCCMM-MNT-9-objective" xmi:type="ipmss:PatternSection" name="Objective"
    body="Avoid over-sizing of software elements" />
    <sections xmi:id="ASCCMM-MNT-9-consequence" xmi:type="ipmss:PatternSection" name="Consequence"
    body="Software that does not follow the principles of modularity causes excessive propagation of modification impacts" />
    <sections xmi:id="ASCCMM-MNT-9-measure-element" xmi:type="ipmss:PatternSection"
    name="Measure Element"
    body="Number of instances where a file has too many lines of code based on a threshold value. The default threshold value for number of lines of code is 1000" />
    <sections xmi:id="ASCCMM-MNT-9-description" xmi:type="ipmss:PatternSection" name="Description"
    body="This pattern identifies situations where the &lt;File&gt; file (source:SourceFile) has too many lines of code, based on its &lt;NumberOfLinesOfCode&gt; number of lines of code which exceeds the &lt;NumberOfLinesOfCodeThresholdValue&gt; threshold value. The default value for &lt;NumberOfLinesOfCodeThresholdValue&gt; is 1000." />
    <sections xmi:id="ASCCMM-MNT-9-descriptor" xmi:type="ipmss:PatternSection" name="Descriptor"
    body="ASCCMM-MNT-9(File: file,NumberOfLinesOfCode: numberOfLinesOfCode, NumberOfLinesOfCodeThresholdValue: numberOfLinesOfCodeThresholdValue)" />
    <sections xmi:id="ASCCMM-MNT-9-input" xmi:type="ipmss:PatternSection" name="Input"
    body="&lt;NumberOfLinesOfCodeThresholdValue&gt; maximum value" />
    <roles xmi:id="ASCCMM-MNT-9-roles-file" xmi:type="ipmss:Role" name="File" />
    <roles xmi:id="ASCCMM-MNT-9-roles-numberOfLinesOfCode" xmi:type="ipmss:Role"
    name="NumberOfLinesOfCode" />
    <roles xmi:id="ASCCMM-MNT-9-roles-numberOfLinesOfCodeThresholdValue" xmi:type="ipmss:Role"
    name="NumberOfLinesOfCodeThresholdValue" />
  </ipmss:PatternDefinition>
  <ipmss:Category xmi:id="ASCCMM_Maintainability" xmi:type="ipmss:Category"
  name="CISQ Maintainability" />
</xmi:XMI>