您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 第一章 软件质量保证概述
软件质量保证电子科技大学成都学院方智教材–《软件质量保证》,G.GordonSchulmeyer等,机械工业出版社参考书目–《软件质量工程》,洪伦耀等,西安电子科技大学出版社教学目的编写合格的程序和文档树立良好的质量意识教材目录第1章软件质量保证第2章软件质量保证在各类软件开发中的作用第3章质量专家谈软件质量第4章软件质量保证的标准化第5章软件质量计划组织第6章有效实施SQA的人员需求第7章美国质量协会软件质量工程师认证大纲第8章软件质量的成本第9章审查——前期软件质量保证技术第10章软件配置管理第11章软件质量保证中的Pareto原理第12章理解CMM和SQA在软件开发成熟度中的作用第13章SEICMM5级——波音公司第14章CASE工具第15章软件质量保证的度量第16章SQA在关键任务软件中的实际运用第20章软件可靠性管理主要内容软件质量软件质量保证软件质量控制技术软件质量度量技术软件质量可靠性软件质量保证的相关应用第一章引言背景质量软件质量软件中的差错软件质量保证的相关术语目录背景质量软件质量软件中的差错软件质量保证的相关术语背景软件与硬件的区别软件并非有形存在,软件是人的大脑的智力活动的产物,是人的逻辑思维的产品IEEE对软件的定义:计算机程序、规程,以及与运行计算机系统可能需要的相关文档和数据软件容易更改,但也更容易引入错误软件更改后(包括引入的错误)的影响会迅速传播就当前的普遍情况来说,几乎不存在软件质量的度量软件有比硬件高得多的复杂性硬件有齐全的设计图纸、技术资料。硬件是由机器生产的,有实物可以对照。硬件早就在工厂进行了工业化生产:设计人员设计出图纸、生产程序;工人按图纸和规定的程序生产出产品;检验人员用设备和仪器检查产品是否满足要求软件危机-软件工程31%53%16%开发成功进度拖延取消开发软件危机软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。主要是两个方面的问题:如何开发软件──怎样满足对软件日益增长的需求如何维护软件──数量不断膨胀的已有软件2.软件危机的内涵:(1)软件开发成本和进度的估计常常很不准确(2)用户对已完成的软件系统不满意的现象经常发生(3)软件产品的质量往往靠不住(4)软件常常是不可维护的(5)软件通常没有适当的文档资料(6)软件成本在计算机系统总成本中所占的比例逐年上升(7)软件开发生产率提高的速度远远跟不上计算机应用迅速及深入普及的速度我国软件产业的现状软件产业操作系统应用软件系统集成国内目前的状况是应用软件以及系统集成公司比较多,软件产品主要集中在一些管理软件、财务软件等基于数据库应用的软件、教育软件、杀毒软件及一些中文平台的开发上,而在利润丰厚、应用广泛的基础软件如操作系统、数据库管理软件等,基本上无所作为。软件本国提供率:中国1/3左右,美国97%软件人才结构不合理,缺乏中高级软件人才软件人员缺乏软件工程化的概念软件人员没有软件质量的意识软件质量问题是本课程讨论的中心问题关于软件质量的一些结论软件产品的质量是在开发中构造入产品的,是后天加不进去的在软件开发期间,不采用软件工程方法及行之有效的软件工程标准、程序和技术,可能产生大量软件差错和缺陷;真正符合质量要求的产品释放时间反而会更加推迟在软件质量管理、控制和质量保障方面的投入,一般只占项目总经费的百分之几,但这种投入从总体效果(差错和缺陷减少、问题解决得早而及时、无返工、产品质量提高等)上看,往往能得到高于投入10倍或更高的回报目录背景质量软件质量软件中的差错软件质量保证的相关术语什么是质量仁者见仁,智者见智在哲学上,对质量的任何解释只有对与错两种可能。哲学解释过程是一个分析过程,这个过程把事物分解成主题和论断。但我想说的是,质量是不能分解成主题和论断的。这并不是质量神秘,而是因为质量太简单、直接、明了——R.M.Pirsig《ZenandtheArtofMotorcycleMaintenance》如果质量存在于物体之中,那么为什么科学仪器不能直接测出质量来……。另一方面,如果质量是主观的东西,即仅存在于观察者的意识中,那么质量仅仅是吸引人的词而已质量不是客观的,它不属于物质世界质量不是主观的,它不仅存在于人们的脑海中DavidGarvin的观点DavidGarvin研究了如何在哲学、经济学、市场以及生产管理等不同领域理解质量。结论是“质量是一个复杂的多层面概念”,可以从以下5个方面来描述:从先验论的角度看,质量是可以识别出来,但不能明确定义的从用户的角度看,质量是对目的的满足程度从制造的角度看,质量是对规范的符合程度从产品的角度看,质量是产品的内在特征从基于价值的角度看,质量依赖于客户愿意付多少钱购买J.M.Juran的观点Juran认为,“质量”这个词有许多含义,是一个“不合格’’的词,因此使用不当是有风险的。满足使用要求的基础是质量特征。产品的任何特性(性质、属性等),材料或满足使用要求的过程都是质量特征ISO:质量的基本概念质量(广义质量概念):反映实体(产品,过程或活动等)满足明确的或隐含的需要的能力特性总和(Thetotalityofcharacteristicsofanentitythatbearonitsabilitytosatisfystatedorimpliedneeds)ISO:质量的基本概念含义一:实体,承载质量属性的具体事物。–产品:提供各种享用功能的有形实物–过程:带来某种享受服务–活动:在生产产品或提供服务中所开展的工作含义二:满足用户需求的能力特性总和,表明质量高低并不取决于“实体”的各种能力特性是否最好,而只要满足需求(明确的和隐含的)即可含义三:不同实体,质量实质内容不一样–产品:指产品能够满足用户使用要求所具备的功能特性–服务:指服务满足顾客期望的程度–活动:由工作结果来衡量质量理念的演变历史在20世纪质量管理的发展历程经历了质量检验、统计质量控制和全面质量管理三个阶段。其中,质量理念也在不断的演变。有这么几个阶段:1.符合性质量2.适应性质量3.满意性质量符合性质量概念符合标准就是合格的质量,符合程度反映了产品的一致性符合性包括产品和过程两个方面标准有合理与不合理之分,不合理的标准即使百分之百的满足也不能认为质量就好标准往往不能将客户的各种需求和期望都规定出来,特别是隐含的需求与期望软件项目开发中需求管理的例子适用性质量概念产品在使用时能够成功地满足用户需求的程度从使用要求和满足程度两方面去定义质量质量理念的发展:符合性质量符合性质量,20世纪40年代,以符合现行标准的程度作为衡量依据,“符合标准”就是合格的产品质量,符合的程度反映了产品质量的水平。质量理念的发展:适应性质量适用性质量,20世纪60年代,适合顾客需要的程度作为衡量的依据,从使用的角度定义产品质量从“符合性”到“适用性”,反映了人们在对质量的认识过程中,已经开始把顾客需求放在首要位置质量理念的发展:满意性质量满意性质量,20世纪80年代,质量管理进入到TQM阶段,将质量定义为“一组固有特性满足要求的程度”。它不仅包括符合标准的要求,而且以顾客及其他相关方满意为衡量依据,体现“以顾客为关注焦点”的原则。本书的定义IEEE《StandardGlossaryofSoftwareEngineeringTerminology》:质量是系统、部件或过程满足(1)明确的需求,(2)客户或用户需要或期望的程度产品质量的性质(1)一个产品质量的好与坏不是绝对的。对同一个产品而言,不同的用户,不同的使用环境,有不同的质量需求(2)构成质量的诸因素往往不是互相独立的,有的具有正向性的关系,而有的则互相冲突。对于具有正向性关系的那些质量因素,一个提高了品质,另一些也会受益;而对于那些互相冲突的质量因素,则要进行折中的考虑(3)构成质量的诸因素并不具有同等的重要性。一个产品的质量关系到该产品是否能够被用户所接受,当产品的质量受到代价、人力、时间等的限制时,应该确认那些最重要的因素,而放宽次要的因素(4)质量必须在一定的前提下衡量。在许多情况下,不能脱离实际情况和代价来要求一个产品的高质量(5)产生质量问题的根源是产品在设计、生产过程中的缺陷和差错。软件产品的质量也具有上述特性。认识这些特性,在软件质量管理和度量的研究中将起到重要的作用目录背景质量软件质量软件中的差错软件质量保证的相关术语什么是软件计算机程序、规程,以及与运行计算机系统需要的相关文档和数据计算机程序--计算机设备可接受的一系列指令和说明,用来让计算机执行一个运算或操作计算机数据--事实、概念或指令的一种结构化表示,能够被计算机设备所接受、理解或处理计算机程序文档--技术数据,包括计算机程序列表和可读的打印输出物,如需求、设计、实现和其他有关的计算机程序细节以及使用和维护程序的说明软件质量的一些定义(表征)计算机系统卓越程度的所有属性的集合可靠性、可维护性、可用性软件产品满足明示需求程度的一组属性的集合软件质量是软件产品满足使用要求的程度软件质量是软件产品满足客户(买主、使用者和维护者)需求的一组可度量的特性软件质量是软件产品的属性定义软件产品质量的特性可以有许多软件质量要求举例客户质量要求买主成本,资金.使用效率使用/操作者功能性,可靠性.使用容易性维护者改变容易,可扩展目录背景质量软件质量软件中的差错软件质量保证的相关术语软件项目的3大要素TIMECOSTQUALITY三大要素是软件质量、成本和进度。成本和进度是可以定量度量的,对质量的定量度量却是非常困难缺乏软件质量的具体度量,就意味着当质量、费用和进度产生矛盾时,将牺牲质量这正是软件产品存在质量问题的主要原因。极端地侧重于软件的质量要素是完全必要的软件质量的高低主要是以在已释放的软件产品中残留差错的多少来衡量的。软件中的差错是造成软件质量低下的根源。因此,软件工程相对于软件质量来说,其核心内容是:避免错误、纠正错误、容忍错误(容差)和度量错误。由此不难看出,软件中的差错是软件工程关注的焦点。在软件寿命期各阶段的差错分布为:需求分析和设计阶段占64%;编码阶段占36%。差错总数中,差错类型的分布为:文档占2%;计算占5%;人的差错占5%;环境占5%;接口占6%;数据占6%;其他占7%;逻辑占28%;需求转化占36%。在软件寿命期各阶段可能发现差错的分布为:需求分析阶段占9%;设计占2%;编码占7%;软件集成占15%;系统集成占48%;现场试验占13%;运行占6%。纠正一个软件差错的最小费用据国外统计,纠正一个软件差错的费用将会随着软件生存期阶段的进展而扩大10倍以上(倍增因子大约为14),如图所示。0246810121416设计编码测试运行修改代价影响软件质量的因素有以下15种(1)开发方法和工具。影响软件质量的开发方法和工具主要有:–结构化设计、编码、测试和维护;–伪码和流程图技术,它是设计工具,也是编码工具;–设计、编码、测试、维护工具以及需求跟踪工具;–进程和状态报告及差错跟踪;–设计和编码排查;–正式评审。(2)开发人员的训练因素。它主要指开发人员的全部经验以及结构化方法的经验,它们将对软件质量产生有利的影响。(3)软件开发的组织形式。组织机构、指导方针以及使用的标准将影响软件的质量。(4)文档的提供。源码、技术资料以及开发计划等将影响软件的质量。具体指:–包含在软件编码中的文档(模块名、模块在层次树中的位置及模块功能);–软件以外的文档(配置管理计划、质量保证计划、软件开发计划及软件测试计划)。(5)复杂性。结构和功能的复杂性将影响软件的质量。(6)环境。终端用户的环境以及对环境建模的难易程度将影响软件的质量。具体的环境因素有:软件、硬件与人之间的接口;用户的训练;输入数据的确认。(7)现有的软件原型。在概念设想、需求分析和
本文标题:第一章 软件质量保证概述
链接地址:https://www.777doc.com/doc-3210542 .html