软件质量管理期末复习.docx_第1页
软件质量管理期末复习.docx_第2页
软件质量管理期末复习.docx_第3页
软件质量管理期末复习.docx_第4页
软件质量管理期末复习.docx_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

质量软件质量的概念、软件质量控制和管理的方法和技术,包括软件质量标准、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使用寿命结束时的处置或再生利用质量管理的定义:质量管理(Quality Management)是指确定质量方针、目标和职责,并通过质量体系中的质量策划、质量控制、质量保证和质量改进来使其实现的所有管理职能的全部活动。质量管理的社会性:不仅从直接客户,还需从整个社会的角度来评价(生产安全、环境污染、生态平衡)质量管理的经济性:不仅从某些技术指标考虑,还需从制造成本、价格、使用价值和消耗质量管理的系统性:是一个受到设计、制造、使用等因素影响的复杂系统。费根堡姆认为:质量系统是指具有确定质量标准的产品和为交付使用所必需的管理上和技术上的步骤的网络。(汽车)质量管理的三个阶段质量检验阶段:仅对产品质量实行事后把关(检验)统计质量控制阶段:工序质量控制图进行质量控制(制造)全面质量管理阶段:将质量控制扩展到产品寿命循环的全过程,强调全体员工参与控制。现代质量改进之父戴明TQM的奠基人约瑟夫朱兰统计质量控制之父 休哈特质量工程学创始人田口玄一全面质量控制之父费根堡姆零缺陷管理之父菲利浦克劳士比简述产品质量的意义?2.1 质量管理体系基础2.1.1 质量方针和质量目标2.1.2 质量管理体系中使用的文件类型2.1.3 质量管理体系评价2.1.4质量管理体系认证的主要活动质量管理体系的定义:为了实施质量管理的组织结构、职责、程序、过程和资源的一种特定体系。质量管理体系的要素:质量体系的结构要素和质量体系的选择要素。质量管理体系的意义:提高IT公司的管理水平,增强公司的抗风险能力。提高软件产品质量,增强企业市场竞争力。树立公司良好形象,巩固和不断扩大市场份额。与国际接轨,有利于国际市场的开拓。质量方针:是由组织的最高管理者正式发布的该组织总的质量宗旨和方向,是企业经营总方针的组成部分,是企业管理者对质量的指导思想和承诺。制定质量目标时应考虑的问题:确保质量目标与质量方针保持一致(方针顾客满意)应充分考虑企业现状及未来的需要(平均成绩90分)考虑顾客和相关方的要求(前瞻性)考虑企业管理评审的结果如何制定质量目标找出企业目前的弱项和存在的问题对这些问题进行分析,确定问题的范围由所存在的问题引出质量目标为使企业质量目标得到实施,制定目标时需满足如下要求。满足产品要求的内容、质量目标可测量、质量目标的挑战性。2.2 八项质量管理原则以顾客为关注焦点领导作用 全员参与过程方法 系统的管理方法持续改善 基于事实的决策方法 互利的供方关系软件是完成某类问题求解的程序和数据以及维护程序必须提供的一系列文档组成的集合。 软件 = 程序 + 数据 + 系列文档软件的性质:软件具有高度的抽象性和严密的逻辑性。(内部性质)一种逻辑的信息产品,用文字、符号表达的智力产物。(外部性质)过程一般分为:实现过程、管理过程、支持过程过程是由人、规程和方法以及工具和设施三方面构成的。对过程的策划、实施、监测和调整的不断循环的过程。PDCA:Deming Cycle软件基本过程:软件获取、供应、开发、运行和维护的过程,包括需求分析、软件设计、编码等过程。软件支持过程:对软件主要过程提供支持的过程,包括文档编制过程、配置管理过程、质量保证过程、验证和确认过程(测试过程)、评审过程等。软件组织过程:对软件主要过程和支持过程的组织保证过程,包括管理过程、基础设施过程、改进过程和培训过程。软件过程的组成:工程过程:软件系统、产品定义、设计、实现以及维护的过程。支持过程:管理过程:组织过程:客户-供应商过程:软件开发的基本过程,可以简单地分为需求分析、设计(概要设计、详细设计)、编程、测试和维护等阶段, 即通常所说的软件生命周期。XP基本思想和原则个体和交互 胜过过程和工具可以工作的软件胜过面面俱到的文档客户合作 胜过合同谈判响应变化 胜过遵循计划阶段性开发的基本模型(增量和迭代模型)分阶段性开发的基本模型特点:增量模型描述软件产品的不同阶段是按产品的功能进行划分,先开发主要功能和用户最需要的功能,然后随时间推进,不断增加新的辅助功能和次要功能,最终开发出一个功能完善、稳定的产品。迭代模型描述软件产品的不同阶段是按产品深度或细化程度来划分,先将产品的整个框架都建立起来,在系统的初期,已经具有用户所有需求的全部功能。然后随时间推进,不断细化或完善已有功能,这个过程是一个迭代的过程。从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。软件缺陷的产生项目期限的压力 产品的复杂度 沟通不良 开发人员的疲劳、压力或受到干扰 缺乏足够的知识、技能和经验 不了解客户的需求 缺乏动力为什么软件需求规格说明书是存在缺陷最多的地方 原因分析:用户非计算机专业人员,沟通存在困难,理解不一致。软件产品完全靠想象去描述系统的实现结果,特性不清晰。用户的需求是变化的,容易引起前后、上下文的描述不一致。需求分析没有的到重视,文档上投入人力、时间不足.没有在开发队伍中进行充分沟通,只有设计师或项目经理得到较多信息。软件质量- 3A特性Accountability (可说明性) 用户可以基于产品或服务的描述和定义进行使用。 (例如: 市场需求说明书, 功能设计说明书.)Availability (有效性) 产品或服务对于99.999% 客户总是有效的 (例如: 性能测试和恢复测试)Accessibility (易用性) 对于用户, 产品或服务非常容易使用并且一定是非常有用的功能 . (例如: 确认测试和用户可用性测试) RUP 软件质量的三个维度功能(Functionality):按照既定意图和要求,执行指定用例的能力。可靠性(Reliability ):软件坚固性和可靠性(防故障能力,如防止崩溃、内存丢失等能力)、资源利用率、代码完整性以及技术兼容性等。健壮性和有效性有时可看成是可靠性的一部分。性能(Performance):用来衡量系统占用系统资源(CPU时间、内存)和系统响应、表现的状态软件质量描述:软件质量是衡量所交付的软件是否符合相关的软件开发标准,满足预期的功能和性能要求,准时交付给客户,并且软件开发成本不超出预算,从而最终满足客户要求的标准。软件质量的衡量指标:零缺陷对目标的适应性能否持续稳定且成本合理地应用于市场产品和服务特性是否能够满足用户特定的以及隐含的需求等什么样的软件是高质量的软件?相对的无产品缺陷(Bug Free)或只有极少量的缺陷, 它能够准时递交给用户并且所用的费用都是在预算内的并且满足客户需求,是可维护的。但是, 有关质量的好坏最终评价依赖于用户的反馈。软件质量是指软件产品的特性可以满足用户的功能、性能需求的能力。改进软件质量的三类方法包括:控制软件生产过程、提高软件生产者的组织性和软件生产者个人能力。净化软件工程:统计质量控制下的软件生产过程评估软件能力成熟度(CMM)提高软件生产力和个人技能(PSP)软件质量特性包括:与功能和性能需求的一致性与开发标准的一致性与同行业所有软件应满足的隐含特性一致性从用户的角度看,软件的生存期可分为如下三个阶段: 初期运用:运行新开发的软件产品。 维护与扩充:在运行过程中修改缺欠的内容;而且,为了进一步的使用,需根据运行环境(主要指应用环境和技术环境)的变化做功能上和性能上的扩充。 移植和连接:把在原有平台上运行的软件向其它新的运行环境转移、或者组成软件包以便重用、或与其它软件进行连接。产品质量是人们实践产物的属性和行为,是可以认识,可以科学地描述的。并且可以通过一些方法和人类活动,来改进质量. 质量模型: McCall 模型, Boehm 模型, ISO 9126 模型过程质量: 软件能力成熟度模型 CMM ( Capability Maturity Model). 国际标准过程模型 ISO 9000 软件过程改进和能力决断 SPICE ( Software Process Improvement and Capability dEtermination)在商业过程中有关的质量内容: 培训、成品制作、宣传、发布、客户、风险、成本、业务等 所谓质量模型是指提供声明质量需求和评价质量基础的特性以及特性之间关系的集合。如何看待软件质量的地位?如果没有过程规范,会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,即“不符合要求的代价 (Price of Nonconformance)” 或称“劣质成本”,是指由于缺乏质量而造成的人力、财力、物力以及时间成本的浪费。PONC是在“零缺陷”质量管理中,为了更有效地衡量质量成本而引入的一个重要概念。COPQ,即“不良成本 (Cost of Poor Quality)” 或称“劣质成本”的概念。COPQ指所有由过程、产品和服务中的质量缺陷引起的费用。COPQ则是“6西格玛(Six sigma)”质量管理中的一个重要概念,用于有效地衡量质量成本、质量改进过程在经营效益上的表现。朱兰:每一项任务都毫无缺陷地执行,就不会发生的成本。劣质成本的分类故障成本,包括质量成本中的外部故障成本、内部故障成本,需采取返工、返修、纠正等补救措施所花费的成本。过程成本,包括非增值成本(非增值的预防成本和鉴定成本)、低效率过程成本(如多余的操作、重复的作业等)、机会损失成本(指如果没有缺陷而就不会发生的费用等)。损失成本,包括顾客损失成本(指给顾客所造成的各种额外的费用及负担)、信誉损失成本。 软件质量度量的地位采用定量软件工程,制定软件产品质量的度量准则,可以提高软件开发过程管理的可视性,降低劣质成本,提高软件产品的质量 。 项目质量度量是度量软件项目特征和项目执行的质量状态,包括项目的资源使用效率、项目性能、项目风险等。 产品质量度量是度量软件产品的特性和质量属性,如软件产品的功能、复杂性、设计特征、性能和可靠性等。 过程质量度量是度量软件开发和维护的改进过程,包括过程中某一时刻的状态(时间切面)、历史数据分析度量和未来变化预测的度量等。1. 软件质量控制和软件质量保证之间有何区别?2. 比较质量成本和劣质成本的概念、联系及差异。4.1.1 软件质量保证的概念4.1.2 软件质量保证目标4.1.3 软件质量保证的组织结构4.1.4 软件质量保证人员的素质要求 软件质量的两个方面:设计质量:需求分析和设计阶段的质量制造质量:软件实现、测试和维护阶段的质量软件质量保证是为软件产品满足已指定的技术需求提供充分证据,而开展的有计划的和系统的活动。软件质量保证的目的:为了向组织内部以及向客户或第三方提供信任保证。软件质量保证的目标:软件质量保证工作应系统并有计划地进行。 客观地检查软件产品和工作是否遵循适当的标准和流程。 保证软件开发过程中各部分的有效沟通。SQA和项目经理 :SQA和项目经理之间是合作的关系,帮助项目经理了解项目中过程的执行情况、过程的质量、产品的质量、产品的完成情况等。 SQA和开发工程师:SQA和开发人员应该保持良好的沟通和合作,任何对立和挑衅都可能导致质量保证这个大目标失败。 SQA和测试工程师 :SQA和测试人员都充当着第三方检查人员的角色。但是SQA主要对流程进行监督和控制,而测试人员则是针对产品本身进行测试。 SQA不能担任开发、测试或配置管理工作。 SQA是整个企业、整个组织的责任,而不仅仅是某个部门或某几个人的责任。沟通能力和捕捉问题的能力熟悉软件开发过程具备很强的计划性具备处理繁杂工作的能力有责任心,客观监督软件过程学习能力 SQA人员集教师、医生和警察三大角色于一体。软件质量保证主要通过监控软件开发过程来保证软件产品的质量,提高项目的透明度,确保项目开发过程中发现的问题得到及时的处理,从根本上保证软件的质量。软件质量保证的任务:编制软件质量保证计划根据软件质量保证计划实施软件质量保证活动记录和汇报软件质量保证结果确定了项目计划和范围,SQA人员即可以编写软件质量保证计划,软件质量保证计划将作为后续软件质量活动的依据。软件质量计划内容文档管理:编制、复核、审批和发布测试和验收项目输出物问题报告和处理工具、技术和方法分包商/供应商管理SQA记录和报告:收集、维护和保密培训风险管理软件质量保证活动的实施和记录1. 阶段评审和检查2. 测试与验收3. 日常活动检查4. 配置管理审计5. 问题报告和处理6. 收集过程改进建议7. 软件质量保证记录和报告质量管理体系:在质量方面指挥和控制组织的管理体系。软件质量保证体系:针对软件领域的质量管理体系。软件质量保证体系的主要内容规定必要的评审、检查和审计(1)评审 正式的技术评审 一般会议评审 邮件评审(2)检查:项目中的全部正式产品、文档其它交付物、软件开发过程,均应通过SQA人员,并签署意见。(3)审计:审计分析、提交审计报告。审计步骤:编制审计计划,明确审计目标。准备审计检查表实施审计提交审计检查结果问题跟踪和关闭审计记录归档根据SQA人员的要求,SQA人员的培养主要集中于两个方面: 技术培养 素质培养 质量管理=制定质量方针和质量目标+质量策划+质量控制+质量保证+质量改进ISO/IEC 12207: “软件质量保证过程(SQA)是恰当保证为项目生存周期中的软件产品和过程符合规定需求和已制订的计划提供足够保证的过程”。CMM二级的关键过程域:软件质量保证软件质量保证过程域的主要参与者及其职责SQA经理:1.全面负责项目软件质量保证活动2.制定SQAP3.参与准备和评审SDP、标准和规程4.组织进行软件工程活动评审和软件工作产品审核5.定期向软件工程组通报SQA活动结果6.处理发现的不符合问题7.适合时与顾客的SQA人员一起定期评审自己的活动SQA组:按SQA经理的安排进行指定的高级管理者:1.处理项目内部无法解决的不符合问题2.定期参与评审SQA活动项目软件经理:1.负责实现项目质量目标2.征求SQA意见并支持SQA活动3.定期地且事件驱动地评审项目SQA活动独立专家:独立于SQA组的专家定期评审SQA组的活动和软件工作产品软件工程有关人员:支持项目SQA活动软件质量保证 只是起保证作用,不能代替开发者的质量实现作用 主要进行符合性检查,但不负责质量的实现 不可能检查全部符合性,要选择最能增加价值的检查项所以质量好的软件也包括非软件的产品,即有很好的文档说明和培训。软件质量保证是CMM二级的一个关键过程域。第5章 软件质量控制与管理软件质量控制的基本方法5.1.1 目标问题度量法目标问题度量法是通过确认软件质量目标并且持续观察这些目标是否达到软件质量控制的一种方法。明确质量控制目标量化控制目标:(设想问题,如问题发生带来那些偏差,研究发生的偏差,有助于目标量化)度量:缺陷次数、发生频率、缺陷发生阶段的频率分析5.1.2 风险管理方法软件风险管理法是识别与控制软件开发中对成功达到质量目标危害最大的那些因素的系统性方法。风险管理的目的是使风险对项目的影响最小。项目风险是指潜在的预算、进度、人力(工作人员和组织)、资源、客户及需求等方面的问题及对软件项目的影响。风险识别是试图用系统化的方法确定威胁项目计划的因素。风险识别包括了两类风险的识别,内在风险和外在风险。内在风险指项目工作组能加以控制和影响的因素,如人事任免和成本估计等。外在风险指超出项目工作组影响力之外的风险,如市场转向或政府行为等。人员不足进度计划和预算不准确开发了不适用的用户接口外供部件不足需求不断变更开发了错误的软件功能风险分析可以分为定性风险分析 与定量风险分析。定性风险分析是评估已识别风险的影响和可能性的过程。定量风险分析是量化分析每一风险的概率及其对项目目标造成的后果,同时也要分析项目总体风险的程度。(情景分析 比率/范围分析 概率分析 敏感性分析 )不同的风险发生后对项目造成的影响各不相同,主要从如下三个方面考虑:风险的性质,风险发生时产生的问题。风险的范围,风险的严重性及其总的分布。风险的时间,何时能感受到风险及风险维持多长时间。主要采用的应对方法有:应急基准计划(计划编制基础)、避免风险(中断项目)、减小风险、风险承担、风险转移软件质量控制包括产品质量的控制,而且包括开发过程的质量控制。 前者是短期的、被动的。 后者是全面的、长期的、主动的、可以预期的。 缺陷分析和预防软件质量控制模型是指对一个特定的软件开发项目,在如何计划和控制软件质量方面,为一个团队提供具体组织和实施指导的框架。软件质量控制模型过程是一个PDCA的循环过程。PDCA包括4个部分:计划、执行、检查和行动。在质量控制模型中的3类控制参数,即产品、过程和资源,它们之间具有相关性。产品:一个过程的输出产品不会比输入产品的质量更高。过程:一些过程进行质量设计并将质量构造入产品,而另一些过程则是对质量进行检查。资源:是指为了得到要求质量的产品、过程使用的时间、资金、人和设备。软件质量控制模型要素分析产品对质量的影响 产品质量通过开发过程设计并进入产品,同时也会引入缺陷。在产品中获得的质量,通过检查过程了解和确认。一个过程涉及的组织和部门数及它们间的相互关系,将影响引入差错的概率,也会影响发现和纠正差错的概率。资源对质量的影响人力资源对软件质量和生产效率最重要的影响因素,开发人员的知识、能力、经验和判断都相差很大。时间在通常情况下都是不充分的,特别是需求分析和集成测试阶段。软件开发环境和测试设备不足,会使差错发生率提高,发现并纠错的时间也将增加。软件质量控制技术的主要特征 软件寿命阶段的可运行性特征 预防性和检测性结合性特征 不同的质量控制技术对不同的质量控制参数有不同的影响文档编制控制技术(规则) 受控文档清单 受控文档的编制 受控文档的批准 受控文档的存储与检索结果方面的问题3. 项目进展控制技术 管理活动、进度、资源、预算的控制 检查表Pareto图直方图运行图散布图控制图因果图支持性质量保证手段使用模板有很多益处:简化文档评审工作,使文档编制更加方便确保开发人员编制的文档更完善对新组员有利增加项目的可理解性便于维护,维护人员快速找到所需信息软件质量控制的基本方法:目标问题度量法;风险管理法PDCA。软件质量控制的模型、技术、工具:软件质量控制模型及三要素特征,实施与跟踪七大控制工具,根据实际情况综合应用支持性质量保证手段:模板与文档软件质量控制的基本方法是什么?解释PDCA的含义。6.2 配置项6.3 基线 6.4 版本控制软件配置管理(Software Configuration Management,SCM)是一种标识、组织和控制修改的技术。 简而言之,就是管理软件的变化。基线是正式评审过的一个或多个软件配置项,每一个基线都是下一步开发的出发点和基础,并且只能通过正式的变化控制过程改变。配置是在技术文档中明确说明最终组成软件产品的功能或物理属性。软件配置项SCI在软件生存周期内所产生的各种应纳入管理范围的系统构成成分。包括各种管理文档和技术文档,源程序与目标代码,以及运行所需的各种数据等(配置管理的资源对象)。 项目数据库又称配置管理库或受控库。有效的软件配置管理可以解决一些常见的问题; 有效的软件配置管理可以节约用户资金; 有效的软件配置管理可以提高软件开发管理的水平; 有效的软件配置管理可以保护企业的知识财富。配置管理任务制订项目的配置计划; 对配置项进行标识; 对配置项进行版本控制; 对配置项进行变更控制; 定期进行配置审计; 向相关人员报告配置的状态。所有在软件过程中产生的信息,总称为软件配置项,主要包括:计算机程序(源代码和可执行程序);描述计算机程序的文档(针对技术开发者和用户);数据(包含在程序内部或外部)。配置控制主要包括:存取控制:设定了软件开发人员对软件基准库的存取权限,保证软件开发过程及软件产品的安全性;版本控制:是配置管理的基本要求,使得组织在任何时刻都可以获得配置项的任何一个版本;变更控制:为软件产品变更提供了一个明确的流程,要求任何进行配置管理的软件产品变更都要经过相应的授权与批准才能实施;产品发布:保证了提交给客户的软件产品是完整的、正确的。软件配置项标识是管理配置的前提。标识包括文件名和版本。配置项命名: (1) 唯一性:在一个项目内不能出现重名,以避免混淆; (2) 可追溯性:系统的要求,即名字应能体现相邻配置项之间的关系。基线标志软件开发过程的各个里程碑,任何配置项一旦复审通过,即形成一个基线,它标志开发过程一个阶段的结束。基线的属性 通过正式评审过程建立;存在于基线库,对基线的变更接受更高权限的控制;基线是进一步开发和修改的基准和出发点;进入基线前,不对变化进行管理;进入基线后,对变化进行有效管理;不会变化的内容不纳入基线,变化对其它无影响的也不纳入基线;基线具有名称、标识符、版本、日期等属性;交付给客户的基线成为一个Release,内部开发用的基线为一个Build。基线的优点重现性:当更新不稳定或不可信时,基线提供一种取消变更的方法;可追溯性:建立项目工件之间的前后继承关系;版本隔离:新项目与随后对原始项目所进的变更进行隔离。基线种类功能基线(Functional Baseline):系统规格说明书指派基线(Allocated Baseline):软件需求规格说明书产品基线(Production Baseline):软件产品的全部配置项的规格说明书版本控制是对软件系统中不同版本的配置进行标识和跟踪的过程,是进行软件配置管理的基础。版本控制主要分为:版本的访问与同步控制、版本分支和合并。版本的访问控制 工作区域中的源文件是从库中恢复得到的一个复制文件,它可以是可“写”的,也可以是可“读”的。一般有两种工作模式: 一是在工作区域一旦有“读”请求,就做一次恢复操作,获得复制文件,当“读”操作结束,该复制文件被删除; 二是仅当软件库中的内容发生更改时,才发生交互,而不是每次“读”操作都与软件库中的文件发生交互。 版本的同步控制 同步控制实际上是版本的检入检出控制: 检入:将软件配置项从用户的工作环境存入到软件配置库的过程; 检出:将软件配置项从软件配置库中取出的过程。版本分支人工方法就是从主版本复制一份文件,做上标记;实行版本控制之后,版本的分支是一份复制文件,这时的复制过程和标记动作由版本系统自动完成。版本合并 版本合并是通过对文件的比较来进行合并。有两种途径: 一种是将版本A的内容附加到版本B中; 另一种是合并A和B的内容,形成新的C; 后一种途径更容易理解,也符合软件开发的思路。在软件开发过程中,会产生许多变更,如配置项、配置、基线、构建的版本、发布版本等的变更。对于所有的变更,都要有一个控制机制,以保证所有变更是可控的、可跟踪的、可重现的。 功能变更缺陷变更软件的变更控制机制通常只能跟踪到工程变更顺序产生为止。为确认变更是否正确完成, 一般可以用以下两种方法去审查: 正式技术评审:着重检查已完成修改的软件配置对象的技术正确性,评审者评价SCI,决定它与其它SCI的一致性。 软件配置审计:对所有的变更进行,除了无价值的变更之外。软件配置审计作为正式技术评审的补充,评价在评审期间通常没有被考虑的SCI的特性 CVS是并发版本系统(Concurrent Versions System)的意思,主流的开放源码,网络透明的版本控制系统。CVS基本概念:仓库:它是CVS服务器的根目录,所有的工作都保存在这个仓库;模块:模块里面放的是一个项目的所有文件;导入:将本地软件项目导入到CVS仓库中;导出:将仓库中的一个模块中的东西到处到本地工作目录下;提交修改:将本地修改的文件提交到CVS仓库;同步:从CVS下载修改过的文件来更新本地文件;文件版本:指的是单个文件版本;发行版本:整个产品的版本;标签:对一个文件或多个文件给的符号名。良好的软件配置管理具有如下特征:任何项目成员都要对其工作成果进行配置管理配置管理规范应清晰明了,便于执行。选择配置管理工具时综合考虑价格、易用性和功能因素。CMM二级的关键过程域需求管理软件项目计划软件项目追踪与监控软件子合同管理软件质量保证软件配置管理有一个编程小组,在开发程序的时候,A发现B编写的程序有一个很不容易注意到的错误,便对错误进行修改,却没有将其告诉B。当B修改自己的程序时仍然用了原来那个有错的程序,然后放入系统,这样一来,A所做的修改没有起作用。结果是:A以为那个错误已修正了,而B并不知道有错,最终这个错误继续存放于程序中。请问是由于什么原因导致上面的结果?如何避免发生此类问题? 版本控制在软件项目里是非常重要的。试想把(ab)改为(ab)是有很大差异,对产品来说是不同的版本。你可以用1秒的时间把版本修改一点,而系统将产生很大的变化。 所以软件配置管理是必要的。另外一件常发生的事情是某程序员找不到别人修改了的源程序,或是源程序用了旧版本的编译器而使系统产生不同的行为。这是因为没有适当的管理软件的配置。 软件配置管理贯穿于软件生命周期中,其主要功能是控制软件生命周期中软件的变更,减小因变更所造成的影响,确保软件产品的质量。配置管理的主要任务包括:基线控制、版本控制和变更控制。有效性和可靠性是测量标准中最重要的指标 。软件质量度

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论