您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 会议纪要 > XXXX-会议-软件可信性属性及其度量研究
基金项目:国家自然科学基金(90718042,70501030,70621001)、北京市自然科学基金(9073020)作者简介:张悦今(1982),女(汉族),籍贯辽宁,中国科学院虚拟经济与数据科学研究中心,博士研究生,研究方向:数据挖掘,知识管软件可信性属性及其度量研究张悦今1,张玲玲1,2,刘莹1。3,石勇1(1.中国科学院虚拟经济与数据科学研究中心,北京100190;2.中国科学院研究生院管理学院,北京1001903.中国科学院研究生院信息科学与工程学院,北京100190)摘要:随着计算机应用的不断发展,软件可信性问题日益受到全球的普遍关注,软件的可信性也就不再局限于安全性,而是包括可靠性、可用性、可维护性等质量特性,但是相关研究都局限于独立的可信属性,本文在已有研究的基础上,提出了一个综合的可信性度量模型,综合考虑了5种得到普遍认可的可信属性,并采用模糊综合评价的方法来评价软件的可信属性。关键字:软件可信性,可信属性,模糊综合评价1引言随着计算机应用的不断发展,软件已渗透到国民经济和国防建设的各个领域,尤其是针对一些如航空航天、军事、金融等大规模的网络分布式系统,软件在其中起到了至关重要的作用。然而,软件并不总是按照人们期望的方式工作,软件常常发生各种故障和失效,对人们的工作生活带来不利的影响,甚至造成巨大的损失。例如,1996年6月欧洲Ariane五型火箭首发失败都是由软件失效导致的[1]。80年代末以及90年代初国际上出现了以围绕软件产品的安全性为主的关于软件可信性的讨论和研究,其中由美国多家政府和商业组织参与的TSM(可信软件方法学)项目于1994年将软件可信性扩展定义为“软件满足既定需求的信心度”,阐述了可信性对管理决策、技术决策、以及既定需求集合的高度依赖性[2]。近10年来,互联网技术的发展催生了信息技术的革命,也使得软件的应用领域极度扩展。然而,在互联网环境下,信息的交互、共享、协同,泄漏、威胁、破坏等又导致了大量的“不可信”的因素,软件的可信性也就不再局限于安全性,而是包括功能性、可靠性、可用性、有效性、可维护性、可移植性等质量特性。可信性度量是可信软件管理的基础,与传统工程技术相比,软件可信性度量在度量方法、度量模型方面还不够成熟。传统工程技术往往能在进行产品生产之前,通过建立模型进行演算、测试和验证,从而保证产品生产出来后具有期望的性质。软件工程与传统工程技术相比,目前尚不具备类似的理论基础。综观已有的程序理论,多数集中在面向程序正确性,或者若干理论拼接,不足以作为软件可信性质的统一基础。这在技术层面上体现在两个方面,一方面,对于单个的可信性质,分析、设计和保证该性质的技术常常是分离的,存在语义的沟壑。例如,对反应式系统的可靠安全性,有失效模式和影响分析技术、容错计算、调度、形式化验证等技术,但这些技术仍是各自分离的,没有形成一个集成技术框架。另一方面,对多个可信性质,这些性质之间对设计决策会造成冲突,例如,容错性质往往会影响到实时性。目前的程序理论未能作为指导性质的融合、折衷的基础。因此,本文在总结已有对可信属性及其度量研究的基础上,提出了一个综合的可信属性度量指标体系及度量方法,对不同软件的可信等级进行评价和度量。该模型不仅对软件的可信性给出一个评价,而且对每个可信属性也给出了评价结果。一旦影响该软件的关键属性被识别出来,软件的可信性就能得到有效的改进。1262.1软件可信性自上个世纪80年代以来,国际上围绕软件可信性的定义、可信属性、改进软件可信性的方法进行了大量的研究开发工作。在此之前,人们对软件可信性的认识存在较大的分歧。美国国家计算机安全中心NCSC倡议的可信计算机系统评价准则中仅将软件可信性定位在安全性这个唯一的质量属性上[3]。Parnas等人的研究则把软件可信性定义为为降低错误率的软件工程技术(如加强测试、评审、检查等)的适用程度[4]。由美国多家政府和商业组织参与的TSM(可信软件方法学)项目于1994年将软件可信性扩展定义为“软件满足既定需求的信心度”[2],该定义进一步阐述了可信性对管理决策、技术决策、以及既定需求集合的高度依赖性,因此在本研究中也才采用该可信性定义。在对可信属性的研究中,早期比较有成效的是德国达姆施塔特大学的计算机科学和工程系的数据库和分布式系统组(DatabaseandDistributedSystemsGroup)中有一项“可信计划”(Trustedproject)[5],致力于解决与可信分布式系统相关的许多问题。他们认为,可信性是比任何其它特征都具有综合性的一个性质,因为可信系统必须具有下述属性:端到端安全(endtoendsecurity),可用性(availability),可靠性(reliability),实效性(timeliness),一致性(consistency),可预测性(predictability),可扩展性(scalability)。此外,其他的一些研究者对可信性所包含的属性也有不同的见解,其中,大部分的研究者认为可信性应包括可用性(Availability),可靠性(Reliability),防危性(Safety),安全性(Security)(包括保密性(confidentiality)和完整性(integrity)),可维护性(Maintainability)等属性,如表1所示。表1软件可信性所包含的属性可信性属性描述参考文献可用性当用户在特定的环境中使用产品完成具体任务时,交互过程的有效性、交互效率和用户满意度。[2],[5],[6],[7],[8],[9],[11],[12],[13],[14],[16],[17]可靠性在规定的条件下,在规定的时间内,软件不引起系统失效的概率。[2],[5],[6],[7],[8],[9],[12],[13],[14],[15],[16],[17]防危性表示系统在给定的时间内不发生灾难事故的能力。[8],[9],[13],[14]安全性系统一旦在发生故障而失效时,使其自身以及由此造成相关环境的损坏(或损失)保持在一个可以接受(或者是预先规定)的范围之内的概率。[2],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],[17]可维护性系统具有可修复和升级的能力。[6],[7],[8],[9],[10],[12],[13],[14],[17]2.2软件可信属性2.2.1可用性(Availability/usability):可用性是指当用户在特定的环境中使用产品完成具体任务时,交互过程的有效性(Effectiveness)、交互效率(Efficiency)和用户满意度(Satisfaction)[18]。其中:(1)有效性是指用户完成特定任务时所达到的准确程度(Accuracy)和完整程度(Completeness)。(2)效率是指用户完成特定任务的准确程2.软件可信性及可信属性127度和完整程度与所用资源(如时间、精力)之间的比率。(3)满意度指用户在使用产品过程中具有的主观满意和接受程度。除了有效性、效率、满意度以外,很多研究者认为可用性还应包括以下要素[19],[20],[21]:(4)易学性:产品是否易于学习;(5)易记性:用户搁置某产品一段时间后是否仍然记得如何操作;(6)出错频率和严重性:操作错误出现频率的高低及其严重程度如何。2.2.2可靠性(Reliability)1983年,IEEE计算机学会对“软件可靠性”这一术语作了专门的定义[22]:在规定的条件下,在规定的时间内,软件不引起系统失效的概率,该概率是系统输入和输出的函数,也是软件中存在的缺陷的函数;系统输入将确定是否会遇到已存在的错误(如果错误存在的话)。在规定的时间周期内,在规定的条件下程序执行所要求的功能的能力。在不同的发展阶段以及人们对系统可靠性的关注的角度不同产生了不同的描述系统可靠性的参数,主要有,可靠度,MTTF、MTTR、MTBF,失效率,失效强度等。(1)可靠度[23]可靠度参数(R(t))主要从一个系统能够正常工作的时间长短来描述系统的可靠性。它定义为:系统在t0时刻正常工作的条件下,在[t0,t]时间区间内正常工作的概率,R(t)=P{Xt}。(2)失效率、失效强度[24]:失效率是指在t时刻尚未发生失效的情况下,在t时刻以后,单位时间内发生失效的概率。失效强度则是指失效数均值随时间的变化率,即假设软件在t时刻发生的失效数为N(t),显然N(t)是一个随机数,且随时间t的变化而不同,即{N(t),t0}为一随机过程。设u(t)为随机变量N(t)的均值,即有u(t)=E[N(t)],则()()duttdtλ=为t时刻的失效强度。根据可靠性需求的不同,Butler&Finelli把软件系统分为3类:高可靠性需求的软件系统:失效率10-7失效/小时;中等可靠性需求的软件系统:失效率在10-3~10-7失效/小时之间;低可靠性需求的软件系统:失效率10-7失效/小时[25]。(3)MTTF、MTTR、MTBF[26],[27]MTTF、MTTR、MTBF是3个简化的可靠性参数。MTTF(MeanTimeToFailure)即平均故障前时间,1()MTTFtλ=。MTTR(MeanTimeToRepair)即平均维修时间。MTBF(MeanTimeBetweenFailure)为平均故障间隔时间,它们三者之间的关系如图1所示。图1MTTF、MTTR、MTBF关系由图1可知:MTBF=MTTR+MTTF2.2.3防危性(Safety)防危性表示系统在给定的时间内不发生灾难事故的能力。描述系统防危性的量称之为防危性参数,常用的软件防危性参数有软件事故率(SoftwareAccidentRate)、平均软件事故间隔时间(MeanTimeBetweenAccident)、软件防危可靠度(SoftwareSafetyReliability)、软件出事率(SoftwareLossRate)[24]。(1)软件事故率软件事故率是软件安全性的一种基本参数。其度量方法为:在规定的条件下和规定的时间内,软件的事故总次数与寿命单位总数之比。记为PA。(2)平均软件事故间隔时间软件平均事故间隔时间是软件事故率的倒数。记为TBA,有TBA=1/PA。(3)软件防危可靠度由于事故不一定导致严重的后果,规定导致一定灾难性损失以上的事故为安全性事故。软件防危可靠度是专门针对安全性事故的。其MTBFMTBFMTBF128度量方法为:在规定的条件下和规定的时间内,软件执行任务过程中不发生安全性事故的概率,记为RS(t),即,对规定的时间T0,RS(t)=p(t≥T)。(4)软件出事率软件出事率定义为RL(t)=1-RS(t)。(5)非安全失效的平均时间(MTTUF),非安全失效平均间隔时间(MTBUF)防危性评估指标与可靠性评估指标之间具有一定的对应关系,设C为关键软件失效后的修复率,防危性评估指标与可靠性评估指标之间有下面二式成立:1MTTFMTTUFC=−,1MTBFMTBUFC=−2.2.4安全性(Security)安全性的定义就是系统一旦在发生故障而失效时,使其自身以及由此造成相关环境的损坏(或损失)保持在一个可以接受(或者是预先规定)的范围之内的概率。换言之,当系统由于某个故障而失效时,不至于造成重大的或灾难性的损坏(损失)[28]。安全性包括保密性和完整性两个属性[29]。保密性(confidentiality)表示未经访问许可禁止访问系统敏感数据的能力。完整性(integrity)保持数据一致性的能力。2.2.5可维护性(Maintainability)可维护性即系统具有可修复和升级的能力。一般认为,影响软件可维护性的因素主要有:可理解性、易分析性、易修改性、可移植性、稳定性、易测试性和依从性等几个子特性。它们分别定义如下[10]:(1)可理解性:程序便于用户理解的难易程度。(2)易分析性是软件为了诊断缺陷或故障原因或对需修正的部分进行定位所需努力的一种属
本文标题:XXXX-会议-软件可信性属性及其度量研究
链接地址:https://www.777doc.com/doc-901529 .html