对于软件工程师来说,最重要的任务是算法的实现。比如我现在有一个自适应巡航系统,汽车需要根据前车位置,速度来决定自己的跟车速度,以及要不要切换跟车目标,这些“做出决策”的过程就是逻辑判断,都需要软件工程师设计。
2, 代码自动生成
在模型开发里,图像化的算法最后依靠工具来自动生成代码。代码效率明显提高,手工代码耗费时间长,且容易出差错。自动代码只要工具好使,就不会有差错,比手工代码质量高。
二:代码书写标准统一
无论软件是自动代码生成还是手工书写,都需要遵循一定的标准。汽车行业为了规范软件形式,提出了很多统一的代码书写标准,比如我们熟知的MISRA标准。
MISRA C Coding Standard是一个工业标准的C编程规范,全称是 (The Motor Industry Software Reliability Association 汽车工业可靠性联合协会) ,成员包括了大部分的欧美汽车厂商。
这个标准包括了大概100多条C语言编码标准,目的是为了帮助汽车厂商开发出安全,高可靠性的嵌入式软件。有些编码标准让其他行业码农看上去都觉得可笑,比如下面这几条:
Rule 1: 不得使用三元操作符;
Rule2: 所有标识符不得超过31字符;
Rule3:不得残留被注释掉的代码;
Rule4:不得使用goto以及continue;
如果完全按照这个标准来书写代码,则你的代码是可读性强,可靠,可移植性强和易于维护的。遵循这个标准对于代码的质量也能起到很好的管理作用,不过Misra标准过于严苛,一般企业都会根据实际情况执行。
三:软件架构的统一
代码编写由规范,软件架构就更有统一规范了。
这就是AUTOSAR(AUTOmotive Open System Architecture 汽车开放系统架构)。