提高软件质量
从软件开发工程技术人员的角度,软件质量特性因子包含:功能性、性能、可靠性、安全性、使用性、维护性、移植性、重用性。
用户对软件质量特性可分解成五个质量特性因子:功能性、使用性、可靠性、维护性和移植性,它们包含了软件的基本特征。
作为软件产品开发人员,为了开发高质量的软件,需要在深入理解和实现用户质量特性因子上,尽量全面覆盖软件开发的质量特性因子设计的质量指标,以便减少软件维护、扩展和移植等后期管理成本。
以用户为中心的软件质量管理
软件的最终使用者是用户,因此提高软件质量要以用户满意为中心,以影响软件质量特性因子为基础,综合考虑开发方和用户方关注的质量特性因子。
从软件生命周期的过程来看,软件质量特性因子的各项指标贯穿于软件需求、软件开发、软件交付和软件维护的各个环节。作为软件开发工程人员,仅仅考虑满足用户的现实需求是不够的,还需要考虑软件未来扩展的方便性,考虑在软件开发过程中模块的可重用性。
软件质量特性因子偏重于软件技术方面的要求,主要靠有效选择和应用合适的软件开发和测试技术来实现。除此之外,一个高质量的软件项目要取得成功,软件团队、软件过程和项目管理是关键要素。
显然,提高软件质量需要“多管齐下”的综合技术、过程、团队和管理等各个关键要素,下面分别论述如何更好的应用这些要素。
设计为本,测试辅助
近年来,软件测试对保证软件质量的重要性已经得到软件企业的广泛认识。但是,从软件测试的技术和方法看,当前的软件测试技术不能保证软件没有缺陷,只能尽量的、被动的发现缺陷。也就是说,单纯的靠软件测试进行质量把关是做不到的。
提高软件质量重要的是分析软件缺陷的根本来源。软件测试的实践统计表明,大部分软件缺陷是由于需求不准确、架构设计不合理、软件编码错误引起的。进一步分析表明,比较严重的软件缺陷都是在需求分析和架构设计阶段产生的。
因此,提高软件质量的最有效方法是准确获取用户的真实需求(功能和性能),采用合理的软件架构设计技术(扩展性、安全性、移植性),在软件编码阶段遵守编程规范(使用性、可靠性、重用性)。在此基础上,尽早和全面的实施测试的验证和确认技术。 “设计为本,测试辅助”的方法可以在保证软件质量方面实现从被动检测到主动预防,从事后质量检测,转变为事前和事中检测。
规范过程,不拘标准
软件开发是一系列过程和阶段相互衔接的产品生产方式。可以简单的划分为项目规划、需求分析、架构设计、编码、测试、维护等阶段。每一个当前过程的输入都是前一个过程的输出,当前过程的输出作为后一个过程的输入。
无论软件开发采用传统的“瀑布模型”还是“RUP”模型,过程的规范程度是影响软件质量的因素。通过规范过程改进提高软件质量,这是CMM/CMMI规范的基本思想。
规范软件过程没有统一的标准和模式。ISO9001,ISO15504 (SPICE),CMM/CMMI,六西格玛,全面质量管理(TQM)等都是可以参考的标准和过程规范。现在CMM/CMMI正在大行其道,但是对于非外包行业的中小软件企业而言,如果内部的开发过程不很规范,笔者建议初期采用ISO9001标准作为过程改进的基础,另外结合公司的技术和资源现状,确立公司的过程管理准则。
规范过程的基本要求是划分过程和阶段,确定过程基线(里程碑),明确各个过程的目标、角色、进入、输入、输出、退出、验证与确认的准则,采用统一的模板化的文档、流程化和可视化的跟踪、度量和评估过程的实施情况。
团队激励,知识传承
打造具有战斗力的项目团队成为保证软件质量的理想目标。团队是具有共同目标的多个人员和角色的成员构成的。团队中的每个人知识背景不同,掌握的技能不同,承担的角色认为不同。团队的价值体现在“1+1>2”,即任何个人的能力都是有限的,多个人的团队合作的能量可以最大化的发挥出来。 “梦幻团队”是由行业和技术精英组成的,但是软件企业需要的是现实地具有战斗力的团队,而不是“梦幻团队”。
团队的能量来自于团队成员的有效激励、既明确各自职责,同时相互配合,通过有效交流,信息共享和知识传承,保证团队众的每个人都始终处于高效率的、满足进度和质量要求的,向着团队共同的目标努力。
在保证软件质量的共同目标下,团队中的个人从原来的单角色转变为多角色,每个人都承担质量保证的不同职责,付诸实施PSP/TSP的规范,充分发挥个人的技能,提高整个团队的绩效能力,改进企业组织级的过程管理能力。
项目管理,高层支持
软件开发是系统化、过程化和复杂化的工程任务,需要专业的项目经理带领团队成员、采用正确的技术、规范的过程、实现质量、进度和成本的有效平衡。在提高软件质量方面,项目经理的职责之一是制定、分配和监控明确的、可量化的、可度量的、具有不同优先级的项目质量目标。对于实现高质量的项目,项目经理的重要性是不言而喻的。
提高软件质量是涉及面广泛的工程体系,在很多软件企业属于公司“一把手”工程。项目经理和项目团队一定要争取企业管理层对软件质量重要性的认识和支持。管理层的职责是制定企业质量方针和目标,确立组织统一的质量宗旨及方向,创造并保持使员工能充分参与实现组织目标的内部环境,以统一的方式评估、协调和实施质量活动确保员工主动理解和自觉实现组织的质量目标。
分享到:
相关推荐
软件质量可以从三个不同的角度来看待:从用户最感兴趣的角度来说,软件质量可以从三个方面来看待:如何使用软件、使用效果如何、软件性能如何;从软件开发的团队的角度来说,不仅要生产出满足质量要求的软件,也对...
2. 软件质量的认识 软件质量不仅仅是通过软件的功能和性能来衡量的,还包括易用性、可维护性等外在特性。高质量的软件意味着它能够在规定的条件下无故障地运行,即具备可靠性。同时,软件质量是需要在开发过程中逐渐...
- **不同利益相关者的看法**:认识到不同用户、开发者、管理者对软件质量的理解可能有所不同,模型需考虑这些不同的视角。 4. **术语和定义**:为了确保一致性,标准提供了关键术语的明确定义,如有效性、效率、...
"建立软件质量体系" 软件质量体系的建立是为了确保软件产品的质量,达到客户的要求和满意。建立软件质量体系需要经历四个阶段:质量体系的策划与设计、质量体系文件的编制、质量体系的试运行和质量体系审核和评审。...
【CMM中的软件质量保证实施准则】是软件开发过程中一项至关重要的规范,旨在确保软件产品的质量和过程的稳定性。CMM(Capability Maturity Model,能力成熟度模型)是一种评估和改进软件开发组织能力的方法论,其...
“我对软件质量的认识.doc”文档很可能包含了作者对软件质量深入的理解和实践经验。通常,这样的文档会探讨以下几个关键知识点: 1. **质量定义**:软件质量不仅仅是无错误或缺陷,它更关乎软件是否能够有效满足...
加强培训和教育,提高软件开发人员对软件质量管理的认识和重视程度;采用先进的软件质量管理工具和技术,例如混沌测试、代码审查、自动化测试等手段,提高软件产品的质量和可靠性;引入第三方质量审计机构,对软件...
以下是对“软件测试中的认识误区”进行的详细解析: 1. **测试是找出所有错误**:一个常见的误区是认为测试的目标是找出软件中的所有缺陷。实际上,测试是为了验证软件是否满足预定的需求和功能,而完全消除所有...
"认识软件测试,了解什么是软件测试" 软件测试是软件开发过程中不可或缺的一部分,它的出现是为了解决软件错误导致的严重后果。软件测试的目的是为了保证软件的功能是可用的,满足用户的需求,并且确保软件的质量。...
摘要:本文详细阐述了作者对软件项目质量管理的认识,是作者实际经验的总结。主要内容包括对软件项目质量管理理论的认识、软件项目质量管理在实践中的具体做法。文章详细介绍了有关质量计划编制、质量控制、质量保证...
通过学习这些基础知识,学员将能够建立对软件质量的全面认识,了解测试在整个软件生命周期中的作用,并具备实施有效测试策略的能力。小强老师的课程深入浅出,结合实例讲解,适合初入软件测试领域的学习者。通过这门...
当前,人们逐渐认识到,缺乏有效的软件质量保障技术和手段是导致软件危机长期存在的主要原因之一。随着社会生产活动的不断进步和社会化程度的加深,全面质量管理已经成为一套成熟的理论体系,并形成了一系列国际标准...
本文将深入探讨软件质量管理的内涵、主要内容、责任分配以及影响质量的主要因素。 首先,软件质量管理是指在软件开发过程中,通过对产品质量和开发过程的管理,确保软件产品在预定的时间和成本内满足预设的标准。这...
SQA(软件质量保证)是CMM2级中的一个重要关键过程区域,它是贯穿于整个软件过程的第三方独立审查活动,在CMM的过程中充当重要角色。 SQA是一种质量保证活动,旨在确保软件开发过程中的质量要求。它是整个软件开发...
软件质量保证是软件开发过程中的关键环节,旨在确保最终产品的可靠性和满足用户需求。文档《软件质量保证.docx》探讨了如何确保软件设计的质量,强调了设计在软件生命周期中的重要作用。 首先,软件质量取决于需求...
软件质量管理体系是确保软件产品和服务达到预设标准和客户期望的关键框架。该体系源自国际标准化组织(ISO)的ISO 9000族标准,自1987年以来,已经成为全球范围内质量管理的重要参考。ISO 9000族标准不仅反映了市场...
4. **提高员工技能和意识**:通过培训和认证,提升员工的专业技能,增强对软件质量重要性的认识,形成良好的工作习惯。 5. **加强客户满意度**:通过提供高质量的软件产品和服务,满足甚至超越客户期望,建立长期...