Continuous Integration with Model-based Development and Validation
Volvo Cars Corporation (VCC) Powertrain has used model-based software development for almost 20 years, mainly in the areas of combustion engines and drivetrain control. Over the last few years, more and more functionality has been added to the current software product, which, together with a growing demand to fulfill needs from many different vehicle projects, increases complexity and the need to safeguard software product quality as early as possible in the development chain. To achieve this, we have implemented a continuous integration (CI) chain where different quality measures, such as peer review, unit tests, guideline checks, and complexity analysis, minimize the risk of bugs being introduced in the software. Each software product is automatically built and tested in all the relevant project configurations in which the software is to be deployed. The CI chain system uses gated commits, and only the proposed changes, the quality gates, are allowed to be merged into the master repository. This ensures that the integrity is not dependent on a single individual making the right call but is instead ensured by the system. The shift toward development using a CI chain was triggered by a strategy to increase quality via early fault detection, introducing a HIL/SIL test environment as part of the CI chain, as well as increasing the speed of delivery (i.e. minimize time to market) by performing automatic testing. The model-based design is made by function developers who are experts in their respective fields. The function developers focus on the mechatronic system, and the toolchain must help the developers produce easily readable, testable, and maintainable models. Here, we have implemented the tool MES M-XRAY® into the CI chain to analyze the complexity of the models and at the same time provide insight into how to reduce it. To fulfill model guidelines (mainly TargetLink), the MES Model Examiner® (MXAM) is used.
Muhammad Awais (Volvo Cars Corporation)
Muhammad Awais works as a Continuous Integration (CI) toolchain developer at Volvo Cars Corporation (VCC) where he has been working since June 1, 2016. His team develops and provides support to the development teams in Powertrain Control Calibration (PCC) related to CI. Before VCC, he worked at Ericsson, Sweden, as Software Designer in the LTE department. His main responsibilities in the beginning were developing and verifying the functionalities in Uplink Physical Layer (ULPHY) before the team switched to agile methods and formed cross functional teams based around SCRUM and KANBAN ways of working. Muhammad Awais completed a Master’s in electrical engineering with a specialization in signal processing at Blekinge Tekniska Högskola, Sweden in 2011. His area of focus was noise cancellation/speech enhancement using different signal processing techniques.
Christoffer Nilsson (Volvo Cars Corporation)
Christoffer Nilsson is Senior Developer at Volvo Cars Corporation. He graduated from Chalmers University of Technology in 2013 with a Master of Science in Engineering.
After graduation, he started working for Volvo Cars as a tool developer to assist in the quality assurance of the calibration. The assignment evolved to include both configuration management tasks and design of the software development process. To support the new development process, he performed refactoring of the build system, introduced unit tests, and setup of a Gerrit workflow for model-based development.