0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

提高关键系统软件开发的质量

王璐 来源:theoks 作者:theoks 2022-07-22 08:06 次阅读

任何优化软件开发过程的尝试都将不可避免地遇到质量、资源和时间之间的古老权衡。这个三重约束对于项目经理来说是众所周知的,格言是只有三分之二才有可能成功。

当然,没有公司真的想在质量上妥协,但对于安全关键型或业务关键型软件而言,风险更高,因为在质量上妥协可能会导致严重的财务或危及生命的后果,因此主要关注点必须放在质量上对于此类项目。那么,当项目的性质要求软件质量必须是最重要的时候,您如何优化嵌入式软件开发呢?

培养质量文化

质量文化将减少实现优质产品的开销,并意味着在生产高质量软件时需要更少的有意识的思考和努力。

幸运的是,通过遵循一些简单的原则,发展质量文化相对容易。质量文化倾向于促进透明度和所有权。他们还将测试和质量控制视为开发过程的重要组成部分,而不是最后的开发步骤。

有效的质量文化的基石是良好的沟通。技术包括从每日例会到报告错误时提高清晰度的所有内容,以便在修复错误时不太可能犯错误。跨职能团队和团队之间的密切沟通也有助于促进质量文化,并确保所有利益相关者对质量和安全目标有很好的理解。

优化您的软件开发方法

现代软件开发方法,如敏捷和 DevOps,被广泛认为比传统的瀑布方法产生更快的结果。所有主要的软件安全标准(例如,IEC 61508、ISO 26262 和 DO-178C)都将软件开发定义为线性过程,v 模型在左侧显示需求定义,在右侧显示测试,如下图所示:

图 2:ISO 26262 道路车辆定义的 V 型 - 功能安全

这使得在开发安全关键软件时很难摆脱线性瀑布方法。现代敏捷开发实践侧重于频繁发布,这可能会给安全关键型软件的开发带来问题,因为每个发布都需要经过正式的验证和/或认证流程。同样,DevOps 原则(例如持续部署)在涉及硬件时会变得更加复杂。

但是,仍然可以利用许多 DevOps 和敏捷原则来创建一种简化的、更具迭代性的方法来开发安全关键型和业务关键型嵌入式项目。

Shift-left

在项目开发生命周期中较早(左)移动工作量通常会导致整体工作量减少。花更多时间确保软件需求和设计正确可减少生产问题并避免将时间花在浪费性的开发活动上。左移的测试方法的原理是,更早地发现错误意味着可以更快、更容易、更便宜地修复它们。这主要是因为,如果测试被延迟,依赖项变得难以解除。

Shift-left 可以增量地应用于大型和复杂的系统。敏捷通过在敏捷方法中为每个冲刺或迭代使用迷你 v 模型来进一步实现这一点。

写出高质量的需求

从硬件开始

让领域专家参与需求定义

优化项目范围

简单的设计

静态分析

自动化测试生成

使用持续集成

保持硬件循环

简化需求可追溯性

编写易于维护的测试

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    4983

    文章

    18291

    浏览量

    288540
收藏 人收藏

    评论

    相关推荐

    广告电商+超级云APP结合 # 软件开发# 模式开发# 小程序开发# App开发

    软件开发APP
    jf_01576396
    发布于 :2024年04月09日 17:42:13

    嵌入式软件开发软件开发的区别

    嵌入式软件开发软件开发是两个不同的概念,它们在一些关键方面有着明显的区别。嵌入式软件开发是指开发嵌入在硬件设备中的
    的头像 发表于 01-22 15:27 601次阅读

    edr系统软件有什么用 EDR系统与传统杀毒软件有什么区别

    EDR(Endpoint Detection and Response)系统软件是一种用于监测和应对网络终端设备上的安全威胁的软件。 一、EDR系统软件的作用: 实时监测和检测:EDR系统软件
    的头像 发表于 01-19 10:15 1825次阅读

    区块链系统软件开发与应用

    区块链技术是近年来备受瞩目的创新技术,被广泛应用于金融、供应链管理、物联网等领域。区块链系统软件开发是实现区块链应用的关键,它不仅需要掌握区块链的基本原理,还需要具备良好的软件开发能力和项目管理经验
    的头像 发表于 01-10 18:18 981次阅读

    安全关键软件开发中实现 ASPICE 和 ISO 26262 的协同

    (ASPICE) 和 ISO 26262。ASPICE 用于评估并改进汽车软件开发流程,而 ISO 26262 则着重解决安全关键系统的功能安全问题。本文探讨了这两个框架的互补性,
    的头像 发表于 11-22 16:37 211次阅读

    嵌入式软件开发流程

    电子发烧友网站提供《嵌入式软件开发流程.ppt》资料免费下载
    发表于 11-17 14:37 1次下载
    嵌入式<b class='flag-5'>软件开发</b>流程

    AUTOSAR软件开发流程简介

    AUTOSAR软件开发流程简介 AUTOSAR软件开发流程是指在AUTOSAR架构下进行软件开发的一系列步骤和方法。它包括以下几个主要阶段: 需求分析:在这个阶段,根据汽车电子系统的需
    的头像 发表于 10-27 15:55 1728次阅读
    AUTOSAR<b class='flag-5'>软件开发</b>流程简介

    仿真系统软件的架构是什么呢?

    仿真系统软件的架构是什么呢? 智慧华盛恒辉仿真系统软件的硬件载体大部分为专用计算机设备,并且通常没有外围设备用于测试过程中的监测或观察。而有些嵌入式软件还会存在交互式操作。在被测软件
    的头像 发表于 10-13 17:19 307次阅读

    Versal ACAP系统软件开发人员指南

    电子发烧友网站提供《Versal ACAP系统软件开发人员指南.pdf》资料免费下载
    发表于 09-13 15:20 0次下载
    Versal ACAP<b class='flag-5'>系统软件开发</b>人员指南

    软件开发必读!华为云软件开发生产线 CodeArts 深度体验指南

    7 月 7 日-9 日,随着华为开发者大会 2023 的到来,华为云软件开发生产线 CodeArts 也走进了很多开发者的视野。 开发者都比较好奇,什么是华为云 CodeArts?Co
    的头像 发表于 08-25 13:43 786次阅读
    <b class='flag-5'>软件开发</b>必读!华为云<b class='flag-5'>软件开发</b>生产线 CodeArts 深度体验指南

    RTX低功耗软件开发(三)

    软件开发
    橙群微电子
    发布于 :2023年07月11日 15:48:14

    使用状态机简化软件测试: 提高效率和质量

    测试是软件开发中的一个关键过程。为了确保软件产品的质量和功能,拥有结构良好且有效的测试过程是很重要的。在这种情况下,TPT中的状态机(Testlet)已被证明是一种简化测试过程的有用方
    的头像 发表于 07-06 14:50 307次阅读
    使用状态机简化<b class='flag-5'>软件</b>测试: <b class='flag-5'>提高</b>效率和<b class='flag-5'>质量</b>

    详解自动驾驶安全软件开发流程

    自动驾驶汽车开发越来越重视性能、质量和性价比,自动驾驶口碑成为新技术应用取得市场成功的关键,而口碑的建立依赖于相关软 件开发流程、周期、时间和质量
    发表于 06-01 11:38 0次下载
    详解自动驾驶安全<b class='flag-5'>软件开发</b>流程

    嵌入式软件开发基本要素之代码质量

    IAR 的嵌入式开发解决方案涵盖了所有的嵌入式软件开发基本要素,增加了提高生产力和效率的价值,保证了质量,并加快了上市时间。这一切可以通过投资回报率(ROI)和总拥有成本(TCO)的用
    发表于 05-15 16:36 417次阅读
    嵌入式<b class='flag-5'>软件开发</b>基本要素之代码<b class='flag-5'>质量</b>

    安全软件开发的最佳实践

    安全的软件开发最佳实践是必要的,因为安全风险无处不在。在网络攻击盛行的时代,它们可以影响每个人,包括个人、公司和政府。因此,确保软件开发的安全性至关重要。 在这里,我们将解释了什么是安全软件,如何确保
    的头像 发表于 05-08 10:51 490次阅读
    安全<b class='flag-5'>软件开发</b>的最佳实践