Investigating a new method of software development for DAF
Software is becoming more and more important in the automotive industry. Cars, trucks, buses, and other vehicles become smarter every day with new features to facilitate the driving experience. This means that more emphasis is placed on the development of software that enables these features in vehicles. This also applies to Dutch truck manufacturing company DAF Trucks, which was the client of the latest training project of three of TU/e’s PDEng programs. They challenged the PDEng trainees to investigate a method to develop software in a more efficient way, which is also of higher quality.
Model-Based Software design is a method of addressing problems associated with designing complex control, signal processing, and communication systems. It is broadly used in automotive applications, for designing embedded software. Peter Vanhoef, Supervisor Software Engineering at DAF Trucks, acknowledges this: “Two years ago, we formed our Embedded Engineering team that focuses on software development. We also continuously look at ways in which we can improve and accelerate our software development.”
It is therefore no surprise that the collaboration with the PDEng ASD, MSD, and ST programs came about. Vanhoef: “We already had some early contact with the Department of Mathematics and Computer Science about a collaboration. The examples of earlier projects that were described to us inspired us, and it is also interesting for a young department such as Embedded Engineering to look for cooperation with TU Eindhoven.”
Careers in automotive and high-tech industry
The two-year salaried post-Master designer programs Automotive Systems Design (ASD) and Mechatronics Systems Design (MSD) prepare trainees for a career in the automotive industry and the high-tech industry. It consist of a number of modules dedicated to specific parts of the underlying scientific fields. One of these modules is devoted to Software Embedded Systems, which play an increasingly important role in both Automotive and Mechatronics. The Software Technology (ST) program has a similar structure and in each module the trainees work on designing and developing complex software in the context of specific problem and technology domains.
“For the domain of Robotics/Mechatronics/Automotive the ST program works together with the ASD/MSD programs in their module of Software Embedded Systems,” says Peter Heuberger, Program Manager of the PDEng ASD and MSD. He continues: “The development of embedded software systems at DAF Trucks is in this respect highly relevant for these three programs. Next to education in the form of courses and workshops the trainees participate in several training projects, dealing with near-life situations such as ill-defined problems, incomplete information, and multidisciplinary teams. The project at DAF Trucks was a good example of such an application.”
As said earlier, DAF Trucks follows a model based software development strategy. DAF’s engineers use MathWorks’ graphical programming environment Simulink and the control logic tool Stateflow to design the models behind the software, before the code is generated. This takes valuable time, especially if it turns out that the delivered code is not yet optimal and needs to be improved. That is the reason why DAF Trucks is interested in Test Driven Development (TDD), an evolutionary approach in which a test is written first for every new feature or requirement, before writing just enough production code to fulfill that last test. The PDEng trainees were challenged to investigate if TDD can be applied by DAF’s engineers, either in Simulink, or by extent in their model based design environment.
With only six weeks available for the project, the team started with an investigation into TDD. Gilda Khosravi, PDEng trainee and project manager: “We can only advance software engineering if we understand the scope and limitations as well as the benefits of the methods that are used.” In the next two phases the scope of the project was defined, the requirements were derived, and the team worked on the design of a demo of an adaptive cruise control block, first by applying TDD on Simulink, secondly by applying TDD on the Simulink Test toolbox; a proof of concept, which was one of the project goals defined by the Dutch truck manufacturer.
Making this all happen within the six weeks that were available for this project is an impressive job according to Vanhoef: “We are very positive about the cooperation, especially about the result that the trainees have booked in a short time. During the first weeks we had some doubts, but we were impressed by the progress that was made at the end of the project – even during the last week. Our software engineers also enjoyed sparring with the trainees and exchanging ideas.” Khosravi recognizes this: “The process and my role of project manager were something new and out of my comfort zone. But I feel great that we have accomplished it with our great team and achieve a remarkable result that made our client happy.”
The demo, together with a user manual for applying test driven development to model driven development in Simulink and Simulink test toolbox, has shown the feasibility of using TDD in Simulink. However, it is not yet ready to be used in practice by DAF Trucks. The trainees have given DAF Trucks and MathWorks several suggestions for future work to take the next step to implement working with TDD. Vanhoef: “We are part of PACCAR and our department works closely together with our American colleagues. The results of the research were shared to determine what the next steps could be. We need some time to let the information sink in and define the right follow-up steps. But our engineers already try to apply the advice of the trainees as far as possible.”