zoukankan      html  css  js  c++  java
  • 他山之石:软件质量鉴定问题的初步研究

    本文 主要讨 论软件质量鉴定问题的有关内容 。 在一个包 含 有计算机 的系统工程 中, 软件质量鉴定工作是相当重要的 , 因为它影响 到系统可靠性等技术 指标的好坏。 所以 , 应高度重视并 认真研究 软件质量鉴定工作的方法等技术问题 。 软件是依赖于特定硬件条件下 的产品。 既然它是产品 , 也同硬 件设备一样具 有 质量问题 。 开展软件质量鉴定工作是确保整个系统性能的一个重要环节。 但软件质 量鉴定工作与硬件鉴定工作相比 , 有着许多不 同之处 , 其 技 术 难 度更大 , 更为复 杂。 本文结合所 内工 程特点 , 叙述并提 出了用于软件质量 鉴定工作 的初步方案。

    一、 软件质量鉴定工作的特点

    从软件开发过程来分析 , 最佳的质量鉴 定 ( 管理 ) 工作应贯穿 在 整 个 开发过程之 中 。 这 样 , 可 以早发现问题 , 早解决问题 , 所费时间及代 价均较小 。 许多软件的开发经 验 都已表明: 由于软件产品受到诸多因素的 影响 , 软件自身不可避免的都会存在或多或 少的错误 与缺陷 , 这也就形成了软件产品从 设计直至 运行阶段 , 都处于不断修改、 补充 和完善之 中的 特点。 这也就决 定了软件质量 鉴 定和质量 管理工作 必须 与软件开发工 作相 互 交叉 、 同步进行 。

    软件质量鉴定工作 所涉及的不仅仅是一 个软件本身, 还应包括软件功能 及使用、 结 构设计、 流程设 计、 调 试手段、 调试 内容和 调 试 数据等 文字性资料 。 软件应 在经过充分 调 试的基 础 上最后完 成质量 鉴定工作。 在 软件整个开发过程中 , 调试阶段 是 非 常 重要 的 , 调试的 目的不是 为 了 证 明软件的正确 性 , 而是为 了有效地、 更多地发现错误 , 寻 找软件实际功能与设计要求之 间的差距 , 以 便完善、 修改软件。 但 目前实际情况不是这 样 , 任何一位软件设计者都是为 了证明 自己 产品 的正确 而 有选择性的开展调 试工作 , 这 是造成软件质量鉴定工 作复杂、 困难的主要 原因 。

    二 、 软件质量鉴定工作的基础

    下面从软件开发 的四个阶段 ( 功能设计、模块设计阶 段、 编 码 阶 段、 调试阶段)来说明质量鉴 定工作所需 要 的 技 术基础。

    1 . 功能设计阶段

    这个阶段主要任务是: 根据系统总体要求, 进行各部分软件的功能分配和规划, 确 定系统内部各软件的联接 关 系 和 系统的输 人、 输出要求。 这一阶 段 内应出的 文件有:

    • 软件技术任务书;
    • 系统内软 件联接关系图 ;
    • 系统 输人、 输出与数据结 构要求说明书。

    2 . 模块设 计阶段

    模块设 计是指软件设计者根 据软件技术 任务书等文件 , 合理地组织、 安排各部分的 程序结构 , 所用资源 , 处理 优 先 顺 序等工 作 。 对于 涉及到几个部分或几个模块的信息 表示和 信息交换 问 题 , 是 研 究、 讨 论的重 点 。 这一 阶段需要完成的文件有:

    • 程序模块功能说 明书;
    • 程序模块 层次 和 信息处理 流程图;
    • 有关 信息表示和 信息 交换的 约定。

    3 . 编码设计阶段

    在这 个阶 段中, 设 计人 员利 用某种计算 机语言具体地实现上两 个 阶 段 所设计的内 容。 在这个阶 段 中应具有如 下文 件:

    • 程序模块 名、 变量名或文件名等一 览 表
    • 程序存贮区、 数据存贮区 、 中间结果 缓存区等计算机内存分配 表
    • 文件存贮结构和组织结构说明
    • 程序清单 和必要的文字注释

    4 . 程序调试阶段

    在这个阶段 , 软件设 计人 员要 完成调试 模块和各部分程序 , 发现错误 , 修改完善三 项工作 。 目的是 有效地 、 更多地发现错误 。 这个阶段的技术文件有:

    • 程序调试内 容 及 要 求说 明 书 ( 分机级 )
    • 软件联试大纲 ( 分系统、 系统级 )
    • 程序、 软件调试数据集,
    • 程序、 软件调试 ( 联试 ) 结果报告

    在实际工 程 中 , 以 上几个工 作阶段之间 不 可能有明确的时 间界限 , 往往会出现工作 交叉、 合并的 现 象。 但以上这 些文件是必需编制的。编制技术文件的 目的有四 个: 将已 确定 的方案用文字 固定下来 , 并遵守执行 , 帮助理解程序或软件的设计思路 , 特别在修 改、 扩充程序时 ; 做为技术资料归 档 , 以便 总结提高 ; 做为质量 鉴定工 作的依据。 但以 前设计人 员对这 个问题重 视不够 , 应该加以 克服。

    以 上各个阶段的各个文件对于软件质量 鉴定工作是十分必要的 , 也 是 鉴 定 内容之 一 。 只有在认真阅读各个文件的基础 上 , 才 可能 拟定 出一个有效的 、 全 面的软件考核方 法 , 才可 能对软件性能做 出 较 为 客观的评 价。

    三、 软件质量鉴定工作内容

    在质量鉴定 中, 随着软件使用环境和处 理对 象的不 同 , 所选取的衡量质量性能项 目 的数量与内容也是不 相同的。 所内设计人 员 开发 的 软件一般属于工程应用类软件; 考虑 到 工程应 用的特点 , 可以选用 如下七项指标 来评价软件质量。

    1 . 完整性

    一个软件或程序的完整性是指在各种正 常 与异常的运行 ( 信息与设备 ) 条件下 , 软 件或 程序都能保证 各种功 能 正 确 无误 的执 行 , 或都能克服异常条件的影响 , 保证软件 ( 程序 ) 执行 的连续可靠。

    实际上 , 一个软件或程序的完整性包括 了两个含义: 第一 , 在功能上 ( 按任务书要 求 ) 软件或程序是完整的 ; 第二 , 在各种条 件下 , 软件或程序的运行是可靠的。 所以 ,一个软件或程序的完整性应该是质量鉴定工 作的首 要内容。

    2 . 精度

    任何一个软件或程 序都是以某类或某种 信息 ( 数据 ) 为处理对 象, 那 么 这 些 信息 ( 数据 ) 取值的精确性 , 也就成为质量 鉴定 工作中的一项内容。 要求较高精度的 软件 , 往 往在程序运行时 间、 占用资源、 程序设计工 作量和 程序的 复杂性等 方 面 付 出一定的代 价。 所以 , 不 应盲目的追求高精度 , 应根据 工程的实际需要 来确定。 同时 , 精度指标从 另一个侧面反 映了软件或程序的可靠性问题 ( 信息 的可信度 ) 。

    3 . 运行效率

    一 个软件或程序的运行效率是由信息处 理的实时性 , 资源及设备的利 用 率 两 部分 组 合 而 成 的。 这 两者均以时 间值为衡量尺 度。 运行效率是软件质量鉴定 中应重点考核 的内容 。 一个软件或 程序的运行效率高低 , 直接反映了软件 ( 程序 ) 的总 体 设 计 水平 ( 如软件结构的组 织、 处理功能的安排 、 程 序优化、 人 员水 平和技巧 等 ) , 当然 , 运行 效率也 与硬软件开发 费用、 开发时间、 开发 难易程序等因素有关。 所以 , 不应对信息处 理实时性 和设备利用率提 出过高的要求 , 应 根据实际情况规定适当的指标。 这样 , 可 以 减少开发 费用和时 间 , 也为今后软件扩充留 有余量。 所内的大 部分工 程软件在信息处理 实时性方面要求较严 , 而对设备的利 用率问 题基本上不加考虑 。

    4 . 使 用操作

    软件或程序的使用操作问题也是软件质 量鉴定工作的内容之一。 软件使用操作主要 是衡量人 机关系 , 考核内容有: 人工操作是 否简洁方便 , 显示 内容是否清晰可辨 , 各种输人输出是否符合习惯和人 体 工 程 学的标 准 , 控制得序运行功能的强弱等。 软件使用 操作的难易程度会影响到软件的 应用效果和 寿 命 , 也是影响软件开发 成败的因素之一。 所以 , 为用户着想 , 设计出灵活简便的使用 操作方式 , 应 是软件开发中需认真执行的一 条设计原则 。

    5 . 易读性

    也称为可理解性。 这项指标是用来衡量 阅 读、 理解程 序的难易程度。 一个易阅读、 易理解的程 序 , 一定具有良好的、 简明的 程 序静态结 构和程序控制结构。 这样 , 在一些 必要的注释帮助下 , 其他人早可以很快的阅 读 、 理解程序的功能 、 基本 结 构 和 资源需 求 , 为程序修改和扩充提供了有用的信 J白 .。 当 然 , 一个易阅读的程 序不 一定是一 个高运 行效率的程序 , 两 者 存 在 着 一定的制约 关
    系。 所以 , 在软件总体设计时 , 应 根 据软件 整体质量要求来确定软件运行效率和易阅读性的具体指标。

    6. 可修改性

    一 个软件或程 序的可修改性包含静态可 修改和动态可修改两个方面。 静 态修改 一般 完成的是运 算、 输人 输出等操作的修改 , 而 动态修改是指在程序运行 中是否可以完成对 程序 中的某些控制参数或某个控制结构的修 改。 一 个程序具有可修改性是指在修改这 个 程序的某个局 部时 , 不 会影响程序其它 部分 或程序整体的执行顺序、 资源要求及功能操 作的正确性 。 否则 , 在完成某一处理程序的 修改时 , 必须要 对程序的其他部分做适当调 整 , 这 样的程序其可修改性是较差的。 由于 软件在它的整个生命期内 , 修改工 作是不可 避免的。 所以 , 可修改性也是软件设 计和软 件质量 鉴定中应重视的问题。

    7. 可扩充性

    一 个软件或程序的可扩充性与可 修改性 是两个不同的概念 。 可 扩充性是指软件或程 序在扩充功能时 是否便利 , 在 程 序 控 制结构、资源、 运算能 力、 模块层次 和接 口 关系 中是否留有余量。 具有 良好扩充性的软件应 在扩充功能 时 , 对 已有的程 序不做或少 做改 动 ; 否则 , 可能为了扩充功能而不 得不 重新设计整个程序。 可扩充性和可修改性都是为 了改进和完善软件或程序功能而提出的内容 不相同 的两个指标。 特别在一个新工程中, 可借鉴的软件设 计经 验很少 , 需要通 过工程 实践来总结、 提高 , 那么 , 设计出一 个具 有 良好的扩充性和修改性的软件 , 就可 以收到 事半功倍的效果。

    对于工程应 用类软件 , 以 上七项指标都 是较为重 要和需要认真对待的内容。 软件质 量鉴定工作应围绕着这几项指标开展考核 , 然后根据每项指标的具 体 等 级 进行综合评 价 。 有关每项指标的等级标准 和软 件评价问 题将在第六节 中讨论。

    四 、 软件质量鉴定的基本步骤

    虽然 , 开展软件质量鉴定工作存在着不 少的困难 , 但质量鉴定工作也有一定的工作 方法和工作步骤。 这里仅讨论 一些最基本的 步骤 , 供参考 。 说明一点 : 用于质量鉴定的 软件或程序必须 经过充分的调试 , 这是一基 本条件。

    1. 根据工 程进度 , 组成有软件设计人员 、系统总体人 员和其他相关人 员参加 的软 件鉴定小组。 小组成 员中应包含该工程的参 加者和非参加者。
    2. 根据软件设计人 员提供的软件和所 有技术资料 , 软件质量 鉴定小组应完成: 第 一 , 审查软件开发 各阶段 技 术 资 料是否完备 、 充分、 有效 , 软件是 否 经过 充 分调试 ( 从调试方法 、 数据及发现 的 错 误 数来评 价) ,是否具有鉴定资格 ; 第立 ,根据软件设计 任务书和 有关技术资料 , 确定该软件的各项 指标等 级和动态测试的 方法 、 条件 、 数据等。
    3. 先由小 组成员阅读软件清单 ( 具备 必要 的提 示或注 释 ) , 后由设计人员讲解 自 己设 计的 软件 , 并回答小 组 成员对 软件设计 思想 、 功能、 结构、 异常情况处理、 指令使 用等各方面提 出的质疑 , 小组成员负责对软 件的易读性 、 可修改性和可扩 充性做出评价。
    4. 模拟 软件正常运行 时所需的条件 , 对软件进行实际测试 , 评价软件的精度和运 行 效率 。
    5. 设置各种非 正常情况 , 考核软件功 能或操作是否出现了不应有的或不允许的运 行结果 , 评价软件的完整性。
    6. 由多人对软件进行各种使用操作 , 根据 感受对软件的使用 操作做出评价。
    7. 根据以 上各项指标获得的等级数 , 综合评价出该软件的质量等级 。 不 要把软件质量鉴定工 作看成很容易完 成的事情 。 实际上 , 以 上各个步骤中都包含 了很 多技术内容 , 每个步骤的实现都有多种 方法可 供选择。 在选择方法不当 时 , 会出现 软件质量鉴定不全面 、 不深入的情况 , 造成 工作上失误 , 甚至 经济上的损失 。 由于存在 着这种可能性 , 所以 , 国外软件行业十分重 视软件开发 技术和质量鉴定 技 术 的 研究工 作 , 积累了许 多经验 和成果。 学 习国外同行 的先进方法和技术 , 结合国内实际 , 大力开 展这方面的研究和应 用工作 , 是保证软件质 量 、 促进 软件行业 和市场发 展的 有效途径。

    五、 软件评价问题

    在完成各项指标的考核后 , 才可能综合的、完整的、 全 面的评价一 个 软 件 质量情况。在本文 第三节中已给出了衡量软件质量 的七项指标 , 这里主要 讨论各 项指标的 等级 标准和软件综合评价中应注 意的问题 。

    1 . 各项指标的 考核等级

    标准各项指标的等级设置 和 等 级 标 准见下表:

     

    考虑到工程 应用 类软件为特点 , 不 宜设 置过 多的等级和相 应的 标准。 由于软件应用 领域和应用 环境不同 , 没有必要要求 软件的 各项指标均达到一 级水平 ; 否则 , 在开发 经 费和开发 周期上都是不 可接受的。 所以 , 在 软件开发 初 期 , 就应根 据实际应 用需要 , 在 软件技术任务 书中初步下达软件各项指标应 达到的等级水平 , 并在质量鉴定阶段 , 复审 确定。

    2. 软件综合评价中应 注意的问题

    由于各种因素的限制或影响 , 决定了软 件各项指标不 可能 、 也不 允许 都具有一级水 平 , 所以 , 应选择并确定软件的主要指标项 和次要指标项 , 注重主要项是否达到或超过所要求的等级。

    • 随着应用坏境和应用对 象的变化 , 软 件主要指标项和次要 指标项也应调正 。
    • 评 价软件质量的关键在于 综合处理 , 而 依据是软件应达到 技术指标等级和 软件实 际达 到的 技 术指标等级 。 下面的表给出了软件质 量等级 的 基本 标准。
    • 在评价软件质量的 同时 , 也应对软件 的完 善 、 改进提 出意见 , 总结设计经 验。
    • 在完成 软件质量鉴 定之后 , 应编制出 如 下文件: 软件质量鉴定 报告 、 软件使用 指 南 、 软件设计总结报告 。 这些 报告连 同软件 开 发的其他 文件一起归档保存 。

    六、 结束语

    随着微型计算机 在国 防和国 民经 济各部 门中的广泛 应用 , 应用 软件的 开发工作 日益 具 有 重要 性和迫 切性 。 在这 些领域 中, 软件 开发 的工作量和 技术难度都较大 , 所以 , 要 快速 、 经济地 获得高质量、 高性能的软 件产 品 , 就必须重视普及和研究有关软件开发 技 术与软件质量鉴定技术。 目前 , 软件的工 程组织、设计和 鉴定工作都存在着一定的困难 和 不足 , 从 方 法 到技术都比较落后 , 难以满 足 工程规模和要求 。 为了尽快地扭 转这种局 面 , 就需要一 方面提高每个软件设计人 员的水平 , 另一方面提高整个软件工程的组织、 管理 、 鉴定工作的技术水平。 同时 , 加强软 件开发和 评价等技术的 研究和 交流工作 , 使 我所在计算机应用 和 信息处理事业上达到国 际八十年代水平。

  • 相关阅读:
    软件测试人员的年终绩效考核怎么应对
    收藏
    顶踩组件 前后两版
    订阅组件
    hdu 1963 Investment 完全背包
    hdu 4939 Stupid Tower Defense 动态规划
    hdu 4405 Aeroplane chess 动态规划
    cf 414B Mashmokh and ACM 动态规划
    BUPT 202 Chocolate Machine 动态规划
    hdu 3853 LOOPS 动态规划
  • 原文地址:https://www.cnblogs.com/yilang/p/12131784.html
Copyright © 2011-2022 走看看