牛剑峰, 白永胜, 郭丁和
(1.北京天地玛珂电液控制系统有限公司, 北京 100013; 2.阳煤集团华越机械有限公司,
山西 阳泉 045000; 3.西安交通大学 数学与统计学院, 陕西 西安 710049)
液压支架电液控制系统软件缺陷管理
牛剑峰1, 白永胜2, 郭丁和3
(1.北京天地玛珂电液控制系统有限公司, 北京 100013; 2.阳煤集团华越机械有限公司,
山西 阳泉 045000; 3.西安交通大学 数学与统计学院, 陕西 西安 710049)
针对液压支架电液控制系统软件缺陷问题,从软件测试方法入手,分析了液压支架电液控制系统软件结构特点,构建了软件缺陷管理框架,确定了软件测试方案,对软件缺陷进行了分类,设计了软件缺陷数据库的数据结构及软件缺陷管理流程,进而对软件缺陷进行分析。实践表明,通过液压支架电液控制系统软件缺陷管理,提高了软件质量和开发效率。
液压支架; 电液控制系统; 软件缺陷管理
(1.Beijing Tiandi-Marco Electronic-Hydraulic Control System Co., Ltd., Beijing 100013, China;2.Yangquan China and Vietnam Machinery Co., Ltd., Yangquan 045000, China;3.School of Mathematics and Statistics, Xi'an Jiaotong University, Xi'an 710049, China)
当前中小型企业里的嵌入式软件产品开发过程中,在缺陷信息的管理和控制方面大多处于混乱状态[1],缺乏对版本缺陷的有效跟踪与控制。据统计,大约80%可避免的重复劳动源自于20%的缺陷,90%的软件停工期最多来自于10%的缺陷,有针对性的评审能比无导向性的评审多发现35%的缺陷。软件开发存在效率低、质量差、成本高等问题,产品应用存在可靠性与安全性问题。
软件缺陷[2-5]是指软件产品对预期属性的偏离,是软件产品中不满足指定要求的成分,是软件的固有属性。从产品内部看,缺陷是软件产品开发或维护过程中存在的错误、毛病等各种问题;从产品外部看,缺陷是系统所需要实现的某种功能的失效或违背。
液压支架电液控制系统软件是对可靠性、安全性要求很高的软件。随着液压支架电液控制系统的不断推广应用,系统应用范围不断扩展,涉及到各种不同的架型,功能不断扩展,系统软件的复杂程度不断提升。由于软件开发人员的编程技术和对项目需求的理解不到位,经常出现软件不能满足用户需求的情况,甚至发生设备与人身伤害事故,软件质量面临着严重的挑战。
软件缺陷是软件生命周期[6-7]中重要的过程产物,软件缺陷包括软件编程过程中产生的错误、对项目需求理解错误及对需求满足度不足等。软件缺陷反映了软件开发过程的薄弱环节,是软件开发组织提高其开发水平和过程能力的重要依据。通过缺陷分析,能够提高对开发能力和过程管理能力的正确认识,有利于开展过程改进工作。
在软件开发过程中,将软件缺陷数据进行分类整理并保存到缺陷数据库中,通过分析软件开发过程中的薄弱环节,对软件设计、编程、测试过程的有效性、缺陷分布特征、缺陷修复效率等进行评价与改进,进而提出有效的缺陷预防改进措施,有助于提高软件产品整体质量和软件开发效率,降低软件开发成本。
在软件缺陷生命管理中,可提取软件生命周期中各个阶段(需求、编程、测试、修改、发布、使用问题反馈)的工作内容、时间节点和完成人等信息,并保存到软件生命周期管理数据库(如图1所示)。通过计算软件测试被打回和再次提交的时间可以了解软件修复时间,通过软件测试打回次数可以了解项目软件开发的小版本数和软件修复率,通过现场用户提交软件问题报告时间和软件再次发布的时间可以计算出软件修复时间。将软件生命周期中有关软件缺陷的数据信息加以整理、分析、统计,可以形成软件缺陷密度、软件修复率、软件修复时间、软件发布前的缺陷消除率,形成软件缺陷分布图指标,可以对整个软件开发质量进行综合评价。
图1 软件缺陷生命管理周期流程
2.1 液压支架电液控制系统软件结构
液压支架电液控制系统软件采用模块化设计,由3层结构构成,如图2所示。底层是建立在物理层电路板驱动层级的库函数和数学模型库,其功能是实现电路的基本功能转换,提供基本数学模型处理功能;中间层为功能模块层,通过调用底层库函数实现单一的软件功能;顶层为应用层,通过调用不同组合的功能模块,实现应用软件的各项功能。
图2 液压支架电液控制系统软件结构
2.2 软件缺陷管理框架
液压支架电液控制系统软件缺陷管理框架建立在系统软件结构上。将每一个软件缺陷定位在一个确定的功能模块上,通过软件的3层结构对软件缺陷进行分析,确定每个功能的缺陷密度,再通过功能、功能模块和库函数的引用关系,深度挖掘潜在的软件错误,将软件的3层结构以数据库形式存储,建立功能、功能模块、库函数3个层次的关系数据库,如图3所示。
图3 软件功能、功能模块、库函数之间的关系
2.3 软件测试方案
为了提高软件测试及软件缺陷探测效率,最大限度地发现可能存在的软件缺陷,结合液压支架电液控制系统软件的结构特点,采用白盒法与黑盒法相结合的方式进行软件测试。黑盒法注重功能性检测,依据用户需求,按照系统功能逐项进行测试;白盒法依据软件内部结构进行测试。
在进行软件缺陷修复测试时,按照白盒法依据软件回归测试方法,对修复软件缺陷相关的功能模块进行测试。图3表明了某项软件功能的相关功能模块,在修改该项功能时,有可能引起其他相关联动功能失效,在进行软件修复测试时,只针对这些模块进行即可,这样大大减少了软件缺陷修复测试的时间,提高了软件测试的效率。
2.4 软件缺陷分类
基于软件缺陷的严重程度[8-9],将软件缺陷分为3类:A级,致命的缺陷:这类缺陷存在重大的安全隐患,可能会导致误动作,系统主要功能和性能达不到要求,使系统程序丢失、系统崩溃、死机;B级,严重错误的缺陷:这类缺陷是指次要的功能性错误和性能达不到要求,而这些功能是系统需求中所要求的,必须改正才能实现系统完整的功能;C级,较小的缺陷:这类缺陷不影响操作者执行液压支架动作控制,一般是操作显示上存在的功能瑕疵或缺陷。存在A级、B级错误的软件不得发布,存在不超过3项C级错误的软件可以发布。
2.5 软件缺陷控制流程设计
建立缺陷数据库,定义已发现的缺陷分布在6个阶段并予以不同的标志,分别为打开、缺陷确认、请求更正、更正计划、已更正、关闭。在测试过程中,发现存在不满足需求的功能项,并予以标志(打开);对发现的缺陷,通过组织讨论或专家审查进行确认(缺陷确认);确定是真正需要修改的缺陷,按流程将软件缺陷修改单提交给软件开发人员进行修改(请求更正);软件开发人员接收到软件缺陷修改任务后,制定软件修改计划(更正计划);软件开发人员完成修改后再次提交软件(已更正),对修改的软件再次进行回归测试;测试通过后予以标志(关闭)。这样就完成了一个完整的软件缺陷修改流程[10-13]。软件缺陷控制流程状态如图4所示。
节点操作人操作状态处理事务接收时间操作时间消耗时间缺陷记录缺陷标记标记状态1-申请人(开发人员)××××已提交测试申请××××××××0minFFFFFFFF无缺陷2-部门经理(开发)审批××××已提交测试申请××××××××3h56minFFFFFFFF无缺陷3-部门经理(测试)审批××××已提交测试与缺陷记录××××××××4d42min××××1已打开4-副总工审批××××已提交缺陷确认××××××××4d42min××××2已确认5-部门经理(开发)审批××××已提交请求更正与更正计划××××××××4d42min××××3/4修改确认6-申请人(开发人员)××××已提交更正计划××××××××4d42min××××5已修改7-部门经理(测试)审批××××已提交测试××××××××4d42min××××0已关闭8-副总工审批××××已提交发布××××××××4d42min××××0已关闭
图4 软件缺陷控制流程状态
2.6 软件缺陷数据库设计
软件缺陷数据库结构[14-18]如图5所示,其中PK为主键,FK为外键,主要包括缺陷管理人员配置,开发、测试、审核人员信息。缺陷检测活动是指在功能测试、性能测试、可靠性测试等活动中发现软件缺陷。缺陷活动触发是指发现软件缺陷时的环境条件和相关活动及其软件错误征兆。缺陷源、缺陷年龄分别指是否是新代码引入的缺陷及缺陷留存的时间。缺陷目标是指修复的是需求、设计、编码、集成等哪个阶段的实体。缺陷影响域是指软件缺陷对软件质量属性的影响情况,如功能性、可靠性、效率特性、易用性、可维护性、可移植性等。缺陷等级分为A级、B级、C级。缺陷数据库还包含进行软件缺陷发现、确认、修复等相关活动的人员与时间记录。为了方便系统维护,缺陷等级、缺陷影响域、缺陷目标、缺陷类型、缺陷年龄、缺陷源、缺陷检测活动等可使用数据字典的形式存储。
图5 软件缺陷数据库结构
2.7 软件缺陷分析
在软件缺陷管理流程中,当发现被测试的软件存在不能正常完成的功能缺陷时,可通过软件3层结构的关系数据库,检索到功能模块、库函数,形成软件缺陷关系数据库。通过分析单个项目多项软件缺陷和多个项目软件缺陷,可以形成功能模块和库函数软件缺陷分布,并针对出现缺陷的频度进行缺陷密度计算,优先解决软件缺陷密度高的软件错误。通过分析不同阶段的缺陷分布情况,可以挖掘在测试方面的环境条件是否得当,改善测试条件,挖掘潜在的软件缺陷。通过分析软件缺陷严重等级的分布情况,可以了解软件全局性的安全等级。可通过缺陷趋势图进行软件缺陷趋势分析,判定软件质量的发展趋势。通过分析软件缺陷,绘制软件影响域分布图,确定软件在功能性、可靠性、易用性、可维性等方面的适用性能,判定用户对软件的满意度等级。通过计算测试打回和软件修改提交时间,可得出软件平均修复时间,从而计算出软件修复成本。
通过软件缺陷管理,将软件开发、测试过程中软件缺陷信息完整收集到缺陷数据库,对缺陷数据库中的数据进行大数据分析,可对液压支架电液控制
系统软件开发质量、效率、成本进行提升与评价。
通过分析软件缺陷等级对应的缺陷数量,可确定软件缺陷分布密度,也可以按照软件缺陷发生的频次确定软件功能、功能模块的缺陷密度。通过对软件缺陷类别进行加权平均,还可以对区域性项目按照GIS方式进行软件缺陷安全度评价,按照地图位置标记项目热点,点击项目热点可以查看项目的版本号、缺陷类型、数量、功能模块分布和具体内容;可以采用不同颜色来表示区域项目软件的安全等级。
通过描绘软件缺陷数量的变化过程,可得出软件缺陷的发展趋势[19],如图6所示。可看出随着液压支架电液控制系统的不断推广应用,软件功能由简单到复杂的发展过程中,软件缺陷由少到多;随着软件成熟度的不断提高与软件缺陷管理与控制,软件缺陷又呈现出逐步下降的趋势。
图6 软件缺陷变化趋势
通过对液压支架电液控制系统软件进行缺陷管理,实现了软件缺陷的跟踪管理及软件问题的快速定位,提高了软件缺陷排除的及时性,减少了软件的小版本数量,大大降低了A级软件缺陷数量,提高了软件的安全性能;通过GIS软件管理平台对整个液压支架电液控制系统软件缺陷进行跟踪管理,实现了对软件质量的综合管理,降低了液压支架电液控制系统软件的安全风险;通过分析软件缺陷在功能模块、库函数上的分布密度,可以全面掌握软件成熟度,提高了软件开发质量及软件测试效率。
[1] 闫振兴.基于软件缺陷分类标准与分析技术的软件缺陷管理系统应用与研究[D].上海:华东师范大学,2010:1-3.
[2] 田清.软件敏捷开发过程Scrum中的缺陷管理方法研究及应用[D].重庆:重庆大学,2010:2-3.
[3] 王德胜,宫云战.论软件缺陷[J].计算机应用研究,2008,25(12):3531-3533.
[4] 张雅芬.基于缺陷度量的软件测试量化管理研究与实现[D].南昌:南昌大学,2012:13-14.
[5] 颜真.基于模糊支持向量回归的软件缺陷预测[D].北京:北京理工大学,2010:2-6.
[6] 贾静琳.软件缺陷管理系统[D].天津:天津大学,2013:14-16.
[7] 陈艳.软件缺陷管理技术研究与实现[D].成都:电子科技大学,2014:24-30.
[8] 程全良.软件过程缺陷度量的研究与应用[D].北京:北京邮电大学, 2010:32-35.
[9] 陈媛.基于数据挖掘的软件缺陷预测技术研究[D].北京:中国科学院研究生院,2012:17-20.
[10] 李冰.基于功能点的缺陷度量在嵌入式软件开发过程中的应用[D].长沙:湖南大学,2011:34-35.
[11] 田志垒,王洁.软件缺陷管理技术在测控系统软件中的应用实践[J].遥测遥控,2006,27(6):6-11.
[12] 林璐.对软件测试中的缺陷管理的研究和实践[D].上海:复旦大学,2011:26-38.
[13] 夏慧,卞卫敏,孔震.基于PI3000平台的软件缺陷管理系统的应用实践[J].计算机与现代化,2010 (5):40-43.
[14] 刘冰川.软件缺陷分析与管理系统的设计与实现[D].哈尔滨:哈尔滨工业大学,2013:30-36.
[15] 张巍.软件缺陷库管理系统[D].长春:吉林大学, 2015:15-36.
[16] 魏国兴.基于CMM的软件过程管理系统的设计与实现[D].北京:北京邮电大学, 2010:36-64.
[17] 司倩然,闫国英.航天测控软件缺陷管理与分析系统设计[J].飞行器测控学报,2010,29(6):26-29.
[18] 王昕.基于工作流的软件缺陷管理系统的设计与实现[D].上海:上海交通大学,2011:26-29.
[19] 兰山,戴凌宸.基于软件缺陷分类与量化分析的缺陷管理研究[J].技术与市场,2011,18(8):13-16.
Software defect management of electro hydraulic control system of hydraulic support
NIU Jianfeng1, BAI Yongsheng2, GUO Dinghe3
For software defect problem of electro hydraulic control system of hydraulic support, software structural features of the electro-hydraulic control system were analyzed from software testing method, software defect management framework was built, software testing schema was determined, and database structure of software defects database and software defect management flow were designed, so as to analyze software. The application shows that software quality and development efficiency of the electro-hydraulic control system are improved through software defect management.
hydraulic support; electro hydraulic control system; software defect management
1671-251X(2016)11-0067-05
10.13272/j.issn.1671-251x.2016.11.016
牛剑峰,白永胜,郭丁和.液压支架电液控制系统软件缺陷管理[J].工矿自动化,2016,42(11):67-71.
2016-06-23;
2016-09-23;责任编辑:李明。
山西省煤基重点科技攻关项目(MJ2014-08)。
牛剑峰(1961-),男,山西太原人,高级工程师,现主要从事煤矿综采工作面自动化系统的研究工作,E-mail:njf@tdmarco.com。
TD355.4
A
时间:2016-10-28 16:31
http://www.cnki.net/kcms/detail/32.1627.TP.20161028.1631.016.html