我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:2019跑狗图高清彩图 > 运行剖面 >

影响软件可靠性的因素

归档日期:08-06       文本归类:运行剖面      文章编辑:爱尚语录

  影响软件可靠性的因素_电子/电路_工程科技_专业资料。软件开发与应用 信息与电脑 China Computer&Communication 2016 年第 5 期 影响软件可靠性的因素 周子涵 (广西信息安全测评中心,广西 南宁? 530031)

  软件开发与应用 信息与电脑 China Computer&Communication 2016 年第 5 期 影响软件可靠性的因素 周子涵 (广西信息安全测评中心,广西 南宁? 530031) 摘?要: 影响软件可靠性的因素多种多样,主要因素有软件自身特性、人为因素、软件工程管理等,这些因素具体 还可分为环境因素、软件是否严密、软件复杂程度、软件是否易于用户理解、软件测试、软件的排错与纠正以及软件可 靠性工程技术研究水平与应用能力等诸多方面。 关键词:软件可靠性;软件结构;运行剖面;可靠性测试 中图分类号:TP311.52? ? 文献标识码:A? ? 文章编号:1003-9767(2016)05-094-02 1?软件可靠性基本概念 软件可靠性是指在规定条件和规定时间下,软件不引起 系统失效的概率,该概率是系统输入和系统使用的函数,也 是软件中固有错误的函数,系统输入将确定是否触发软件错 误(如果错误存在)。 2.3 软件的组织结构 软件的逻辑结构较为复杂,不同于硬件形式单一,软件 是动态变化的,软件组织结构的复杂性对其可靠性影响很大。 软件组织结构越复杂,其中出现错误的可能性就越大,软件 可靠性就越低,即软件复杂度是导致软件不可靠的一个重要 因素。 复杂度主要是指软件内部组织结构,它与软件规模是有 本质区别的。一个软件可能很大但不一定很复杂,其内部各 个子模块结构统一并且易于理解,则即使这个软件再大,却 也并不复杂;而一个小型软件可能因为逻辑复杂,牵涉面广, 通过各种途径方可克服困难从而变得很复杂,例如一个铁水 凝固过程的数值模拟软件,它其实很小,只需要计算一个单 位的铁水在特定环境下自然冷却时,从外向内或从内向外各 个单位点的温度随时间的变化曲线,但是它很复杂,需要考 虑的因素极多,如时间、位置点、外界环境、铁水成分等。 因此,为了保障软件可靠性,还需要针对不同的因素有可能 给软件造成的影响,综合这些因素对软件进行深入测试。 2.4 软件运行剖面 软件运行剖面通常被用来定义和描述软件运行环境,指 明软件运行所需要的环境,用户初始输入状态会影响系统状 态。软件运行剖面可为软件测试提供定量依据,可定量描述 软件的使用方式。软件运行剖面作为软件开发人员实施软件 开发与设计的指南针,不仅能有效提高软件生产率,加快软 件研发进度,也能有效保证软件可靠性。软件运行剖面是由 软件可执行的操作及其发生的概率构成的集合,简言之,运 行剖面即使用软件时的不同路径。运行剖面越多,则潜伏在 软件内部的被遗漏的点或者考虑不周全的问题就越多,这也 成为了影响软件可靠性的重要因素之一。 运行剖面是面向用户的,也是面向过程的,一般想要直 2?软件可靠性影响因素 影响软件可靠性的因素较多,小到开发人员敲错的一个 字符,大到软件开发设计过程中的开发方法和结构组织等诸 多方面。直到今天,对于其中绝大多数因素和软件可靠性之 间的本质联系和定量关系依然无法确定,并且这些众多因素 与软件可靠性之间的定性关系也无法确定。软件中存在的各 种缺陷以及错误是导致软件不可靠的最根本原因,而这些缺 陷和错误,不仅包括软件本身特性和人为因素,还包括软件 工程管理, 即软件规模、 软件开发设计、 软件测试等诸多因素。 现就其主要因素进行简单介绍。 2.1 软件开发人员水平 开发人员能力与经验对于软件开发过程中编程的质量有 着最为直接的影响。尽管现在很多软件开发企业对软件开发 过程中的编程管控方法很到位,但更多地依赖于开发人员的 个人编程能力,而个人编程习惯、用句风格、框架组合等都 与软件开发的可靠性密不可分。 2.2 软件规模 随着软件规模不断增大,其复杂度随之增加,隐藏在软 件中的潜在问题可能会更多,可靠性问题也越来越明显,因 此,软件规模是影响软件可靠性重要因素之一。实践表明, 软件错误率大小与软件规模大小并非一定是正向关系,由于 环境和编程语言等多方面的不同,从而使得所实现的软件在 统计上会存在差异。 作者简介:周子涵(1988-),女,广西北海人,在职研究生,初级工程师。研究方向:电子信息工程。 —94— 2016 年第 5 期 信息与电脑 China Computer&Communication 软件开发与应用 接获得运行剖面十分困难,通常采用金字塔模型来构造软件 运行剖面,这里所说的金字塔模型即为自顶向下逐级细化的 方法:首先确定客户剖面,客户剖面的确定是软件运行剖面 建设的基础;接着自顶向下把用户使用软件的输入空间划分 为系统模式剖面,然后再把系统模式剖面划分为功能剖面, 最后把功能剖面划分为运行剖面。 即便是同一软件,在同一开发环境和在目标环境中,由 于运行剖面的不同,其可靠性的表现也会大不相同。假设某 软件的输入域分为 R 和 S 两部分,S 中输入恒激活软件缺陷, R 中输入恒不激活软件缺陷。如果运行剖面输入域只包含 S, 软件始终出现故障,如果没有容错措施,则导致软件失效, 软件可靠性恒为 0;如果运行剖面输入域不包含 S,软件始 终不会出现故障,其可靠性恒为 1。 2.5 软件开发方法 软件开发方法多种多样,如结构化法、面向对象的方法、 形式化法,还包括多种方法的组合。同一个软件可以用不同 的方法进行开发,但是并无一个定量或定性的标准来评判某 个软件开发方法的好坏,因为不同开发方法设计出来的软件 各自有其适用的场合以及范围,但是选择不同开发方法将会 在该项目的后续进程中对最终产品的可靠性可能会产生不同 影响。如结构化法简单实用、技术成熟、应用广泛,但不适 合规模较大或者复杂程度较高的项目,难以解决软件的重用 问题,将会导致软件代码重复率高,有一个地方需要改动, 就会出现编码不一致的情况,从而使软件维护变得复杂,增 加了软件可靠性的风险。目前,较为流行的面向对象的软件 开发方法也并不完美,有些软件在开发阶段的划分上并不十 分清晰,在分析设计阶段和实现阶段可能会有重叠,这也会 增加软件可靠性的风险。

本文链接:http://myclayclub.com/yunxingpoumian/301.html