软件质量管理期末复习.docx
- 文档编号:27114548
- 上传时间:2023-06-27
- 格式:DOCX
- 页数:46
- 大小:588.89KB
软件质量管理期末复习.docx
《软件质量管理期末复习.docx》由会员分享,可在线阅读,更多相关《软件质量管理期末复习.docx(46页珍藏版)》请在冰豆网上搜索。
软件质量管理期末复习
质量
软件质量的概念、
软件质量控制和管理的方法和技术,
包括软件质量标准、CMM、PSP、配置管理、质量度量和软件评审
一、
质量的内涵和软件质量特性
如何建立有效的软件质量工程体系
软件质量保证的任务及活动
如何进行软件质量度量
软件质量标准
软件缺陷预防性措施,做好各类软件评审各
与质量相关的概念
组织(Organization)是指“职责、权限和相互关系得到安排的一组人员及设施。
组织是由两个或两个以上的个人为了实现共同的目标组合而成的有机整体
过程(Procedure)是指“一组将输入转化为输出的相互关联或相互作用的活动”。
过程由输入、实施活动和输出三个环节组成,过程一般伴随着时间先后次序的、不同的事件发生。
产品(Product)是指“过程的结果或过程的中间结果”。
产品有四种通用的类别:
硬件、软件、服务和流程性材料等。
依产品的存在形式,又可将产品分为有形的和无形的。
服务(Service)是向客户提供相应的技术支持、帮助和关心等的行为。
服务也是一种无形的产品,是对有形产品的补充。
客户(Customer)不仅包括接受产品或服务的组织或个人,而且包括潜在的客户,所以更广义的含义,客户是公司为实现目标所需要的产品和过程而影响到的人。
体系(System)是指相互关联、或相互作用、或相互依存的一组要素构成的有机整体。
体系一般拥有一定的组织形式,其相互作用受某些规则或规律所控制,其变化的过程有一定的秩序,趋于和谐的状态
1.1.2什么是质量
质”和“量”构成的,就是物质在质和量上的集合或程度
就是产品或工作的优劣程度,换句话说,质量就是衡量产品的或工作的好坏。
1.1.2质量属性
质量的客户属性
质量的成本属性,也可以称为质量的经济性
社会属性
可测性决定了质量的可控特性。
质量的可预见性
1.2.1内部客户和外部客户
外部客户,不是组织内部的组成部分,但是受本组织活动影响的个人和组织。
外部客户是在传统意义上大家所认知的客户
内部客户,指组织内部的部门和员工,组织内部某一方向对方提供产品或服务,“对方”就被视为内部客户
内部客户又分为4种,即职级客户(权利层次)、职能客户(职能部门)、工序客户(流水线)和流程客户(软件开发)
1.2.2客户的确定
1.2.3客户与质量的关系
朱兰质量螺旋曲线
所谓质量螺旋,是表述影响质量的相互活动的概念模型,是一条螺旋上升的曲线,它把全过程中各个质量职能按逻辑顺序串联起来,用以表征产品质量形成的整个过程及其规律性,通常称为“朱兰质量螺旋”或者“质量环”。
朱兰质量螺旋大致包括:
市场调研、新产品设计和开发、工艺策划和开发、采购、生产制造、检验、包装和储存、产品销售、以及售后服务等重要环节。
ISO9000质量环
质量的形成过程,从管理者的角度看,就是著名朱兰质量三部曲,即质量策划、质量控制和质量改进
1.营销和市场调研
2.产品设计开发
3.过程策划和开发
4.采购
5.生产或服务提供
7.包装和储存
6.验证
7.包装和储存
8.销售和分发
9.安装和投入运行
10.技术支持和服务
11.售后
12.使用寿命结束时的处置或再生利用
质量管理的定义:
质量管理(QualityManagement)是指确定质量方针、目标和职责,并通过质量体系中的质量策划、质量控制、质量保证和质量改进来使其实现的所有管理职能的全部活动。
质量管理的社会性:
不仅从直接客户,还需从整个社会的角度来评价(生产安全、环境污染、生态平衡)
质量管理的经济性:
不仅从某些技术指标考虑,还需从制造成本、价格、使用价值和消耗
质量管理的系统性:
是一个受到设计、制造、使用等因素影响的复杂系统。
费根堡姆认为:
质量系统是指具有确定质量标准的产品和为交付使用所必需的管理上和技术上的步骤的网络。
(汽车)
质量管理的三个阶段
质量检验阶段:
仅对产品质量实行事后把关(检验)
统计质量控制阶段:
工序质量控制图进行质量控制(制造)
全面质量管理阶段:
将质量控制扩展到产品寿命循环的全过程,强调全体员工参与控制。
现代质量改进之父——戴明
TQM的奠基人约瑟夫·朱兰
统计质量控制之父—休哈特
质量工程学创始人——田口玄一
全面质量控制之父——费根堡姆
零缺陷管理之父——菲利浦·克劳士比
简述产品质量的意义?
2.1质量管理体系基础
2.1.1质量方针和质量目标
2.1.2质量管理体系中使用的文件类型
2.1.3质量管理体系评价
2.1.4质量管理体系认证的主要活动
质量管理体系的定义:
为了实施质量管理的组织结构、职责、程序、过程和资源的一种特定体系。
质量管理体系的要素:
质量体系的结构要素和质量体系的选择要素。
质量管理体系的意义:
提高IT公司的管理水平,增强公司的抗风险能力。
提高软件产品质量,增强企业市场竞争力。
树立公司良好形象,巩固和不断扩大市场份额。
与国际接轨,有利于国际市场的开拓。
质量方针:
是由组织的最高管理者正式发布的该组织总的质量宗旨和方向,是企业经营总方针的组成部分,是企业管理者对质量的指导思想和承诺。
制定质量目标时应考虑的问题:
确保质量目标与质量方针保持一致(方针顾客满意)
应充分考虑企业现状及未来的需要(平均成绩90分)
考虑顾客和相关方的要求(前瞻性)
考虑企业管理评审的结果
如何制定质量目标
找出企业目前的弱项和存在的问题
对这些问题进行分析,确定问题的范围
由所存在的问题引出质量目标
为使企业质量目标得到实施,制定目标时需满足如下要求。
满足产品要求的内容、质量目标可测量、质量目标的挑战性。
2.2八项质量管理原则
以顾客为关注焦点
领导作用
全员参与
过程方法
系统的管理方法
持续改善
基于事实的决策方法
互利的供方关系
软件是完成某类问题求解的程序和数据以及维护程序必须提供的一系列文档组成的集合。
软件=程序+数据+系列文档
软件的性质:
软件具有高度的抽象性和严密的逻辑性。
(内部性质)
一种逻辑的信息产品,用文字、符号表达的智力产物。
(外部性质)
过程一般分为:
实现过程、管理过程、支持过程
过程是由人、规程和方法以及工具和设施三方面构成的。
对过程的策划、实施、监测和调整的不断循环的过程。
PDCA:
DemingCycle
软件基本过程:
软件获取、供应、开发、运行和维护的过程,包括需求分析、软件设计、编码等过程。
软件支持过程:
对软件主要过程提供支持的过程,包括文档编制过程、配置管理过程、质量保证过程、验证和确认过程(测试过程)、评审过程等。
软件组织过程:
对软件主要过程和支持过程的组织保证过程,包括管理过程、基础设施过程、改进过程和培训过程。
软件过程的组成:
工程过程:
软件系统、产品定义、设计、实现以及维护的过程。
支持过程:
管理过程:
组织过程:
客户-供应商过程:
软件开发的基本过程,可以简单地分为需求分析、设计(概要设计、详细设计)、编程、测试和维护等阶段,即通常所说的软件生命周期。
XP基本思想和原则
个体和交互胜过过程和工具
可以工作的软件胜过面面俱到的文档
客户合作胜过合同谈判
响应变化胜过遵循计划
阶段性开发的基本模型(增量和迭代模型)
分阶段性开发的基本模型特点:
增量模型描述软件产品的不同阶段是按产品的功能进行划分,先开发主要功能和用户最需要的功能,然后随时间推进,不断增加新的辅助功能和次要功能,最终开发出一个功能完善、稳定的产品。
迭代模型描述软件产品的不同阶段是按产品深度或细化程度来划分,先将产品的整个框架都建立起来,在系统的初期,已经具有用户所有需求的全部功能。
然后随时间推进,不断细化或完善已有功能,这个过程是一个迭代的过程。
从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;
从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。
软件缺陷的产生
项目期限的压力
产品的复杂度
沟通不良
开发人员的疲劳、压力或受到干扰
缺乏足够的知识、技能和经验
不了解客户的需求
缺乏动力
为什么软件需求规格说明书是存在缺陷最多的地方原因分析:
用户非计算机专业人员,沟通存在困难,理解不一致。
软件产品完全靠想象去描述系统的实现结果,特性不清晰。
用户的需求是变化的,容易引起前后、上下文的描述不一致。
需求分析没有的到重视,文档上投入人力、时间不足.
没有在开发队伍中进行充分沟通,只有设计师或项目经理得到较多信息。
软件质量-3A特性
Accountability(可说明性)–用户可以基于产品或服务的描述和定义进行使用。
(例如:
市场需求说明书,功能设计说明书.)
Availability(有效性)–产品或服务对于99.999%客户总是有效的(例如:
性能测试和恢复测试)
Accessibility(易用性)–对于用户,产品或服务非常容易使用并且一定是非常有用的功能.(例如:
确认测试和用户可用性测试)
RUP软件质量的三个维度
功能(Functionality):
按照既定意图和要求,执行指定用例的能力。
可靠性(Reliability):
软件坚固性和可靠性(防故障能力,如防止崩溃、内存丢失等能力)、资源利用率、代码完整性以及技术兼容性等。
健壮性和有效性有时可看成是可靠性的一部分。
性能(Performance):
用来衡量系统占用系统资源(CPU时间、内存)和系统响应、表现的状态
软件质量描述:
软件质量是衡量所交付的软件是否符合相关的软件开发标准,满足预期的功能和性能要求,准时交付给客户,并且软件开发成本不超出预算,从而最终满足客户要求的标准。
软件质量的衡量指标:
零缺陷
对目标的适应性
能否持续稳定且成本合理地应用于市场
产品和服务特性是否能够满足用户特定的以及隐含的需求等
什么样的软件是高质量的软件?
相对的无产品缺陷(BugFree)或只有极少量的缺陷,它能够准时递交给用户并且所用的费用都是在预算内的并且满足客户需求,是可维护的。
但是,有关质量的好坏最终评价依赖于用户的反馈。
软件质量是指软件产品的特性可以满足用户的功能、性能需求的能力。
改进软件质量的三类方法包括:
控制软件生产过程、提高软件生产者的组织性和软件生产者个人能力。
净化软件工程:
统计质量控制下的软件生产过程
评估软件能力成熟度(CMM)
提高软件生产力和个人技能(PSP)
软件质量特性包括:
与功能和性能需求的一致性
与开发标准的一致性
与同行业所有软件应满足的隐含特性一致性
从用户的角度看,软件的生存期可分为如下三个阶段:
初期运用:
运行新开发的软件产品。
维护与扩充:
在运行过程中修改缺欠的内容;而且,为了进一步的使用,需根据运行环境(主要指应用环境和技术环境)的变化做功能上和性能上的扩充。
移植和连接:
把在原有平台上运行的软件向其它新的运行环境转移、或者组成软件包以便重用、或与其它软件进行连接。
产品质量
是人们实践产物的属性和行为,是可以认识,可以科学地描述的。
并且可以通过一些方法和人类活动,来改进质量.
质量模型:
McCall模型,Boehm模型,ISO9126模型
过程质量:
软件能力成熟度模型CMM(CapabilityMaturityModel).
国际标准过程模型ISO9000
软件过程改进和能力决断SPICE(SoftwareProcessImprovementandCapabilitydEtermination)
在商业过程中有关的质量内容:
培训、成品制作、宣传、发布、客户、风险、成本、业务等
所谓质量模型是指提供声明质量需求和评价质量基础的特性以及特性之间关系的集合。
如何看待软件质量的地位?
如果没有过程规范,会……
1)组织结构与过程活动不统一,成员不知过程为中心,还是任务为中心造成混乱。
2)成员缺少为完成有关活动所需的熟练程度和技能,导致效率低下。
3)从管理的角度缺少对过程的信任。
4)缺少成员培训,知识与技能与现有过程发生冲突。
软件过程能力描述(开发组和项目组)能够实现预期结果的程度。
过程能力实例:
独立完成开发任务
通过四级考试
软件过程性能表示遵循软件过程所得到的实际结果。
过程性能实例:
项目实际完成情况
此次四级考试结果
软件过程成熟度一个特定软件过程被明确和有效地定义、管理、测量和控制的程度。
软件过程成熟的标准
过程的一致性
过程的丰富性
过程的可视性
过程的稳定性
过程的不断改进
集成化产品开发模型(IPPD)
IPPD强调在贯穿整个生命周期期间所有技术及业务的相关人员的参与,这些人员包括顾客、供应商以及产品和产品相关过程的开发者,涉及的业务如测试与评价、制造、支持、培训、销售、采购、财务、合同以及处置过程。
CMMI的初步目标:
消除不一致、减少重复、提供公共术语、一致的风格、统一构造原则、维护公共构件等。
CMMI的长期目标:
为把其他学科添加到CMMI中奠定基础,进一步模型集成。
(1)初始级具有明显的不成熟过程的特点
(2)可重复级/受管理级建立了管理软件项目的方针和实施这些方针的规程,使软件项目的有效管理过程制度化,有能力去跟踪成本、进度和质量。
一个有效过程可特征化为已文档化的、已实施的、可培训的和可测量的软件过程
(3)已定义级包含一组协调的、集成的、适度定义的软件工程过程和管理过程,具有良好的文档化、标准化,使软件过程具有可视性、一致性、稳定性和可重复性,软件过程被集成为一个有机的整体
(4)已管理级的软件过程是量化的管理过程。
在上述已定义级的基础上,可以建立有关软件过程和产品质量的、一致的度量体系,采集详细的数据进行分析,从而对软件产品和过程进行有效的定量控制和管理。
(5)优化级不断改善组织的软件过程能力和项目的过程性能,利用来自过程和来自新思想、新技术的先导性试验的定量反馈信息,使持续过程改进成为可能。
为了预防缺陷出现,组织有办法识别出弱点并预先针对性地加强过程
软件过程的可视性
等级1的软件过程是一个模糊的整体,一个黑盒,项目过程的可视性是有限的。
等级2上,客户需求和工作产品受到控制,已建立基本的项目实践。
在确定情况下,管理控制允许项目具有可视性。
等级3上,项目定义的软件过程中的任务是可视的。
项目定义的软件过程对项目活动提供了相当全面的可视性。
等级4,定义的软件过程得到定量的使用和控制。
管理人员可以测量项目的进度和存在的问题。
等级5上,为提高生产率和软件质量,以受控的方式不断尝试新的和改进的软件开发方法。
CMM的作用
1)软件过程改进
根据软件过程评估的结果,确定当前软件过程的弱项,然后按照软件CMM成熟度等级的顺序,从低级逐步向更高级发展,以逐步改进软件过程。
CMM每一级都是更高级的基础,基础条件不具备,不可能达到更高级。
软件组织需要考虑如何更快地改进自己的软件过程,提高自己的竞争力的战略问题。
2)软件能力评估
根据软件过程评估的结果,确定被评估组织软件能力成熟度等级。
当被评估单位被评估的所有项目均已实现某成熟度等级及以下各级的所有关键过程域,才认为该单位已达到该成熟度等级。
一个关键过程域是否实现,要看该关键过程域的所有目标是否实现,而这些目标是否实现,取决于各目标的关键实践是否已得到有效实施。
CMM不能做的事情
CMM不能保证一定能成功地生成软件产品,也不能保证一定能很好地解决软件工程中的所有问题。
CMM不是处方,不告诉企业如何进行改进,不规定达到成熟度等级的具体方法,不会限制如何去实施软件过程,必须灵活地运用才能帮助不同企业处理各自具体业务需要
CMM不可能涉及项目的所有重要问题
不涉及特定领域的专门知识
不提倡任何特殊软件技术
不涉及任何选择、雇佣、激励、保留有用人才。
成熟度等级的跳跃
CMM中的成熟度等级描述组织处于某一级的特征,每一成熟度等级都是下一等级的基础。
CMM不赞成也不鼓励跳级,因为在CMM的低一级是实施上一级的必要基础,基础不牢的跳级通常意味着欠成熟和失败。
如不经过过程管理(2级),无法实现过程工程化,没有定义的过程(3级),就没有解释测量的基础。
软件过程环境和过程框架
框架是软件组织对技术、实践、方法和经验的有序积累,是知识管理。
如果没有一个清晰的建立框架的思想,没有一个明确的框架发展目标,框架是不会自动出现的。
过程环境是保证软件过程基本活动的基础。
软件过程实施、过程评估和改进是在过程环境中进行。
过程环境包含哪些内容?
软件组织的层次
软件个体:
软件开发人员、软件测试人员、项目协调人员。
软件团队:
开发组、测试组、软件工程过程组、软件配置管理组
软件组织:
由多个软件团队组成,组织能够独立开展业务,为客户提供产品和软件服务。
PSP提出的背景:
CMM的成功与否,与组织内部有关人员的积极参加、创造性活动以及知识和技能密不可分。
CMM存在以下问题:
CMM是软件工程实践所需目标、方法和实践的最佳描述,但如何在实验室或产业环境中应用?
CMM是致力于组织过程改进的框架,它如何才能使工作有效而且便利?
CMM未提供有关实现的关键过程域(KPA)所需的具体知识和技能。
个体软件过程
人、规程、方法和工具
软件的完成是靠每个人来完成的,它是软件工程的一个最基本元素。
软件工程师最重要的两方面品质:
知识、技能
工作热情
PSP就是为这个目标训练软件工程师而建立的过程。
PSP:
是一种可用于控制、管理和改进个人工作方式的自我改善过程,是一个包括软件开发表格、指南和规程的结构化框架。
作用:
软件项目开发成本的70%取决于软件开发人员的技能、经验和工作习惯。
一个单位的开发人员接受PSP培训,对该单位软件能力成熟度的升级是一个有力的保证。
CMM侧重软件过程的宏观管理,面向软件开发单位,PSP侧重于企业中有关软件过程的微观优化,面向开发人员。
二者互相支持,互相补充,缺一不可。
PSP概述
使用自底向上的方法来改进过程,向每个软件工程师表明过程改进的原则,使他们能够明白如何有效地生产出高质量的软件。
为基于个体和小型群组软件过程的优化提供了具体而有效的途径。
其研究与实践填补了CMM的空白。
PSP的原则(规范):
帮助软件工程师制定准确的计划
帮助软件工程师为改善产品质量而采取相应的步骤
建立度量PSP的改进基准
确定软件过程的改进对软件过程师能力可能产生的影响。
TSP概述
致力于开发高质量的产品,建立、管理和授权项目小组,并且指导他们如何在满足计划、费用的前提下,在承诺的期限范围内,不断生产并交付高质量的产品。
TSP的目标
—创建具有自我管理能力的群组。
实现TSP的条件
必须有各层主管的支持,以取得资源。
整个软件开发小组至少应在CMM的第二级(可重复层)。
全体软件开发人员必须经过PSP的培训。
开发小组成员应在2到20个人之间。
CMM、PSP和TSP的关系
CMM的成功与否,与组织内部有关人员的积极参加、创造性活动以及知识和技能密不可分。
PSP的研究与实践填补了知识和技能这一空白
TSP指导项目组成员有效地规划和管理项目开发任务,填补了人员的积极参加和创造性活动这一空白
质量管理体系的核心是管理组织、文化和流程,其基础是现有的软件质量标准、方法和工具。
软件质量工程体系,着重从系统工程学的角度去管理质量,在有限的资源情况下,获得最好成绩的质量效益
软件质量指标
正确性:
实现的功能达到设计规范,并满足用户需求的程度
可靠性:
规定的时间和条件下,仍能维持其性能水准的程度
易用性:
用户掌握软件操作所要付出的时间及努力程度
效率:
软件执行某项功能所需电脑资源(含时间)的有效程度
可维护性:
当环境改变或软件发生错误时,执行修改或恢复所做努力的程度
可移植性:
从一个系统/环境移到另一系统/环境的容易程度
软件质量控制(SQC)
软件质量保证(SQA)
软件质量管理(SQM)
软件质量管理的4个层次
检查,初期阶段,通过检验保证产品的质量,符合规格的软件产品为合格品,不符合规格的产品为次品,次品不能出售。
这个层次的特点是独立的质量工作,质量是质量部门的事,是检验员的事。
检验产品只是判断产品质量,不检验工艺流程、设计、服务等,不能提高产品质量。
保证,质量目标通过软件开发部门来实现,开始定义软件质量目标、质量计划,保证软件开发流程合理性、流畅性和稳定性。
预防,软件质量以预防为主,以过程管理为重,把质量的保证工作重点放在过程管理上
完美,以客户为中心,全员参与,追求卓越。
质量策划是贯彻质量方针的关键活动之一。
软件质量保证
内部质量保证是组织向自己的管理者提供信任;
外部质量保证是组织向外部客户或其它方提供信任。
质量保证活动种类:
复审(Review):
用结束标准对该阶段生产出的软件配置成分进行严格的技术审查等活动;
内审(Audit):
检查组织内部是否遵守已有的模板、规则、流程等。
质量成本=质量保证成本+损失成本
保证成本:
为保证满意的质量而发生的费用
损失成本:
没有达到满意的质量所造成损失
质量成本=质量预防成本+评价成本+失效成本
质量成本=质量保证成本+损失成本
质量保证成本=预防成本+评价成本
预防成本:
预防产生质量问题(软件缺陷)的费用,是企业的计划性支出,专门用来确保在软件产品交付和服务的各个环节不出现失误。
评价成本:
是指在交付和服务环节上,为评定软件产品或服务是否符合质量要求而进行的试验、软件测试和质量评估等所必需的支出。
失效成本:
分为内部的和外部的,如果在软件发布之前发现质量问题,而要求重做、修改和问题分析所带来的成本属内部失效成本,包括修正软件缺陷、回归测试等,以及因产品或服务不合要求导致的延误。
一旦发布给用户带来的失效成本,为外部成本。
质量成本设置的目的是为了用于质量成本的优化,使预防成本、评价成本和失效成本的总和最小,使质量成本个要素之间保持合理的最佳结构。
质量越高,所花费的成本越高。
为维持或提高质量水平,避免产生过高的故障成本,必须付出一定的预防和保证费用。
评审可以发现软件产品的问题,检查与评估越细致、彻底,客户发现的质量缺陷就越少,但评审并不能改进被评估的产品和服务的质量,不能杜绝有质量缺陷的产品。
加大预防成本可以减少降低评价成本,同样减少补救性支出。
朱兰曾在论质量策划一书中将质量定义为产品特征和没有缺陷。
PONC,即“不符合要求的代价(PriceofNonconformance)”或称“劣质成本”,是指由于缺乏质量而造成的人力、财力、物力以及时间成本的浪费。
PONC是在“零缺陷”质量管理中,为了更有效地衡量质量成本而引入的一个重要概念。
COPQ,即“不良成本(CostofPoorQuality)”或称“劣质成本”的概念。
COPQ指所有由过程、产品和服务中的质量缺陷引起的费用。
COPQ则是“6西格玛(Sixsigma)”质量管理中的一个重要概念,用于有效地衡量质量成本、质量改进过程在经营效益上的表现。
朱兰:
每一项任务都毫无缺陷地执行,就不会
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 质量管理 期末 复习