软件开发的环节

不知哪天在网络上的论坛上看到这样一句话:写程序的,得看看《软件工程》,要不早晚会吃亏的。一般论坛上发表的言论我是不大在意的,因为太混杂了,自知资历太浅,无法分辩其真伪。但这句话到还挺真实的。期间帮公司写一些生产线上的小程序。深知那个不知道头绪写软件的痛苦,经过一帆痛苦,软件是写出来了。但心里还是没底,有种朦胧的感觉。上月偶在苏大的一个小销书点看到了高教版的《软件工程》,自然掏原来就瘪瘪的腰包将他带回家。

我在一家制造业的资讯部门,主要负责MES系统的开发。或许在有些专业软件公司的人看来,我们并算是开发,但我不这么认为。只不过我们没有按照软件公司那种模式来开发软件罢了。也有几个在专业软件公司的同学。他们也会抱怨开发没有按照规范,这样看来这是一个通病了。

软件开发可分为三个阶段:

  1. 计划阶段;
  2. 开发阶段;
  3. 运行阶段;

计划阶段是我常简化或者忽视的阶段,在计划阶段又可分为两个部分:a,问题定义;b,可行性分析;本身这两个部分是软件开发中很重要的环节,可是被忽视和简化的程度那是相当的严重。

  1. 问题的定义:为什么要做这个软件,这个软件要实现什么样的功能;在这个环节中仅回答这个软件要实现什么样的功能,具体怎么实现,能不能实现,这个并非这个环节讨论的问题。过早的投入细节中会导致问题的定义不明确,给后来的需求分析,以及系统设计带来很大的隐患。
  2. 可行性分析:能不能做,值不值得做会在这个环节里考虑。这个环节要综合考虑到软件的成本,技术成本,硬件的成本,以及带来的效益。得不偿失的事还是不做为好。

开发阶段被分为四个环节:c,需求分析;d,系统设计;e,编码;f,测试;这四个环节是被我们目前开发所采用的四个环节。很多软件开发人员正在注重的环节,包括我自己也是。

  1. 需求分析,这个环节的重要性不言而喻。它既联系到上面的计划阶段,也为后来的系统分析提供确切的依据。需求分析通常并不是一下子就可以完成的,需要经过循环震荡,才能最终完成。它本身也分为:分析建模,编写《软件需求说明书》(SRS,Software Requirement Specification),需求确认等环节;
  2. 系统设计,这部分根据需求设计所要实现的系统,包括采取什么样的架构,实现的功能的方式,方法。以及系统性能的考量。
  3. 编码,这个环节包括选用什么样的语言,具体怎么实现,包括面向对象中的类的定义,实现,方法的定义实现等等。在d和e这两个环节中我想到了在侯先生网站的看到的这句话:学从难外学,用从易处用。系统设计和编码也应该抱着这种态度吧。
  4. 测试,这部分我也不懂。光知道两个术语:黑盒测试,白盒测试;

运行阶段,软件真正使用的阶段。我们当然希望自己的软件可以运行阶段更长一点。就当前来看运行阶段包还应包括软件的二次开发。很多软件在运行之后都是需要二次开发,满足一些添加的需求。这部分本身较为复杂。

我真也希望自己可以按照软件工程的思想来开发软件。按照标准的开发模型来完成软件,但偏于需求太急或自己太懒,很多时候都是先写出来,才想到软件工程。

@ 2007-07-02 08:00

Comments:

Sharing your thoughts: