软件工程与软件质量管理浅析
软件工程论文
课程名称: 软件工程
论文题目:软件工程与软件质量管理浅析
院 系: 信息技术学院
班 级: 计算机科学与技术2班
姓 名: 郭彩丁
学 号: [1**********]5
任课教师: 赵 卿
编写时间: 2012-12-28
信息技术学院
目录
一、软件工程介绍 . .................................................................................................................. 3
二、软件工程分析 . .................................................................................................................. 3
三、软件产品质量管理 . .......................................................................................................... 5
四、标准的产生 . ...................................................................................................................... 5
五、软件工程如何保证软件产品质量 . .................................................................................. 6
六、软件危机问题 . .................................................................................................................. 7
七、总结 . .................................................................................................................................. 7
软件工程与软件质量管理浅析
【摘要】软件质量的下降到导致了软件危机,软件工程正是为了保证软件产品质量而诞生的。首先介绍软件工程的相关概念和发展分类,然后对于软件产品质量管理功能进行说明,最后指出软件产品质量的保证一定要贯穿于整个软件产品开发的整个阶段,作为一个系统的工程来实现。
【关键词】软件工程 软件危机 质量管理 质量认证
20世纪末, 随着计算机应用领域的迅速扩大和计算机系统的日益庞大和复杂,出现了“软件危机”。为了解决由于“软件危机”带来的诸如软件质量下降、成本难于控制、软件进度无法完成、软件的可维护性差等问题,产生了软件工程这一学科。人们最初认为,软件工程的发展主要由软件工程技术决定,而长期忽视了软件工程与软件质量管理对软件工程管理和软件质量保证的重视,从而导致了对软件工程管理的研究长期滞后。软件质量的管理主要来自于对软件开发过程的管理。
一、软件工程介绍
软件工程实质上是希望使软件系统的开发能够像工业品的生产一样,通过一系列的标准和规范,利用科学的技术,方法,工具和管理手段,以达到用较少的时间,较小的开支获得质量高,可维护性好的软件产品,使软件产品保持较高的竞争力。
随着软件工程的不断发展,对软件工程的研究逐渐划分为两个方面:
(1)软件工程技术。包括对工程化的开发方法,软件开发工具与环境的研究。主要面对的问题有:适应需求分析的不确定性、软件的可靠性和软件度量等。软件工程技术的发展出现了瀑布模型、快速原型法等方法,它们在国内外都有过成熟和成功的应用范例。随着新的软件开发技术的出现,出现了诸如面向对象的软件工程等新的软件工程开发技术,给软件工程技术的研究带来了新的研究方法。
(2)软件工程管理。包括质量管理,费用管理,配置管理等。主要面对的问题有:开发成本的控制、资源控制、质量的控制和进度的控制等。但是由于人们长期认为软件工程的发展主要由软件工程技术决定,导致了对软件工程管理研究长期落后。面向对象的思想可以使对现实系统的抽象更加直观,更符合人类的感知和经验,从而使从需求到分析到设计的过渡更加平滑和自然,还有利于整个软件系统的重用和维护。面向对象的思想和技术发展迅速并日臻成熟,采用面向对象的思想和开发方法对解决大型软件系统的开发和设计具有得天独厚的优势。
二、软件工程分析
软件过程分析可以从以下三个方面来描述:
系统开发的基本过程
系统开发可以分为3个基本过程,包括分析、开发、测试和维护过程。开发过程还包括设计和实现两个子过程。这种划分将一个复杂的开发过程分解为几个相对独立的子工程,便于系统的并行开发和逐步深化。在分析阶段,需要根据用户的功能说明构造一个分析模型。在这个阶段,用户的需要会经常更改。分析模型的目标是提供一个强大的体系结构,它要能经得起需求的变化。这一阶段还应该将系统分解为几个子系统,以便于对系统的理解,分析模型应该是在理想的情况下考虑系统功能的实现,不考虑具体的编程语言、数据库系统或性能等的要求,在开发阶段,应该考虑具体的实施环境。并发阶段又分为两个过程——设计和实现。设计阶段将分析模型转化为更加详细的、根据具体环境的设计模型,并将分析模型中的功能模型转化成适当的软件模型,并最终在实现过程中编码实现。测试过程用于验证是否所有在分析模型中提出的功能需求都被开发模型实现以及是否正确的实现。测试过程实质上是对整个系统从部分到整体的验证,对测试模型的组织实际上也是对系统的一种抽象理解的应用。在这样一个模型中,维护工作可以从任何一个模型开始。
面向对象的开发方法
科学的开发方法需要一套科学的方法学,不同的思想方法决定不同的开发方法及最终产品的结构、特性等。所关心的问题是真正地将软件技术纳入工业化大规模的实施进程中,这种方法的关键要素包括在能支持渐进的变化的开发过程,使系统开发过程的各个阶段能够简单易行、彼此平滑过度,系统模型易于理解,易于维护,能够最大限度的重用已有的成果,面向对象的技术为实现以上目标提供了强有力的支持传统的功能方法不能很好地解决以上问题。首先,功能方法将系统分解为功能和数据两部分,功能是主动的,并具有一定的行为,数据是被动的信息拥有者,它被功能中的各种行为利用或改变。其次,用功能方法开发的系统与现实系统之间存在很大的差别,它往往不是根据现实生活中的实体形成系统模型,而是将所有实体中不同的功能和数据提取出来。最后,继承是面向对象技术本身的特点,它可以极大程度地重用现有的软件产品。因此,对一个大型系统的开发,应该采用面向对象的技术。更希望能从软件开发的更广泛的范围和阶段中发现并使用重用技术。例如,最终的软件包可以由已有软件模块组成,软件模块又可以由软件组件组成,组件可以是完成固定功能的并经过测试的最小软件单元另外,对文档也可以重用,因为无论是开发阶段的文档,还是维护阶段的文档,对于不同的软件系统而言,只要开发方法和管理方法不变,文档的格式、使用规程等都有极高的可重用率。在重用技术方面,面向对象的技术提供了强大的帮助,它为寻找、理解和分配可重用事务提供了一个很好的解决办法。
重用
软件开发中都希望在所有的开发过程中尽可能地重用已有的结果,因为重用可以极大可能地提高生产效率。重用是解决软件工程危机的一个关键方法,传统的软件工程方法并不能很好地利用已有的软件产品。比较熟悉对软件代码的重用,这是最常用的重用方式。它可以极大地提高生产效率,但是从软件工程的角度看,这并不是唯一感兴趣的方式
三、软件产品质量管理
软件质量的管理主要是对软件开发过程的管理。目前国外的很多软件开发企业,对软件开发的管理已经成熟,相对而言,国内的软件开发行业对软件开发的管理始终处于比较低的水平。一方面是由于国内对软件工程的研究起步较晚,另一方面是思想观念陈旧,还没有对软件过程的一些先进思想,尤其是对软件开发过程管理的思想予以高度重视。不过国内一些软件开发企业的管理人员已经开始关注软件质量的管理,甚至已经进行了软件质量体系国际标准化认证的工作。软件的质量管理包括对软件产品的管理和对软件开发过程的管理。软件产品包括最终的软件产品、中间软件产品和附属软件产品。传统的观点认为软件产品的质量主要取决于软件产品的测试和确认,忽视对软件开发过程的重视。正确的认识是软件质量来自于正确的软件设计和正确的实现过程,而不是靠对软件产品的保证和测试,因此软件质量的提高依靠软件质量管理水平的不断提高。软件工程的质量管理是一个复杂的问题,也是软件工程质量保证的基础,必须有效地控制软件的质量,这就需要为软件工程质量设定标准。
软件的质量管理包括对软件产品的管理和对软件开发过程的管理。软件产品包括最终的软件产品、中间软件产品和附属软件产品。传统的观点认为软件产品的质量主要取决于软件产品的测试和确认,而忽视对软件开发过程的重视。但正确的认识是软件质量来自于正确的软件设计和正确的实现过程,而不是靠对软件产品的保证和测试。因此软件质量的提高依靠软件质量管理水平的不断提高。
ISO9000系列的标准起初是用于工业企业和工业产品的质量管理和质量认证。这一系列的标准认为“所有的工作都是通过过程来完成的”,它通过对产品质量形成的每个阶段的控制来实现对最终产品质量的控制。由于软件开发自身的特点,一些活动与开发过程的特定阶段有关,而另一些活动则可能适合于整个开发过程。因此ISO9000系列标准中后来专门增加了一个指导性的文件,用于对ISO9000系列标准在软件的开发、供应和维护中的使用提出指南。
四、标准的产生
标准是对一定范围内的重复性事物和概念所做的统一规定。所谓“重复性事物和概念”是指同一事物或对象反复多次出现,如在成批生产的产品,在生产的过程中的重复投入、重复加工、重复检验,同一种活动在不同地点不同对象上同时或相继发生;某一种概念、方法、符号被许多人反复应用等。标准的制定不是靠凭空想象,也不能随心捏造,必须以科学、技术和实践经验的综合成果为基础,最终目的是优化社会生产秩序,促进产品在一定范围内有效流通,整个社会资源得到优化配置,达到最佳的社会效益和经济效益。从本质上来讲,标准同人类语言一样,都是劳动的产物,并随着人类劳动对象增多、劳动成果交流范围的扩大得到发展。在原始社会之后,由于生产力的提高,为产品交换提供了条件,在产品交换的过程中,便产生原始的计量和度量,这些“标准”只是在很小的范围内使用。近代,机器工业
时代的到来,生产过程高度现代化、综合化,一项产品的生产,往往涉及到几十个行业、成千上万的企业和多门科学技术。国际贸易的扩大、跨国公司的发展、区域济经一体化直接影响着世界各国的标准化,这也就导致国际标准的产生。国际标准是由国际标准化组织(ISO )、国际电工委员会(IEC )和国际电信联盟(ITU )所制定的标准,以及经国际标准化组织确认并公布的其他国际标准组织制定的标准。同样,计算机软件也是一种产品,随着Internet 在全世界范围内的普及,与传统的产品相比它的流通速度和复制生产更快,一旦某一软件产品“生产”出之后,将会以及指数增长的速度在全世界内流传。软件业也必须要有相关的标准,为软件交流以及软件间的相互协作提供保障。
五、软件工程如何保证软件产品质量
软件开发所关心的问题是真正地将软件工程技术纳入工业化大规模的实施进程中,这种方法的关键要素包括在能支持渐进的变化的开发过程中,使系统的开发过程的各个阶段能够简单易行、彼此平滑过渡,系统模型易于理解,易于维护,能够最大限度地重用已有的成果。面向对象的技术为实现以上目标提供了强有力的支持。
日本的著名软件质量专家KAORU ISHIKAWA指出了质量工作的六个特征:全公司范围的质量控制;高层管理者和结构的质量控制监督;教育和培训;质量周期活动;统计方法的应用;全国范围的质量提高活动。
从中可以看出,质量提高必须是全企业甚至是全社会的责任。质量管理的目的在于最终消除一切可能的缺陷,缺陷产生主要来自工人和管理。由工人造成的缺陷比较容易解决,只要有培训部门对工人专门培训,让工人知道去做什么,知道自己工作产生的结果,以及懂得控制结果的方法就可以阻止工人生产的产品出现缺陷。然而,管理产生的缺陷往往易被忽视。由于管理上的漏洞,往往会形成管理上的空缺,使工人无法满足上述三个条件而造成产品缺陷。而且,软件开发是一个渐进的过程,需求也是一个循序渐进的过程。对软件产品的测试也不可能很全面,必然存在隐藏的缺陷。因此,一套有效的管理程序非常重要。
质量认证部门负责企业内部质量认证的工作,质量认证是对企业的质量管理水平进行评估的行为,分内部和外部认证。外部认证获得通过后往往可以获得国际上的质量认可,内部
认证是一种主动行为,是对自身质量管理水平的考验,能不断提高企业自身的质量水平。 质量管理程序是提高过程质量的一套科学方法. 产品质量的提高来自于对生产过程的不断提高。对产品的测试和评估不能换回产品的质量,质量是在产品生产的每个阶段中创造出来的。因此只有提高产品生产的整个过程的质量,才能真正地提高产品的质量。完善的软件质量管理程序有以下几方面的内容:
(1)软件产品质量需求的建立。这种需求首先必须精确地反映用户所有的需求,同时必须把这种需求转化成形式化的标准的需求说明。最后,必须对需求的变更进行有效地控制。
(2)建立开发、操作、维护软件的方法、过程和效率。方法的建立是指对用于开发、操作和维护工作的方法的定义,方法的实现是通过制定一套实施规范来完成的,方法的支持可以通过共同的协作管理实现。
(3)建立评价软件产品质量的文件、过程、活动的方法、过程、实践和程序。评价是从质的方面进行,度量是从量的方面进行。复查、评估测试、分析、检验等活动的目的在于确认产品是否符合相关的质量要求,过程是否按要求完成等。在评价和度量标准上ISO9000标准系列可以提供一套良好的手段和评价标准。
六、软件危机问题
软件危机最严重的征兆就是低质量软件的开发。软件危机问题导致了软件工程的产生,软件工程重点需要解决的问题就是软件质量问题,对软件产品质量的要求不能放到最后阶段来完成,要在软件开发的过程中采用面向对象方法和建立好的质量管理体系实现对产品的质量控制,同时结合软件产品质量标准体系对软件产品进行评价和度量,力求软件产品在质量上能够取得竞争优势。如今软件工程项目总是倍受关注,而软件的质量更是众人关注的焦点。目前,还没有一套成熟的标准对软件工程的指令质量进行比照,因此软件项目极易出现失败或失误。大量实践证明,软件工程项目的成败,通常是因为管理方面的问题,而不是技术方面的问题,因此质量管理的作用是不言而喻。
在现今还是未来,有关于软件工程的管理及设立标准都是不可忽视的,与时俱进的一个问题。
七、总结
软件危机问题导致了软件工程的产生,而软件工程重点需要解决的问题就是软件质量问题,对软件产品质量的要求不能放到最后阶段来完成,要在软件开发的过程中采用面向对象方法和建立好的质量管理体系实现对产品的质量控制,同时结合ISO9000产品质量标准体系对软件产品进行评价和度量,力求软件产品在质量上能够取得竞争优势。
参考文献:
[1]梁洪宜. 计算机软件质量和软件质量保证. 广州大学学报(综合版). 2001年5月.
[2]傅丞操. 质量管理软件企业提高企业竞争力的关键. 科技咨询导报. 2007 第2期.
[3]李怀璋. 王青基于ISO9000和CMM 的软件质量管理系统的研究. 计算机应用与软件.2002第2期.