首先这里说的软件是指单片机,arm等嵌入式产品的固件程序,软件的可靠性设计是个系统的工作,程序的可靠性其实更多依靠的是公司的制度和规范,单靠个人是很难保证自己设计的程序的可靠性和稳定性,但是很多小公司规范不是很完善,在这种情况下个人怎样保证程序代码尽量可靠呢?我个人建议
可从以下方面着手
1:规范性
程序的编写要遵循一定的规范,大的公司一般都有程序设计规范,公司规模小没有规范怎么办?我建议可以把misra-c作为编程规范,这个规范开始是针对汽车产业的,现在很多行业也在使用,这个规范比较适合嵌入式产品的开发,如果公司没有自己的设计规范,强烈 建议使用这个规范,绝大部认证机构都认可mirar-c标准,所以其安全性尽可放心
2:模块化
程序设计尽量模块化,我在过一家公司有几百个产品,每个产品的功能都大同小异,但是程序设计却没有实现模块化,每个功能实现方式都不一样,新人开发一个产品,工作量很大,而且质量也没有办法保证,所以程序的模块化是保证设计可靠性的一个必由之路。
3:一致性
一致性是指程序的设计文件和代码之间是一致的,大部分小公司的程序没有设计文件,这对程序的可靠性是很不利的,因为没有设计文件,单纯从代码很难发现问题,而且设计文件也是自己对产品理解的一个总结,所以建议大家要编写程序设计文件,程序设计文件该怎么写呢?这个没有标准,不过应该包含几点:
1 全局变量的说明 ;
2 每个模块的整体流程图;
3 每个函数的流程图和函数调用关系和返回值说明等
以上是从设计角度来保证程序的可靠性,实际上为了保证程序的可靠性还有一项重要的工作就是审查,审查有很多种方法其中针对每个函数编写测试用例是覆盖率比较高的审查方式,但是这种方式工作量大,测试周期比较长,很多公司难以接受,这里我推荐两种方式:1 代码走查 2 静态分析
代码走查是一般是设计和其它人员检查设计文件是否符合要求,检查代码是否符合设计文件,
静态分析是指检查源代码是否符合规范,程序语法是否有问题等。一般情况下静态分析都使用专门的软件工具来完成,例如 TestBed ,这是一款专门的静态分析工具,可以对源程序进行各种指标分析。