软件可靠与可信研究
可信计算的研究与发展

可信计算的研究与发展一、概述随着信息技术的快速发展,计算机和网络系统已经成为现代社会不可或缺的基础设施。
这些技术的广泛应用也带来了严重的信息安全问题,如数据泄露、恶意软件攻击、网络钓鱼等。
为了应对这些挑战,可信计算(Trusted Computing)技术应运而生。
可信计算是一种通过硬件和软件结合,确保计算机系统自身安全可信,从而保护存储在其中的信息不被非法访问和篡改的技术。
可信计算技术起源于上世纪末,随着计算机体系结构的演进和信息安全需求的提升,其研究和发展逐渐受到全球范围内的关注。
作为一种综合性的安全防护机制,可信计算旨在构建一个安全可信的计算环境,使得计算机系统在执行关键任务时能够抵御各种安全威胁。
近年来,可信计算技术取得了显著的进展。
一方面,可信计算平台(Trusted Platform Module,TPM)的广泛应用为计算机系统提供了硬件级别的安全支持另一方面,可信计算软件技术(如可信操作系统、可信数据库等)的不断发展,为上层应用提供了更加安全可靠的运行环境。
可信计算技术还涉及到了密码学、访问控制、身份认证等多个领域,形成了一套完整的安全防护体系。
尽管可信计算技术取得了显著的研究成果,但其在实际应用中仍面临着诸多挑战。
例如,如何确保TPM的安全性和可靠性、如何平衡系统性能与安全性之间的矛盾、如何适应不断变化的安全威胁等。
未来可信计算技术的研究和发展仍需要不断探索和创新,以满足日益增长的信息安全需求。
本文将对可信计算技术的研究与发展进行综述,分析当前的研究热点和难点问题,并展望未来的发展趋势。
通过对可信计算技术的深入了解和研究,有望为信息安全领域的发展提供新的思路和方向。
1. 可信计算的概念定义可信计算(Trusted Computing)是一种计算模式,旨在增强计算机系统的安全性、可靠性和完整性。
其核心思想是在硬件、软件和系统之间建立一个可信任的基础,以确保数据和代码在执行过程中的保密性、完整性和可用性。
软件可靠性模型与评估方法

软件可靠性模型与评估方法软件可靠性是指在特定环境中,系统在规定时间内以满足用户需求的准确性、稳定性和可用性的概率。
在软件开发过程中,确保软件的可靠性是至关重要的。
本文将介绍软件可靠性模型与评估方法,以帮助开发人员提高软件的可靠性。
一、可靠性定义与重要性软件可靠性是指在特定条件下,软件系统在规定时间内以满足用户需求的准确性、稳定性和可用性的概率。
软件可靠性评估的主要目的是为了确定软件在特定条件下的可靠性水平,以评估软件系统的可信度和稳定性。
软件可靠性的提高将直接影响到用户对软件系统的满意度和信任度。
二、软件可靠性模型1. 静态模型静态模型是通过对软件设计和代码进行分析,检测潜在的软件错误,以预测软件系统的可靠性。
静态模型主要包括代码静态分析、软件结构分析和软件测试。
1.1 代码静态分析代码静态分析通过对源代码的分析,发现代码中的潜在错误和缺陷。
常用的代码静态分析工具包括Lint、FindBugs等,可以帮助开发人员提前发现代码中的潜在问题,从而减少软件系统的错误率。
1.2 软件结构分析软件结构分析主要是通过对软件系统的结构进行分析,检测系统的层次结构、调用关系、模块依赖等,以评估软件系统的可靠性。
软件结构分析常用的方法有层次分析法、结构方程模型等。
1.3 软件测试软件测试是通过执行一系列测试用例,检查软件系统的功能是否正常,以及是否存在潜在的错误和缺陷。
软件测试主要包括单元测试、集成测试、系统测试和验收测试等。
通过全面的软件测试,可以提高软件系统的可靠性和稳定性。
2. 动态模型动态模型是通过对软件系统运行状态进行监测和分析,以评估软件系统的可靠性。
常用的动态模型包括故障树分析、可靠性块图和Markov模型等。
2.1 故障树分析故障树分析通过将软件故障转化为逻辑关系,来描述故障的发生和传播过程。
故障树分析可以帮助开发人员识别和定位软件系统中的关键故障点,从而制定相应的改进和优化方案。
2.2 可靠性块图可靠性块图是通过将系统的可靠性表示为块和连接线的图形化表示方法,来描述系统的可靠性。
可信软件及测试

2005年4月20日上午10时56分,中国银联系统通 信网络和主机出现故障,造成辖内跨行交易全 部中断。这是2002年中国银联成立以来,首次 全国性因系统故障造成的跨行交易全面瘫痪。
原因:银联新近准备上线的某外围设备的隐性 缺陷诱发了跨行交易系统主机的缺陷,使主机 发生故障
2003年8月14日下午4时10分,美国及加拿大部分 地区发生历史上最大的停电事故。15日晚逐步恢 复。后果:经济损失250亿到300亿之间
(2)什么是可信软件?
软件是可信的, 如果其服务总是与用户的预期 相符,即使在运行过程中出现一些特殊情况。 特殊情况包括: 1、硬件环境(计算机、网络)发生故障 2、底层软件(操作系统、数据库)出现错误 3、其它软件(病毒软件、流氓软件)对其产 生影响 4、出现有意(攻击)、无意(误操作)的错 误操作
3.从软件质量到可信软件
(1)什么是可信? (2)什么软件的是可信软件?
(1)什么是可信?
ISO/IEC 15408 标准将可信定义为: 一个可信 (trusted)的组件、操作或过程的行为在任意操 作条件下是可预测的, 并能很好地抵抗应用软件、 病毒以及一定的物理干扰造成的破坏; 可信计算组织(trusted computing group)认 为: 如果一个实体总是按照其设定目标所期望的 方式行事, 则称这个实体为可信的;
软件可靠性度量方法

故障暴露概率 P 的增量 ∆P 逐渐变小。比如,进行 20 次测试
和进行 10 次测试相比,P 增加了 0.227;进行 50 次测试和进
中科大-耶鲁高可信软件联合研究中心

中科大-耶鲁高可信软件联合研究中心简介一、概述在中科大软件安全实验室和耶鲁大学FLINT实验室近五年合作的基础上,双方校长于2008年10月签署备忘录,以中科大软件安全实验室为基础,在中科大建立高可信软件联合研究中心。
该中心是在两校相关实验室多年合作的基础上建立的。
五年多来,我校软件安全实验室在耶鲁大学邵中教授的指导(包括和他主持的FLINT实验室的合作)下,研究水平上升较快。
在邵中教授的支持下,软件安全实验室多次获得国家基金面上项目的资助,目前正在合作申请“海外及港澳学者合作研究基金”。
在国际会议和国内外期刊上,两校研究生共同发表了7篇论文,我校研究生单独发表论文10多篇。
近6年在编程语言理论及实现技术、软件安全和软件形式验证等研究方向培养了18名博士,其中在高校当教师的有8人,在Intel、Microsoft和Sun公司研发部门工作的有6人,做博士后的有2人。
二、研究领域(1)程序设计语言理论和实现技术。
这是一个持续活跃了半个世纪的研究领域,目前国际上最活跃的方向是并行编程语言的设计和实现技术、程序验证技术等。
我们目前的研究集中在形式程序验证(formal program verification)和出具证明编译器(certifying compiler)两个方向上。
通过近几年的国际合作研究,研究水平上升较快。
(2)第2步拟展开的研究方向是计算机网络方面。
有待耶鲁大学相关教授来访,和华蓓教授(可见htttp:///~bhua)和董群峰教授等经过充分交流后展开。
在高可信软件研究领域,联合研究中心以形式程序验证为主要方法,研究提高软件可信程度的理论和技术等,目前正在开展的课题有系统软件的形式验证、出具证明的编译器技术、并发多核软件的开发、自动定理证明系统等在高可信软件研究领域,联合研究中心近5年的建设目标是:研究如何有效地集成形式程序验证和领域专用语言和逻辑(domain-specific languages and logics)这两种软件技术,形成提高编写高可信软件生产力、提高对它们正确性和安全性信任程度、并且能被工业界接受的软件开发新方法,构建基于此方法并能向工业界推广的开发携带证明大型系统软件的基础结构。
风吹柳叶摆

毕业论文计算机科学与技术专业2007 级16 队学员黄逸偲指导教员杜华栋讲师课题软件可靠性预计中国人民解放军理工大学气象学院二○一一年六月软件可靠性预计黄逸偲(解放军理工大学气象学院16队江苏南京 211101)摘要:基于失效数据的软件可靠性预计能够预计随着测试的警醒将来软件能够达到的可靠性水平。
虽然目前在软件可靠性预计方面取得了明显的进展,但是还没有一个能够在任何条件下均值得信任的软件可靠性预计模型。
更糟糕的是,甚至不能先验的知道基于某一具体的失效数据,哪一个模型最适合。
本文给出了一个具有一般性的软件可靠性预计步骤,并且详细讨论了两种提高软件可靠性预计质量的方法。
据此,用户在工程实践中能够选择出一个模型或者多个模型用于预计软件的可靠性,得到的结果相对而言是最准确的。
本文首先从软件失效引起的严重后果强调了软件可靠性预计的重要性,讨论了本文研究的背景以及目的,简要介绍了本文的组成;其次给出了软件可靠性的定义以及概念,谈到了软件可靠性和软件工程之间的关系;接着简要的概述了软件可靠性模型,介绍了软件可靠性模型的发展,给出了几个软件可靠性参数的定义以及数学推导,总店讨论了个软件可靠性模型,它们分别是模型、模型、和模型,给出了软件可靠性定量评价的标准;给出了软件可靠性预计的步骤,重点讨论了两种提高软件可靠性的方法;再定标法和模型混合法。
期中,从概率论的角度深入讨论了再定标法的原理,并运用实际的失效数据开展软件可靠性预计。
关键词:软件可靠性、再定标法、模型混合、预计1、引言1.1研究背景随着计算机技术迅猛发展,软件的销售量和使用量呈几何级数增长,软件的规模也越来越大,复杂性急剧提高。
例如,美国航天飞机的飞行软件达50万行的源代码,F-22战斗机更多达150万行源代码。
软件失效已经成为系统瘫痪的主要原因,根据美国国防部和美国国家宇航局的统计,武器系统和航天项目中软件可靠性比硬件系统大约第一个数量级。
软件故障而造成的重大事故也不乏其例,如F-18战斗机在海湾战争中,飞行控制软件发生了500多次故障,爱国者导弹因软件问题误伤了28名美国士兵,阿里安5型火箭的发动机控制系统软件的错误导致飞行试验失败等。
可信软件概述

– 设计 – 编码
系统软件(操作系统、数据库、中间件)
高级软件工程
可信软件概述 37/50
2、保障软件可信性的几个基础性问题
软件可信性度量与建模 可信软件的构造与验证 可信软件的演化与控制
高级软件工程
可信软件概述 38/50
(1)软件可信性建模与度量
如何认识软件的可信性? 如何表述软件的可信性? 如何度量软件的可信性?
度量无处不在!
高级软件工程
可信软件概述 27/50
三、从质量到可信
1、什么是可信? 2、什么样的软件是可信的?
Compaq、HP、IBM、Intel和Microsoft等发起(1999): Trusted Computing Platform Alliance
后来增加软件: Trusted Computing Group (2003)
直径、硬度、高度、频率 赋予特性:对事物增加的特性 价格、位置 二者有一定的相对性
高级软件工程
可信软件概述 15/50
要求: 显式要求: 有明确规定的要求(行业标准或用户指定)
计算机屏幕尺寸 隐式要求: 约定成俗的要求 大楼要有楼梯
产品质量特性:内部特性、外部特性 满足的 程度! 满足的 成本!
2007年10月30日,奥运门票第二阶段阶段预售首日……
科技奥运?
高级软件工程
可信软件概述 5/50
2007年8月14日14时,美国洛杉矶国际机 场电脑发生故障,60个航班的2万旅客无 法入关。直至次日凌晨3时50分,所 有滞留旅客才全部入关。 原因分析: 包含旅客姓名和犯罪记录的部分数据系 统(海关和边境保护系统:决定旅客是否 可以进入美国领土)瘫痪 2004年9月发生过类似问题
基于Bayesian的软件可靠性评价方法研究

1 8 年 。美 国I E 计算 机 学会 软件 工程 技 术委 员会 对 软 93 E E
件 可靠性 的定 义如下 :
因为 : 件可靠 性模 型的假设 本身 就存 在一定 的失实 情况 ; 、 软 软
() 1 在规定 的条 件下 , 在规 定 的时 间内 , 软件不 引起 系统 失 效 的概 率 , 概 率是 系统 输 入和 系统 使 用 的函数 , 该 也是 软件 中
软件 可靠 性建 模 技术 在验 证 高可 靠性 的 系统 ( 每运 行 如 远远 超 出了有实 际意 义的界 限 。例 如 , 个要 求失 效率为 1 一 0 际中有两 种基 本方案 : 换测试 和不 替换测 试 。 替
存 在 的错 误 的函数 ; 系统 输入 将确定 是否 会遇 到已存 在的错 误
0 引言
软件 可靠 性测 试作 为 一个 产业 出现 已有 多年 . 然而 , 国 我 很多 软件公 司对软 件可 靠性测 试仍 然没 有充分 的认识 。 与其他 软件 产业发 达 国家相 比较 , 我们在 测试 意识 、 测试 理论 的研 究 、 大 型测试 工 具 软件 的开 发 以及从 业人 员 数量 等方 面 均存 在差 距 。 中测试 意识上 的差距 又尤 为突 出。如何 保证 并提高 我 国 其 软件 产 品的质量 和可靠 性 , 已成 为我 国计算 机科学 的一 个重 要
中 图 分 类 号 :P 9 .6 T33 0 文献 标识码 : A 文 章 编 号 :6 2 7 0 (0 8 1- 0 0 0 1 7 — 80 2 0 ) 1 0 2 — 3
( 称 L V 型 )Mua 行 时 间 模 型 ; esn 型 ; olO a . 简 —模 ; s执 Nl 模 o G e— k m
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2 软件可靠与可信研究 摘要:本文在介绍软件可靠性及安全性的基础上,讨论软件可靠性测试的特点、进行软件可靠性测试的基本条件,以及软件安全性测试的必要条件和常用的测试方法。并简要阐述软件测试在软件生产中是必不可少的质量保障手段。
关键词:软件可靠性;安全测试;测试方法
随着科学技术的不断进步,计算机技术被越来越多地应用到武器系统中。计算机软件的复杂程度随着功能的增强,因而系统的可靠性也越来越与软件直接相关。例如AFTI/F-16飞机首航因软件问题推迟一年,事先设计的先进程序无法使用;海湾战争中F/A–18飞机飞行控制系统计算机500次故障中,软件故障次数超过硬件。软件往往是系统可靠性的薄弱环节,因此软件系统的可靠性需要引起有关人员的格外重视。 软件系统规模越做越大越复杂,其可靠性越来越难保证。应用本身对系统运行的可靠性要求越来越高,在一些关键的应用领域,如航空、航天等,其可靠性要求尤为重要,在银行等服务性行业,其软件系统的可靠性也直接关系到自身的声誉和生存发展竞争能力。在许多项目开发过程中,对可靠性没有提出明确的要求,开发商(部门)也不在可靠性方面花更多的精力,往往只注重速度、结果的正确性和用户界面的友好性等,而忽略了可靠性。在投入使用后才发现大量可靠性问题,增加了维护困难和工作量,严重时只有束之高阁,无法投入实际使用。本文仅就软件可靠性和在软件开发过程中的应用谈谈自己的认识 。
1.概述: 软件可靠性是指在规定条件下,在规定时间内,软件不引起系统失效的概率。该概率是系统输入和系统使用的函数,也是软件中存在故障的函数,系统输入将确定是否会遇到存在的故障。 软件产品与硬件产品一样。软件的可靠性工作也是贯穿于软件的整个寿命周期的。软件的寿命周期,是指从软件任务的提出一直到它完成使命,因陈旧而被废弃为止的整个时间历程,这个寿命周期包括了提出要求/规格说明、设计、实现、检验、维护等五个阶段,前四个阶段为开发期,维护阶段为使用期。 软件可靠性测试指在有使用代表性的环境中,为进行软件可靠性估计对该软件进行的功能测试。需要说明的是,“使用代表性”指的是在统计意义下该环境能反映出软件的使用环境特性。软件可靠性测试一般在软件验收阶段进行,即可以在实验室也可以在现场测试运行。一般仅适用于有可靠性定量要求、且可能会影响安全和任务完成的关键软件。 软件系统的可靠性测试是软件系统可靠性质量保证过程中非常关键的一步,根 3
据国外有关资料统计和工作实践证明,可靠性测试对提高软件的可靠性有重大作用,其他测试不能代替,但是软件可靠性测试又不能代替其他软件测试的作用。软件可靠性测试的主要目的有: (1)通过在有使用代表性的环境中执行软件,以证实软件需求是否正确实现。 (2)为进行软件可靠性估计采集准确的数据。估计软件可靠性一般可分为四个步骤,即数据采集、模型选择、模型拟合以及软件可靠性评估。可以认为,数据采集是整个软件可靠性估计工作的基础,数据的准确与否关系到软件可靠性评估的准确度。 (3)通过软件可靠性测试找出所有对软件可靠性影响较大的错误。
2.测试方法与步骤
2.1软件可靠性测试 2.1.1.制订测试方案 本阶段的目标是识别软件功能需求,触发该功能的输入和对应的数据域,确定相关的概率分布及需强化测试的功能。 (1)分析功能需求。分析各种功能需求,识别触发该功能的输入及相关的数据域(包括合法与不合法的两部分)。 (2)定义失效等级。判断是否存在出现危害度较大的1级和2级失效的可能性。如果这种可能性存在,则应进行故障树分析,标识出所有可能造成严重失效的功能需求和其相关的输入域。 (3)确定概率分布。确定各种不同运行方式的发生概率,判断是否需要对不同的运行方式进行分别测试。如果需要,则应给出各种运行方式下各数据域的概率分布;否则,给出各数据域的概率分布。判断是否需要强化测试某些功能。 (4)整理概率分布的信息将这些信息编码送入数据库。 2.1.2制订测试计划 本阶段的目标是: (1)根据前一阶段整理的概率分布信息生成相对应的测试实例集,并计算出每一测试实例预期的软件输出结果。本阶段需要注意:在按概率分布随机选择生成测试实例的同时,要保证测试的覆盖面。 (2)编写测试计划,确定测试顺序,分配测试资源。由于本阶段前一部分的工作需要考虑大量的信息和数据,因此需要一个软件支持工具,建立数据库,并产生测试实例。另外,有时预测软件输出结果也需要大量的计算,有些复杂的软件甚至要用到仿真器模拟输出结果。总之,具体实施与被测应用软件的实际功能类型有关。 2.1.3.测试 本阶段进行软件测试。需注意的是被测软件的测试环境(包括硬件配置和软件支撑环境)应和预期的实际使用环境尽可能一致,对某些环境要求比较严格的软件(如嵌入式软件)则应完全一致。测试时按测试计划和顺序对每一个测试实例进行测试,判断软件输出是否符合预期结果。测试时应记录测试结果、运行时间和判断结果。如果软件失效,那么还应记录失效现象和时间,以备以后核对。 2.1.4编写测试报告 按软件可靠性估计的要求整理测试记录,并将结果写成报告。软件可靠性测试的关键在于:对需求、输入、数据域的识别及相关概率分布的确定。按照概率 4
分布随机生成测试实例,并确定测试顺序。 2.2安全测试 2.2.1.由来 软件可靠性是软件质量指标体系中最重要的质量指标之一,软件可靠性指标的高低,决定了软件是否能稳定、可靠性地工作。软件中的错误是在软件的开发过程中,因为人的错误而引入到软件中的,而且这种错误的出现是不可避免的。经过可靠性测试的软件系统可以大大降低因软件系统的实效而造成的损失。但是软件可靠性测试也不是万能的,它可以有效降低软件系统实效的可能,但是不能将软件系统中存在的错误都排除(实际上在可预见的未来也不可能把软件中的所有错误都排除)。 对软件进行安全测试是软件测试的重要研究内容。软件安全测试是保证软件能够安全使用的最主要的手段,如何进行高效的安全测试成为业界关注的话题。多年的安全测试经验告诉我们,做好软件安全测试的必要条件是:一是充分了解软件安全漏洞,二是拥有高效的软件安全测试技术和测试工具。 2.2.2.软件的安全测试方法 (1)形式化安全测试。模型检测用状态迁移系统S描述软件的行为,用时序逻辑、计算树逻辑或演算公式F表示软件执行必须满足的性质,通过自动搜索S中不满足公式F的状态来发现软件中的漏洞。 (2)基于模型的安全功能测试。基于模型的测试方法是对软件的行为和结构进行建模,生成测试模型,由测试模型生成测试用例.常用的软件测试模型有有限状态机、UML模型、马尔可夫链等。 (3)语法测试。语法测试是根据被测软件的功能接口的语法生成测试输入,检测被测软件对各类输入的响应。接口可以有多种类型,命令行、文件、环境变量、套接字等。语法测试基于这样一种思想,软件的接口或明确或隐含规定了输入的语法。语法定义了软件接受的输入数据的类型、格式。语法定义可采用BNF或正则表达式。语法测试的步骤是识别被测软件接口的语言,定义语言的语法,根据语法生成测试用例并执行测试。生成的测试输入应当包含各类语法错误,符合语法的正确输入。不符合语法的畸形输入等。通过察看被测软件对各类输入的处理情况,确定被测软件是否存在安全缺陷。语法测试适用于被测软件有较明确的接口语法,易于表达语法并生成测试输入的情况。语法测试结合故障注入技术可得到更好的测试效果。 (4)模糊测试。模糊测试(Fuzz Testing)是一种发现安全漏洞的有效的测试方法,在安全性测试中越来越受到重视。模糊测试将随机的坏数据插入程序,观察程序是否能容忍杂乱输入。模糊测试是不合逻辑的,只是产生杂乱数据攻击程序。采用模糊测试攻击应用程序可发现其他采用逻辑思维来测试很难发现的安全缺陷。 (5)基于属性的测试。相关报道描述了基于属性的测试方法,采用TASPEC语言对软件的安全属性进行描述生成安全属性规格说明,利用程序切片技术抽取与这个安全属性相关的代码,测试这部分代码是否违反安全属性规格说明。基于属性的测试有针对性的测试目标软件的特定安全属性,可满足安全属性的分类和优先级排序要求,且部分与具体软件无关的属性规格说明是可重用的。
3.软件可靠性研究成功应用的实例 美国AT&T公司的国际DEFINITYR程控交换机部在系统软件开发过程中应用了软 5
件可靠性工程,相对于以前发行的主要软件版本,产品的质量提高是惊人的: (1)用户反映的问题下降了10倍; (2)项目维护费用下降了10倍; (3)系统测试件的间隔缩短了2倍; (4)引入新产品的间隔缩短了30%。
而且,在投入运行的前两年,从未发生严重影响业务的机器中断,客户满意程度大为提高。具体分析原因,有以下两点: (1)把可靠性作为确定是否发行的标准,可避免用户在使用中反映过多问题和进行相应的维护工作。 (2)采用“操作概图驱动”的测试方法,提高了测试效率;20%的操作覆盖了95%的应用,20%的错误导致了95%的实效;先测试20%的使用最频繁的操作可以加速可靠性的提高。 4.结语 软件的可靠性中正越来越引起软件研发部门的重视,但因为这是一门新兴的学科,对于提高软件质量,国内外还未能从软件可靠性工程的角度总结出一套行之有效的管理方法。 软件可靠性工程是一项涉及面很广的系统工程,应加强这项技术的研究力度。尤其要结合具体项目进行课题研究,使软件的开发过程同时也是软件可靠性工程的实施过程。使自发的可靠性工作成为有计划、有组织和有目标的研究工作。相信经过不断的探索和实践,软件可靠性工程会象硬件可靠性工程那样走向成熟,它的应用将对提高我国软件开发的可靠性起到积极的推动作用。
参考文献:
[1]郑人杰,殷人昆,陶永雷.实用软件工程[M].北京:清华大学出版社. 第10章软件质量 保证10.8软件可靠性-10.10软件容错技术 [2]何国伟.软件可靠性[M].北京:国防工业出版社,1998.第二章.软件工程 2.5软件测试-3.1.2软件可靠性和维护性 [3]朱鸿,金凌紫.软件质量保证与测试[M].北京:科学出版社,1997. 2.1软件质量-2.2软件质量标准