1 引言
20世纪60年代中期,大容量、高速度计算机的出现,使得计算机的应用范围迅速扩大,软件开发急剧增长。高级语言开始出现;操作系统的发展引起了计算机应用方式的变化;大量数据处理导致第一代数据库管理系统的诞生。软件系统的规模越来越大,复杂成都越来越高,软件可靠性问题也越来越突出。原来的个人设计、个人使用的方式不再能满足现实需求,迫切需要改变软件生产方式,提高软件生产率,“软件危机”开始爆发。
为了提高软件质量和软件开发的效率,人们提出了各种各样的软件开发方法,结构化方法和面向对象方法应运而生。结构化方法最为成熟,影响最大。直到现在,仍有60%~70%的系统是用结构化方法开发的。面向对象方法近十年来发展迅速,大有取代结构化方法的趋势。本文将就二者在软件开发中的优势、特点、差异进行对比与分析。
2 结构化方法
结构化方法出现于20世纪70年代,是一种早期的传统的软件开发方法。它基于功能分解设计系统结构,通过不断把复杂的处理逐层分解来简化问题,它从内部功能上模拟客观世界。用结构化开发的软件运行效率较高,且能够增加软件系统的可靠性。
结构化方法由结构化分析(sa)、结构化设计(sd)、结构化程序设计(sp)三部分组成。它的基本思想是自顶向下、逐步求精,把一个复杂的系统分解成容易求解的各个模块,进而把复杂的问题简单化、模块化,利于工程化地实现与解决。
2.1 结构化分析(sa)
结构化分析是面向数据流进行需求分析的方法,在该阶段力求寻找功能及功能之间的说明。它主要采用的工具是数据流图dfd(data flow diagram),利用dfd描述边界和数据处理过程的关系。
进行结构化分析的主要工具还有数据词典、结构化英语、判定表、判定树、实体关系图等,其中数据流图和实体关系图应用最为广泛。
通常有如下步骤:
(a) 分析当前的情况,做出当前物理模型的dfd;
(b) 推导出等价的逻辑模型的dfd;
(c) 设计新的逻辑系统,生成数据字典和基元描述;
(d) 建立人机接口,确定目标系统物理模型的dfd。