A Software Component Architecture for Improving Vehicle Software Quality and Integration 2005-01-0327
It is estimated that the software which monitors the health of an ECU now takes up about 60% of the total ECU software code to monitor, diagnose and announce the problems an ECU may have during its normal or abnormal operational modes. It is the abnormal operation of the system which is the constant problem for vehicle OEMs because this side of the system operation is not easily defined or simulated. The integration of Failure Mode and Effects Analysis (FMEA) to normal design is now becoming central to tackling these issues head-on, such that FMEA is now used as part of the integration process. Having between 10 and 20 different ECUs on a vehicle network still leaves the integration of software from many different suppliers a difficult task. The main issues are incompatible interfaces, misunderstandings of vehicle OEM internal software requirements and a general lack of time to carry out rigorous and methodological integration testing at the Data and Physical Layers before proper vehicle production commences.
The vehicle OEMs have attempted to alleviate these problems by specifying common ECU infrastructures, providing standard outsourced software modules to their suppliers and by taking part in standardisation efforts such as OSEK/VDX and AUTOSAR. However due to location, perception and language differences, this has not reaped the benefits that were being sought and has created a new set of problems.
This paper describes an object-oriented component-based approach to vehicle software development to try to better solve the above issues. The work of the Object Management Group (OMG) is examined, and it is shown how the Object Request Broker (ORB) concept can be applied to existing real-time embedded automotive software systems to ease integration and simulation. The Object Request Broker concept has been successful in enabling reusable software components in the commercial software world. An ORB architecture supports integration and reuse of legacy software by separating component interfaces from their definition.