软件的质量是软件开发各个阶段质量的综合反映,本文结合“金保”工程软件项目管理的实际经验,探讨了在项目计划、需求分析、软件开发和系统维护等四个关键环节进行软件质量控制的方法。
软件的质量
是软件开发各个阶段质量的综合反映。软件项目的建设包括项目计划、需求分析、软件开发和系统维护等阶段,质量管理工作会始终贯彻在项目建设的各个阶段,本文结合笔者在“金保”工程的实践体会,围绕项目建设各个阶段的质量管理进行探讨。
1. 项目计划的质量管理
科学合理地制定项目开发计划,是项目成功的关键,在制定项目计划时,以下三个方面需要特别注意。
首先,项目计划必须群策群力。项目计划的制定不仅需要对项目任务进行工作分解(WBS)和对资源估算以制定项目计划,更需要在项目计划中结合历史项目的实践经验和相关领域的行业经验,科学地评估项目各阶段所需要的时间并预留风险缓冲时间。通常可先由项目承建方制订项目计划草案,项目计划草案注明项目各阶段的产生物和里程碑时间,再由业主、监理、承建方的主要负责领导和技术骨干对项目计划草案进行讨论,并根据各方意见进行修订和完善,最终形成各方认可的项目计划。
其次,项目计划要因变而变。在“金保”工程建设中,软件项目开发往往涉及劳动保障多个部门的工作,因而项目计划在实施过程往往受到多种因素的影响。项目计划要跟上项目的实际变化,通过动态调整投入项目的资源,合理地调节项目进度以及阶段性的里程碑,使得项目计划反映项目的实际进度,从而确保项目质量保证的实施。
最后,建立项目沟通制度。每周召开业主方、承建方、监理方参加的项目例会,共同协商项目建设中所遇到的问题,明确责任分工,确定下一步工作计划,并根据实际情况及时调整,确保项目按计划进行。
2. 需求分析的质量管理
把握正确的业务需求是项目成功的关键。需求分析是软件开发人员掌握业务流程,最终确定软件需要做什么和如何做的定义过程。由于对业务的需求分析是个迭代的过程,只有通过持续地与业务人员进行交流确认,才能最终掌握业务的实际需求。
在“金保”工程建设中,为了减少需求分析阶段可能发生的各种风险,劳动保障部门信息中心的技术人员利用自己既掌握劳动保障的业务政策,又懂得软件开发技术和方法的优势,积极参与到软件项目中,做业务人员和软件开发人员联系的桥梁和纽带,既引导业务人员提出业务的需求,也帮助软件开发人员掌握业务规则。由于很多业务流程非常复杂,而且不可视,为了更好地获得业务需求,要求承建方制作软件原型,软件开发人员通过原型与业务人员进行进一步的沟通,最终获得与业务流程相一致的软件模型。需求分析结束后,编写成《用户需求说明书》、《需求规格说明书》,由业主、监理、承建方三方签字认可,作为验收方案和验收标准,并做好变更控制和配置管理。
3. 软件开发的质量管理
软件开发是软件实现的重要阶段,需要通过运行多种质量管理方法做好软件开发过程的质量控制。这个时期的质量管理的方法包括了日常检查、阶段评审、方案检验和质量原因分析等。
日常检查贯彻于软件开发的全过程,通过对业务调研、系统设计和系统实现等过程进行监督,及时识别和发现缺陷。阶段评审主要对各阶段的产出物进行评审,尤其是需要加强对需求阶段的《用户需求说明书》、《需求规格说明书》、系统设计阶段的《设计说明书》,以及测试阶段的《确认测试用例》、《集成测试用例》的评审工作,通过评审发现阶段性问题,通过及时修改和完善,尽可能减少带入下一阶段的缺陷数目。
方案检验是对在软件的设计方案进行模拟测试,通过对存储数据量、并发用户数、网络环境等多方面的综合验证测试,以保证系统设计方案的正确性。质量原因分析报告用鱼刺图来展现影响软件质量的各种直接和间接的原因以及构成这些因素,以总结经验、吸取教训,避免类似的质量缺陷重复发生。
4. 系统维护的质量管理
软件项目开发完成交付使用后,随着时间的推移,承建方的开发人员会逐渐转移到其他项目,从而在技术服务和技术响应上得不到有效的支持,而软件随着推广使用的进一步扩大,对软件的可靠性、稳定性等方面提出了更高的要求,最终出现承建方的维护不及时、业主方维护工作繁重的局面。
为解决系统维护阶段的问题,首先在项目建设初期劳动保障信息中心的技术人员应该参与软件的设计和开发,通过掌握软件的核心技术和运行方法,使得软件在运行和维护期间不需要过分依赖于承建方,只要不是大的改动都能应付,特别要熟练掌握软硬件环境的安装、维护、调优和备份等工作。其次,完备的文档为程序的维护、更新、扩展提供良好的帮助,承建方应该提供完整的文档,包括软件安装手册、软件操作手册、在线帮助、系统管理手册等,为以后的维护工作提供方便。
在“金保”工程建设中,要提高软件项目质量管理的方法有很多,例如在软件企业实施CMM规范或者引入RUP过程等,但对于参与“金保”工程建设的大多数中小型软件企业而言很不现实。首先,这需要企业投入大量的资金和人力物力,这不是企业所能承受的; 其次,CMM和RUP太大、太广,要求具有不同专业背景的技术人员,并且在企业内部建立起层次分明和分工清晰管理体系,而这些恰恰又是中小型软件企业所缺乏的。在“金保”工程的建设实践中,我们深切体会到,针对软件质量管理的薄弱环节实施质量管理改进,不用投入太多人力物力,就能较大程度地提高软件的质量。(clearcase/" target="_blank" >ccw)