软件健康管理是近几年兴起的一个综合性研究领域,涉及到软件信息分析技术、缺陷检测技术、故障诊断技术、健康评估技术以及缺陷修复技术等多个方面。在软件研发过程中,通过对整个软件进行多维度监控、检测和分析,以提高软件运行安全性和可靠性。虽然说不同行业,对软件健康关注的角度不同,但是核心还是相同或相似的,包括软件故障模式分析、异常检测与故障诊断算法、度量分析技术以及故障修复技术等。如果对于武器装备系统软件,则可能还要关注软件传感器技术、软件容错技术等。对于互联网行业,则可能关注负载、容量、并发等技术。

软件健康管理包括两个方面,一方面是通过实施监控运行软件,对可能的异常情况进行检测、识别、定位和评估,并采取启动冗余备份、重启、复位等措施处理,保证软件的安全或将异常情况的影响降低到可接受范围之内。另一个方面则是通过软件静态检测技术,通过分析代码中的各种属性和缺陷等,进行综合度量。

现在我们抛离软件在不同行业、不同领域应用上的不同,从源代码的属性上进行分析,分析如何根据从代码静态分析结果,度量软件的健康情况。

由于当今对软件质量的重视程度日益加强,已经从原来软件六大质量属性评估软件质量,发展为八大质量属性评估质量。建下图:

在上面图中,其中四个质量属性是可以根据代码静态属性来度量的,包括可靠性、性能效率、安全性和可维护性。

根据CISQ(信息和软件质量联盟)发布的国际标准来看,对四个质量属性的度量可以从代码静态属性上度量软件健康情况,且对该度量一直处于研究和不断完善之中。通过下面的图可以看到,对四个质量属性的度量元近三年来,一直在调整。在2019年,可靠性由29个子属性进行度量,安全性由22个子属性进行度量、性能效率和可维护性分别由15个和20个子属性进行度量。

对于安全性的度量子属性,下面截图可以看到,是由CWE公开的22个安全漏洞模式来进行度量。这些安全漏洞可以通过静态安全漏洞检测工具通过扫描源代码可以得到。

CISQ给出的度量方法是通过代码中检测到安全漏洞的总次数转化为百万分之一机会的弱点,以确定该度量属性的西格玛值。一个软件的安全性健康情况如果达到6σ,则每百万机会3.4个安全漏洞。通过我们多年对源代码安全检测的结果来看,要达到这个水平是一个非常难的过程。需要一个软件开发组织对源代码开发过程中,持续检测和修复才有可能达到这个水平。

那对于百万分之一机会是指什么呢?

根据CISQ给出的AFP(Automated Function Points)标准来看,CISQ自动化计算功能点需要通过应用程序的所有层进行分析,以创建可拆分为数据实体和用户事务的应用程序的功能映射。通过对数据功能点和事务性功能点进行分析获得。

数据功能点:

  1. 内部逻辑文件,主要是数据库记录文件和无结构的流式文件
  2. 外部接口文件,主要是对接外部的其它系统

事务性功能:

  1. 外部输入,主要是指用户的操作
  2. 外部输出和查询,主要是指接口系统的请求和响应

如果要自动的获取这些代码中的属性,则还是需要通过对源代码的扫描分别获得数据统计。业界目前还没有见到适用性比较好的AFP工具。但是对ATP的探讨近两年比较火,读者可以去百度相关的资料。

如果能够自动分析出源代码中的功能点数,就可以计算西格玛值,进而可以采用各种度量方式对源代码的质量情况进行计算并展示。例如下图,可以通过值的形式展示软件的健康情况,当然也很容易转化为西格玛值。

随着计算能力和算法研究的深入,开发出自动分析功能点的工具是指日可待,将来会为企业管理层带来更多价值,对于评估软件质量可以建立一套公平、公正的标准,作为对提交代码的质量评估,是目前在单元测试推广遇到障碍情况下,评估开发人员代码质量的一个重要手段。当然也可以纳入DevOps工具链。

(完)

软件健康管理技术浅析相关推荐

  1. 第四届中国高速铁路健康管理技术论坛

    第四届中国高速铁路健康管理技术论坛 汇报人:翟婉明 院士 主题:高速列车轮轨系统智能运维基础学科问题 一.研究现状与局限性 目前我国高铁的运营里程将于2035年将达到7万公里 高铁大规模设计与建造阶段 ...

  2. 精彩回顾 |极简智能助力《医院业务软件健康管理实战线上培训》

    " <基于真实世界的医院业务系统--医院业务软件健康管理实战主题培训>线上培训会议正式举行."  2022年4月20日晚,由广东省医院协会医院信息化专业委员会发起,广 ...

  3. 在线项目管理软件leangoo 管理 技术支持

    在日常工作中,我们经常会遇到大量的任务需要处理,比如用户反馈问题.软件使用问题等等.有时这些问题处理的过程中可能还需要和其他同事协作,这样,我们就需要一个问题处理平台来协作处理这些问题. Leango ...

  4. 仓储rfid文件_RFID智能仓储管理技术浅析之RFID电子标签的使用

    苏州新导RFID智能仓储管理系统中RFID电子标签的使用,RFID是一项易于操控,简略实用且特别适合用于主动化操控的灵活性使用技能,其所具有的共同优越性是其它辨认技能无法企及的.它即可支持只读作业形式 ...

  5. 电子系统健康管理预测学习笔记

    文章目录 电子系统健康管理与预测 第一章 健康管理的概念和方法 保险丝和金丝雀 故障前兆的监测和推理 监测环境和使用载荷,建立基于pof的应力和损伤模型 PHM 在复杂系统中的实现 第二章 PHM传感 ...

  6. 全国首个三高移动健康管理云平台在武汉启动

    配合湖北省卫计委健康管理试点工作,助力武汉智慧城市,今天上午,全国首个三高移动健康管理云平台--健康Q博士移动三高健康管理云平台,在武汉国家生物产业基地光谷生物城发布,并正式启动上线运营.湖北省卫计委 ...

  7. 飞机机电管理计算机故障措施,一种基于故障树的飞机机电系统健康管理装置及管理方法与流程...

    本发明属于航空机电系统健康管理技术,涉及一种基于故障树的飞机机电系统健康管理装置及管理方法. 背景技术: 飞机机电系统包含燃油子系统.环控子系统.液压子系统.供电子系统.起落架子系统等,分布于飞机各个 ...

  8. 领存将发布支持IPMI2.0规范的BMC智能健康管理软件

    导读:IPMI(智能平台管理接口)是一种开放标准的硬件管理接口规格,定义了嵌入式管理子系统进行通信的特定方法.工作中,IPMI功能都是由向BMC(基板管理控制器)发送命令来完成,BMC接收并在系统事件 ...

  9. 基于互联网+居民健康管理平台技术方案

    社区健康管理平台应用功能,通过微信公众号二次开发接口完成,可以进行回调处理,完成家庭医生管理端与居民端的良好交流互动,可以在线时时对话交流,包括语音,文字,图片以及电话沟通交流,从而为医生远程问诊,以 ...

最新文章

  1. genisoimage命令用法
  2. 有关子数组最大累加和的算法小结
  3. do msgbox loop_【连载1】DDC模块 DO点与强电电气柜的接口形式
  4. JAVA NIO知识点总结(2)——直接缓冲区和非直接缓冲区
  5. WordPress微信小程序社区论坛源码
  6. 如何让Python网络请求不走系统代*理*
  7. Python PIL支持的图像文件格式
  8. pydicom 显示jpeg压缩图像_图像原理 jpg png tga bmp 存储格式
  9. 数据结构--图 记事本
  10. JSON: jasckson 字段 过滤
  11. 136. PHP 编程
  12. Python网络编程之基于socket实现文件上传
  13. 数学建模之线性规划问题与LINGO软件的使用
  14. 揭开JS加密解密的神秘面纱(1)
  15. [题解]LuoGu4315:月下“毛景树”
  16. JDBC与ODBC的区别与应用
  17. Kubernetes 1.14 发布,31 项功能增强
  18. 【前端html】html添加背景音乐
  19. 【考研英语语法】并列连词详解
  20. 《OD学Oozie》20160807Oozie

热门文章

  1. Ubuntu16.04美化软件及优秀工具推荐
  2. AD导入DXF画板框结构
  3. 易网客商业Wifi的时代
  4. Windows更新无法启动或关闭解决办法
  5. 路由交换:EIGRP协议
  6. Unity 动态循环设置材质球的图片
  7. Solr suggest配置
  8. 【笔记】openwrt - busybox
  9. 联想关闭计算机,如何关闭Lenovo计算机随附的防病毒软件?联想计算机随附的McAfee Antivirus...
  10. 阿里员工:最惨P7,33岁才28K,前景堪忧啊!!