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

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

3天内不再提示

基于知识和数据挖掘的软件可靠性预测模型搭建

电子设计 来源:微型机与应用 作者:蒋永辉,吴洪丽, 2020-06-16 08:00 次阅读

从20世纪70年代起,软件可靠性预测技术大体上分为静态和动态两种。预测技术(forecasting techniques)指人们运用现代科学技术手段,事先依据一定方法,对自己的活动可能产生的后果及客观事物的发展趋势作出的科学分析。即利用统计资料,借助数学工具,分析因果关系,进行预测。数量分析预测具体方法很多,如趋向外推法和回归分析法等。趋向外推法即时间序列分析法,它是根据历史和现有的资料推测发展趋势,从而分析出事物未来的发展情况的。它把在一定条件下出现的事件按时间顺序加以排列,通过趋势外推的数学模型预测未来。时间序列就是把统计资料按发生的时间先后进行排列所得到的一连串数字。时序分析是研究预测目标与时间过程之间的演变关系。因此它是一种定时的预测技术。回归分析法是从事物变化的因果关系出发来进行预测。回归分析也称相关分析,是研究引起未来变化的各种客观因素的相互作用、指出各种客观因素与未来状态之间统计关系的方法。这些现有的软件可靠性预测模型一般只是对与缺陷有关的度量数据和对软件可靠性测试后的失效数据进行分析,而忽略了软件开发过程中大量有用信息

1 、软件过程与软件可靠性

软件过程可以定义为人们用来开发和维护软件以及相关产品(如工程计划、设计文档、规章、检测事例及用户手册)的一组活动、方法、实践及转换。软件可靠性是软件系统在规定时间内及规定的环境条件下,完成规定功能的能力。在ISO/IEC 9126的软件质量特性表述中,软件可靠性(Software Reliability)是软件质量的一个重要特性。用软件系统规模越做越大越复杂,其可靠性越来越难保证。应用本身对系统运行的可靠性要求越来越高,在一些关键的应用领域,如航空、航天等,其可靠性要求尤为重要,在银行等服务性行业,其软件系统的可靠性也直接关系到自身的声誉和生存发展竞争能力。 特别是软件可靠性比硬件可靠性更难保证,会严重影响整个系统的可靠性。在许多项目开发过程中,对可靠性没有提出明确的要求,开发商(部门)也不在可靠性方面花更多的精力,往往只注重速度、结果的正确性和用户界面的友好性等,而忽略了可靠性。在投入使用后才发现大量可靠性问题,增加了维护困难和工作量,严重时只有束之高阁,无法投入实际使用。

2、 影响软件可靠性的因素

在对13个公司的调查结果进行分析后,提出了基于经验数据的影响软件可靠性的32个因素。这32个因素贯穿了软件开发的各个阶段,其中最重要的是软件复杂度、程序员的技能、测试工作量、测试覆盖率、测试环境和程序规格说明书的改动频率6个因素。指出了影响软件可靠性的主要因素包括: 需求的变更、开发团队的经验、设计的变更、编码和测试、新技术、开发语言以及工具的使用、管理经验、高层管理的支持力度、度量和模型的使用情况[10]。参考文献[11]认为开发的复杂程度、代码重用的比率以及软件开发团队的经验和受教育程度是影响软件可靠性的主要因素。指出影响软件可靠性的因素可分为两大类:缺陷引入和缺陷检测。缺陷引入又由16个因素决定,而缺陷检测由17个因素决定。这些因素中,与过程有关的因素包括开发人员的能力、领域知识、团队协作、团队结构、管理能力、程序复杂度、沟通能力、项目管理、过程管理、变更控制、文档质量、需求质量、开发环境、计划偏移度、开发过程成熟度、产品调研等。软件过程度量的三大类基本内容分别是质量、时间和资源,质量表示在不同的过程运作阶段过程产品和过程执行有关的质量信息(例如软件问题及其生命周期,过程执行的偏离度等),时间表示过程运作中各项活动的计划时间和实际时间,资源表示在过程运作中不同阶段活动消耗的物资资源和人力资源。

3 、软件可靠性预测度量体系

在已有的调查研究基础之上,构建了基于软件过程的软件可靠性预测度量体系。该体系模型共划分为6个层次:影响软件可靠性因素、影响软件可靠性因子、特性、子特性、度量以及度量元。其层次结构如图1所示。其中,软件可靠性取决于影响软件可靠性因素的性能如何,而对软件可靠性因素的评价表现在多个可靠性因子,不同的可靠性因子的影响基于不同的性能特性,特性可能有子特性,通过度量来评价可靠性因子的特性和子特性,同时度量又有多种数据表现形式。

基于知识和数据挖掘的软件可靠性预测模型搭建

对软件可靠性的预测,确定了6个影响软件可靠性的主要因素,分别是:一般性因素、稳定性因素、过程依从性、开发文档、编码和人力资源因素。软件测试因其产生的数据是软件失效后的数据,更多的用于软件可靠性的动态预测,故此处不予以考虑。

4、 基于软件过程的软件可靠性预测

一个过程稳定的软件企业,其软件产品的可靠性也是稳定的。通过对影响软件可靠性的过程因素的分析,确定了上述的度量和度量元。而软件企业若考虑从历史数据中得到关于以前项目的过程等信息,就必须拥有过程数据库。过程数据库的建设需要人员和软件工具的支撑,如图2所示。该过程数据库建设模型结合前述分析,并综合考虑了软件度量技术和CMM/CMMI中的度量技术后抽象而成。

根据企业的测量定义,工作人员可以知道应该采集什么数据,并通过数据采集工具包使测量数据进入过程数据库系统;另外工作人员也可以通过问题跟踪软件包(例如需求跟踪系统)直接使测量数据进入过程数据库。过程数据库中除存储了影响软件可靠性的因素的度量值外,还应包含理解和解释实际度量数据、评价其合理性和适用性所需要的信息和索引,以及可靠性分析的标准、模型和基线值、优先级等。

通过对过程数据库里的基本测量项数据进行分析计算,得到关于以往项目的软件可靠性相关的度量,此度量数据经过评估标准和预测模型分析,形成当前软件产品的可靠性分析预测报告。

基于知识和数据挖掘的软件可靠性预测是现在和未来几年研究的方向。本文首先分析讨论了软件过程与软件可靠性的关系,然后分析了影响软件可靠性的因素,最后讨论了建立基于软件过程数据的过程数据库,并抽象出运作模型,为后续的基于知识和数据挖掘的软件可靠性研究奠定数据基础。软件可靠性预测中一些其他重要问题,如软件可靠性预测环境的构建、软件可靠性预测模型的选择以及定量评价数据的验证等问题,还有待进一步探讨。

责任编辑:gt

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

    关注

    69

    文章

    4781

    浏览量

    87163
  • 数据库
    +关注

    关注

    7

    文章

    3766

    浏览量

    64277
  • 测量
    +关注

    关注

    10

    文章

    4774

    浏览量

    111136
收藏 人收藏

    评论

    相关推荐

    可靠性分析第一步】构造可靠性模型

    知道这些基本元器件、部件的可靠性和由其构成的系统的可靠性的关系。   描述基本元器件、部件的可靠性的基本数据可由生产厂家提供、或通过试验获得、或通过实际观察的统计
    发表于 09-03 15:47

    可靠性设计分析系统

    多,试用后感觉还比较顺手,基本上我们平时用到的可靠性设计分析功能,都包括了,可以免费下载试用。这个系统分设计分析、仿真、试验、数据应用4大子系统,功能涵盖 可靠性预计(预测)、
    发表于 12-08 10:47

    单片机应用系统的可靠性可靠性设计

    单片机应用系统中,CPU 运行的是事先固化在单片机的程序存储器的软件.用户无法更改和输入新的程序。这就避免 r 外来计算机病毒的侵袭,其可靠性表现在固化软件本身的可靠性和程序存储器
    发表于 01-11 09:34

    软件可靠性数据预处理研究

    软件可靠性模型是根据与软件可靠性相关的数据,以统计方法或模糊方法对
    发表于 11-22 15:20 28次下载

    基于软件过程的软件可靠性预测运作模型

    提出了基于软件开发过程数据,构造用于可靠性预测的过程数据库,并分析了此数据库的内容与运作
    发表于 11-30 15:04 0次下载

    考虑软件补丁的软件可靠性模型

    考虑软件补丁的软件可靠性模型
    发表于 01-25 19:16 0次下载
    考虑<b class='flag-5'>软件</b>补丁的<b class='flag-5'>软件</b><b class='flag-5'>可靠性</b><b class='flag-5'>模型</b>

    基于灰色神经网络对软件可靠性模型的研究

    软件可靠性软件工程的一个重要的研究课题。软件可靠性模型可以
    发表于 05-25 17:14 32次下载
    基于灰色神经网络对<b class='flag-5'>软件</b><b class='flag-5'>可靠性</b><b class='flag-5'>模型</b>的研究

    提高软件可靠性模型精度的新方法

    本内容介绍了提高软件可靠性模型精度的新方法,希望对大家学习上有所帮助
    发表于 05-26 15:50 0次下载
    提高<b class='flag-5'>软件</b><b class='flag-5'>可靠性</b><b class='flag-5'>模型</b>精度的新方法

    软件可靠性模型综合预测研究

    针对 软件可靠性 工程中单个经典模型局限性的问题,Lyu等人提出了综合的思想,即将多个经典模型的优势结合起来。对软件
    发表于 05-30 17:10 10次下载
    <b class='flag-5'>软件</b><b class='flag-5'>可靠性</b>多<b class='flag-5'>模型</b>综合<b class='flag-5'>预测</b>研究

    基于GSPN的机载构件化软件可靠性评估

    利用AADL语言对机载构件化软件系统体系结构进行可靠性建模,实现AADL可靠性模型到广义随机Petri网(GSPN)可靠性计算
    发表于 11-05 12:06 7次下载
    基于GSPN的机载构件化<b class='flag-5'>软件</b><b class='flag-5'>可靠性</b>评估

    网络可靠性预测模型

    网络可靠性作为系统安全的最基于要求之一,是所有网络信息系统的建设和运行目标。针对采用BP神经网络对网络可靠性建立预测模型,其算法存在收敛速度慢、网络泛化能力差,影响
    发表于 11-15 15:22 8次下载
    网络<b class='flag-5'>可靠性</b><b class='flag-5'>预测</b><b class='flag-5'>模型</b>

    基于灰色Elman神经网络软件可靠性预测模型

    针对当前软件可靠性预测模型在随机和动态较强的可靠性
    发表于 12-08 16:57 0次下载
    基于灰色Elman神经网络<b class='flag-5'>软件</b><b class='flag-5'>可靠性</b><b class='flag-5'>预测</b><b class='flag-5'>模型</b>

    基于软件可靠性增长模型研究

    软件可靠性增长模型SRGM(software reliability and growth model)是目前建模可靠性及其过程提高的重要数学工具,对
    发表于 12-26 17:15 0次下载

    医疗设备研制中的可靠性设计方法与分析

    可靠性模型就是建立可靠性框图和数学模型,通过模型定量定性评估可靠性各环节的
    的头像 发表于 04-14 14:25 4255次阅读
    医疗设备研制中的<b class='flag-5'>可靠性</b>设计方法与分析

    集成电路可靠性预测

    具有良好的可靠性是功能安全的 3 大支柱之一,因此可靠性预测非常重要,如果没有其他方法可以允许在不同架构之间进行比较,但 IEC 61508 确实对每小时危险故障概率有强制值,为了满
    的头像 发表于 02-07 11:29 1504次阅读
    集成电路<b class='flag-5'>可靠性</b><b class='flag-5'>预测</b>