APP下载

浅谈软件项目的质量管理

2021-12-25徐海洋

科学与信息化 2021年20期
关键词:质量保证文档管理者

徐海洋

中国电子科技集团公司第三研究所 北京 100015

1 软件项目质量管理的现状

随着信息化装备不断增多,软件开发项目日益增多,各个企业对软件管理体系建设重视程度不一,造成很多企业在软件开发过程中经常发生对用户需求理解不到位、配置管理不规范、配置项测试不全、边界摸得不透、质量保证不细、用户手册操作不强、计划拖期严重等一系列问题,导致软件产品质量频发,究其根源,有以下几个方面:软件质量保证技术(审查、复审和测试)没有贯穿到整个软件开发全过程中去。在于这些软件产品对其质量内涵的把握,仅仅停留在减少软件运行错误、加强软件测试,避免软件缺陷的一般性层面,而对整个软件开发生命周期的全过程质量管理,缺乏总体架构。测试管理的一些误区也会导致严重的质量问题。没有按照测试原则进行尽早测试、连续测试与自动化测试。是测试本省变得的形式化。质量是全过程的,不仅是测试。质量管理者应该将质量控制与保证着眼于整个软件开发生存周期内。而事实上,质量管理者仅仅认为通过严格的测试就可以保证软件质量[1]。

2 软件项目质量管理的重要性和质量成本

2.1 软件项目质量管理的重要性

随着软件项目质量问题频发,造成的损失越来越大,软件项目质量已得到各企业、各层次人员的高度关注。软件产品属于逻辑性智力型产品,它是软件开发人员脑力劳动成果的重要体现,但软件开发的质量又受到诸多因素影响,对企业来说,按时完成软件产品而又保证软件项目质量是一个棘手的问题。软件质量如果无法保证,除会增加软件后期维护的费用,影响用户体验,甚至还会造成机毁人亡及给国家、企业、家庭造成重大经济损失。因此,加强软件项目的质量管理具有十分重要的意义。

2.2 软件项目质量管理的质量成本

质量成本是为了使产品满足一定的质量要求而进行的质量活动的总成本,包括了预防、检测和修复缺陷的相关工作需要花费的成本。通常情况下,质量成本可以分为四个类别:预防成本、检测成本、内部失效成本、外部失效成本。预防成本指的是用来预防质量问题产生的活动成本。对于软件产品来说,这些质量问题可能包括代码错误、设计错误、用户手册错误,以及维护性差的复杂的代码等。为了预防这些软件质量问题的产生而进行的产生预防成本的主要活动包括。

2.2.1 培训:通过对开发人员进行软件开发过程、方法和工具的培训,可以极大地降低质量问题的产生。而由此带来的培训费用就是预防成本,其中包括培训讲师、场地和各种培训设备的费用,以及参加培训人员投入的时间。

2.2.2 制定和推广开发过程:好的软件开发过程能够有效地预防缺陷,基于GJB5000A/CMMI的软件开发过程,已经被证明能够很好地预防缺陷的发生。这种预防成本的组成可能包括:开发过程的制定、推广和更新所需要投入人力、引进的工具和设备。

2.2.3 建立和维护软件重用库:软件复用开发可以极大地提高软件开发的效率,预防部分质量问题。软件复用开发需要建立和维护软件重用库,而重用库的建立需要投入人员进行分析、设计和测试,同时也需要有相应的工具支持可重用构件的管理、检索以及下载使用。这些都是预防成本。

2.2.4 检测成本是指在开发过程中或开发活动结束之后,用来发现软件质量问题的活动成本。它与预防成本的区别在于:检测成本以发现缺陷为目的,而预防成本以避免缺陷的发生为目的。总的软件质量成本将是这四个类别的成本的总和。在统计软件质量成本时需要注意的是,这四种类型的质量成本并不是完全独立的,有时候它们之间是相互重叠的[2]。

3 软件项目质量管理实施

3.1 建立好的软件管理制度和监督制度

3.1.1 建立质量管理制度。建立好的质量管理制度是高层管理者的职责。因为只有高层管理者最清楚软件的成本和质量之间的利害关系,只有高层管理者才能做出平衡二者关系最有利于组织的决策。当然,高层管理者要做出这个正确的决策,还要依赖于技术层、管理层以及财务的支持,依赖于他们提供的准确的信息。

3.1.2 建立合理的监督制度。建立合理的监督制度是项目管理者的职责。项目管理者监督项目进展过程中的各项活动,确保其合规,并且具有较高的完成质量。但是,如果项目规模较大,项目成员和项目活动较多,项目管理者不可能独自完成所有的监督活动,这时就需要建立质量保证组,以帮助项目管理者完成监督任务。

监督活动,可以分为对过程的监督和对产品的监督两类活动。

要做好对过程的监督,首先要有一个定义清晰的过程。过程定义要有入口准则、输入、活动描述、输出、出口准则等内容。有了清晰的过程定义,项目管理者或质量保证组就能够依据这些清晰的要求去监督、判断每个活动是否遵循已定义的过程。过程监督的难点是要确保过程的有效性。如果过程缺乏有效性,即使把定义的过程活动按部就班地执行了,也不会有过程定义所期望的结果。要能够较准确地判断过程的有效性,需要出口准则有个很好的定义。如果仅仅是“完成需求规格说明”,就很难判断过程完成的质量;如果说“完成的需求规格说明通过评审”,这个过程的有效性就会更值得相信。

要做好产品的监督,首先要有好的技术规范,以明确好的工作产品应满足的要求。同时,应具有好的指南和模板,帮助开发人员更好更快地完成工作产品。而这个技术规范,也是质量保证组监督工作产品的标尺。评审和测试是产品监督的两个有效手段。有效的评审,需要同行专家的积极参与,并且有定义清晰的评审通过准则,这样才能给出开发人员依据规范生产且通过质量保证组检查的产品遗留的缺陷。有效的测试,需要做好测试计划,设计充分的有效和无效的测试用例,分析测试结果,在满足合理的测试终止条件后,完成测试。

3.2 项目进度的质量保证

3.2.1 制定软件的质量目标。软件的质量属性有很多,如正确性、可靠性、容错性、易用性、安全性、可复用性、兼容性、可移植性、可测试性、可维护性、灵活性等。在这些软件质量因素中,以往在大多重视软件的正确性和性能这两个因素,但对于军用软件,特别是关键程度较高的软件,就不应仅仅把这两个因素作为质量目标。软件的质量要素如此之多,受时间和成本所限,开发人员不可能把所有的软件质量属性做好,所以,对于特定的软件,要分析出那些对软件整体质量影响最大的质量因素和客户最关心的质量因素。

3.2.2 制定软件的质量计划。质量计划包括质量保证计划、技术评审计划和软件测试计划。质量计划应围绕质量目标来制订。

3.2.3 做好质量控制的准备工作。无论是质量保证、技术评审还是软件测试,都应对本年度的软件质量目标有针对性地做好准备工作。对于“软件需求实现率100%”这样的质量目标,质量保证活动定义产品检查单时应包括“需求规格说明中的需求追踪是否完整”、“设计说明中的需求追踪是否完整”这样的检查项;定义过程检查单时应包括“建立的需求跟踪矩阵是否完整”这样的检查项。而在需求规格说明的技术评审检查单应当包括“需求规格说明是否覆盖全部的软件任务书的各项需求”;在软件设计说明技术评审检查单中应包括“软件部件设计是否覆盖全部的软件需求”这样的检查项。

3.2.4 做好缺陷跟踪。对质量保证、技术评审和软件测试发现的问题,要做好缺陷跟踪,确保发现的问题得到解决,并分析缺陷原因,建立经验教训库,避免同样的问题重复发生。

3.2.5 做好过程改进。软件开发结束时,应对软件的质量问题进行原因分析,并通过对软件过程改进消除这些问题原因,以帮助软件质量管理的水平进一步提高。

4 项目开发各阶段的质量保证

4.1 需求分析

需求分析是开发人员对系统需要做什么的定义过程。从系统分析的经验来看,这个过程往往是个循序渐进的过程,一次性对系统形成完整的认识是困难的。只有不断地和客户以及客户领域的专家进行交流确认,方能逐步明了用户的需求。从系统开发的过程得知,系统分析时犯下的错误,会在接下来的阶段被成倍的放大,越是在开发的后期,纠正分析时犯下的错误所花费的代价越是昂贵,也越发影响系统的工期和系统的质量。

4.2 系统设计

优良的体系结构应当具备可扩展性和可配置性,而好的体系结构则需要好的设计方法,自然设计选型成为系统设计首要的工作,究竟是采用哪种设计方法好呢?

对于设计选型不能一概而论,需要针对项目的结构、项目的特征和用户的需求来分析,同样也要考虑到参与项目小组成员的素质,如果其中大部分都没有从事过面向对象的设计且项目进对紧迫,这样没有多余的时间来培训小组成员来掌握面向对象的设计方法,尽管众所周知面向对象设计方法的优势,我们还是不如采用面向过程的方式(除用户指定开发设计方式外)可以减少项目承担的技术风险。

4.3 实现

实现也就是编码过程。这里不仅包括代码的产生,同时也包括测试用例的产生。针对上一阶段提供详细设计,程序员开始编码并且调试程序,测试人员则根据设计进行测试用例的设计,设计出来的用例需要得到项目组成员认可由项目经理审核通过才能进入配置库。同时程序员调试完程序提交测试人员进行程序正确性检测。

4.4 文档管理

文档维护主要是配置管理小组的工作。如何保证文档的全面性,使其真正为项目的进度提供保证,又不因为文档的写作而耽误项目的进度,这仍然是一个比较难解决的问题。解决此问题,其核心仍然是个“度”的问题。

配置管理小组真正核心的工作是对文档的组织管理。根据文档的不同,文档的来源也不同,有些是通过质量保证小组经过复审之后转交给配置管理小组,有些则会直接从文档的出处到达配置管理小组。文档的管理是一个非常烦琐的工作,但是长远来看它不仅使项目的开发对单个主要人员的依赖减少,从而减少人员流动给项目带来的风险,更重要的是在项目进行到后百分之十的时候起到拉动项目的作用。

总之,建立一个完善的项目管理体系和项目质量管理标准,对软件项目的管理与质量有着重要的意义和决定性。

猜你喜欢

质量保证文档管理者
请别拿管理者的标准要求员工
浅谈Matlab与Word文档的应用接口
基于风险分析的软件质量保证过程研究
有人一声不吭向你扔了个文档
关于如何做好水质环境监测的质量保证研究
银行软件开发项目质量保证方法研究及应用
软件质量保证与测试课程的课程思政建设
窗口和镜子
Word文档 高效分合有高招
从孔子的管理思想谈管理者的自我修炼