结构化开发方法和面向对象开发方法的比较

1、 两者基本思想的比较  

 

1.1结构化方法的基本思想 

 

结构化方法是一种传统的软件开发方法,它是由结构化分析、结构化设计和结构化程序设计三部分有机组合而成的。结构化设计方法是以自顶向下,逐步求精,模块化为基点,以模块化,抽象,逐层分解求精,信息隐蔽化局部化和保持模块独立为准则的设计软件的数据架构和模块架构的方法学。它的要点是是把一个复杂问题的求解过程分阶段进行,而且这种分解是自顶向下,逐层分解,使得每个阶段处理的问题都控制在人们容易理解和处理的范围内。

 

结构化方法的基本思想主要体现在三个方面。

(1)自顶向下,逐步求精:把程序看成是一个逐步演化的过程。把一个系统与程序看成是一层一层的。例如:户籍管理系统可以划分为:户籍迁入迁出,人员迁入迁出,户籍注销,人员注销等几个子系统,而每个子系统又划分为接收用户信息,实施处理,提供返回信息等等部分。

 

(2)模块化:即将几个系统分成几个模块,每个模块实现特定的功能,最终整个系统由这些模块组成。模块跟模块之间通过接口传递信息,模块最重要的特点就是独立性,模块之间还有上下层的关系,上层模块调用下层模块来实现一些功能。

 

(3)语句结构化:顺序结构、分支结构、循环结构,都是常用的语句结构。

 

结构化分析方法的实质是着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。

结构化分析的步骤如下:

(1)通过对用户的调查,以软件的需求为线索,获得当前系统的具体模型

(2)去掉具体模型中非本质因素,抽象出当前系统的逻辑模型

(3)根据计算机的特点分析当前系统与目标系统的差别,建立目标系统的逻辑模型

(4)完善目标系统并补充细节,写出目标系统的软件需求规格说明

(5)评审直到确认完全符合用户对软件的需求

 

结构化设计方法给出一组帮助设计人员在模块层次上区分设计质量的原理与技术。它通常与结构化分析方法衔接起来使用,以数据流图为基础得到软件的模块结构。SD方法尤其适用于变换型结构和事务型结构的目标系统。在设计过程中,它从整个程序的结构出发,利用模块结构图表述程序模块之间的关系。结构化设计的步骤如下:

①评审和细化数据流图;

②确定数据流图的类型;

③把数据流图映射到软件模块结构,设计出模块结构的上层;

④基于数据流图逐步分解高层模块,设计中下层模块;

⑤对模块结构进行优化,得到更为合理的软件结构;

⑥描述模块接口。

 

1.2面向对象方法的基本思想 

 

面向对象技术:面向对象技术包括面向对象分析、面向对象设计及面向对象程序设计三部分内容。

OOP是在结构化程序设计的基础上,于80年代初涌现的一种程序设计方法,但其真正显示力量和被产业界所重视还是最近几年的事。封装是整个OOP方法的基础,主要用于在数据段外围构造保护层,以限制外界变化的影响,所有的数据访问都由保护层内的过程间接处理。应用程序员不必再按照将程序设计语言逐句拼装的方式来构造整个软件,只需组合、重用由系统程序员开发、可供他人用来装配的软件集成块即可。例如,VB是一种面向对象的程序设计语言,与传统DOS下的Basic最大的差别在于它运用了面向对象的概念。VB建立了一个事件驱动的环境,供用户直接调用。程序设计人员只要专心数据的运算处理,其余诸如Windows应用程序下所见的滚动条、按钮、下拉式菜单和对话框等,都已经有对象供用户进行调用,而且每个对象又都有许多事件、属性和方法,供用户填入适当值或程序码,从而形成一个应用程序。

 

 

2、主要特点的比较 

 

2、1结构化分析方法的特点 

(1)面向用户,用户自始至终参与系统的分析工作; 

(2)强调调查工作的重要性; 

(3)对管理业务中的各种数据进行分解; 

(4)采用了层次分解的系统思想; 

(5)用图形工具来分析和构建新方案。  

2、2面向对象分析方法的特点 

(1)强调系统开发的整体性和全局性 

(2)侧重于数据转换的过程而不是数据本身 

(3)系统的开发周期长 

(4)封装性  

(5)继承性 

(6)多态性 

(7)易维护性

 

3.如何选择适合的开发方法

 

(1)结构化方法最为成熟,对于预先制定需求的系统开发,非常有效。对于需求模糊或者随时间变化的系统开发,不太适应。

从提高程序的重用性和可维护性的角度看,面向对象方法有较好的应用前景.

形式化方法对于安全性要求很高的系统,比较适用。

但面向对象程序设计方法的基础仍然是结构化程序设计

 

(2)因为成本问题和技术变更,所以形式化方法在实际应用中受到限制。

 

(3)SOFL方法集成了结构化方法,面向对象方法,和形式化方法于一体,

在需求分析和规格说明阶段采用结构化方法,在设计和实现阶段采用面向对象方法。

posted @ 2016-12-24 22:47  水墨·天地  阅读(6861)  评论(0编辑  收藏  举报