- 1、本文档共92页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
从质量保证到质量认证 质量保证 软件可靠性 配置管理 ISO9000 国际标准 CMM软件能力成熟度模型 软件需求是度量软件质量的基础,与需求不一致就是质量不高。 指定的标准定义了一组指导软件开发的准则,如果没有遵守这些准则,几乎肯定会导致质量不高。 通常,有一组没有显式描述的隐含需求(例如,期望软件是容易维护的)。如果软件满足明确描述的需求,但却不满足隐含的需求,那么软件的质量仍然是值得怀疑的。 二、软件质量保证措施 软件质量保证(Software Quality Assurance,SQA)的措施主要有: 基于非执行的测试(也称为复审):用于保证软件在编码之前各阶段产生的文档的质量 基于执行的测试:在程序编写出来之后进行,是保证软件质量的最后一道防线 程序正确性证明:用数学方法来严格验证程序是否与对它的说明完全一致 参加软件质量保证的人员分为: 软件工程师:通过采用可靠的技术方法和度量、进行正式的技术复审以及完成计划周密的测试保证软件质量 SQA小组:辅助软件工程小组以获得高质量的软件产品,包括计划、监督、记录、分析和报告。 1、技术复审的必要性 正式技术复审的明显优点是,能够较早地发现错误,防止错误被传播到软件过程的后续阶段。 正式技术复审实际上是一类复审方法,包括走查(Walkthrough)和审查(Inspection)等具体方法。走查的步骤比审查少,而且没有审查那样正规。 2、走查 (1)参与者驱动法 参与者按照事先准备好的列表,提出他们不理解的术语和认为不正确的术语。文档编写组的代表必须对每个质疑做出回答,要么承认确实有错误,要么对质疑做出解释。 (2)文档驱动法 文档编写者向走查组成员仔细解释文档。走查组成员在此过程中不时针对事先准备好的问题或解释过程中发现的问题提出质疑。这种方法可能比第一种方法更彻底,往往能检测出更多错误。经验表明,采用文档驱动法时许多错误是由文档讲解者自己发现的。 3、审查 审查的范围要比走查广泛得多,它的步骤也比较多。一般来说,审查有5个基本步骤。 (1)综述:由负责编写文档的一名成员向审查组成员综述该文档。综述会议结束时把文档分发给每位与会者。 (2)准备:评审员仔细阅读文档。最好列出在审查中发现的错误的类型,并按发生频率把错误类型分级,以辅助审查工作的进行。这些列表有助于评审员们把注意力集中到最常发生错误的区域。 (3)审查:评审组仔细走查整个文档。和走查一样,这一步的目的也是找出文档中的错误,而不是改正它们。审查组组长必须在一天之内写出一份关于审查的报告。通常每次审查会不超过90分钟。 (4)返工:文档的作者负责解决在书面报告中列出的所有错误及问题。 (5)跟踪:组长必须确保所提出的每个问题都得到了圆满的解决(要么修正了文档,要么澄清了被误认为是错误的条目)。必须检查对文档所做的每个修正,以确保没有引入新的错误。如果在审查过程中返工量超过5%,则应该召集审查组再对文档全面地审查一遍。 可用错误检验表辅助发现错误或对错误进行发分类。 4、程序正确性证明 正确性证明的基本思想是证明程序能完成预定的功能。因此,应该提供对程序功能的严格数学说明,然后根据程序代码证明程序确实能实现它的功能说明。如果在程序的若干个点上,设计者可以提出关于程序变量及它们的关系的断言,那么在每一点上的断言都应该永远是真的。假设在程序的P1,P2,…,Pn等点上的断言分别是a(1),a(2),…,a(n),其中a(1)必须是关于程序输入的断言,a(n)必须是关于程序输出的断言。 为了证明在点Pi和Pi+1之间的程序语句是正确的,必须证明执行这些语句之后将使断言a(i)变成a(i+1)。如果对程序内所有相邻点都能完成上述证明过程,则证明了输入断言加上程序可以导出输出断言。如果输入断言和输出断言是正确的,而且程序确实是可以终止的(不包含死循环),则上述过程就证明了程序的正确性。 14.3 软件可靠性 基本概念 1. 软件可靠性的定义 对于软件可靠性有许多不同的定义,其中多数人承认的一个定义是: 软件可靠性是程序在给定的时间间隔内,按照规格说明书的规定成功地运行的概率。 2. 软件的可用性 通常用户也很关注软件系统可以使用的程度。一般来说,对于任何其故障是可以修复的系统,都应该同时使用可靠性和可用性衡量它的优劣程度。 软件可用性的一个定义是: 软件可用性是程序在给定的时间点,按照规格说明书的规定,成功地运行的概率。 如果在一段时间内,软件系统故障停机时间分别为td1,td2…,正常运行时间分别为tu1,tu2,…,则系统的稳态可用性为: 其中
文档评论(0)