彭 银
(六盘水职业技术学院 贵州 六盘水 553001)
软件开发项目的质量管理策略在实际项目中的应用研究
彭 银
(六盘水职业技术学院 贵州 六盘水 553001)
近年来,软件项目的质量问题越来越突出,总体上来说,软件的质量较差,成为制约软件项目发展的一个瓶颈。本文通过水文监测平台这一软件开发项目,充分将软件开发项目的质量计划、质量控制、质量保证中的具体方法(成本效益分析法、流程图法、质量成本分析、抽样统计、帕累托图)应用到该软件开发项目中,项目取得了不错的成绩。
质量计划;质量控制;质量保证;水文监测
某政府部门由于工作需要,需要对全县所有测站进行水文监测,以方便对这些测站进行统一管理,我公司接手该项目后,作为项目负责人的我,引进了软件开发项目的项目对该项目进行管理,最终,该项目提前完成。
(一)产品的基本介绍
项目名称:水文数据监测平台,开发语言与环境:VC++、Apache、SQL SERVER 2008、Visio Studio 2010,预计用时:30天,预计成本:5万元。
(二)产品部分功能
该软件项目平台主要包括几个分系统:测站管理、雨量站管理、数据管理、数据采集、用户管理和平台管理。
测站管理功能包括:添加测站、测站查询、测站河床信息、测站地图定位以及测站地图管理。
雨量站管理功能包括:添加雨量站、雨量站查询、雨量站地图定位。
数据管理功能包括:水位查询、流量查询、测站综合查询、云台控制、照片查看以及视频回放。
数据采集功能包括:添加采集数据、采集时间设置、采集记录查询。
用户管理功能包括:用户组管理、用户组查询、添加用户、用户查询。
平台管理功能包括:系统信息、全局参数的设置、系统日志和地图管理。
(一)质量计划阶段
在做该项目的时候,项目开发小组根据软件的需求开会讨论后,项目负责人组建了项目开发小组,认真做好了需求调查分享,然后开始做质量计划,项目小组经过如下步骤策划了软件的质量计划。
1.组建文档管理小组。质量计划阶段第一件事情是组建文档管理小组,档管理小组的设立是为了确保项目研发完毕的同时,能够将内部文件和外部文件都顺利完成。内部文件是确保项目研发小组成员能够更好的接口和沟通的重要前提,从另一个层次来讲,也是确保整个工程能够顺利开展的前提,其重要性不言而喻。文档管理小组成员的主要任务有几个方面:完善各个部门之间需要存档和版本控制的代码、文件以及阶段性成果;对代码、文件等进行单向出入的控制;对所有需要保存的文档进行版本控制,统一规范,并传达到研发组中。
2.明确项目的范围、中间产品和最终产品。首先项目小组确定了项目的范围是关于做一个水文监测方面的系统,项目的中间产品是要用PHP与SQL SERVER 2008完成水文监测系统的一般功能,如测站的管理、测站的河床信息管理、雨量站的管理等基本功能,在完成这些基本功能的同时,由1名开发人员对软件所需的地图进行绘制,同时由两位负责视频的捕获以及雨量曲线图等的绘制,软件的美工人员也在不断的工作。项目的最终产品是基本达到用户的需求,在软件开发过程当中,即便是有做好了需求调查分析,然而这些都还是不够的,在软件开发的过程当中,用户经常到公司进行交流,很多方面的功能得到了不断的完善。
3.明确关于中间产品和最终产品的有关规范、标准。该过程需要确定可能影响软件质量的技术要点,与此同时找出能够确保高效满足相关规定、标准的过程方法。该项目采用的标准和规范是《中华人民共和国国家标准》的《计算机软件产品开发文件编制指南》,能够满足软件项目的要求规范。
4.设置关键的待检点。在软件开发过程当中,除了必要的临时检查,设置合理的停工待检点是非常必要的,在该项目的开发过程当中,项目小组明确要求每次做完一个单元,都要进行测试,称为临时检查,每次做完一个综合的功能都要停工进行检查,这个时候是开发小组的成员进行相互的检查,彼此检查功能是否完善,例如负责测站管理的小组成员完成开发之后,要接受检查,检查他所做的功能是否达到要求,如测站添加是否正常,测站的查询是否得到完善等等。
5.明确质量计划采用的方法、技术和工具。在软件的项目当中,项目经理特别首先跟我们开会的时候都特别强调文档的重要性,其次他特别强调我们要做好质量计划的工作,需要利用如下的方法和技术。
(1)系统流程图。根据需求调查分析做出系统的流程图。
(2)因果分析图。软件开发小组的成员在开发软件的过程当中,如果遇到什么问题,应该用因果分析图将其记录下来,以方便解决所遇到的问题,也可以为以后的软件开发作为借鉴。在软件开发过程当中,每次遇到无法解决的问题或者解决有误的问题,都用一个表将其记录下来,表的内容大体包括,问题描述、问题的解决思路、方法、出现问题的原因,以及建议等等。
(3)质量成本分析法v在项目开发的最初阶段,项目小组根据认真的需求调查分析,认真做好软件需求规格说明书。该软件项目的规模不大,公司根据实际的研究决定,成立包括项目经理在内的6个人进行软件项目的开发,项目的合同开发周期是30天,项目小组在策划的过程当中根据实际的调查分析和以往的经验给出了25天完成项目的开发,其他的成本都有考虑,因为软件的规模相对较小,项目小组主要针对项目的后期维护进行了成本估计,项目小组估计该项目的后期维护需要一个人不定期的到公司进行相关的维护,预计时间维持3个月左右,总共预计开发资金大概需要40000元左右,也即项目的总成本在合同成本之下,合同成本50000元。经过成本分析法分析之后,项目小组认为该项目具有效益,最终开发小组还可能得到一定的奖金,最终,项目小组接收下该项目。
(二)质量控制阶段
质量控制阶段,项目小组根据项目的实际情况,在软件的开发过程制定了相应的策略,该项目的质量控制方法和步骤如下:
1.测试小组的建立。项目小组每个开发成员必须根据详细设计的相关文档说明对软件要实现的功能进行一一测试,这种测试被称为单元测试,单元测试能够确保软件的执行正确的实现设计需求,与此同时,也证实了软件的设计思想,当然,它并不能从根本上解决用户的需求,是否真正反映了用户的需求,需要做功能性测试。
由于项目规模不大的缘故,公司没有组织专家组的测试小组,功能性的测试都由开发小组的成员之间进行测试,但是这并不代表公司对软件测试的不重视,公司开会的时候还特别强调了软件测试的重要性,而且小组的开发成员当中大部分都有过参与测试的经验,只是不是专门的测试专家,当然最终的产品还要经过项目经理进行测试,项目经理是软件测试方面的专家,有着丰富的测试经验。
2.质量标杆法。公司是一个专职的软件开发公司,开发过许多的软件项目,有很多成功的案例和经验值得借鉴,项目的开发过程当中,项目小组经常开会进行交流,其中每次开会都会给项目的开发人员分发公司以前开发的一些项目作为借鉴。以前开发的一些项目的文档,有很多值得借鉴的地方,成功的地方,失败的地方,需要明确注意的地方,遇到问题的地方,解决办法的地方等等。
3.检查。在质量计划阶段专门设有关键的待检点,这就是为了检查软件产品是否符合预期的标准,在该项目质量计划当中,每个独立的功能模块要进行停工检查,检查的过程当中都要有进行相应的记录,遇到的问题要记录在案,并形成相应的文档,交与专门负责文档管理的成员,该项目的规模小,所以文档管理的成员只有一名,而且该成员不参与代码的编写工作,专门负责文档的管理。
4.抽样统计。在该项目当中,用户更加的关心的是水位、流量等曲线,以及视频的采集和回放等功能,针对这些用户特别关心的单元,项目小组在开发过程当中予以了特别的注意,项目小组的成员之间,在这几块功能的时候互相交流学习,这些功能实现过程当中,项目经理对每个模块的实现都进行了检查。项目完成后,用户对这次项目的成功,特别是这些方面给以了高度的评价,这些都是我们在这些方面特别注重的结果。
5.控制图。在该项目当中,项目小组也使用了控制图这一重要的工具进行质量的控制,项目小组对软件项目当中的关键质量特性值进行测定、记录、评估并监测过程是否处于控制状态,并以图的形式展示出来。在项目当中,影响项目的关键地方有水位曲线图、流量曲线图,视频的采集等,项目的开发过程当中,重点对这些关键的地方进行分析,绘制出控制图。
6.测试。公司多年来接收了很多项目,有很多成功的项目,也有很多失败的项目,公司成立初期失败的项目居多,后期也就是现在,大部分的项目都是成功的,少部分会出现一些问题,公司之所以在后期的项目能够大部分成功,一个很重要的原因就是公司特别注意软件的测试。公司有很多关于软件测试方面的经验都总结成文档,公司还专门开会总结前辈们的经验,总结出了很多软件测试的经验,在实践理论一章当中已经有所描述,在此不再赘述。
7.其他方法。需要指出的是,由于项目的规模以及其他方面的原因,有些方法、工具没有使用到软件的项目当中,如帕累托图、质量分析法等,另外,要特别指出的是质量计划阶段的方法、工具和技术在质量控制阶段也可以使用,根据相应的项目,采取合适的方法、工具和技术。能够使软件的项目达到事半功倍的效果。
(三)质量保证阶段
1.项目进度的质量保证
(1)需求分析。该做该项目的时候,虽然项目规模小,但是项目小组的成员还是很用心的做好需求分析,做好需求调查,尽可能的得到用户的需求,尽可能早的得到用户的需求,认真完成了软件需求规格说明书。项目的开发过程当中,项目小组成员深切体会到了需求分析做得全面的好处,虽然尽早的邀请用户参和,仍然避免不了项目进行中用户的需求变更请求。用户对软件的需求可能会发生变化,项目小组在开发的过程当中,都有相应的应急措施,当得知用户的需求有所变化的时候,将项目变化需求申请单发送给项目设置管理员(项目小组的成员),项目开发小组成员要对其进行分析,要对这种变动可能造成的影响和风险进行分析,无论那种变更都需要对相应的文件实施同步变更(包括需求规格说明书、周详设计文、安装手册、操作手册等)。在开发的过程当中,小组实际上接收到一次用户对需求的变化,就是系统中的菜单应该可以是动态变化的,要让他们随时可以不用改源代码就能够改变菜单的位置,后来软件开发小组根据用户的需求进行了分析,花了一天的时间完成用户的这些需求。
(2)系统设计。在项目的开发过程当中,用户没有明确我们采用什么样的语言进行编程,也没有要求我们采用面向对象还是面向过程进行开发,最终,经项目小组研究决定,采用面向对象的开发语言,PHP与VC++,选择面向对象开发的原因,不是只看其设计方法的优势选择的,更多的是结合公司的实际情况,公司的开发人员能够掌握PHP的还是占多数,C++也相对较为熟悉。
除设计选型,项目小组还注意了公告类的开发,在软件需求分析的过程当中我们可以得到,有测站管理、雨量站管理,那么这两个功能实际上是相通的,只要对其中一个开发出来,另外一个就可以不用进行开发。只要以第一个为模版进行修改即可成功。还有测站水位、流量和雨量的相关功能也是相通的,只要完成其中一个功能即可很快完成整个功能,这就充分考虑到了软件的可重用性。
(3)实现。实现不仅包括代码的生成,同时也包括测试用例的生成。根据详细设计,程式员开始编码并且调试程式,测试人员则根据设计进行测试用例的设计,设计出来的用例需要得到项目组成员认可由项目经理审核通过才能进入设置库。同时程式员调试完程后提交测试人员进行程式正确性检测。程序员在调试完程序之后应该尽早提交测试人员进行测试,并尽可能跟测试员进行沟通,使得测试达到更加完善的效果。
(4)文件管理。鉴于文件的重要性,开发小组根据情况从6个人当中,抽出一名专门负责文档的管理,这里需要特别说明的是由于项目规模小的缘故,所以才只让一名负责文档的管理,设置文档管理小组真正核心的工作是对文件的组织管理。根据文件的不同,文件的来源也不同,有些文件是通过质量保证小组经过复审之后转交文档管理小组,有些则会直接从文件的出处到达设置文档管理小组。
2.服务的质量保证
服务质量保证,项目完成之后,也就是后期的运行维护阶段的时候,公司制度分为如下几个方面,在服务时间方面,为用户服务主动、及时、准时、适时、周到的程度,不管用户什么时候需要服务,都不能进行推脱,不能因为有其它事情,或者什么原因而不对用户进行服务;在服务能力方面,为了能够为用户服务时间时准确判断,迅速排除故障,指导用户合理使用产品的程度,公司选择了参与到软件项目的开发小组的成员进行维护,而且此人具有丰富的服务经验和技术;在服务态度方面,在服务过程中热情、诚恳、有礼貌、守信用、建立良好服务信誉的程度。
项目小组建立了系统的质量保证体系,质量保证应贯穿整个系统每一项工作,要建立从系统总体设计、可行性研究、需求分析、立项、概要设计、详细设计、编码、试用、测试,到签订评审、运行维护全过程的质量保证体系;特别要加强系统质量的后期管理,即从试用、测试到鉴定评审到系统运行维护阶段的质量控制;要建立规章制度,包括软件的回访制度和版本更新制度等。
3.产品的质量保证
在产品的质量保证方面,公司对项目做到了如下的几点:有清晰、完整的规格说明,使用完善的标准和规范,在该项目当中我们使用了《中华人民共和国国家标准》中的《计算机软件产品开发文件编制指南》;积累丰富的历史经验,该项目完成之后,项目小组对该项目的质量保证进行总结,加上公司以前的项目总结的经验,可谓是经验丰富;进行公正的设计复审,项目小组的成员进行设计复审的时候本着客观的态度,不带任何感情色彩进行了复审,这是公司对每一个开发小组成员必须进行培训的地方;实施变化控制,当用户的需求有变化时,项目小组会有相关人员对需求变化进行记录,然后提交到项目经理的手中,项目经理组织小组开会研究,并对项目的变化进行了可行性分析、风险分析,确定项目的变化可行之后,并派相关人员对文档进行修改,几乎所有的文档都要进行修改,为项目今后的开发提供了强有力的基础和保证。
[1]王克仁,陈允明,陈养正.软件项目管理[M].北京:科学出版社,2002.22~23.
[2]凯西.施瓦尔贝著,杨坤等译.IT项目管理[M].机械工业出版社出版,2010
[3]邓子云,张友生.系统集成项目管理工程师老师全程指导[M].清华大学出版社,2009
彭银(1988-),男,汉族,贵州盘县人,讲师,计算机应用技术硕士,六盘水职业技术学院信息工程系,研究方向:大数据技术与应用、云计算技术与应用。