Think Science, not Art
Integrating all those dimensions without compromising the key functions of each system, or introducing security issues, is a significant software engineering challenge.
Cars might have started out as mechanical devices, but now they are hugely complex software stacks with millions of lines of code that just happen to have wheels. Few other systems require as much software as a car or truck; there is more code in a car than there is in a fighter jet. Today, up to 90 per cent of the 500,000 different requirements for a new car are not mechanical at all; they are electrical and software. And you are not writing that code to build a single vehicle; even though automotive design has switched to common platforms shared between different models, there are dozens or even hundreds of variants of those individual vehicle platforms. That means you can no longer treat them as a collection of mechanical systems that you prototype and design separately and then bring together as a final integration step; you have to model and create and test and validate the physical systems, in software using simulations, in tandem with the software that interconnects and controls them.
Software development is just one phase in a process that starts with planning the overall architecture and system design, and defining the components in the system. Instead of being heterogonous and fragmented, software and hardware needs to be developed in parallel, with strong integration between the mechanical and electrical components and the software models that make up the overall system throughout the development, so you can validate them together. This model driven development means that systems engineering that has been happening in separate domains like the power train, safety systems and infotainment now needs to apply across all those domains.
New vehicles combine the mechanical and electrical systems you are used to managing with Product Lifecycle Management tools and the electrical and software systems that Application Lifecycle Management tools support. Delivering those new vehicles effectively, on the schedules that customers are demanding, without compromising on either safety or innovation requires tools that integrate and bring these worlds together, and that supports key best practices.
With large teams of software engineers working on the logic and code of multiple systems, there needs to be clear accountability for who is responsible for all those systems as development scales, and regression testing is required to make sure none of the changes made introduce any dangerous side effects. For efficiency, that may need to be automated with continuous integration to validate that the overall safety of the code—across all the different variations of the vehicle platform you are building—has not been degraded by the changes. At any point, you might need to go back and ask who approved a design, which combination of components were tested together or how any defects discovered were prioritised, so you need tools that give a view across all the domains of mechanical, electrical and software control systems in the vehicle.
To keep up with the pace of the industry, automotive development has to include large amounts of simulation, capturing and replaying the data from testing of physical systems to validate every software change, in a way that allows for compatibility and reuse across a wider range of cars, vehicle platforms and variants. For autonomous vehicles and assistive systems, data collection and testing will also have to cover all the territories where vehicles will operate, which might have different driving cultures as well as different driving and safety rules.
Most automotive recalls are related to software rather than to hardware in the vehicle, so increasing quality through better software engineering is vital to avoid the financial costs, and the impact that recalls have on car manufacturers’ reputation.
Testing, verification and validation of all these models has to happen in an integrated way, with software development tools that integrate with PLM systems and are themselves integrated to help with the visualisation of requirements, specifications and information flowing between the different models as a consistent process rather than as a series of discrete steps. That needs to continue all the way from proving the feasibility of a concept, to implementing and optimising the whole system, and increasingly, past the point of shipping. And you have to do that at a faster and faster pace.