结构化方法和面向对象方法之比较

结构化方法与面向对象方法之比较

1.    什么是结构化方法

1.1结构化方法的基本要点

从目前大多数信息系统的开发现状来看,结构化方法是运用最为普遍,同时也是最为成熟的一种开发方式。其基本要点是以系统的逻辑功能设计和数据流关系为基础,根据数据流程图和数据字典,通过“自上而下”和“自下而上”的反复,逐层把系统划分为多个大小适当、功能明确、具有一定独立性并容易实现的模块,从而把复杂系统的设计转变为多个简单模块的设计。

1.2结构化方法的建模技术

1.2.1、软件结构图(SC图)

SC图是描述软件结构的一种图形工具,图中方框代表模块,框内是模块名字;方框之间的线段表示模块的调用关系。

1.2.2、软件系统的2种典型结构

(1) 变换型结构(变换型DFD)

变换型结构的特点是在系统的数据流图中,呈现出明确的输入、变换处理和输出3个部分的结构特征。绝大多数的软件系统均表现出变换型结构的特征。

(2) 事务型结构(事务型DFD)

在数据流图中呈发散状的结构特征称为事务型处理结构,这个加工称为事务处理中心,每一条处理路径称为事务处理。这类结构的系统完成下述任务:

①接收输入数据;

②分析每个事务信息以确定它的类型;

③ 根据事务类型选取一条活动路径实现事务的处理。

1.3结构化方法的步骤

①分析当前的情况,做出反映当前物理模型的DFD;

②推导出等价的逻辑模型的DFD;

③设计新的逻辑系统,生成数据字典和基元描述;

④建立人机接口,提出可供选择的目标系统物理模型的DFD;

⑤确定各种方案的成本和风险等级,据此对各种方案进行分析;

⑥选择一种方案;

⑦建立完整的需求规约。

2.什么是面向对象方法

2.1面向对象方法的基本要点

一:认为客观世界是由各种"对象"所组成的。任何事物都是对象,每一个对象都有自已的运动规律和内部状态,每一个对象都属于某个对象类,都是该对象类的一个元素。复杂的对象可以是由相对比较简单的各种对象以某种方式而构成的。不同对象的组合及相互作用就构成了我们要研究、分析和构造的客观系统。

二:通过类比,发现对象间的相似性,即对象间的共同属性,这就是构成对象类的依据。在构成对象类的层次关系时,若不加特殊说明,则处在下一层次的对象可自然地继承位于上一层次上的对象的属性。

三:认为对已分成类的各个对象,可以通过定义一组"方法"来说明该对象的功能,即允许作用于该对象上的各种操作。对象间的相互联系是通过传递"消息"来完成的,消息就是通知对象去完成一个允许作用于该对象的操作,至于该对象将如何完成这个操作的细节,则是封装在相应的对象类的定义中的,细节对于外界是隐蔽的。

2.2面向对象方法的建模技术

用UML建模

1.描述总体需求。建立用例模型和静态模型,以搭建系统体系结构。用例图是系统的高级视图,要求按照面向对象的原则, 站在功能划分的角度将系统要实现的行为划分为用例;以用例之间的动态交互及交互时间为依据产生顺序图;

2.在用例图的基础上抽象出系统的类,明确各模块之间的关系以适当的粒度画出类图,其中也包括了与用例图的相互迭代修改在分析完模块的静态交互关系后继而要绘制出构件图。

3.对模块交互和构件细节做进一步分析,补充状态图、活动图、协作图和实施图等,从尽可能多的角度对复杂系统进行描述。在模型确定后就可以借助相应的支撑软件将模型导出为相关代码,形成编码所需的初步框架。

2.3面向对象方法的步骤

首先要进行面向对象的分析,了解问题域所涉及的对象、对象间的关系和作用;然后构造问题的对象模型,力争该模型能真实地反映出所要解决的实质问题。

其次进行面向对象的设计,设计软件的对象模型。在对问题的对象模型的分析基础上,对它进行一定的改造,应以最少改变原问题域的对象模型为原则。然后在软件系统内设设计各个对象、对象间的关系、对象间的通信方式等。

最后是面向对象的实现,即指软件功能的编码实现。包括每个对象的内部功能的实现;确立对象哪一些处理能力应在哪些类中进行描述;确定并实现系统的界面、输出的形式及其它控制机理等。

3.两种开发方法之比较

3.1基本思想的比较

结构化方法的基本思想主要体现在三个方面。一、自顶向下,逐步求精。把程序看成是一个逐步演化的过程。把一个系统与程序看成是一层一层的。系统可以划分为几个子系统,而每个子系统又划分为不同部分。二、模块化将几个系统分成几个模块,每个模块实现特定的功能,最终整个系统由这些模块组成,模块跟模块之间通过接口传递信息。模块最重要的特点就是独立性,模块之间还有上下层的关系,上层模块调用下层模块来实现一些功能。三、语句采用顺序结构、分支结构、循环结构等常用的语句结构。

面向对象方法的基本思想主要体现在五个方面。一、客观世界中的事物都是对象,对象之间存在一定的关系,并且复杂对象由简单对象构成。二、具有相同属性和操作的对象属于一个类,对象是类的一个实例。三、类之间可以有层次结构,类可以有子类,其中,子类继承父类的全部属性和操作,而且子类有自己的属性和操作。四、类具有封装性,把类内部的属性和一些操作隐藏起来,只有公共的操作对外是可见的,对象只可通过消息来请求其他对象的操作或自己的操作。五、强调充分运用人在日常逻辑思维中经常采用的思想方法与原则。

3.2基本原则的比较

结构化方法遵循基本原则有三个。一、抽象原则。这是一切系统科学方法都必须遵循的基本原则。它注重把握系统的本质内容,而忽略与系统当前目标无关的内容,它是一种基本的认知过程和思维方式。二、分解原则。这是结构化方法中最基本的原则。它是一种先总体后局部的思想原则,在构造信息系统模型时,它采用自顶向下、分层解决的方法。三、模块化原则。这是结构化方法最基本的分解原则的具体应用,它主要出现在结构化设计阶段中,将系统分解成具有特定功能的若干模块,从而完成系统指定的各项功能。

面向对象方法遵循基本原则有四个。一、抽象。这是处理现实世界复杂性的最基本方式。在OO方法中它强调一个对象和其他对象相区别的本质特性。二、封装。这是对抽象元素的划分过程抽象,由结构和行为组成,封装用来分离抽象的原始接口和它的执行。它将一个对象的外部特征和内部的执行细节分割开来,并将后者对其他对象隐藏起来。三、模块化。这是已经被分为一系列聚集的和耦合的模块的系统特性,对于一个给定的问题,确定正确的模块集几乎与确定正确的抽象集一样困难,通常每个模块应该足够简单以便能够被完整地理解。四、层次。抽象集通常形成一个层次,层次是对抽象的归类和排序。在复杂的现实世界中有两种非常重要的层次,一个是类型层次,另一个是结构性层次。确定抽象的层次是基于对象的继承,它有助于在对象的继承中发现抽象间的关系,搞清问题的所在,理解问题的本质。

posted @ 2016-12-23 17:23  1143  阅读(377)  评论(0编辑  收藏  举报