什么是嵌入式产品开发?

嵌入式软件就是嵌入在硬件中的操作系统和开发工具、应用软件,它在产业中的关联关系体现为:芯片设计制造→嵌入式系统软件→嵌入式电子设备开发、制造。嵌入式软件的分类:

  • 嵌入式操作系统(Linux、Vxworks、WinCE、PalmOS、Symbian、Android、IOS等) 
  • 嵌入式支撑软件(数据库等)
  • 嵌入式应用软件(仪器仪表、 IC卡、手机、MP3、GPS等)

嵌入式已经广泛应用于安防、医疗、工控、汽车电子、智能家居、物流等相关领域:

image

嵌入式系统因其低成本、体积小、低功耗、稳定性和实时性强等特点越来越被人们所应用。嵌入式产品通常出现的质量问题如下:

  • 无厘头的死机事件
  • 量产才出现BUG
  • 内存不足
  • 运行缓慢
  • 非功能性的问题(如EMC,可靠性,散热等)

除此之外,由于嵌入式系统在开发时涉及到多个专业,如应用软件、硬件、结构、工业设计、底层软件等专业,因此,除了质量方面的挑战性之外,嵌入式产品开发在项目管理方面可能也会遇到挑战,主要如下:

  • 单板硬件的开发涉及到硬件、软件、电缆等专业,项目团队沟通及项目进度控制往往会成为一个瓶颈;尤其是软件和硬件的接口问题频发。

image

          (如上图:软件和硬件经常发生接口的偏差,导致进度延期)

  • 嵌入式产品开发的需求收集、分析、分发和实现比较复杂,产品包需求不仅包括了功能需求、性能需求,还包括了隐性需求,如DFX等;
  • 嵌入式产品的设计需要充分利用公司现有成熟的平台和CBB,如果重新开发会导致开发周期很长;
  • 嵌入式产品的测试复杂度较高,开发人员的白盒测试和测试人员的黑盒测试均有一定的难度,需要借用一些工具进行验证;
  • 由于嵌入式产品的维护主要是单板,单板中嵌入的软件看不见,摸不着,很难现场进行升级和修改,因此,对于嵌入式系统的维护也是一个难点。

嵌入式产品开发中的项目管理

这几年,共创力帮助几家企业进行了嵌入式产品的开发及测试管理咨询服务,包括电力、芯片、通信、医疗、交通设施等行业,根据我们的总结,嵌入式产品开发一般包括以下的组织:(以下是某通信企业的嵌入式开发组织的例子)

image

1、作为嵌入式产品开发的项目经理,一般是软件专业或硬件专业背景,不但需要掌握单板开发及测试流程,还需要跟SE、SWE(软件工程师)、HWE(硬件工程师)、TE(测试工程师)打交道,因此,项目经理需要有很强的沟通能力;   

2、项目经理需要提前评估单板开发的风险,如新器件、新技术、新功能带来的风险,并与团队一起制定风险的预防措施;   

3、对于嵌入式系统质量控制,需要各专业人员具备相关的自测能力,如硬件负责人需要对硬件质量进行保证,软件开发人员需要对自身的代码进行检查,测试人员则更加关注整机的可靠性和DFX实现。   

4、对于嵌入式的进度管理,需要提前制定好WBS计划,软件和硬件的开发可以并行,但必须确定一个联调的时间点,是否需要测试人员介入?是采用IPD瀑布开发模式还是采用敏捷开发模式?

 

嵌入式产品开发中的需求管理

嵌入式产品开发不同于纯软件,它包含了多个专业的需求,包括软件需求、硬件需求、可靠性需求等,需求包收集完成后,需要分解到各个专业,比如一个仪器的指示灯是通过软件实现,还是通过硬件实现,这都是源于SE的系统分析和总体设计,需求分解的原理如下:

image

 需求经过分解和分配后,由软件工程师、硬件工程师、结构工程师进行嵌入式产品的开发活动,包括概要设计、详细设计、PCB设计、编码等,最后由软件测试工程师、硬件测试工程师、系统测试工程师、可靠性测试工程师分别对各个开发人员的交付物进行验证。   

嵌入式产品开发中的测试管理

由于嵌入式系统自身特点,嵌入式软件的开发和测试不同于桌面系统开发和测试,嵌入式产品的功能全部集中在单板上,接口较多,如:

  • 实时性
  • 内存不丰富
  • I / O通道少
  • 开发工具昂贵
  • 与硬件紧密相关
  • CPU种类繁多,等等。

因此,嵌入式软件是最难测试的一种软件,目前国内对嵌入式产品的测试自动化工具以及嵌入式测试书籍较少。根据共创力咨询对嵌入式软件的探索,我们总结出从开发视角和测试视角对嵌入式测试的观点如下:

image

1、开发人员需要重点保证硬件质量,因为硬件开发过程不可逆向修复,这是由于硬件器件采购的成本过高,如果浪费器件则会导致项目费用超支;

2、测试人员应把精力放在软件测试、整机系统测试及可靠性的测试活动上,尽早进行环境试验,如EMC,盐雾实验,加速实验,跌落及运输实验等;

3、可靠性验证是一个长期的过程,从实验证样机到工艺样机、生产样机均需要进行硬件可靠性的测试,而软件功能的验证则是一次性的;

4、嵌入式验证可以借助一些仿真工具,或者自主研发一些测试工具;

5、开发人员的自测如单板电路的调试和信号完整性测试,软件工程师的代码走查和单元测试对嵌入式产品的质量保证非常重要。因为作为黑盒测试人员,对于嵌入式产品的测试手段非常有限。

6、最终需要输出的测试和验证报告有:开发人员:单元测试报告、软硬件接口调试报告、BBIT测试报告;软件测试人员:软件测试报告,系统测试报告,软件故障注入测试报告硬件测试人员:硬件测试报告,FIT(故障注入测试报告)可靠性测试人员:EMC验证报告,安规测试报告,可靠性测试报告,型式试验报告(包括淋雨实验、运输实验、跌落实验、高低温测试等)

 

共创力IPD变革的成功案例

1、国内某通信企业(中国500强企业,上市公司) 

2、中航工业集团某公司(军工企业,上市公司) 

3、南京某工业机器人企业(工业机器人龙头,上市公司) 

4、深圳某智能控制企业(伺服器龙头企业,上市公司) 

5、北京某人工智能企业(AI龙头企业,上市公司) 

6、国家电网某研究院(电网直属企业,上市公司) 

7、珠海某电力公司(电力安全龙头企业,上市公司) 

8、某激光装备企业(中国500强企业,上市公司)   

9、某芯片企业(GPU龙头企业,上市公司) 

10、医疗器械企业(医疗装备龙头企业,上市公司)......