嵌入式软件既是电子系统的核心,也是硬件系统的有效补充,需要具备防错、判错、纠错、容错的功能,具备了这些功能,就能保证系统可靠性(Reliability)要求在软件分系统设计中的实现。但是软件可靠性(Reliability)又不同于硬件电路,它不会随时间的推移而降低,并且其可靠性(Reliability)保障全部在设计过程中实现。因此软件工程的工作也是软件可靠性(Reliability)所要关注的内容。
1.概述和定义 2.计算机系统设计准则: 2.1、一般要求; 2.2、硬件与软件功能的分配原则; 2.3、硬件与软件可靠性(Reliability)指标的分配原则; 2.4、安全关键功能的人工确认; 2.5、安全性内核; 2.6、自动记录系统故障; 2.7、禁止回避检测出的不安全状态; 2.8、保密性设计; 2.9、容错设计
3.硬件设计: 3.1、硬件选用; 3.2、总线检测; 3.3、加电检测; 3.4、电源失效的安全措施; 3.5、主控计算机失效的安全措施; 3.6、反馈回路传感器失效的防护措施 3.7、电磁干扰的防护措施; 3.8、维修互锁措施
4.软件需求分析
5.软件危险分析
6.安全关键功能设计
7.冗余设计准则: 7.1、指令冗余设计; 7.2、软件陷阱与软件拦截技术; 7.3、软件冗余
8.接口设计准则: 8.1、硬件接口要求; 8.2、硬件接口的软件设计; 8.3、人机界面设计; 8.4、报警设计; 8.5、软件接口设计
9.软件健壮性设计准则: 9.1、电源失效防护; 9.2、加电检测; 9.3、电磁干扰; 9.4、系统不稳定; 9.5、接口故障 9.6、干扰信号 9.7、错误操作; 9.8、监控定时器的设计 9.9、异常保护设计
10.简化设计准则: 10.1、单入和单出; 10.2、模块的独立性; 10.3、模块的扇入扇出; 10.4、模块耦合方式; 10.5、模块内聚顺方式; 10.6、其他特殊考虑
11.余量设计: 11.1、资源分配及余量要求 11.2、时序安排的余量要求
12.数据要求: 12.1、数据需求; 12.2、属性控制; 12.3、数值运算范围控制; 12.4、合理性检查
13.防错程序设计准则: 1、参数化; 2、公用数据和公共变量; 3、标志; 4、文件; 5、非授权存取的限制 6、无意指令跳转的处理; 7、程序检测点的设置 8、寻址模式的选用; 9、数据区隔离; 10、安全关键信息的要求; 11、信息存储要求 12、算法选择要求
14.编程要求: 1、语言要求; 2、汇编语言编程限制 3、高级语言的编程限制; 4、圈复杂度指数(McCabe) 5、软件单元的规模; 6、命名要求; 7、程序格式要求; 8、程序注释要求与方法; 8.1、注释的一般要求 8.2、模块头注释要求; 8.3、模块内注释要求; 8.4、安全关键内容注释要求; 9程序设计风格; 9.1、通用类; 9.2、结构类; 9.3、说明类; 9.4、输人输出类; 9.5、语言类
15.多余物的处理: 1、文档中未记载特征的清除; 2、程序多余物的清除; 3、未使用内存的处理; 4、覆盖的处理
16. 版式 17. 注释 18. 命名 19. 可读性 20. 变量、结构 21.函数、过程
22. 可测性与软件测试: 1、需求遗漏或不明确 2、配置保存的生效 3、缺省配置的影响 4、报警和清除 5、菜单选项测试 6、缺省配置测试 7、系统测试注意事项
23. 程序效率 24. 质量保证 25. 代码编辑、编译、审查 26. 代码测试、维护 27. 宏
|