1,可维护(Maintenance),被修改的能力。包括纠错,改进,新需求或功能规格变化的适应能力。
1)模块:高内聚,低耦合
2)处理流程和数据解耦
3)抽象:提取共同特征&流程,剥离易变部分
4)接口设计:原子化,不暴露内部数据和实现
5)组件&服务:自治,自组织,独立演进
2,简洁(Simple),易于理解,易于实现
1)圈复杂度
2)注释:why,not what
3)命名原则
4)函数设计
3,可移植(Portable),适应不同运行环境的能力
1)OSAL
2)HAL:硬件抽象
4,高效(Performance),占用系统资源,包括内存和执行时间
1)算法
2)空间换时间
5,可测试(Testable),发现故障并隔离,定位故障的能力。在一定时间和成本下,进行测试设计,测试执行的能力。
1)LLT,测试覆盖率
2)需求越明确,测试越全面
3)故障收集能力:定位手段
4)故障注入
6,可靠性(Reliable):容错能力,出错快速检测,隔离或恢复
1)故障检测
2)故障处理:容错机制
3)分级恢复处理:根据业务影响大小排序