by Yanja Dajsuren, Mark G.J. van den Brand and Alexander Serebrenik
A design language and tool like MATLAB/Simulink is used for the graphical modelling and simulation of automotive control software. As the functionality based on electronics and software systems increases in motor vehicles, it is becoming increasingly important for system/software architects and control engineers in the automotive industry to ensure the quality of the highly complex MATLAB/Simulink control software. For automotive software, modularity is recognized as being a crucial quality attribute; therefore at Eindhoven University of Technology in the Netherlands we have been carrying out industrial case studies on defining and validating the modularity of Simulink models.
This research is part of the Hybrid Innovations for Trucks (HIT) project, which is carried out in a consortium of automotive manufacturer, suppliers, and research institutes, and aims to deliver a significant contribution in realizing up to 7% CO2 emission reduction and up to 7% fuel saving for long-haul vehicles. Achieving this goal necessitates definition of proper quality techniques to enable the development of more efficient control software. In conventional vehicles, software is used in the multimedia, comfort, and safety systems. However, in (hybrid) electric vehicles, more complex control software for engine, after-treatment, and energy management systems for reducing fuel consumption and harmful emissions are being developed. Automotive control software is being developed using model-based design tools like MATLAB/Simulink and Stateflow. Simulink models can consist of several dozens of subsystems, hundreds of building blocks, and many hierarchical levels, which result in complex and difficult to maintain models. Although there are existing techniques and tools such as Mathworks Automotive Advisory Board (MAAB) guidelines and Model Advisor from Mathworks available to ensure guideline conformance and correctness, techniques for assessing quality of Simulink models are limited.
For automotive software, modularity is recognized as being paramount since changing or reusing non-modular software is very costly. MathWorks provides quality related tools like “Modeling Metric Tool” and “sldiagnostics” to quantitatively measure the content of a Simulink model (Stateflow model as well), to improve the productivity and quality of model development, eg model size, complexity, and defect densities. Other quality metrics eg for measuring instability, abstractness, and complexity of Simulink models have been introduced, however the validation of the metrics is not provided. Therefore, we focused on modularity as one of the main quality attributes for Simulink models. According to the ISO/IEC 25010 international quality standard, modularity is defined as the degree to which a system or computer program is composed of discrete components such that a change to one component has minimal impact on other components. Following the Goal-Question-Metrics (GQM) approach, we defined a modularity metrics suit consisting of nine coupling and cohesion-related metrics for Simulink models and validated it with experts' evaluation [1].
We identified three independent metrics based on the statistical analysis and identified a relation between modularity metrics and presence of errors. We have observed that high coupling metric values and high number of hierarchical levels (subsystem depth) frequently correspond to presence of errors. We developed a Java tool to measure the defined metrics on Simulink models. The tool uses a Java parser for Simulink MDL files of the ConQAT open-source tool. We are extending our tool to measure not only modularity metrics but also other key quality attributes such as complexity, reusability, testability, and maturity of the Simulink models and extend the visualization of software quality with SQuAVisiT (Software Quality Assessment and Visualization Toolset) toolset [2].
Currently, our metrics tool interfaces with the SQuAVisiT toolset as it is a flexible tool for visual software analytics of multiple programming languages. Figure 1 illustrates an example visualization of the modularity aspect of the industrial application that we studied (the subsystem names here are blurred due to confidentiality reasons). Subsystems of a Simulink model are illustrated as nested rectangles in the outer rings of the radial view. The relations between (basic) subsystems, such as input and output signals, are shown as curved arrows in blue. The colours on subsystems are used to visualize values of modularity metrics. The green subsystems show the modular and red ones show subsystems which require attention to improve their modularity. Figure 2 illustrates another example of quality visualization. The first column displays the list of subsystems and the rest of the columns list all the metric values and last column lists the number of faults of the subsystems. Subsystems are sorted by descending number of fault value. This can help the domain experts locate easily the most problematic subsystems and their respective metric values. However, the effectiveness of using different visualizations of Simulink model quality remains a future work.
For more than a decade automotive Architecture Description Languages (ADLs) have been considered as one of the main solutions to represent system and functional architecture and to facilitate communication between different stakeholders. Based on our evaluation of a set of (automotive) ADLs like EAST-ADL, AADL, and SysML against automotive specific modelling requirements, definition of automotive architectural quality is still an open issue [3]. To this end, further work is needed to investigate quality metrics for automotive architectural models.
Link: http://www.win.tue.nl/~dajsuren
References:
[1] Y. Dajsuren, M.G.J. van den Brand, A. Serebrenik, and S. Roubtsov: “Simulink models are also software : Modularity assessment”, proc. of the Ninth International ACM Sigsoft Conference on the Quality of Software Architectures (QoSA 2013), Vancouver, Canada, 2013.
[2] M. G. J. van den Brand, S. Roubtsov, and A. Serebrenik: “SQuAVisiT: A flexible tool for visual software analytics”, in proc. of the European Conference on Software Maintenance and Reengineering, pp. 331-332, Washington, DC, USA, IEEE Computer Society, 2009.
[3] Y. Dajsuren, M. G. J. van den Brand, A. Serebrenik, and R. Huisman: “Automotive ADLs: a study on enforcing consistency through multiple architectural levels”, in proc. of Quality of Software Architectures (QoSA), pp. 71–80. ACM, 2012.
Please contact:
Yanja Dajsuren
Eindhoven University of Technology, The Netherlands
Tel: +31 40 247 5052
E-mail: