014 职能介绍(一):系统工程师

系统、软件、测试、标定,是汽车软件中的四大方向(这里不包括硬件),每个方向都被涵盖在汽车的V流程设计中。但是对于刚刚从事汽车软件这个行业的人来说,如果能大致了解每个方向的职能与意义,对今后的职业规划与发展具有重大的意义。接下来介绍今天的主题——系统工程师。由于系统工程师是一个很宽泛的职业,故本文仅讨论汽车软件中的系统工程师。

014 职能介绍(一):系统工程师:原文配图 1

系统工程师主要负责的是软件应用层的功能开发,而底层软件一般属于系统工程师的工作范畴,而是属于软件工程师。而系统工程师的任务基本上就是上图左边的部分。

1 需求分析

需求分析是系统工程师首要任务,也是工作的初始输入。阅读客户所提供的规范或者要求,就客户需求、规范进行评审和分析,并分析是否有现有的或接近的模块可以满足客户需求。决定是对现有模块进行直接引用或者二次修改,还是重新开发。多说一句,对于需求的扑捉是非常重要的环节,相当于一栋大楼的地基,身为系统工程师要对客户的每一个需求都要进行仔细的确认。因为越到项目后期,修复bug所需的难度与成本都越大!同时身为系统工程师要对客户的自相矛盾与无意义的需求必须指出,算是对公司产品与客户负责。

2 文档撰写

编写文档可能是工程师最不愿意干的但是却又不得不干的一项任务,这里面的文档主要包括了:系统需求、系统测试流程、系统测试案例、开发&设计&测试规范、功能模块开发、模块测试案例等等。随着自动化程度的提高,已经有不少软件可以自动生成部分功能开发、模块测试案例、测试结果文档,来减轻系统工程师的工作量。

3 功能开发

系统工程师的核心任务就是设计系统架构、开发系统控制策略以及软件模块。对于整车厂的系统工程师主要负责控制策略的设计,而Tier1供应商的系统工程师负责控制策略模块的功能开发,注意这里所说的软件都是应用层软件!而模块功能开发又分为模型代码(MBD)与手工代码,对于系统工程师,模型就是代码。在ISO26262中规定,对自动代码并不需要检查,只要能验证代码与模型的功能一致即,当然这里的前提条件是:已经验证过的正确的模型;对于手工代码而言,即使是特别简单的语句,也很容易出错,需要特别小心谨慎,好在现在需要系统工程师编写的手工代码已经很少很少了。

4 技术支持

这里说的技术支持,不仅仅包括是系统之间的支持,也包括对软件开发,测试、标定、验收、售后阶段的支持。首先系统是一个很大的概念,但是相对于整车而言,要实现一个完整的功能,经常不是一个系统的就能搞定的。所以同公司内,甚至不同供应商之间的系统工程师的相互的技术支持,是必不可少的。其次一款软件从开发到量产并不是一蹴而就的,即使是量产的软件,也不代表一定完全正确。所以在工程师的调试处理、客户安装、三高实验以及客户使用等过程中,也会出现bug。当出现应用层bug时,就需要系统工程师去确认以及验证,有时候甚至需要出差去实地探查bug,才能确保软件的安全性。

014 职能介绍(一):系统工程师:原文配图 2

后记

其实不同公司的系统工程师的职责可能与上述所说不完全一致,但都大同小异,有的公司系统工程师只写文档,不做模型,软件工程师做建模和模型的验证及代码生成工作;有的公司系统工程师不仅写文档,也做算法,并且会实现算法验证,验证后把模型交付给软件工程师,也有系统工程师把应用层代码一起给做了,然后交付代码给软件工程师。(老胡)

014 职能介绍(一):系统工程师:原文配图 3

未经许可禁止转载,氮素你可以分享到朋友圈

← 返回文章列表