水文自动测报软件开发项目质量管理应用研究
2015-03-23左家任
左家任,杨 洋
(天津市水务局海河管理处,天津 300141)
1 概况
在进行水利信息化项目建设中,相关软件的开发项目涉及方面广,影响因素多。在传统的水利信息化管理工作中,只注重项目建设,对项目质量管理重视程度不够,项目开发直接由设计单位进行设计,经过设计评审后实施开发,在开发过程中由于各方面的沟通和协调等原因影响,使得软件开发项目频繁出现需求变更,并最终影响整体项目的实施质量和实施效率。此外,没有一个系统的质量管理体系和规范的质量管理方法使得软件开发过程中管理混乱,极易出现质量事故。因为水利信息化项目主要应用于水库、河道、堤防等关系到社会和广大人民群众安全的水利工程,一旦出现事故,将会威胁到人民群众的生命财产安全,所以必须加强对水利信息化工程尤其是相关软件开发的质量管理。水利行业的软件开发管理措施和方法都不够全面、规范,如何根据现有的知识,对水利行业的软件开发进行研究,最大限度地提升软件的管理水平,是研究重点。
2 研究目的和意义
质量,通常指产品的质量,对软件行业来说,软件质量会导致整个软件的成败,一个小小的质量问题可能会导致非常致命的结果。做好软件的质量管理不但能促进项目决策的合理化、科学化,还能在项目实施过程中实现高效化、准确化,保障项目目标的最终实现,切实提高项目成功率。目前,国际上逐渐开始重视软件工程的项目管理,一系列理论和方法的出台提高了软件开发的效率和客户的满意度,为软件开发企业带来了非常客观的经济效益和社会效益。为此,以国际上的先进经验为参考,制定适合我国的软件开发的项目管理是十分必要的。
分析水利信息化项目中软件开发质量的影响因素,通过对企业组织结构的优化和软件项目过程的改进,获得项目实施质量的提升,从而减少软件开发中产生的问题对开发部门造成的损失,降低开发成本,提升整体开发水平。
3 影响软件开发质量的因素
就软件质量而言,影响软件项目质量包括以下两大方面因素。
3.1 人的因素
软件项目的管理要以用户的想法为根本目标。产品生产就是为了满足用户的需求。一个能够满足用户需求的软件,就是一个优质的软件。客户的需求会随着开发的进行而不断调整。只有在开发的各个阶段都能满足用户的需要,达到用户的要求,这个软件的质量才能得到保证,而在软件开发过程中树立质量第一的思想就是体现在更好地为用户服务的行动上。
3.2 开发流程
软件开发流程是在软件开发模式框架的指导下实施软件开发的全过程描述和定义,包括软件开发生命周期各阶段的定义、开始前提条件、参与者描述、产出物描述、完成条件等。一个合理定义的软件流程能够将软件开发模型的优点充分发挥出来,同时减少软件开发过程中产生的负面影响。
4 应用分析
4.1 项目开发质量目标
首先,项目总负责人向项目组成员指出水文测报软件在整体水文监测项目中的重要性,并强调质量是最优先考虑的。其次,各成员从自己的角度提出几个目标,如质量经理的目标是保证合格率、开发人员的目标是保证测试通过率等。再次,团队在一起讨论制定的目标的可行性,是否能够实现以及需要的条件。最终,确定目标见表1。
表1 项目质量目标
其中,每百段程序BUG 数按照模块统计,本次制定的目标为每百段程序BUG数小于10处;单元测试分模块进行,本次目标为每个模块的单元测试通过率大于90%;集成测试、系统测试、验收测试为模块的集合体测试,按照百分制原则分别制定质量目标为得分80分以上及75分以上;本次软件开发项目计划工期45 d,本次制定目标为在计划工期内完工;本项目概算总投资100万元,取利润10%,故目标经费使用为90万元;客户满意度按照优良中差四级评定,本次质量目标为取得客户满意度优。
4.2 软件开发质量管理影响关键因素分析
4.2.1 质量计划对软件开发项目质量的影响
软件的开发一般分为4 个过程,即定义需求过程、预开发过程、开发过程和维护过程,通过资金使用的情况反映质量计划的影响。参考以往软件编制过程中4个阶段开发的使用情况和对开发结果影响力进行统计分析,影响力按照百分制计算,由参与软件开发的各方进行评分取平均数,100 分为影响最大,0分为最小。统计结果,见表2。
表2 资金投入阶段影响数据
从表2可以看出,软件开发阶段,资金在早期使用的效率最高,可以对项目结果起到比较大的影响,而软件开发计划的编制能够在软件开发的定义阶段即对软件开发的目标、组织、资金安排进行较详细的定义和计划,能够在早期按照合适的比例安排软件开发的资金,从而对结果产生比较大的影响。
4.2.2 质量控制对软件开发项目质量的影响
软件开发中,发生编制错误的次数直接影响软件开发的质量。影响软件开发项目质量的因素很多,这里选取质量控制中的5 个关键因素即控制点的选取、组织领导的责任、测试的规范性、环境因素以及质量计划。在此基础上,调查统计由于关键因素的原因导致软件开发发生编制错误的次数,并绘制直方图,如图1所示。
图1 质量控制与编制错误次数关系直方图
由此可见,质量控制能够对软件开发质量产生直接的影响,集中体现在编制发生错误次数方面。
4.2.3 质量保证对软件开发项目质量的影响
软件开发质量保证主要体现在软件开发的模型选择和应用上。原始的软件开发使用的是传统的瀑布模型,将软件开发项目作为一个整体进行设计,方式如图2所示。采用质量保证措施后开发模型转化为图3的形式,由图3可以看出,使用质量保证措施将每个开发阶段再次细化,可以对各个环节的变化情况加深认识,做到每个开发阶段出现的问题能够在本阶段解决,不拖入下一阶段,这对软件开发质量起到了保证作用。
图2 传统瀑布设计模型
图3 改进后的设计模型
4.3 保证软件开发质量的措施
根据软件开发中曾经发生过的问题和预计会发生的问题,结合项目质量管理理论,使用质量管理工具,在质量计划、质量控制、质量保证3 个方面对本次软件开发进行质量管理。
4.3.1 软件开发项目的质量计划
(1)制作因果分析图。在进行质量计划时,首先明确质量计划的目标,即开发质量合格、便于使用、用户满意的软件,根据水文自动测报预警软件开发项目的产品说明和水务信息化建设相关规范要求,运用头脑风暴法对软件开发中可能会导致质量不合格的情况进行整理并绘制因果分析,如图4所示。
图4 水文软件开发质量管理因果分析
(2)编制软件开发工作流程图。本次项目开发时,分别从质量计划、质量控制、质量保证3 个方面进行质量管理,在软件的可靠性、硬件的可靠性以及软件硬件结合后的可靠性方面都做了大量的工作。一方面,在项目前期阶段,通过对规划计划的质量管理,在项目初期树立正确的开发方向,从而在项目前期工作进行质量管理。另一方面,在软件的开发阶段,通过对人员和开发流程等方面的管理,实现对项目开发阶段的质量管理。最后,在项目的实施阶段中,执行项目计划,严格进行项目测试,通过演练、试运行等方式对整体项目进行质量管理。3 个阶段中,每个阶段的质量管理都非常重要。软件开发质量管理流程,如图5所示。
图5 软件开发质量管理流程
(3)成果输出。①将总结形成的计划管理成果汇总,形成各个阶段的人员、组织、资金、资源、权限等管理计划,指导质量管理的进行;②通过一系列质量计划的管理,最终以质量计划检查表的形式输出质量计划成果。
4.3.2 软件开发项目的质量控制
(1)质量控制点设置与管理。质量控制点是实施质量控制的重要组成部分,软件开发的质量控制点是项目质量控制的重点对象。
质量控制点应选择那些技术要求高、开发难度大、对工程质量影响大或是发生质量问题时危害大的对象进行设置。依照质量控制点的要求和特点,选择了本次软件开发中相应的质量控制点,见表3。
表3 软件开发项目部分质量控制点
设定了质量控制点,质量控制的目标和工作重点就更加明确。在软件开发中,首先要做好项目质量控制点的事前质量预控工作,包括明确质量控制的目标与控制参数、编制开发指导书和质量控制措施、确定质量检查方法及抽样的数量和方法、明确检查结果的判断标准及质量记录与信息反馈要求等。其次,还要做好软件开发质量控制点的动态设置,随着软件开发条件的变化,随时或定期进行控制点的调整和更新。应用动态控制原理,落实专人负责跟踪和记录控制点质量控制的状态和效果,并及时向项目负责人反馈质量控制信息,保持质量控制点的受控状态。
4.3.3 软件开发项目的质量保证
运用PDCA 循环法进行软件开发的质量保证,在预开发阶段、开发阶段、维护阶段3个阶段进行。
预开发阶段指开发团队针对开发项目招标情况对软件开发项目做出的提前处理,工作体现在下列PDCA 循环中:计划,提出软件开发的整体流程;实施,开发自己的技术提案,阐明将使用的技术及所拥有的技术工艺;检查,提出检查软件质量、纠正产品中缺陷的方法;总结,根据检查结果,提出改善质量控制的计划。开发阶段是指从软件产品开发开始,到移交产品且客户对软件性能予以肯定为止。这一阶段的PDCA循环活动有:计划,开发者根据需求和风险,提出详细的开发过程、要求使用的资源以及要得到的产品;实施,由开发组织执行开发计划;检查,开发组织和客户共同检查计划与预期得到的结果的一致性;总结,开发组织根据检查结果,审查并重新认识风险,作为下一个循环的基础。维护阶段是修复软件缺陷、提高软件性能的阶段。这一阶段的PDCA 循环活动有:计划,制定处理缺陷的计划;实施,处理缺陷或根据需求变化提高软件性能;检查,判断开发维护目标是否已经达到;总结,根据检查结果审查并总结。
4.4 成果数据分析
通过对本次水文自动测报预警软件开发项目的质量管理,大大提升了软件开发的质量,结合软件开发前期中制定的质量目标,与以往软件开发项目进行比对,分析进行软件开发质量管理对结果产生的影响。
4.4.1 百段程序BUG数分析
根据质量控制点确定的各个模块统计各模块软件开发中每百段程序的BUG数量,结合以往类似软件开发中的统计数据进行比对,结果见表4。
表4 平均百段程序BUG数 个
4.4.2 客户满意度比对
各模块软件开发完成后,分别对客户进行满意度调查,按照优良中差进行评价,经过与类似软件开发客户满意度比对,结果见表5。
表5 客户满意度比对
以往软件开发项目没有进行过模块化划分,整体项目一起进行开发,开发完成后统一进行评价,无法对内部存在的不足进行查找和梳理。本次划分了模块,根据各模块的用户满意度调查,可以在以后的软件开发中有针对性地进行改进,保证项目质量的良性发展。
5 结语
通过理论介绍和实际项目的描述,具体论证了项目质量管理在软件开发项目中的巨大作用,以水文自动测报预警软件作为实例,说明了质量管理在具体软件开发项目中所起到的重要作用以及如何才能在软件开发过程中运用质量管理的各类方法和工具来提高软件项目开发的整体质量。对项目实施质量管理后,项目的整体质量得到了明显的提高。