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 模型来进一步实现这一点。

写出高质量的需求

从硬件开始

让领域专家参与需求定义

优化项目范围

简单的设计

静态分析

自动化测试生成

使用持续集成

保持硬件循环

简化需求可追溯性

编写易于维护的测试

审核编辑:郭婷

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

    关注

    5064

    文章

    18992

    浏览量

    302589
收藏 人收藏

    评论

    相关推荐

    北京软件开发公司有那些?做软件的公司有哪些?

    北京作为中国的科技创新中心之一,拥有众多提供软件开发服务的公司。以下是一些在北京地区较为知名的软件开发公司: 华盛恒辉科技有限公司:是一家专注于高端软件定制开发服务和高端建设的服务机构
    的头像 发表于 10-28 15:02 263次阅读

    ECU电控软件开发及测试介绍

    本文重点介绍符合AutoSar架构的应用软件开发、MBD开发模式下的软件质量评估与优化方案、复杂场景下的ECU性能压力测试方案。
    的头像 发表于 09-26 14:25 3203次阅读
    ECU电控<b class='flag-5'>软件开发</b>及测试介绍

    9月12日云技术研讨会 | ECU电控软件开发及测试全流程解决方案

    本次研讨会,经纬恒润将结合业务团队多年来在软件开发和测试领域的工程实践经验,分享探讨基于AutoSar架构的应用软件开发、基于MBD开发软件质量
    的头像 发表于 09-26 14:18 1323次阅读
    9月12日云技术研讨会 | ECU电控<b class='flag-5'>软件开发</b>及测试全流程解决方案

    嵌入式软件开发与AI整合

    嵌入式软件开发与AI整合是当前技术发展的重要趋势之一。随着人工智能技术的快速发展,嵌入式系统越来越多地集成了AI算法,以实现更复杂的智能功能。以下是关于嵌入式软件开发与AI整合的详细分析
    的头像 发表于 07-31 09:25 645次阅读
    嵌入式<b class='flag-5'>软件开发</b>与AI整合

    软件开发珠玑》+60条戒律

    包含需求、设计、项目管理、文化和团队合作、质量、过程改进6个方面的内容,提供了丰富、实用的工具和方法。当开发人员更好的理解了需求时,便能够从用户的角度触发思考更优秀的解决方案。从这点来看,每个软件开发人员或团队应人手一份这本书,
    发表于 06-24 19:27

    【《软件开发珠玑》阅读体验】+ 心得

    【《软件开发珠玑》阅读体验】+ 心得 感谢电子发烧友论坛提供的读书机会。读这本书使我在编程方面多了位资深老师。 在软件项目开发领域的时,我阅读了《软件开发珠玑》这本书。它以独特的视角和
    发表于 06-23 17:56

    cnc系统软件一般包括哪几个部分

    CNC(计算机数控)系统是一种广泛应用于工业制造领域的自动化控制系统。它通过计算机软件和硬件的结合,实现了对机床的精确控制,提高了生产效率和产品质量
    的头像 发表于 06-14 16:01 1025次阅读

    上位机软件开发用什么语言

    上位机软件开发是指开发用于与下位机(如PLC、单片机等)进行通信、控制和数据处理的计算机软件。上位机软件在工业自动化、物联网、智能家居等领域有着广泛的应用。选择合适的编程语言对于
    的头像 发表于 06-06 10:44 1418次阅读

    电表自动抄表系统软件

    1.电表自动抄表系统软件简述电表自动抄表系统软件,是一种现代化电力工程可视化工具,它利用先进的信息科技,实现远程、实时电能计量数据收集和分析。该系统不仅提升了电力工程公司的运营高效率,也极大
    的头像 发表于 05-17 14:19 491次阅读
    电表自动抄表<b class='flag-5'>系统软件</b>

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

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

    keil arm软件开发指南

    电子发烧友网站提供《keil arm软件开发指南.pdf》资料免费下载
    发表于 01-26 15:51 7次下载

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

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

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

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

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

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

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

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