7.2.5 软件开发规范
不论是利用C语言编写软件程序还是利用Matlab进行模型开发都应该遵循一定的规范,使开发团队按照统一的规范进行软件的开发,使软件具有很好的可读性和可移植性,方便集成和测试。汽车行业的C语言编码规范可参考MISRA C,而Matlab建模规范可参考MAAB。
汽车工业软件可靠性联会(The Motor Industry Software Reliability Association,MISRA)是在英国政府的大力支持下,由多家汽车工业公司的代表组成的,旨在规范汽车电子中软件的应用,并为嵌入式软件的开发提供指导意见。1998年推出的第一代MISRA C编码规范为MISRA C:1998,主要面向对代码可靠性有着强烈需求的领域。经过多年的发展,MISRA C已经从汽车行业编码规范发展成为跨行业的编码规范,成为世界范围内使用最为广泛的C语言编码规范。MISRA已先后发布了3代MISRA C编码规范。
1998年,第一代MISRA C编码规范:MISRA C:1998(MC1)。
2004年,第二代MISRA C编码规范:MISRA C:2004(MC2)。
2013年,第三代MISRA C编码规范:MISRA C:2012(MC3)。
(https://www.daowen.com)
图7-26 两种Switch、Case的实现方法
在基于模型进行软件设计开发时,MathWorks公司为指导工程师利用Matlab相关产品进行建模和自动生成代码,制定了一系列的建模规范,对模型开发过程中的模型参数设置、模块使用、模块参数或选项的设置、代码生成等方面进行规范,以提高模型的一致性、可读性和清晰性。其中汽车电子行业的建模规范为MathWorks Automotive Advisory Board——Control Algorithm Modeling Guidelines Using MATLAB,Simulink,and Stateflow,代码生成规范为Modeling Guideline for Code Generation。MAAB规范主要针对控制软件建模,而被控对象的物理建模则不必遵循此规则。建模规范和代码生成规范包含在Matlab自带的说明文档中,随着Matlab软件新版的发布经常更新。

图7-27 for循环逻辑