What is MXRAY?
MXRAY is a tool that has been designed to perform architectural analysis on Simulink/Stateflow and TargetLink models, thereby supporting model development and the model review process. MXRAY has been developed to analyze models of every size: from single subsystems to complex models consisting of hundreds of subsystems and dozens of libraries. The results of analysis are compiled in reports designed for use in model development and model reviews. The reports can also be used to evaluate model quality as well as for project management purposes.
Highlights in MES M-XRAY® (MXRAY) v.4.2
Identify functional and structuring subsystems (beta)
A new metric category provides a set of metrics that allow to distinguish between functional and structuring subsystems at a glance.
Configure custom color maps for any metric value
The following system requirements must be in place to use MXRAY:
- Windows (XP, Vista, Windows 7+8+10 - 32 and 64-bit versions)
- MATLAB® R2009b ... R2019b
- Simulink and Stateflow, depending on the models you wish to analyze
- (Optional) TargetLink V 2.x, 3.x, 4.x (base suite)
- (Optional) Excel for Windows
Update to the latest version
- If you added MXRAY folders permanently to the MATLAB path, please remove all these folders from the path.
- If you added a call to path_mxray to your startup.m and used a folder with version postfix (e.g. x:\project\matlab\mxray_3_7), then please update the call to the folder of the new installation (e.g. run('C:\Program Files\mxray_4_2\path_mxray');
- If you installed the old version to a folder with version postfix (e.g. x:\project\matlab\mxray_3_7), you can keep that directory as a backup.
- If you installed without version postfix, you could rename the old installation directory to one with version postfix as a backup.
- Then proceed according to the installation instructions given below (including license configuration).
- Extract the MXRAY zip file (e.g. mxray_4_2.zip) into a target folder with write access. Suggestions:
- C:\Program Files\mxray
- Note: If you want to install MXRAY on a Jenkins machine to use it together with the MES Jenkins-Plugin, it is recommended to skip the next steps and proceed with the license configuration. The next steps add MXRAY permanently to the MATLAB path. But for the Jenkins Plugin it is recommended to specify the MXRAY installation path in Jenkins' global tool configuration.
- Add a call to the path_mxray.m script from the target folder to your MATLAB startup.m file. Example call: run('C:\Program Files\mxray\path_mxray');
Please make sure, that there is no call to path_mxray of an old MXRAY installation left!
If you are not sure whether you have any startup.m file yet, type which startup.m in MATLAB command line.
If result is not empty, add the call from above to this file.
If result is empty, create a new startup.m file in your userpath. Type userpath in MATLAB command line to get your userpath. Add the call from above to the newly created file (type also doc startup in MATLAB command line for help).
- Restart MATLAB. Please check if you correctly added the path_mxray call to your startup.m file by typing which('mxray') in the MATLAB command prompt which should return the path of the mxray.p file.
- Open MATLAB.
- Type mxray in the command prompt.
- If an 'Undefined function' error occurs, please ensure that you added the correct call to path_mxray to your startup.m (see installation instructions above). If a license exception occurs, please ensure that you followed the license configuration instructions above.
Starting an analysis
- Open a model in MATLAB/Simulink
- Press "Add open models" in the MXRAY GUI
- Press "Create Report" in the MXRAY GUI
If you have any suggestions to help us improve MES M-XRAY, please do not hesitate to contact us:
The MES User Guide presents clear instructions on how to work with M-XRAY® (MXRAY). It provides users with information about getting started and working with MXRAY.
You can easily call the User Guide by clicking on “Help” in the tool (see image).
4.2.0 / July 2019
- New metric for distinguishing between functional and structural subsystems (beta version):
- A new metric category 'Structural vs. Functional' was added, which contains different metrics to distinguish between structural and functional subsystems. Functional subsystems mainly consist of elementary blocks, whereas structural subsystems mainly consist of subsystems. These metrics give a quick impression of this type of subsystem in order to understand, for example, whether quality problems in the model exist mainly at functional or structural levels. One of the metrics is also displayed in the 'Structural Overview' of the HTML report to quickly identify where structural layers end and functional layers begin. This can help for example with the identification of functional units.The new category contains four metrics. 'Funct Blocks', 'Struct Blocks' and 'Neutral Blocks' contain the number of blocks in the subsystem that have been classified as functional, structural or neutral. '%Funct Blocks Ratio' is calculated by 'Funct Blocks / (Funct Blocks + Struct Blocks)' and is therefore a direct indicator of whether the subsystem is functional (100%), structural (0%) or a hybrid. The last metric is additionally supported by a color map for better differentiation (see new feature below).The metric can be selected via the checkbox 'Structural vs. Functional' from the GUI or via the 'StructVsFunct' parameter of mxray_createReport.
- User-defined color maps for any metric values:
- In the new configuration file mxray_metricColorMaps the user can define color maps for arbitrary metric values. A color map colors the background of a table cell of the report according to the metric value. This is similar to the coloring of quality metrics, except that here the metric values can be mapped to arbitrary colors to highlight certain values. If both a quality metric and a color map are defined for a metric, the quality metric is used for coloring.
- Better distinction between 0 and 'not available' in HTML report:
- To better differentiate between the metric value 0 and metric values that are not available for a certain element in the HTML report, the latter are no longer displayed as '-' but as empty table cells. Before, both kinds of values were displayed as '-'.
- Better distinction between 0 and 'not available' in Excel report:
- To better distinguish between the metric value 0 and the metric values that are not available for a certain element in the Excel report, the former is no longer displayed as an empty cell, but as 0. Previously, both types of values were displayed as empty cells.
- BugFix: An error was raised when the level metric was calculated on a model containing Simulink based states (introduced in R2017b). This has been fixed.
- BugFix: An error was raised when an Excel report was created with mxray_createReport and a relative path was passed to the 'Directory' parameter. This has been fixed.
- BugFix: An error was raised in the calculation of the complexity metric when a TargetLink model was analyzed but no installed TargetLink was available in the executing MATLAB environment. This has been fixed.