功能安全软件设计技术

软件设计

编码规则

汽车工业协会发布的MISRA-C指南分析指出:

没有哪种编程语言能够保证最终的可执行代码会准确地按照程序员预想的那样执行。

究其原因,主要包括以下几个方面的原因:
1.程序员产生的错误。如:将逻辑比较“==”写成赋值“=”。
2.程序员不了解语言。如:运算符优先级的不合理使用。
3.编译器的行为同程序员的预期不一致。
4.编译器自身包含错误。
5.运行时错误。如:C编译器通常不为诸如零除、数组越界等常见问题提供运行时检查。

因此,在安全苛求计算机系统中进行软件开发有必要定义一个合适的语言子集。

MISRA-C:2004划分了21类规则,包括环境、语言扩展、文档、字符集、标识符、类型、常量等。

风格指南

推荐参考《NASA C Style》和《Google C++ Style Guide》

架构设计

结构化

软件结构化设计是一种将结构化分析得到的数据流图转换为映射成软件体系结构的设计方法。

详细设计

模块化

模块化程序设计的总原则就是“高内聚、低耦合”,模块内部要尽可能达到高内聚,模块之间尽可能降低耦合。

安全原则

以变量的危险侧作为判断条件
保证安全相关变量之间的码距

软件测试

静态测试

单元测试

集成测试

需求测试

你可能感兴趣的:(嵌入式软件)