设为首页 加入收藏
   
     
   
科技•信息
 
软件质量的影响因素与质量管理办法探讨
双击自动滚屏 发布者:admin 时间:2010-7-20 18:10:01 阅读:124次 【字体:

1引言
   随着软件产业的迅速发展,软件质量的管理工作显得越来越重要。软件质量管理的目的是建立对项目的软件产品质量的定量理解,并实现其特定的质量目标。
   2影响软件质量的因素
   软件质量包括两方面的内容,(1)软件过程质量;(2)软件产品质量。目前流行的标准和模型充分体现了这一点,其中最具代表性就是ISO系列标准和CMM。影响软件质量的因素如下:
   2. 1确性
   是指系统满足规格说明和用户目标的程度,即在预定环境下能正确地完成预期功能的程度。 它要求软件没有错误,能够满足用户的目标。
   2. 2可靠性
   是指在规定的时间和条件下,软件所能维持其性能水平的程度。可靠性对某些软件是重要的质量要求,它除了反映软件满足用户需求正常运行的程度,且反映了在故障发生时能继续运行的程度。
   2.3性能
   性能通常是指软件的“时间-空间”效率,而不仅是指软件的运行速度。人们总希望软件的运行速度高些,并且占用资源少些。 既要马儿跑得快,又要马儿吃的少。
   性能优化的关键工作是找出限制性能的“瓶颈”,不要在无关痛痒的地方瞎忙乎。
   程序员可以通过优化数据结构、算法和代码来提高软件的性能。例如数据库程序的优化。
   算法复杂度分析是很好的方法,可以达到“未卜先知”的功效。
   性能优化就好像从海绵里挤水一样,你不挤,水就不出来,你越挤海绵越干。有些程序员认为现在的计算机不仅速度越来越高,而且内存越来越大,因此软件性能优化的必要性下降了。这种看法是不对的,殊不知随着机器的升级,软件系统也越来越庞大了和复杂了,性能优化仍然大有必要。
   2. 4易用性
   指对于一个软件,用户学习、操作、准备输入和理解输出时,所做努力的程度。易使用性反映了与用户的友善性,即用户在使用本软件时是否方便。现代人的生活节奏快,干啥事都想图个方便。所以把易用性作为重要的质量属性对待无可非议。
   软件的易用性要让用户来评价。当用户真的感到软件很好用时,一股温暖的感觉油然而生,于是就用“界面友好”、“方便易用”等词来评价软件产品。
   2.5清晰性
   清晰意味着所有的工作成果易读、易理解,可以提高团队开发效率,降低维护代价。
   开发人员只有在自己思路清晰的时候才可能写出让别人易读、易理解的程序和文档。
   可理解的东西通常是简洁的。一个原始问题可能很复杂,但高水平的人就能够把软件系统设计得很简洁。如果软件系统臃肿不堪,它迟早会出问题。所以简洁是人们对工作“精益求精”的结果,而不是潦草应付的结果。
   2.6安全性
   安全性是指防止系统被非法入侵的能力,既属于技术问题又属于管理问题。信息安全是一门比较深奥的学问,其发展是建立在正义与邪恶的斗争之上。究竟什么样的安全性是令人满意的呢?一般地,如果黑客为非法入侵花费的代价(考虑时间、费用、风险等因素)高于得到的好处,那么这样的系统可以认为是安全的。对于普通软件,并不一点要追求很高的安全性,也不能完全忽视安全性,要先分析黑客行为。。
   2.7维修性
   指在一个可运行软件中,为了满足用户需求、环境改变或软件错误发生时,进行相应修改所做的努力程度。可维修性反映了在用户需求改变或软件环境发生变更时,对软件系统进行相应修改的容易程度。一个易于维护的软件系统也是一个易理解、易测试和易修改的软件,以便纠正或增加新的功能,或允许在不同软件环境上进行操作。
   2.8可扩展性
   可扩展性反映软件适应“变化”的能力。在软件开发过程中,“变化”是司空见惯的事情,如需求、设计的变化,算法的改进,程序的变化等等。现代软件产品通常采用“增量开发模式”,不断推出新版本,获取增值利润。可扩展性越来越重要。可扩展性是系统设计阶段重点考虑的质量属性.
   2.9健壮性
   健壮性是指在异常情况下,软件能够正常运行的能力。正确性描述软件在需求范围之内的行为,而健壮性描述软件在需求范围之外的行为。开发者往往把异常情况错当成正常情况而不作处理,结果降低了健壮性。用户才不管正确性与健壮性的区别,反正软件出了差错都是开发方的错。所以提高软件的健壮性也是开发者的义务。健壮性有两层含义:一是容错能力,二是恢复能力。从语义上理解,恢复不及容错那么健壮。 Unix容错能力很强,可惜不好用。Windows容错能力较差,但是恢复能力很好,而且很好用。占了90%的操作系统市场。
   2.10 可移植性
   指一个计算机系统或环境转移到另一个计算机系统或环境的容易程度。主要体现为代码的可移植性。编程语言越低级,用它编写的程序越难移植,反之则越容易。软件设计时应该将“设备相关程序”与“设备无关程序”分开,将“功能模块”与“用户界面”分开。
   2.11兼容性
   兼容性是指不同产品(或者新老产品)相互交换信息的能力。例如两个字处理软件的文件格式兼容,那么它们都可以操作对方的文件,这种能力对用户很有好处。兼容性的商业规则:弱者设法与强者兼容,否则无容身之地;强者应当避免被兼容,否则市场将被瓜分。
   3软件质量的管理办法
   3.1 重视质量管理
   我们都知道,在工业生产中,即使有先进的设备与技术,管理不善的企业也不能获得良好的经济效益。对于软件生产,不能按时按质完成计划,其中管理混乱往往是一条重要 原因。我国软件开发机构的管理相对比较薄弱,其中质量管理尤其显著,这与我们重技术、轻管理有关。为了做好软件质量管理工作,首先要从认识上转变过来,因为思想往往是行动的先导。管理者要有质量观念,有保证质量的全面计划、有效措施,将质量放在足够重要的地位,从一开始就强调质量。开发者要将保证质量作为他们的重要而且是必须完成的任务,把保证产品质量看成是质量检测人员的责任。缺乏全面质量管理、人人都是质量保证者和责任人的观念。
   3.2制定质量保证计划书
   根据有关标准,如目前较常用的是A N S I/I E E E STOL 730— 1 984,983— 1 986标准,制定切实可行的质量保证计划书,其中包含了软件开发的计划、管理组织、文档、评审、测试、工具和技术等内容。管理组织的安排是比较重要的,主要包括组织中的人员、分工、职责等。
   3.3 开发小组的人员应该少而精
   软件的质量依赖于参与开发工作人员的质量和数量。首先.开发人员的素质要足够好;其次,人员的数量不能过多。系统分析员负责计划时期和开发时期前期的工作,有经验的编程人员负责程序的编写。测试工作主要由专门的测试部门和人员负责。不同人员分工协作,从而降低了整个软件开发工程的困难程度,保证开发工作以一种有条不紊的方式进行。另外,大中型软件工程项目经常需要许多不同人员参与,他们经常需要交流情况,讨论问题,如果人员数量过多.会导致他们的通信开销急剧增加。所以,人员的数量不宜过多,否则花在通信上的时间就长,在一定程度上增加了开发成本,降低了生产效率。
   3.4明确制定每一阶段工作的检测标准
   在每个产品开发阶段都不做出不合格工作,决不把不合格的中间产品带到下一阶段,而不是到产品最后阶段才由专门的质量检测人员检查并保证产品质量。这就需要明确制定每一阶段工作的检测标准,让大家知道什么才是合格的工作。
   3.5 采用科学的管理技术和先进的技术方法
   实践表明,从技术上解决软件质量问题的效果是十分有效的。采用科学的管理技术,可以做好成本估算、进度安排、人员组织和质量保证等多方面的工作。力争达到以最少的投资获得最好的经济效益。而先进的技术方法则可以改进软件
开发过程,提高软件产品质量。近年来,采用面向对象的开发技术、原型开发方法、三层结构、软件构件、软件复用、分布计算、Agent等方法,取得了一定的效果。除此之外,还有一种净室开发技术,其基本思想在于“净化”软件开发过程,使得差错或缺陷不可能有机会混入开发过程。如果软件的需求可以用形式描述方法方便地表达出来,那么整个开发过程就会像公式推导那样严谨、无懈可击。这是最理想的情况。
   3.6管理者和开发者的沟通
   如果管理者与开发者没能很好地交流和合作,也会影响软件的质量。例如因为管理者的指示未得到切实地执行,才导致版本不一致等问题。又比如管理者强调质量和维护质量的措施会引起开发者的反感。如果大家能很好地交流和合作,此类问题会大大减少。
   3.7 坚持进行阶段评审
   有经验的软件开发人员都有这样的认识,软件的质量保证工作不能等到编码阶段结束之后再进行。原因是:首先,大部分错误是在编码之前造成的。其次,错误发现与改正得越晚,所需付出的代价也越高。因此,在每个阶段都进行严格的评审,以便尽早发现在软件开发过程中所出现的错误。
   3.8有良好的激励机制
   要将个人的所得(物质和心理两方面)与其工作绩效直接联系起来,有好的个人绩效评价机制。否则,做不好是大家整体的责任,自己的利益不受影响。做好了也没有及时明显的奖励。总之,做好做不好差不多,大家没有积极性。
   3.9 按阶段进行质量管理
   在需求分析阶段制定详细的需求分析报告,主要描述软件必须完成的功能及用户方实际操作流程和具体要求。当然这个阶段需要同用户方磨合,遵循的原则:首先满足用户方的要求,但在具体实现有困难时可以适当调整。采用一些快速开发工具,给出软件大致的模型,请用户方在一个实际的环境中提出具体的意见。
   在概要设计阶段,应邀请用户方 所做的设计提出意见,直到双方满意认可为止。在这两个阶段中的质量管理,实际上就是使得用户方和开发方达成一致,确定软件具体的功能、开发工具等内容。
   针对每一项功能再制定具体的实现方案,也就是详细设计阶段,这一阶段技术含量比较大,主要由开发人员来完成。这一阶段的质量控制涉及到软件的测试,通过测试,验证设计内容的可行性。
   通过上面三个环节的质量控制,可以大大提高软件设计效果,降低因需求分析不足导致设计缺陷,从而影响整个软件质量的可能性。
   3.10在软件的所有开发过程中积极与用户方沟通
   并不是做了需求分析和软件设计就不再需要变动,而是要将这项工作贯穿于整个软件开发的过程中。只有在软件的所有开发过程中积极与用户方沟通,才能充分满足用户方的要求,才能提高软件在实际应用中的质量。
4结束语
   我们必须认识到软件质量的重要性,了解影响软件质量的因素,采用有效的质量管理方法,才可以确保软件的质量。
 
上一篇|下一篇

 相关评论

暂无评论

 发表评论
 昵称:
 评论内容:
 验证码:
  
打印本页 || 关闭窗口
 
 

咨询电话: 13891856539  欢迎投稿:gmlwfbzx@163.com  gmlwfb@163.com
617765117  243223901(发表)  741156950(论文写作指导)63777606     13891856539   (同微信)

All rights reserved 版权所有 光明论文发表中心 公司地址:西安市碑林区南大街169号-6
CopyRight ©  2006-2009  All Rights Reserved.


  制作维护:中联世纪  网站管理
访问 人次
国家信息产业部ICP备案:陕ICP备17019044号-1 网监备案号:XA12993