background image

        软件工程论文

读完《软件工程》和一些有关资料后,感觉一些东西都曾经接触过,但在实际工作

中有些理论要完全遵循可能还有些障碍,软件工程只是提供了理论上的一些结论,但
对项目的具体可操作性的规范的制定方面却做的很少,《软件工程》发展了几十年,光
是开发模型就达到了

10 多种,对不同的项目采用合适的开发模式,有些项目在不同的

开发阶段可能还要转换开发模式,把它们灵活的应用到实际中还是很困难的。现在国内
外都重视《软件工程》是因为,人们都认识到了如果能够适当合理的利用软件工程的理
论可以减小开发成本和风险,风险降低了,成本就减少了,利润就提高了,所以有一
种说法就是

“软件工程就是提高软件项目利润的理论”。但人们也都意识到《软件工程》的

确更接近于理论,它所提供的可操作性太差,于是就有了现在流行的

RUP 和 XP 开发

理论,这两种理论就是根据《软件工程》的理论经过大量的试验总结出的比较成功的开
发模式,但

RUP 对于大项目还适合,对于小项目则不利于降低开发成本,所以现在国

外最受欢迎的是

XP。现在国内也开始使用这种方法,这种方法与其他开发方法最大的

不同是将测试提到了一个几乎是最重要的位置,先写测试用例,然后编码,而且在测
试过程中提倡使用一些自动化的测试工具,如对

Java 测试的 Junit 和对 Delphi 测试的

Dunit。如今的软件工程已经改变了很多,提倡能够快速适应客户需求变化并能够根据变
化快速转变开发方向的开发方法,国内外充斥着大量的讨论能够提高开发速度、减少需
求变更的开发模式的书籍,如一些认证,如

ISO9000,CMM,CMMI 等,还有开发模

式,如敏捷开发,

RUP,XP,PSP,TSPi 等。在一定情况下,XP 是很出众的,XP 对国

情是否适合可能尚难以下结论,但

XP 对于测试的重视和对使用自动化测试工具的推崇

则是我们可以借鉴的。

无论是在上个世纪还是在现在,软件开发所涉及的工作基本上都没有变化,它们

都起始于一个实际需要或某个灵感,然后就是分析,设计,编码,调试,维护。这些任
务以某种方式动态地结合起来就构成了软件开发的整个过程,这就是所谓的

“软件开发

周期

”。 但对于这些工作,具体怎样做,什么时候做,每个人都有自己的一套方式,甚

至有的人有几套方式。这样,当几个人合在一起干活的时候,最终的结果就只能是一片
混乱。所以就需要一套规则,大家都按规则来办事,问题就会少得多。好的规则就叫做
规范,规范都是由一些有经验的前辈根据经验总结的,又经过长时间的历练,不断地
被补充修正,可以说都是精华,按照规范来干活,对于提高软件质量和工作效率自然
大有帮助。而软件工程,用通俗的话讲就是,一套用于软件的团队开发,以提高软件质
量和程序员工作效率为目的的规范。其核心就是,对于软件开发的

5 个重要组成部分:

需求分析,设计,编码,调试,维护,如何组织这

5 个部分的工作,以及如何完成每

一个工作。简单来说,就是对于总体的组织和对于局部的实现。

规范只是提供一个好的例子,以描述一种思想,具体到每一个环节怎样实现,对

于不同的公司或团体则是各有千秋,因为根本就不可能存在一套放之天下皆可行的标
准。就像

C++,也只是提供了一套标准,不同的编译器都有各自的实现,对标准的支持

程度也互不相同。所以,在不同的公司或团体中,尽管核心思想都是大同小异,但具体
到每一个步骤,往往都是不相同的。

  

   我个人认为软件工程很重要,但更重要的是要能够根据不同的项目在不同阶段选

择合适的开发模式,规避风险,适应客户灵活多变的需求变更。所以对需求调研和需求
分析提出了更高的要求。我看过了一些讨论软件工程的文章,几乎一致认为

“客户直接

参与的项目成功的可能性非常高

”,传统的软件工程中提出的不论是“瀑布”还是“螺旋”