资源描述
资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。
软件项目质量管理研究
摘要: 本文从软件项目的视角, 对项目质量管理进行了分析与研究。文章从软件项目管理的基本内容、 现状及存在问题、 实施项目管理时的基本过程、 提高项目质量管理的措施以及具体做法等角度, 分析阐述了在软件制作的项目中, 应当注意哪些问题已保证项目的质量。最后利用案例分析, 简单的将以上方法运用于某个项目。
关键字: 软件项目 质量管理 措施 策略
一、 引言
质量控制, 是一个常规过程。首先, 对产品的实际质量进行度量, 然后将度量结果与质量标准进行比较, 当产品的实际质量与质量标准有出入时, 采取一定的行动。软件的质量控制是一系列的验证活动, 在开发过程的任一点上对产品进行评估, 以确定产品在技术上是否与该阶段的规定相符合。
软件项目的质量管理, 就是对项目的产出---软件产品进行管理, 使产品满足客户的明确或隐含需求。它主要包括三方面的信息特征: 一、 能满足客户特性的需求; 二、 利用各种质量标准体系, 指导软件开发人员开发软件产品; 三、 是否满足客户隐含需求。
而且软件行业是一个高智力密集型行业。软件开发的过程会受多方面因素的影响。 软件产品作为逻辑、 智力产品, 更多呈现的是脑力劳动成果的形成。因此, 从软件项目的开始到结束过程中动态不确定的因素太多, 使得在按时提交软件产品的前提下有效保障软件质量成为一个比较棘手的问题。
软件质量对于软件成本与进度的影响是根本性。低质量的软件产品, 不但会增加后期的经营成本, 加重后期维护任务, 更重要的可能会引起难以预料的后果。如软件行业著名的千年虫问题, 虽然解决的方法非常简单。可是由于一个小小的错误, 却带来了很大的麻烦和损害, 并为此付出巨大的代价。因此, 在软件开发过程中实施项目质量管理至关重要。
二、 软件项目管理的基本内容
软件项目的实施过程也是软件质量形成 的过程, 涉及软件产品的各个层面。软件项 目质量管理主要包括软件项目质量计划编制、 软件项 目质量保证和软件项 目质量控制三个过程。
(一)软件项目质量计划编制
软件项目质量计划是软件质量管理的行动纲领, 一般由项目经理和质量人员共同协商制定质量计划。它包括确认与项目有关的质量标准以及如何满足这些标准。如果机构有独立的质量人员, 就由质量人员起草《质量管理计划》, 递交给项目经理和质量经理审批。如果机构没有独立的质量人员, 就由项目经理兼任质量人员和质量经理的角色。质量计划的主要输出结果有: 质量管理计划、 质量度量指标、 质量检查单、 过程改进计划等。
(二)软件项目质量保证
质量保证的实质是检查项目的工作过程和工作成果, 是否符合既定的规范。质量保证的要点: 找出明显不符合规范的工作过程和工作成果, 及时指导开发人员纠正问题, 切勿吹毛求疵或者在无关痛痒的地方查来查去。质量人员首先设法与项目成员协商, 给出解决措施。在项目内难以解决的质量问题, 由上级领导给出解决措施。这个过程的主要输出结果是: 过程质量检查结果、 产品质量检查结果、 问题与对策和经验总结。
(三)软件项目质量控制
质量控制主要是监控特定的项目结果, 确保它们遵循了相关质量标准, 并确定提高整体质量的方法。这个过程常与质量管理所采用的工具和技术密切相关。例如, 帕雷托图、 质量控制图和统计抽样。质量控制的主要输出结果包括: 质量控制度量、 有效和建议的缺陷修复、 建议的纠正和预防措施、 请求的变更、 质量基线更新、 组织过程资产更新和项 目管理计划更新等。
三、 项目质量管理存在的问题
( 一) 需求分析不明确
使得软件质量难于把握的一个最重要因素就是软件需求。软件不同于一般产品, 它是一种不可见的复杂逻辑实体。如何准确充分地确定需求, 让其真实反映用 户的意图, 是一项非常重要的工作。可是由于软件需求不可见, 甚至用户有时也搞不清楚, 而且, 开发人员和用户及业务人员的交流有可能不够充分, 用户不可能一开始就将需求提得 非常明确和充分, 同时开发人员的理解有可能出现问题, 甚至理解错误。另外, 在没计、 编码及调试过程中, 用户的意见和习惯没能及时反馈给开发人员, 也会造成软件不好用。
(二)软件开发工作不规范
许多软件开发工作没有按软件工程化的要求分阶段进行, 为了赶进度, 往往上一阶段的 工作尚未结束, 下一阶段的工作就迫不及侍地开始了, 甚至需求尚未完全确定, 程序设计就 已经开始。这样开发出的软件产品, 缺乏系统性和科学性, 其质量自然无法保证。
(三)软件质量管理活动进行有困难
( 1) 软件质量指标许多尚未量化。软件开发的管理人员往往更关心项目开发的成本和 进度, 因为成本和进度是显而易见的, 而且易于度量, 而软件质量则完全不同; ( 2 )机构不完整, 职责不分明。如果软件开发的管理人员对于交付的软件含有多少隐错并不负什么责任, 那么她们必定没有热情去控制开发的质量, 更不必说保证质量并不容易; ( 3) 不规范的开发习惯难于纠正。取得高质量的软件产品, 主要取决于参与开发的人员, 然而软件开发人员的习惯一旦形成就很难改正, 其行为也难以控制; ( 4) 人员之间的协调沟通容易出现问题, 许多软件工程项目需要若干技术人员和管理人员参与, 工作中她们之间信息和思想方面的交流和沟通是十分必要和频繁的, 但问题也常常发生在相互交流中, 对问题的不同认识和误解如果不能及时消除, 必定会造成不良后果; ( 5) 软件项目组中人员流动会影响产品质量。软件项目组中人员的流动难于完全避免, 从软件项目组离去的人员, 特别是骨干力量, 她们呢的离去会带走项目思想、 核心技术和经验, 对项目本身是一种损失, 而且项目开发的质量也会受到影响。
四、 软件项目质量管理策略
( 一) 真正明确用户的需求
明确用户的真实需求是非常重要的, 从以往项日失败的案例中分析可得, 大部分是由于需求分析的不明确造成的。由于开发人员未能对用户的需求做实际调查, 而且对于实施项目的相关其它领域不是很了解, 这些有时不会影响项目的前期实施, 可是到了后期会有明显的影响, 甚至会导致项目的夭折。因此, 明确客户的真正需求, 是保证软件产品质量是否能合格使用的关键一环。
( 二) 对项目的过程进行合适的定义
软件项目的过程包括了对软件产品进行开发与维护的活动、 实践和技术。在现代信息社会, 过程管理是开展企业管理的一种先进思想, 也是一种有效的工具。在外部环境或者组织模式发生变化时, 过程管理也会发生相应的变化。因此, 要使整个软件项目过程顺利完成, 就必须按照企业与项目的实际状况制定出合理的运作流程, 对软件的功能和相关性能进行准确的定义, 明确每个阶段的计入与推出条件, 从而实现对软件项目过程的有效控制和管理。这样, 才能在提高软件开发的效率与项目成功率的同时保证了软件的开发质量。
( 三) 实行代码走查
在软件的开发过程中, 能够根据项目的需要引进代码走查。让程序员在每周的固定时间, 对其所负责的代码部分进行讲解。 这一举措一方面能够促使程序员关注自己所开发的代码的质量, 一方面也能够经过听取她人的建议对改进代码工作的效率。代码走查使得程序员共享思路与方法, 从而保证了软件的质量。
( 四) 实施项目跟踪控制管理
项日跟踪控制管理主要是经过跟踪和控制两个环节, 对于项目实施的全过程进行跟踪控制。这一过程不但反映出项目是否按计划的轨道行驶, 产品的性能是否合格, 而且也需要对于计划在项目实施过程中是否合理进行跟踪。然后经过反馈, 对于那些不合理的、 存在潜在问题的因素进行纠正和更改。图l为项目汁划和项日跟踪与监督关系图。
图1
( 五) 对软件产品进行检测
对软件项目的检测分为集成测试与系统测试。测试的主要内容有功能、 健壮性、 性能、 效率、 用户界面、 安全性、 压力、 可靠性、 安装与反安装等等。测试一般在模拟环境中开展。测试应尽量贯穿整个项目的全过程。经过测试, 尽早发现每个阶段中存在的软件缺陷, 为后续阶段的实施创造便利。
五、 提高软件项目质量的措施
(一)确立有效的质量标准体系
建立必要的质量标准是进行软件项目质量管理的前提和关键。根据在实施软件项目方面的整体战略规划与软件项目实施计划, 实施软件项目的主体企业首先要确立衡量项目质量的标准体系。衡量项目质量的标准一般包括项目涉及的范围、 项目实施的具体步骤、 项目周期估计、 项目成本预算、 项目工作详细内容安排、 质量目标要求以及客户满意度等。值得注意的是, 项目质量标准体系一定要具备完整性、 科学性与合理性, 项目实施各相关主体应该事先进行讨论与沟通, 以保证其完整、 无漏洞, 又具备较强的可实施性。
(二)做好技术评审
技术评审的目的是经过同行专家对工作成果的评审进行讨论, 尽早地发现工作成果中的缺陷, 并帮助开发人员及时消除缺陷, 从而有效地提高产品的质量。质量人员应当参与重要的技术评审会议, 这样既监督了技术评审, 又加深对工作成果的了解。技术评审能够在任何开发阶段执行, 不必等到软件能够运行之际, 越早消除缺陷就越能降低开发成本。技术评审的价值在于”请同行专家评审工作成果, 找出缺陷, 给出改进建议”, 而不在于是否按照规范召开了评审会议(形式是次要的)。技术评审时, 项目经理一定要请真正内行的人参与评审, 而且要让评审者投入一定的精力, 这样才可能取得评审的效果。
(三)提高项目文档质量
按照软件质量管理的要求, 在软件生命周期的各阶段应该及时、 认真的编制相应的文档。软件项目文档质量不高的主要原因: 一是缺乏评价文档的质量标准: 二是对文档编写不够重视。质量差的项目文档会削弱对项目的管理, 增高项目成本, 甚至造成更加有害的后果。我们必须加强对文档质量的检查, 提高项目文档的质量。一般在项目文档检查中主要检查”软件需求说明书”、 ”详细设计说明书”、 和 ”软件测试报告”。另外, 我们还要检查上述文档的评审记录, 评审结论, 重点检查文档中发现的问题是否已经归零。
(四)建立有效的激励机制
经过有效的激励机制, 让员工慷慨激昂、 充满激情的全力工作, 是提高产品质量的重要手段。根据马斯洛理论我们知道: 不同的人, 有着不同的需要。因此, 调动员工的积极性。需要实行多样化激励方式。项目管理者需要对员工进行分类, 建立员工分类手册, 而且要建立重点员工的个体分析表, 以便采取多样化激励措施。斯金纳的操作性条件反射理论告诉我们: 当行为结果有利于个人时, 行为的得到强化, 表现积极主动, 愿意重复; 当行为结果不利于个人时, 行为得到弱化, 表现消极被动, 不愿意重复。若根据日常考核结果, 进行即时化奖惩, 该表扬的表扬, 该批评的批评; 该奖励的奖励, 该处罚的处罚。人的行为即时反映
出奖罚结果, 那么她下一个行为就能即时根据奖罚做出调整。这样就容易发挥奖罚的作用, 使项目按照正确的方向顺利进行, 从而提高软件产品的质量。
( 五) 提高最终用户的参与程度
软件使用者的参与对软件项目非常重要, 对电力企业用软件而言, 软件所涉及到的各个业务部门的全程参与, 是保证质量的关键。用户在项目初期对自身的需求理解并不充分, 所 以首先要经过其沟通的方式了解她们表层的需求, 并挖掘深层的需求, 引导用户发现自己潜在的需求以及未来的需求。一般的方法是, 在项目组中, 需要有用户方面的人参与, 特别是在需求调研和需求分析阶段, 需要用户的高度参与才能达到阶段性的目标在需求调研阶段, 经常性的进行需求讨论会, 并邀请用户参与。在需求审核阶段, 更是需要得到用户的明确确认。在项目的后期, 及早与用户沟通, 对项目的验收、 测试方式进行必要的准备。对于某些 未能按照用户要求完成的功能(可能因为各种技术原因, 甚至需求就有问题), 必须及早与用户进行沟通, 避免影响验收的进行。
六、 案例分析
此处取一个软件项目的案例---渝北区城乡建委项目动态管理系统设计。该案例是为渝北区建委设计一个信息系统以辅助其管理, 提高其管理效率。使其能及时掌握重点基础设施、 公共服务设施、 房地产开发等项目审批情况、 建设进度、 工程完成情况、 竣工情况, 实时了解建设项目的质量监督情况、 安全监督情况和执法监督情况, 确保项目按规划要求实施, 按期完成, 有必要建立建设项目动态管理系统, 对渝北建设项目的行政审批、 建设过程、 竣工过程实行全过程跟踪管理, 加强横向、 纵向衔接与沟通。经过规范化管理运作, 加强对建设项目的监管, 提升渝北区城市建设品位, 同时也增强了业务管理人员的责任性, 提升服务效能, 提高规划管理水平。
项目共分为需求分析、 概要设计、 数据库设计、 详细设计、 编码、 测试、 部属与试运行、 培训结项等阶段。其交付项包括: 软件安装光盘、 《需求分析说明书》、 页面界面DEMO、 《测试报告》、 《系统维护手册》、 《操作手册》。为了对其质量进行控制, 需要从以下几个方面注意: 一、 明确需求并将需求动态化, 多与用户交流, 对于需求的变化, 要及时改变相应工作; 二、 对于编码部分的质量管理, 要实行代码走查, 定期地检查代码, 将由代码产生的项目风险控制到最低; 三、 建立完善的项目质量保障体系及激励机制; 四、 建立良好的员工间交流体系, 促进上下级、 同级之间员工的交流, 减少员工流失。从以上四点保证项目的正常实施。
七、 结论
软件项目质量管理的研究依然是摆在我们面前的一个重要课题。软件项目质量管理的重要性随着软件开发的深入、 各种技术的不断创新以及软件产业的形成越来越突出, 也逐渐地在形成一门学科, 相信它会对软件的生产和完善起到越来越重要的保障作用。
参考文献:
[1]项目管理协会.项目管理知识体系指南[M].北京:电子工业出版社, ,4;
[2]张天宇.中小型软件开发质量控制研究[J].微电子学与计算 机, (6): 36-39;
[3]刘伟 .浅谈软件开发项 目的质量控制[J].决策与信息, (9):98-101;
[4]沈玉宏.基于CMM软件项目质量管理的研究[D].首都经济贸易大学, ;
[5] 李彭, 高世臣, 大型软件系统的项 日管理研究[J] , 科技情报开发与经济, (33) :195—196 .
展开阅读全文