M-XRAY Report
Generated at: 2019-09-22 13:22

Contents

1 Tool Version Info    [>>  Contents]

M-XRAY:4.2.0
MATLAB:9.5 (R2018b)
Simulink:9.2 (R2018b)
Stateflow:9.2 (R2018b)
TargetLink:4.4
Operating System:Microsoft Windows 7 Professional Version 6.1 (Build 7601: Service Pack 1)

2 Single System Results    [>>  Contents]

2.1 Model: "GlobalPosition_demo_ec"    [>>  Contents]

Model Path:D:\Programme\MTestDev\MTest_Autobuilds\EV3Build_Update2020\EV3Control_ec\ModelsAllVersions\V01_statAna\GlobalPosition_demo_ec.slx

2.1.1 Global Value Summary    [>>  Contents]

Name Value Description
Global Complexity (Ref0) 159 Sum of local complexities of all subsystems in the analyzed system WITHOUT following links. This value could be used to estimate the REVIEW/DEVELOPMENT/TEST/RUNTIME complexity of the analyzed system EXCLUDING references (to model/library block).
Global Complexity (Ref1) 159 Sum of local complexities of all subsystems in the analyzed system WITH following links. Each subsystem from all referenced systems (model/library block) is counted only ONCE, regardless of how often a subsystem may be used by different references. This value could be used to estimate the REVIEW/DEVELOPMENT complexity of the analyzed system INCLUDING references.
Global Complexity (RefN) 159 Sum of local complexities of all subsystems in the analyzed system WITH following links. Each subsystem from all referenced systems (model/library block) is counted once for EACH reference, as if all links were disabled. This value could be used to estimate the TEST/RUNTIME complexity of the analyzed system INCLUDING references.
Global Complexity Stateflow (Ref0) - Same as Global Complexity (Ref0), but calculated only from the Stateflow parts of the model. This value can be used to estimate the proportion of Stateflow in Global Complexity (Ref0).
Global Complexity Stateflow (Ref1) - Same as Global Complexity (Ref1), but calculated only from the Stateflow parts of the model. This value can be used to estimate the proportion of Stateflow in Global Complexity (Ref1).
Global Complexity Stateflow (RefN) - Same as Global Complexity (RefN), but calculated only from the Stateflow parts of the model. This value can be used to estimate the proportion of Stateflow in Global Complexity (RefN).

2.1.2 Subsystem Quality Overview    [>>  Contents]

Base value Quality of subsystems Quality of subsystems (detail) Description
Local Complexity
 
good (x<300): 2 acceptable (300≤x<750): 0 bad (750≤x): 0 Measures the local complexity of a subsystem using the M-XRAY complexity metric inspired by the Halstead volume. As the local complexity of a subsystem is highly correlated with the readability, maintainability, and risk of modeling errors, you should try to keep the local complexity low. If the local complexity of a subsystem is in the red range, try to simplify the subsystem by using different blocks or by subdividing the subsystem's content into multiple smaller subsystems.
%Elementary Inputs Unused (globally)
 
good (x<80): 2 acceptable (80≤x<90): 0 bad (90≤x): 0 Measures the percentage of subsystem's elementary inputs which are effectively unused in the subsystem (including subordinate subsystems). Elementary inputs are scalar or vector signals coming into the subsystem's inports either directly or (especially) as part of a bus. As many unused elementary inputs decrease the clarity, maintainability and testability of the subsystem, you should try to keep this value low. If the value is in the red range, try to remove unused elementary inputs from the subsystem interface.
Level
 
good (x<5): 2 acceptable (5≤x<9): 0 bad (9≤x): 0 Measures the level of the subsystem in the hierarchy of your model. If your model is structured too deep, this will have a negative influence on the clarity, maintainability, and testability of your overall model. If the level values of many subsystems are in the red range, try to reduce your model's depth by using library or model references.
Cyclomatic Complexity
 
good (x<5): 2 acceptable (5≤x<8): 0 bad (8≤x): 0 Measures the cyclomatic complexity (after McCabe) of the subystem which is identical to the number of control flow branches in the subsystem. As the cyclomatic complexity of a subsystem is correlated with the readability and testability, you should try to keep it low. If the cyclomatic complexity is in the red range, try to simplify the subsystem by subdividing the subsystem's content into multiple smaller subsystems or use Stateflow for complicated logical operations.
Inports
 
good (x<20): 2 acceptable (20≤x<40): 0 bad (40≤x): 0 Measures the number of inports of the subsystem. The number of inports should be small to improve the readability of the system and to reduce the interface coupling of the subsystem to other subsystems. If the inports value of a subsystem is in the red range, try to reduce the inports by, for example: (i) remove unused inports; (ii) use buses as input signals; (iii) split an incoherent subsystem into multiple smaller ones.
Outports
 
good (x<15): 2 acceptable (15≤x<30): 0 bad (30≤x): 0 Measures the number of outports of the subsystem. The number of outports should be small to improve the readability of the system and to reduce the interface coupling of the subsystem to other subsystems. If the outports value of a subsystem is in the red range, try to reduce the outports by, for example: (i) remove unassigned outports; (ii) use buses as output signals; (iii) split an incoherent subsystem into multiple smaller ones.
Local Complexity %Elementary Inputs Unused (globally) Level Cyclomatic Complexity Inports Outports

2.1.3 Most Complex Subsystems (1 of 2 - 50%)    [>>  Contents]

General Info Quality Metrics Complexity Incoherence Structural vs. Functional (Beta) Interface Count Ineffective Interface Blocks Cyclomatic Complexity Loops Block Type Count
Path Name Link Info Level Local Complexity Inports Outports %Elementary Inputs Unused (globally) Cyclomatic Complexity Global Complexity (Ref0) Global Complexity (Ref1) Global Complexity (RefN) Incoherence %Funct Blocks Ratio Funct Blocks Struct Blocks Neutral Blocks Elementary Inputs Elementary Outputs %Elementary Inputs Unused (locally) %Elementary Inputs Unused (globally ref) Elementary Inputs Unused (locally) Elementary Inputs Unused (globally) Elementary Inputs Unused (globally ref) Blocks Blocks (global ref0) Blocks (global ref1) Blocks (global refN) Cyclomatic Complexity (global ref0) Cyclomatic Complexity (global ref1) Cyclomatic Complexity (global refN) Blocks in Loops Blocks in Loops (global ref0) Blocks in Loops (global ref1) Blocks in Loops (global refN) Loop Complexity Loop Complexity (global ref0) Loop Complexity (global ref1) Loop Complexity (global refN) Block Type Count: BusSelector Block Type Count: BusSelector (global ref0) Block Type Count: BusSelector (global ref1) Block Type Count: BusSelector (global refN) Block Type Count: Constant Block Type Count: Constant (global ref0) Block Type Count: Constant (global ref1) Block Type Count: Constant (global refN) Block Type Count: DataTypeConversion Block Type Count: DataTypeConversion (global ref0) Block Type Count: DataTypeConversion (global ref1) Block Type Count: DataTypeConversion (global refN) Block Type Count: Inport Block Type Count: Inport (global ref0) Block Type Count: Inport (global ref1) Block Type Count: Inport (global refN) Block Type Count: Mux Block Type Count: Mux (global ref0) Block Type Count: Mux (global ref1) Block Type Count: Mux (global refN) Block Type Count: Outport Block Type Count: Outport (global ref0) Block Type Count: Outport (global ref1) Block Type Count: Outport (global refN) Block Type Count: Product Block Type Count: Product (global ref0) Block Type Count: Product (global ref1) Block Type Count: Product (global refN) Block Type Count: SubSystem Block Type Count: SubSystem (global ref0) Block Type Count: SubSystem (global ref1) Block Type Count: SubSystem (global refN) Block Type Count: Sum Block Type Count: Sum (global ref0) Block Type Count: Sum (global ref1) Block Type Count: Sum (global refN) Block Type Count: Trigonometry Block Type Count: Trigonometry (global ref0) Block Type Count: Trigonometry (global ref1) Block Type Count: Trigonometry (global refN) Block Type Count: UnitDelay Block Type Count: UnitDelay (global ref0) Block Type Count: UnitDelay (global ref1) Block Type Count: UnitDelay (global refN)
GlobalPosition_demo_ec GlobalPosition - 1 148 1 1 71.4 1 148 148 148 1.3 100 7 - 10 7 1 71.4 71.4 5 5 5 17 17 17 17 1 1 1 4 4 4 4 16 16 16 16 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2

2.1.4 Main Part    [>>  Contents]

2.1.4.1 "GlobalPosition_demo_ec"    [>>  Contents]

General Info Quality Metrics Complexity Incoherence Structural vs. Functional (Beta) Interface Count Ineffective Interface Blocks Cyclomatic Complexity Loops Block Type Count
Path Name Info Level Local Complexity Inports Outports %Elementary Inputs Unused (globally) Cyclomatic Complexity Global Complexity (Ref0) Global Complexity (Ref1) Global Complexity (RefN) Incoherence %Funct Blocks Ratio Funct Blocks Struct Blocks Neutral Blocks Elementary Inputs Elementary Outputs %Elementary Inputs Unused (locally) %Elementary Inputs Unused (globally ref) Elementary Inputs Unused (locally) Elementary Inputs Unused (globally) Elementary Inputs Unused (globally ref) Blocks Blocks (global ref0) Blocks (global ref1) Blocks (global refN) Cyclomatic Complexity (global ref0) Cyclomatic Complexity (global ref1) Cyclomatic Complexity (global refN) Blocks in Loops Blocks in Loops (global ref0) Blocks in Loops (global ref1) Blocks in Loops (global refN) Loop Complexity Loop Complexity (global ref0) Loop Complexity (global ref1) Loop Complexity (global refN) Block Type Count: BusSelector Block Type Count: BusSelector (global ref0) Block Type Count: BusSelector (global ref1) Block Type Count: BusSelector (global refN) Block Type Count: Constant Block Type Count: Constant (global ref0) Block Type Count: Constant (global ref1) Block Type Count: Constant (global refN) Block Type Count: DataTypeConversion Block Type Count: DataTypeConversion (global ref0) Block Type Count: DataTypeConversion (global ref1) Block Type Count: DataTypeConversion (global refN) Block Type Count: Inport Block Type Count: Inport (global ref0) Block Type Count: Inport (global ref1) Block Type Count: Inport (global refN) Block Type Count: Mux Block Type Count: Mux (global ref0) Block Type Count: Mux (global ref1) Block Type Count: Mux (global refN) Block Type Count: Outport Block Type Count: Outport (global ref0) Block Type Count: Outport (global ref1) Block Type Count: Outport (global refN) Block Type Count: Product Block Type Count: Product (global ref0) Block Type Count: Product (global ref1) Block Type Count: Product (global refN) Block Type Count: SubSystem Block Type Count: SubSystem (global ref0) Block Type Count: SubSystem (global ref1) Block Type Count: SubSystem (global refN) Block Type Count: Sum Block Type Count: Sum (global ref0) Block Type Count: Sum (global ref1) Block Type Count: Sum (global refN) Block Type Count: Trigonometry Block Type Count: Trigonometry (global ref0) Block Type Count: Trigonometry (global ref1) Block Type Count: Trigonometry (global refN) Block Type Count: UnitDelay Block Type Count: UnitDelay (global ref0) Block Type Count: UnitDelay (global ref1) Block Type Count: UnitDelay (global refN)
- GlobalPosition_demo_ec (Root) - 11 1 1 71.4 1 159 159 159 1 - - 1 3 7 1 - 71.4 - 5 5 4 21 21 21 2 2 2 - 4 4 4 - 16 16 16 1 1 1 2 2 2 1 1 1 1 2 2 2 1 1 1 1 2 2 2 3 3 3 2 3 3 3 2 2 2 2 2 2 2 2 2
GlobalPosition_demo_ec GlobalPosition - 1 148 1 1 71.4 1 148 148 148 1.3 100 7 - 10 7 1 71.4 71.4 5 5 5 17 17 17 17 1 1 1 4 4 4 4 16 16 16 16 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2

2.1.5 Structural Overview    [>>  Contents]

2.1.5.1 "GlobalPosition_demo_ec"    [>>  Contents]

Name L Comp %Funct * Name L Comp %Funct
GlobalPosition_demo_ec - 11 - >-o-- GlobalPosition 1 148 100

2.1.6 Ineffective Interface    [>>  Contents]

Full Path Inport Scope Elementary Inputs Unused
GlobalPosition_demo_ec    sensorBus globally (5 of 7) remoteCtrlCmd |  steeringEncoder |  usSensorFront |  usSensorLeft |  usSensorRight
GlobalPosition_demo_ec/GlobalPosition    sensorBus locally (5 of 7) remoteCtrlCmd |  steeringEncoder |  usSensorFront |  usSensorLeft |  usSensorRight

2.1.7 Clone Groups (No Clone Groups detected)    [>>  Contents]