什么是软件完整性?以及如何实现它

风花雪月
• 阅读 2118
在软件方面,对完整性的含义有几种解释。在一些场景下,完整性是安全的同义词 - 即对黑客和隐私侵犯的抵御能力。对于其他人而言,高完整性意味着未对所交付的软件进行未经授权的更改。
在这篇博文中,我们将软件完整性称为软件源代码的质量。

根据每个项目的需要选择代码质量测量。评估代码质量需要您测量潜在的安全和安全相关缺陷的数量和严重性。您还需要评估代码的可维护性和可测试性。实现高代码完整性可能是一项复杂而艰巨的任务。
软件完整性的重要性

软件完整性非常重要,因为它证明了代码的安全性,保障性和可维护性。此外,确保代码具有高完整性对于需要符合编码标准和行业法规的软件尤为重要。
高软件完整性与低软件完整性

重要的是要考虑在任何开发项目开始时将采用哪些完整性措施和标准。这些可能因最终应用而异。

简单地说,高完整性意味着代码:

运作良好

能经受测试

有安全功能

规避安全漏洞

易于理解并遵循逻辑

易于修改和扩展而不会引入新的错误

软件完整性的好处

尽管实现这一目标可能是一项挑战,但代码的高度软件完整性的好处是深远的。因为软件完整性可确保:

可以更快地识别和解决编码缺陷

代码保持灵活,模块化和可维护性

网络威胁得到缓解

代码开发有充分的文档记录和组织

符合法规和行业标准

分析清晰,详细且易于访问

软件完整性是每个人的责任

确保代码的安全性,保障性和质量是每个人的责任。在整个开发过程中,开发人员,测试人员和管理人员应该实现高度软件完整性的目标。

如何提高软件完整性

实现高软件完整性似乎是一项艰巨的任务。但是,通过实现安全性,保障性和可维护性的正确实践,挑战更易于管理。

软件完整性最佳实践:使用编码标准

编码标准是编码规则,指南和最佳实践的集合。通过将标准纳入您的开发过程,它可以确保您的软件是:

使用安全

抵御网络威胁

可靠,可以按预期运行 - 任何时刻

可测试以确保识别缺陷

即使代码库增长,也可以维护

便携式,使其在每个环境中都能正常工作 如何做到 为了有效地将编码标准用于您的开发过程,您应该为您的团队提供有关编码标准是什么以及如何最好地遵循它们的培训。您还可以使用静态代码分析器,它在程序运行之前检查源代码,以帮助实施编码标准。

软件完整性最佳实践:测试

测试对于确保您的软件安全,可靠和安全至关重要。虽然您可以运行数百种不同类型的软件测试,但通常有两个主要类别:功能测试 - 验证软件的功能 - 以及非功能测试 - 验证软件的性能。

如何做到 为了充分测试您的软件,您需要遵循软件测试方法,以确保测试是彻底的,并可以识别所有潜在的缺陷和错误。此外,您可以使用测试管理工具(例如Helix ALM)为您提供所有测试工作的更好的可见性和可跟踪性。

软件完整性最佳实践:分析代码

代码分析有助于确保代码有效,正常运行,并且在编写代码时不会出错。这种做法应该在创建阶段完成,因为它将使解决错误更快,更容易,更便宜。

如何做到实现和实施代码分析 的最有效方法是使用静态分析器来监控关键质量指标。

软件完整性最佳实践:遵循代码审查最佳实践

手动代码审查 - 如果做得好 - 有助于提高代码质量,帮助稳定代码库,并帮助您的团队更有效地工作。

如何做到 为确保您的团队进行有效的代码审查,请为他们提供最佳实践培训。此外,由于可能会遗漏错误或缺陷,您还应该使用自动化工具来确保审核过程中没有空白。

软件完整性最佳实践:重构旧代码(必要时)

遗留代码可以指由未编写代码的人管理代码,也可以代表难以理解和更改的代码。无论哪种方式,重构都可以帮助改变代码的结构而不改变其功能。这种做法有助于清理代码库并降低其复杂性。

如何做 重构应该逐步完成,以确保您的软件不会变得混乱。最有效的方法是遵循使用遗留代码的最佳实践。

使用正确的工具实现软件完整性

确保您的代码具有高度的软件完整性可能是一个复杂且耗时的过程,因为需要考虑多个因素。但是,有一些有益的实践和工具可以帮助您有效地管理每个因素,以帮助您实现高度的软件完整性。

使用正确的代码质量工具对于实现高度的软件完整性至关重要。高软件完整性可能需要更多时间才能实现,但确保您的代码在早期安全,可靠和高质量有助于降低维护成本并减少技术债务。

选择合适的工具:静态分析器

Helix QAC是一种C / C ++静态分析器,可以轻松确保您的代码安全,可靠和高质量。您将能够通过以下方式实现高度的软件完整性:

应用编码标准,如MISRA,AUTOSAR和CERT

遵循编码最佳实践

识别编码错误,包括未定义或未指定的C / C ++使用

消除安全漏洞

通过测量,跟踪和报告质量指标(例如圈复杂度)来管理代码质量 原文地址:http://blog.sina.com.cn/s/blog_bcb8ce0d0102yhu7.html

点赞
收藏
评论区
推荐文章
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
【敏捷研发系列】前端DevOps流水线实践
软件开发从传统的瀑布流方式到敏捷开发,将软件交付过程中开发和测试形成快速的迭代交付,但在软件交付客户之前或者使用过程中,还包括集成、部署、运维等环节需要进一步优化交付效率。因此Devops的产生将敏捷的相关理念扩展到运维侧,从而将产品、设计、开发、测试、运维团队更紧密的结合在一起。而从交付给客户产品视角看,前端研发通常又是在整个产品设计开发链条的最终节点,意味着前端团队受到上游变更的影响是最大的,并且从经营理念效率出发,提升前端交付效率是至关重要的。
Stella981 Stella981
2年前
AI赋能DevOps:数据驱动的全栈工程师实践
DevOps是什么?!image.png(https://ata2img.cnhangzhou.osspub.aliyuninc.com/74a0288f2aaa0937e081d973642175e7.png)对于传统的软件研发而言,开发,测试,运维,运营,有不同的岗位进行分工协作,以保证质量和专业度,同一件事情,
Stella981 Stella981
2年前
JFrog汽车行业DevOps峰会,欢迎加入了解全球新趋势
JFrog汽车行业DevOps峰会北京时间:10月19日9:00您依靠数百万行代码来保持汽车的功能和安全。错误的软件会破坏安全性,性能和质量,这既是毁灭性的也是昂贵的。品牌声誉对您公司的成功至关重要。快速,可靠和安全的软件交付管道是您可以获得的最大竞争优势。随着软件交付最佳实践的不断发展,成功的道路可能会因分散注意力而受到阻碍。在您开发新技术和
Wesley13 Wesley13
2年前
10、软件质量工程师指南
第9章     软件质量工程师软件质量工程师也是分配在项目质量控制部里的编制,对项目的软件编码质量等进行管理,与软件配置工程师相比,主要偏向于对项目的质量控制部分进行管理。虽然在项目管理过程里没有详细划分这个岗位,但是在项目管理中仍然需要软件质量工程师对整个项目的质量进行控制管理。1、工作职责软
Stella981 Stella981
2年前
DevOps 安全威胁,你值得关注!
随着开源软件被大量引用,线上运行的代码中超过80%的部分是开源代码。软件安全的重点已经从内部代码转移到所引用开源部分上。DevOps安全需要关注内部研发团队的自研代码以及外部第三方开源软件的安全,对于内部代码,所使用的依赖必须清楚,如果底层依赖有风险,还必须快速反向分析哪些其他软件受到同样的威胁;目前DevOps安全团队和持续交付团队往往独立运行,信息交
Stella981 Stella981
2年前
Chapter 2 全程测试:闪光的思想
软件质量其实是在软件开发生命周期中慢慢形成的,或者说,软件质量是内建的(Qualityisbuiltin),而不是测试测出来的。贯穿于软件开发全过程的测试,不仅可以在第一时间内发现缺陷,降低缺陷带来的成本(劣质成本),而且能有效的预防缺陷的产生,构建更好的软件产品质量。2.1测试的左移和右移测试左移:将测试计划与设计提前进行,以及开展需求
绣鸾 绣鸾
11个月前
终端SSH工具 SecureCRT 9.4.0注册码
SecureCRT是一款功能丰富的SSH客户端软件,它可以帮助用户安全地连接和管理远程服务器和设备。该软件具有多种功能和易于使用的界面,适用于各种场合。SecureCRT提供了强大的加密和安全性措施,可以保护数据传输过程中的机密性和完整性。它支持各种加密协
新支点小玉 新支点小玉
5个月前
从定义和实施帮你对软件测试进行全解析
软件测试是软件开发过程中的一项重要环节,它的目的是确保软件能够满足预期的需求和质量标准,为客户提供高质量的产品或服务。本文将从定义和实施角度对软件测试进行解析,帮助读者更好地了解软件测试。一、定义软件测试是一种质量保证活动,旨在检测软件产品是否满足用户需求
新支点小玉 新支点小玉
4个月前
源代码审计怎么做?有哪些常用工具
源代码审计是一种通过检查源代码来发现潜在的安全漏洞的方法。下面是常用的源代码审计工具:1、Fortify:通过内置的五大主要分析引擎,对源代码进行静态分析,并与特有的软件安全漏洞规则集进行全面地匹配、查找。2、Checkmax:通过虚拟编译器自动对软件源代