任何优化软件开发过程的尝试都将不可避免地遇到质量、资源和时间之间的古老权衡。这个三重约束对于项目经理来说是众所周知的,格言是只有三分之二才有可能成功。
当然,没有公司真的想在质量上妥协,但对于安全关键型或业务关键型软件而言,风险更高,因为在质量上妥协可能会导致严重的财务或危及生命的后果,因此主要关注点必须放在质量上对于此类项目。那么,当项目的性质要求软件质量必须是最重要的时候,您如何优化嵌入式软件开发呢?
培养质量文化
质量文化将减少实现优质产品的开销,并意味着在生产高质量软件时需要更少的有意识的思考和努力。
幸运的是,通过遵循一些简单的原则,发展质量文化相对容易。质量文化倾向于促进透明度和所有权。他们还将测试和质量控制视为开发过程的重要组成部分,而不是最后的开发步骤。
有效的质量文化的基石是良好的沟通。技术包括从每日例会到报告错误时提高清晰度的所有内容,以便在修复错误时不太可能犯错误。跨职能团队和团队之间的密切沟通也有助于促进质量文化,并确保所有利益相关者对质量和安全目标有很好的理解。
优化您的软件开发方法
现代软件开发方法,如敏捷和 DevOps,被广泛认为比传统的瀑布方法产生更快的结果。所有主要的软件安全标准(例如,IEC 61508、ISO 26262 和 DO-178C)都将软件开发定义为线性过程,v 模型在左侧显示需求定义,在右侧显示测试,如下图所示:
图 2:ISO 26262 道路车辆定义的 V 型 - 功能安全
这使得在开发安全关键软件时很难摆脱线性瀑布方法。现代敏捷开发实践侧重于频繁发布,这可能会给安全关键型软件的开发带来问题,因为每个发布都需要经过正式的验证和/或认证流程。同样,DevOps 原则(例如持续部署)在涉及硬件时会变得更加复杂。
但是,仍然可以利用许多 DevOps 和敏捷原则来创建一种简化的、更具迭代性的方法来开发安全关键型和业务关键型嵌入式项目。
Shift-left
在项目开发生命周期中较早(左)移动工作量通常会导致整体工作量减少。花更多时间确保软件需求和设计正确可减少生产问题并避免将时间花在浪费性的开发活动上。左移的测试方法的原理是,更早地发现错误意味着可以更快、更容易、更便宜地修复它们。这主要是因为,如果测试被延迟,依赖项变得难以解除。
Shift-left 可以增量地应用于大型和复杂的系统。敏捷通过在敏捷方法中为每个冲刺或迭代使用迷你 v 模型来进一步实现这一点。
写出高质量的需求
从硬件开始
让领域专家参与需求定义
优化项目范围
简单的设计
静态分析
自动化测试生成
使用持续集成
保持硬件循环
简化需求可追溯性
编写易于维护的测试
审核编辑:郭婷
-
嵌入式
+关注
关注
5064文章
18992浏览量
302589
发布评论请先 登录
相关推荐
评论