background image

来修改原先的模块设计,甚至最初选定的实现算法。除非你是先知,否则,对于一个具
有一定规模和复杂度的软件来说,在

“设计—编码”这个过程中,实在有太多的不可预

知性和变化性,你根本不可能全盘地把握住每一个细节。那么,对其每一个步骤的组织,
即周期模型,就必须包容它的这种性质。现在来看一下瀑布模型。瀑布模型是一种线性
模型,其最大的特点就是简单直观。它将软件开发过程规划为

“分析—设计—编码—测

—维护”的线性过程,也就是说,你必须首先把你的软件要干的每一件工作都分析得

彻彻底底,再对每一个模块,每一个接口,事无巨细,都设计得非常完美,然后才开
始编码的工作,并且在编码的时候就像在对着图纸砌模型,根本不用再回头作任何修
改,当然,是在把所有的代码都写完以后才开始测试的。

  

软件开发过程的实现具体到每一步的工作要怎样完成,我前面已提到过,是非常

灵活的,只要把握住大体的方向就行。在进行分析,设计,编码,调试,维护这几部分
的工作的时候,最核心的就是文档的编写。文档的作用在于以下

3 个方面:一是可以帮

助整理思路。把要完成的目标,系统的结构,每一个模块的功能等整理一下,然后分门
别类地写下来,这样在开发的过程中,就有据可依,在需要回过头来修改设计的时候,
也有证可考。二是便于交流。在脑子里的东西一多,就会散而且乱,用语言表达的时候,
很容易会丢三落四,别人也很难把握住你的思想。但经过整理写在纸上以后,则会清晰
得多,无论是别人还是自己,看起来都可以一目了然。三是可以作为以后维护时的参考
资料。有一句名言:

“笔和纸永远都比大脑可靠”,意思就是说,放在大脑里的东西说不

准哪天就忘了,但写在纸上的东西,只要不发生什么意外,一般是丢不了的。当过了一
段时间,你需要再回过头来修改你的程序的时候,你就会发现,你以前写下的文档实
在太有价值了。别指望你的源代码,对于复杂一点的程序来说,单纯的源代码几乎会扼
杀掉你所有的时间。可行性分析就是关于当前项目能不能干的分析结果。主要考虑的方
面包括:是否能把这个项目开发出来;假如可以的话,预计需要多少时间,能否满足
客人的时间要求;需要多少人力和资金的投入;最重要的是,这个项目能否赚钱,能
赚多少。还要对可能存在的风险进行评估。项目描述这是在决定立项以后,对当前项目
的一份扼要说明。必须包括以下几个方面:(

1)项目的名称或编号;(2)对客户方的

描述;(

3)对开发人员的描述;(4)工程任务的描述;(5)工程的输入和输出;

6)开发环境;(7)其他的附加条件。

通过对《实用软件工程》和一些资料的学习,受益匪浅,对软件开发有了一个系统

的了解,对一些概念有了一定了解,虽都这些是些理论,可能在实际工作中很少用到,
理论知识用于指导实践,亲身体验才能领悟软件工程的妙用。我感觉到学习这门课需花
费大量的时间思考,从而换取了宝贵的经验。学习软件工程的过程是枯燥的,但我认为
若把这些枯燥的理论学好,在将来的学习和工作中一定会有益。