一、质量管理概述人们常说:“质量就是生命”,这句话说明了质量管理的重要性。1.1 GB/T16260.1-2006 定义国家标准《软件工程 产品质量第1部分:质量型》(GB/T16260.1-2006)中对质量的定义为“软件产品特性的总和,表示软件产品满足明确或隐含要求的能力”。1.2 GB/T19000-ISO 9000(2000)系列标准定义根据 GB/T19000-ISO 9000(2000)的定义,质量管理是指确立质量方针及实施质量方针的全部职能及工作内容,并对其工作效果进行评价和改进的一系列工作。ISO9000系列标准是现代质量管理的结晶,实际上是由计划、控制和文档工作3个部分组成循环的体系。ISO9000标准是以质量管理中的8项原则为基础的,它们分析是以顾客为关注焦点、领导作用、全员参与、过程方法、管理的系统方法、持续改进、以事实为基础进行决策、与供方互利的关系。二、软件质量模型2.1 软件全生命周期质量模型软件质量是指软件产品中能满足给定需求的各种特性的综合,在GB/T16260.1-2006中,提出了软件生存周期中的质量模型,如下图所示:为满足软件质量要求而进行的软件产品评价是软件开发生存周期中的一个过程。软件产品质量可以通过测量内部属性(典型地是对中间产品的静态测度),也可以通过测量外部属性(典型地是通过测量代码执行时的行为),或者通过测量使用质量的属性来评价。目标就是使产品在指定的使用环境下具有所需的效用。过程质量有助于提高产品质量,而产品质量又有助于提高使用质量。2.1.1 内部和外部质量的质量模型GB/T16260.1-2006将软件质量属性划分为6个特性:功能性、可靠性、易用性、效率、维护性和可移植性,并进一步细分为27个子特性,这些子特性可用内部或者外部质量测量。外部和内部质量的质量模型如下图所示:要注意的是,上图所示的质量模型与国际通用的软件质量标准ISO/IEC9126-1:2001有些区别,该标准定义了6个质量特性和21个质量子特性,即图中的6个“依从性”统一划归到“功能性”中,合并为1个子特性。同时,没有“易用性”中的“吸引性”。2.1.2 使用质量的质量模型使用质量是指软件产品使指定用户在特定的使用环境下达到满足有效性、生产率、安全性和满意度要求的特定目标的能力。使用质量是基于用户观点的质量,使用质量的获得依赖于取得必需的外部质量,而外部质量的获得则依赖于取得必需的内部质量。2.1.3 McCall 质量模型McCall 质量模型从软件运行、软件修改和软件转移三个方面来考查软件的质量,其体系如下图所示:2.1.4 质量特性度量软件质量特性度量有两类:预测型和验收型。预测度量是利用定量或定性的方法估算软件质量的评价值,以得到软件质量的比较精确的估算值。验收度量是在软件开发各阶段的检查点,对软件的要求质量进行确认性检查的具体评价值,它是对开发过程中的预测进行评价。预测度量有两种。第一种叫做尺度度量,这是一种定量度量。它适用于一些能够直接度量的特性,例如,出错率定义为“错误数/KLOC/单位时间”。第二种叫做二元度量这是一种定性度量。它适用于一些只能间接度量的特性,例如,可使用性、灵活性等。要注意的是,在软件质量的所有子特性中,有些是正相关的,有些是负相关的。例如,可靠性和可用性就是正相关的,它们之间可以互相促进;而安全性和效率就是负相关的,它们之间是一对矛盾体。因此,在系统设计过程中应根据具体情况对各种特性去进行折中,以便得到在总体上用户满意的质量标准。2.1.5 相关概念在这个部分,读者还需要理解与软件质量相关的三个概念。验证:指在软件开发周期中的一个给定阶段的产品是否达到在上一阶段确立的需求的过程。确认:指在软件开发过程结束时对软件进行评价以确定它是否和软件需求相一致的过程。测试:指通过执行程序来有意识地发现程序中的设计错误和编码错误的过程测试是验证和确认的手段之一。三、质量管理计划3.1 概述现代质量管理的一项基本准则“质量是计划出来的,而不是检查出来的”,这是在项目质量管理工作中必须牢牢把握的。编制一份清晰的质量管理计划是实施项目质量管理的第一步,而一个清晰的质量管理计划首先需要明确以下两点:一是明确将采用的质量标准;二是明确质量目标。在该过程中,质量政策和质量标准往往是编制质量管理计划的约束条件,并来自于项目组织之外。例如,质量政策可能来自于项目执行组织高层的战略规划,质量标准可能来自于强制性的行业标准或国家标准等。并不是说项目团队对于上述两方面无能为力,其实,项目团队本身也可以在一定程度上对它们施加自己的影响。例如,通过功能分析和价值分析来对质量政策和质量标准进行权衡。另外,项目质量管理计划的编制必须结合信息系统项目的具体特征和企业自身的实际情况。3.2 计划的内容参考国家标准《计算机软件文档编制规范》(GB/T8567-2006)的规定,软件质量管理计划应大致包括如下内容:3.2.1 引言包括质量管理计划的标识、系统概述、文档概述、组织和职责、资源等方面的内容。3.2.2 引用文件列出质量管理计划引用的所有文档的编号、标题、修改版本和日期,也应标识不能通过正常的供货渠道获得的所有文档的来源。3.2.3 管理描述负责质量管理(质量保证、质量控制)的机构、任务及其有关的职责。3.2.4 文档列出在软件的开发、验证与确认,以及使用与维护等阶段中需要编制的文档,并描述对文档进行评审与检查的准则。3.2.5 标准、规程和约定列出软件开发过程中要用到的标准、规程和约定,并列出监督和保证执行的措施。3.2.6 评审和检查规定所要进行的技术和管理两方面的评审和检查工作,并编制或引用有关的评审和检查规程,以及通过与否的技术准则。至少要进行下列各项评审和检查工作:软件需求规格评审、系统/子系统设计评审、软件设计评审、软件验证与确认计划评审、功能检查、物理检查、综合检查、管理评审。3.2.7 项目计划阶段的质量管理活动描述质量管理负责人参与制订项目开发计划和配置管理计划的活动:以及三者之间的关系。3.2.8 评审和审核包括过程的评审、工作产品的评审和不符合问题的解决3.2.9 软件配置管理必须编制有关软件配置管理的条款,或单独制订文档。3.2.10 工具、技术和方法指明用以支持软件质量管理工作的工具、技术和方法描述它们的用途。3.2.11 媒体控制指出保护计算机程序物理媒体的方法和设施,以免非法存取、意外损坏或自然老化。3.2.12 对供货单位的控制规定对供货单位进行控制的规程,从而保证项目承建单位从软件销售单位购买的、其他开发单位(或子开发单位)开发的或从开发单位(或子开发单位)现存软件库中选用的软件能满足规定的需求。3.2.13 记录的收集、维护和保存指明需要保存的软件质量管理活动的记录,并指出用于汇总、保护和维护这些记录的方法和设施,并指明要保存的期限。3.2.14 日程表列出软件质量管理活动的日程表,并确保质量管理的日程表与项目开发计划、配置管理计划保持一致。3.2.15 注解包含有助于理解质量管理计划的一般信息,例如,背景信息、词汇表、原理等。这一部分应包含为理解质量管理计划需要的术语和定义,所有缩略词和它们在质量管理计划中的含义的字母序列表。3.2.16 附录提供那些为便于维护质量管理计划而单独编排的信息(例如,图表、分类数据等)。为便于处理,附录可以单独装订成册,按字母顺序编排。3.3 PDCA 循环3.3.1 概述PDCA 循环又称为戴明环,是美因质量管理专家戴明博士首先提出的,它是全面质量管理所应遵循的科学程序。全面质量管理活动的全部过程,就是质量计划的制订和组织实现的过程,这个过程就是按照 PDCA 循环,不停顿地、周而复始地运转的。3.3.2 内容1. P(Plan):计划,确定方针和目标,确定活动计划。2. D(Do):执行,实现计划中的内容3. C(Check):检查,总结执行计划的结果,注意效果,找出问题。4. A(Action):行动,对总结检查的结果进行处理,成功的经验加以肯定并适当推广、标准化;失败的教训加以总结,以免重现,未解决的问题放到下一个PDCA 循环。四、质量保证与质量控制4.1 概述项目质量管理的主要活动是质量保证与质量控制。质量保证是指定期评估项目总体绩效,建立项目能达到相关质量标准的信心。质量保证对项目的最终结果负责,而且还要对整个项目过程承担质量责任;质量控制是指监测项目的总体结果,判断它们是否符合相关质量标准,并找出如何消除不合格绩效的方法。4.2 质量保证4.2.1 概述在明确了项目的质量标准和质量目标之后,需要根据项目的具体情况,如用户需求技术细节、产品特征,严格地实施流程和规范,以此保证项目按照流程和规范达到预先设定的质量标准,并为质量检查、改进和提高提供具体的度量手段,使质量保证和控制有切实可行的依据。所有这些在质量系统内实施的活动都属于质量保证,质量保证的另一个目标是不断地进行质量改进,为持续改进过程提供保证。质量保证应贯穿于项目的始终。质量保证往往由质量保证部门或项目管理部门提供,但并非必须由此类单位提供。质量保证可以分为内部质量保证和外部质量保证,内部质量保证由项目管理团队,以及企业的管理层实施:外部质量保证由客户和其他未实际参与项目工作的人员实施。质量保证的工具和技术有质量审计和过程分析等。质量审计是对特定管理活动进行结构化审查,找出教训以改进现在或将来项目的实施。质量审计可以是定期的,也可以是随时的,可由企业质量审计人员或在灯领域有专门知识的第三方执行:过程分析遵过程改进计划的步骤,从一个企业或技术的立场上来识别需要的改进。过程分析是非常有效的质量保证方法,通过采用价值分析、作业成本分析及流程分析等方法,质量保证的作用将大大提高。软件质量保证(SoftwareQualityAssurance,SQA)是指为保证软件系统或软件产品充分满足用户要求的质量而进行的有计划、有组织的活动,这些活动贯穿于软件生产的各个阶段即整个生命周期。SQA由各项任务构成,这些任务的参与者有两种人:软件开发人员和质量保证人员。前者负责技术工作,后者负责质量保证的计划、监督、记录、分析及报告工作。软件开发人员通过采用可靠的技术、方法和措施,进行正式的技术评审,执行软件测试来保证软件产品的质量。质量保证人员则辅助软件开发人员得到高质量的最终产品。4.2.2 内容美国卡耐基·梅隆大学软件工程研究所推荐了一组有关质量保证的计划、监督、记录、分析及报告的 SOA 活动,这些活动由一个独立的 SOA 小组执行。4.2.2.1 制订SOA 计划SQA 计划在制订项目计划时制订,由相关部门审定。它规定了软件开发小组和质量保证小组需要执行的质量保证活动。 4.2.2.2 参与开发该软件项目的软件过程描述软件开发小组为将要开展的工作选择软件过程,SOA小组则要评审过程说明,以保证该过程与企业政策、内部的软件标准、外界所制订的标准以及项目开发计划的其他部分相符。4.2.2.3 评审评审各项软件工程活动,核实其是否符合已定义的软件过程。SQA 小组识别、记录和跟踪所有偏离过程的偏差,核实其是否已经改正。4.2.2.4 审计审计指定的软件工作产品,核实其是否符合已定义的软件过程中的相应部分。SQA 小组对选出的产品进行评审,识别、记录和跟踪出现的偏差,核实其是否已经改正,定期向项目负责人报告工作结果。 4.2.2.5 记录并处理偏差确保软件工作及工作产品中的偏差已被记录在案,并根据预定规程进行处理。偏差可能出现在项目计划、过程描述、采用的标准或技术工作产品中(6)报告。记录所有不符合部分,并向上级管理部门报告。跟踪不符合的部分直到问题得到解决。除了进行上述活动外,SOA 小组还需要协调变更的控制与管理,并帮助收集和分析软件度量的信息。4.3 质量控制质量控制指监视项目的具体结果,确定其是否符合相关的质量标准,并判断如何能够去除造成不合格结果的根源。质量控制应贯穿于项目的始终。质量控制通常由机构中的质量控制部或名称相似的部门实施,但实际上并不是非得由此类部门实施。项目管理层应当具备关于质量控制的必要统计知识,尤其是关于抽样与概率的知识,以便评估质量控制的输出。其中,项目管理层尤其应注意明确以下事项之间的区别:1. 预防(保证过程中不出现错误)与检查(保证错误不落到顾客手中)。2. 特殊抽样(结果合格或不合格)与变量抽样(按量度合格度的连续尺度衡量所得结果)。3. 特殊原因(异常事件)与随机原因(正常过程差异)。4. 许可的误差(在许可的误差规定范围内的结果可以接受)和控制范围(结果在控制范围之内,则过程处于控制之中)。项目结果既包括产品结果(例如,可交付成果),也包括项目管理结果(例如,成本与进度绩效)。因此,项目的质量控制主要从项目产品/服务的质量控制和项目管理过程的质量控制两个方面进行的,其中项目管理过程的质量控制是通过项目审计来进行的,项目审计是将管理过程的任务与成功实践的标准进行比较所做的详细检查。就软件项目而言,进行质量控制的主要活动是软件评审(技术评审)和软件测试等。4.4 质量保证与质量控制的关系质量保证一般是每隔一定时间(例如,每个阶段末)进行的,主要通过系统的质量审计和过程分析来保证项目的质量。质量控制是实时监控项目的具体结果,以判断它们是否符合相关质量标准,制订有效方案,以消除产生质量问题的原因。一定时间内质量控制的结果也是质量保证的质量审计对象。质量保证的成果又可以指导下一阶段的质量工作,包括质量控制和质量改进。今天关于项目管理系列之软件质量管理的相关内容就分享到这里。
如果对您有帮助,欢迎点赞+关注,也可以发表您宝贵的评论,和我一起互动。
欢迎访问我的博客:夜夜流光相皎洁_小宁
0 评论