您好, 访客   登录/注册

软件工程质量标准与管理之浅析

来源:用户上传      作者: 王 旭

  [摘要]软件工程实质上是希望使软件系统的开发能够像工业品的生产一样,通过一系列的标准和规范,利用科学的技术,方法,工具和管理手段,以达到用较少的时间,较小的开支获得质量高,可维护性好的软件产品,使软件产品保持较高的竞争力。
  [关键词]软件工程;质量标准
  
  随着软件工程的不断发展,对软件工程的研究逐渐划分为两个方面:(1)软件工程技术。包括对工程化的开发方法,软件开发工具与环境的研究。主要面对的问题有:适应需求分析的不确定性、软件的可靠性和软件度量等。软件工程技术的发展出现了瀑布模型、快速原型法等方法,它们在国内外都有过成熟和成功的应用范例。随着新的软件开发技术的出现,出现了诸如面向对象的软件工程等新的软件工程开发技术,给软件工程技术的研究带来了新的研究方法。(2)软件工程管理。包括质量管理,费用管理,配置管理等。主要面对的问题有:开发成本的控制、资源控制、质量的控制和进度的控制等。但是由于人们长期认为软件工程的发展主要由软件工程技术决定,导致了对软件工程管理研究长期落后。面向对象的思想可以使对现实系统的抽象更加直观,更符合人类的感知和经验,从而使从需求到分析到设计的过渡更加平滑和自然,还有利于整个软件系统的重用和维护。面向对象的思想和技术发展迅速并日臻成熟,采用面向对象的思想和开发方法对解决大型软件系统的开发和设计具有得天独厚的优势。
  
  一、软件产品质量管理
  
  软件质量的管理主要是对软件开发过程的管理,目前国外的很多软件开发企业,对软件开发的管理已经成熟,相对而言,国内的软件开发行业对软件开发的管理始终处于比较低的水平。一方面是由于国内对软件工程的研究起步较晚,另一方面是思想观念陈旧,还没有对软件过程的一些先进思想,尤其是对软件开发过程管理的思想予以高度重视。不过国内一些软件开发企业的管理人员已经开始关注软件质量的管理,甚至已经进行了软件质量体系国际标准化认证的工作。软件的质量管理包括对软件产品的管理和对软件开发过程的管理。软件产品包括最终的软件产品、中间软件产品和附属软件产品。传统的观点认为软件产品的质量主要取决于软件产品的测试和确认,忽视对软件开发过程的重视。正确的认识是软件质量来自于正确的软件设计和正确的实现过程,而不是靠对软件产品的保证和测试,因此软件质量的提高依靠软件质量管理水平的不断提高。软件工程的质量管理是一个复杂的问题,也是软件工程质量保证的基础,必须有效地控制软件的质量,这就需要为软件工程质量设定标准。
  
  二、标准的产生
  
  标准是对一定范围内的重复性事物和概念所做的统一规定。所谓“重复性事物和概念”是指同一事物或对象反复多次出现,如在成批生产的产品,在生产的过程中的重复投入、重复加工、重复检验,同一种活动在不同地点不同对象上同时或相继发生:某一种概念、方法、符号被许多人反复应用等。标准的制定不是靠凭空想象,也不能随心捏造,必须以科学、技术和实践经验的综合成果为基础,最终目的是优化社会生产秩序,促进产品在一定范围内有效流通,整个社会资源得到优化配置,达到最佳的社会效益和经济效益。从本质上来讲,标准同人类语言一样,都是劳动的产物,并随着人类劳动对象增多、劳动成果交流范围的扩大得到发展。在原始社会之后,由于生产力的提高,为产品交换提供了条件,在产品交换的过程中,便产生原始的计量和度量,这些“标准”只是在很小的范围内使用。近代,机器工业时代的到来,生产过程高度现代化、综合化,一项产品的生产,往往涉及到几十个行业、成千上万个企业和多门科学技术。国际贸易的扩大、跨国公司的发展、区域济经一体化直接影响着世界各国的标准化,这也就导致国际标准的产生。国际标准是由国际标准化组织(ISO)、国际电工委员会(IEC)和国际电信联盟(ITU)所制定的标准,以及经国际标准化组织确认并公布的其他国际标准组织制定的标准。同样,计算机软件也是一种产品,随着Internet在全世界范围内的普及,与传统的产品相比它的流通速度和复制生产更快,一旦某一软件产品“生产”出之后,将会以及指数增长的速度在全世界内流传。软件业也必须要有相关的标准,为软件交流以及软件间的相互协作提供保障。
  
  三、如何保证软件产品质量
  
  软件开发所关心的问题是真正地将软件工程技术纳入工业化大规模的实施进程中,这种方法的关键要素包括在能支持渐进的变化的开发过程中,使系统的开发过程的各个阶段能够简单易行、彼此平滑过渡,系统模型易于理解,易于维护,能够最大限度地重用已有的成果。面向对象的技术为实现以上目标提供了强有力的支持。日本的著名软件质量专家KAORUISHIKAWA指出了质量工作的六个特征:全公司范围的质量控制;高层管理者和结构的质量控制监督;教育和培训;质量周期活动;统计方法的应用i全国范围的质量提高活动。
  从中可以看出,质量提高必须是全企业甚至是全社会的责任。质量管理的目的在于最终消除一切可能的缺陷,缺陷产生主要来自工人和管理。由工人造成的缺陷比较容易解决,只要有培训部门对工人专门培训,让工人知道去做什么,知道自己工作产生的结果,以及懂得控制结果的方法就可以阻止工人生产的产品出现缺陷。管理产生的缺陷往往易被忽视。由于管理上的漏洞,往往会形成管理上的空缺,使工人无法满足上述三个条件而造成产品缺陷。软件开发是一个渐进的过程,需求也是一个循序渐进的过程。对软件产品的测试也不可能很全面,必然存在隐藏的缺陷。因此,一套有效的管理程序非常重要。
  完善的软件质量管理程序有以下几方面的内容:(1)软件产品质量需求的建立。这种需求首先必须精确地反映用户所有的需求,必须把这种需求转化成形式化的标准的需求说明。最后必须对需求的变更进行有效地控制。(2)建立开发、操作、维护软件的方法、过程和效率。方法的建立是指对用于开发、操作和维护工作的方法的定义,方法的实现是通过制定一套实施规范来完成的,方法的支持可以通过共同的协作管理实现。(3)建立评价软件产品质量的文件、过程、活动的方法、过程、实践和程序。评价是从质的方面进行,度量是从量的方面进行。复查、评估测试、分析、检验等活动的目的在于确认产品是否符合相关的质量要求,过程是否按要求完成等。
  
  四、软件危机问题
  
  软件危机最严重的征兆就是低质量软件的开发。软件危机问题导致了软件工程的产生,软件工程重点需要解决的问题就是软件质量问题,对软件产品质量的要求不能放到最后阶段来完成,要在软件开发的过程中采用面向对象方法和建立好的质量管理体系实现对产品的质量控制,同时结合软件产品质量标准体系对软件产品进行评价和度量,力求软件产品在质量上能够取得竞争优势。如今软件工程项目总是倍受关注,而软件的质量更是众人关注的焦点。目前,还没有一套成熟的标准对软件工程的指令质量进行比照,因此软件项目极易出现失败或失误。大量实践证明,软件工程项目的成败,通常是因为管理方面的问题,而不是技术方面的问题,因此质量管理的作用是不言而喻。
  在现今还是未来,有关于软件工程的管理及设立标准都是不可忽视的,与时俱进的一个问题。


转载注明来源:https://www.xzbu.com/2/view-610732.htm