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

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

我们都知道,结构化方法和面向对象方法是当前程序设计中主流的两大设计方法,编写程序的时候,我们根据所编写的程序来选择适当的方法进行开发,来获得最大的效率。本文就结构化方法和面向对象方法的特点和过程,分析比较了该两种方法的优劣。

一、结构化方法

结构化方法按生命周期划分由结构化分析(SA)、结构化设计(AD)、结构化程序设计(SP)三部分组成。系统按功能需求分解成若干个子功能模块,子模块再继续进行分解,如此循环直至模块功能变得非常具体,由综合变得单一。这种分解自顶向下,逐层分解,使得每个阶段处理的过程都是用户能够理解和处理的。

  1.    结构化分析(Structured Analysis)

结构化分析从80年代起开始广泛使用,这种分析方法将抽象的系统概念转化为用数据及控制表示,即转换为数据流图(DFD),用DFD来描述边界和数据处理 过程的关系。

结构化分析步骤如下:

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

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

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

④建立人机接口,确定目标系统物理模型的DFD。

1.1  DFD

  数据流图是描述系统数据流程的工具,它将数据独立抽象出来,通过图形方式描述信息的流程。

  数据流图有4个主要元素:数据流、数据源、对数据的加工和数据存储。在封层DFD中,除顶层数据流图外,中层和底层数据流图都从0开始编号。分层DFD的结构如下图所示:

1.2  DD

  数据字典是一种用户可以访问的记录数据库和应用程序元数据的目录。是分析阶段的重要工具,提供对人们不了解的数据的解释。在结构化分析中,数据字典给数据流图上的每个成分加以定义和说明。一个实体一般包括以下内容:

  名字、别名、用途、内容描述、备注信息。

  2.    结构化设计 (Structured Design)

    在结构化设计中,根据结构化分析得到的数据流图,对程序结构、数据结构、过程细节和接口细节进行细化,得到程序结构的设计描述,这个设计描述以系统结构图(SC)的形式呈现。设计过程中,利用模块结构图表述模块之间的关系。对于生成模块结构图,原则是模块内部联系越紧密越好,而模块之间则是越分离越好。

    主要步骤入下:

    ①评审和细化数据流图。

    ②确定数据流图的类型。

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

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

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

    ⑥描述模块接口。

二、面向对象方法

面向对象方法的基本思想是:将对象作为一个基本单位,对象可以定义其属性和操作。可以说,面向对象方法是从人类思维角度考虑问题的,使得软件开发过程变得更加具体,更加容易理解。面向对象方法有三大特征:封装性、继承性和多态性。

在面向对象中,每一个类都相当于一个模板,用这个模板制作出来的实物就是一个一个的对象,当然在制作过程中进行适当的修改也是可以的,当然最后实物的拥有的基本属性和用途都是基本类似的。这样的开发更加利于理解,比如我们可以将一个实物的属性和功能抽象出来,生成一个类的属性和方法,对外部暴露接口,当外部实例化一个对象并调用接口时,就可以说一个什么东西实现了什么功能,符合普通人的思维方式。

  1. 面向对象分析(OOA)

  使用用例图,从用户角度描述系统功能和各系统功能的操作者,再根据需求建立系统的静态模型来构造系统的结构。最后根据系统执行时的时序状态或交互关系描述系统的行为,从而构造系统的动态模型。其具体过程如下:

  ①确定问题域

  ②区分类和对象

  ③区分整体对象以及组成部分确定类的关系以及结构

  ④定义属性和服务

  ⑤确定附加的系统约束

  1.1用例图(Usecase图)

  用例图是由参与者和用例以及它们之间的关系建立起来的描述系统功能的视图,主要用于对系统、子系统或类的功能行为进行建模。

  1.2时序图

  时序图描述一个动态过程,通过描述对象之间发消息的时间顺序显示多个对象之间的动态协作。时序图中的每一条消息对应一个类操作或引起状态变化的出发事件。

  1.3类图

  类图显示了类、接口以及它们之间的静态结构和关系;它用于描述系统的结构化设计。其最基本的元素是类或接口。

  2. 面向对象设计(OOD)

  面向对象设计的最终目标是建立起系统内部各个模块之间的联系,这种联系通常通过接口实现。各个模块通过接口建立起来依赖,可以大大提高模块的重用性,如果要用到某模块的功能,实现接口即可。具体过程如下:

  ①改进和完善系统分析的结构

  ②设计交互过程和用户接口

  ③设计任务管理以及子系统和任务之间的协调方式

  ④设计全局资源,确定任务或子系统的资源分配

  ⑤对象设计

三. 两种方法的比较

  由于结构化设计是面向过程的,因此在设计过程中整体思路会比较清晰,目标明确。在设计过程中,系统功能被分解成很多的子模块,阶段性很强,因此更加便于开发和维护,提高软件的质量。反观面向对象方法,在开发的系统比较复杂的情况下,各类之间的交互多了之后可能会比较难以分析。在模块重用性方面,结构化设计面向过程,因此基本谈不上重用,当需求改变或有新的需求后,往往需要修改很多相关代码,从而可能引起结构的改变,而面向对象方法,得益于三大特点,面对新的需求仅仅需要修改相关类即可,系统的结构不会有大的改变。在协作开发时,结构化开发往往不利于开发人员之间的交流,因为每一部分之间的逻辑性非常强,但比较抽象,而类是非常具体的,所以开发人员之间的交流也能更加流畅。

  

时间: 2024-12-23 03:55:46

结构化方法和面向对象方法之比较的相关文章

结构化方法和面向对象方法在软件开发中的对比

学习过C语言和JAVA的同学们一定清楚,这两种语言代表了两种不同的开发方式,即以C语言为代表的结构化开发方法和JAVA代表的面向对象的开发方法.由于二者在程序结构上有着很大的区别,因此,在软件开发领域中,根据自己的需求来选择合理的开发方式就显得尤为重要. 开发软件通常有三个层次: 1.满足用户需求 2.可维护性,即可修改性,让软件能随着用户需求的变更而容易改变 3.可重用性(在其它软件中,能尽量重用该软件的模块) 通过对软件的这三个主要层次的分析,我们就能在实际开发中确定我们的选择. 结构化方法

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

结构化方法和面向对象方法的比较 结构化方法 1概述        结构化方法(SD方法)是一种传统的软件开发方法,它是由结构化分析.结构化设计和结构化程序设计三部分有机组合而成的.它的基本思想:把一个复杂问题的求解过程分阶段进行,而且这种分解是自顶向下,逐层分解,使得每个阶段处理的问题都控制在人们容易理解和处理的范围内. 2基本思想 结构化方法的基本要点是:自顶向下.逐步求精.模块化设计.结构化编码. 结构化分析方法是以自顶向下,逐步求精为基点,以一系列经过实践的考验被认为是正确的原理和技术为支

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

在软件开发的过程中,采用的开发方法主要有两种,分别为结构化开发方法和面向对象的开发方法,本文将对两种开发方法进行介绍和比较. 一.      结构化方法介绍 结构化方法,即面向过程开发是最早最传统的软件开发方法,由结构化分析,结构化设计和结构化程序设计三个部分有机的组合而成,它将软件分为多个过程进行开发,是迄今为止信息系统中应用最普遍,最成熟的一种软件开发方法. 1.1结构化分析 结构化分析(SA)是一种面向功能或面向数据流的需求分析方法,它是结构化方法中的一部分,是由1960到70年代的系统分

结构化方法和面向对象方法

结构化方法与面向对象方法之比较 姓名  周子硕   学号  14061031 软件开发的过程中,结构化方法和面向对象方法先后被提出,为解决不同的软件开发问题带来了不同的思路.下面是对于结构化方法和面向对象方法的认识和比较. 结构化方法的基本要点是对现实世界的营运问题进行分解,面向过程设计问题空间的解域,强调自顶向下.逐步求精.模块化设计.结构化方法将待解决的问题看做一个系统,从而用系统科学的思想方法来分析和解决问题.结构化方法循序以下基本原则: 抽象原则: 抽象原则是一切系统科学方法都必须遵循的

结构化方法与面向对象方法

结构化方法 结构化方法是一种传统的软件开发方法,这种方法强调的是自顶向下.逐步求精.模块化设计.结构化编码的思想与要点.结构化软件开发方法可以说是最早的软件开发方法,同时也是到现今开发应用中比较普遍.比较成熟的软件开发方法,由结构化方法所引入的工程与结构化的思想对于软件的设计.开发与编写都有很大的影响. 结构化方法中自顶向下的思想将程序的设计分层,将程序的功能分解,程序变成了一种逐步向下,从概况到详细的过程.而结构化方法中的模块化设计将程序所需要的各种功能分解,将一个系统划分为若干个模块,每一个

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

结构化方法与面向对象方法的比较 引言 结构化方法(SD方法)是一种传统的软件开发方法,它是由结构化分析.结构化设计和结构化程序设计三部分有机组合而成的.它的基本思想:把一个复杂问题的求解过程分阶段进行,而且这种分解是自顶向下,逐层分解,使得每个阶段处理的问题都控制在人们容易理解和处理的范围内. 面向对象方法(Object-Oriented Method)是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称OO (Object-Oriented)方法,是建立在"对象"

结构化方法与面向对象方法的介绍与对比

结构化和面向对象,这两个概念在计算机领域的中应用十分广泛.在软件工程中,结构化和面向对象的思想也占有重要地位,产生了结构化方法和面向对象方法,用来指导软件生产. 一.结构化方法 结构是指系统内各个组成要素之间的相互联系.相互作用的框架.结构化方法强调开发方法的结构合理性以及所开发软件的结构合理性.针对软件生存周期各个不同阶段,可以分为结构化分析(SA).结构化设计(SD).结构化程序设计(SP)等方法. 1.1结构化分析方法 结构化分析方法是面向数据流的分析方法,是70年代由Yourdon.Co

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

软件的开发对于整个软件产业的发展,起着至关重要的作用,在开发过程中,需要有各种开发工具.开发方法和开发过程的支持.不管是开发工具.开发方法还是开发过程,都一直在不断的发展和更新.在软件开发方法发展的过程中,产生了许多众所周知的开发方法,如结构化方法,原型法,面向数据结构的Jackson方法.面向对象方法等.其中,结构化方法和面向对象方法是两种应用十分广泛的软件开发方法,未来的软件开发过程中,可能还会出现一些更好的软件开发方法,如现在的面向服务的软件开发方法,但就目前来说,结构化方法和面向对象方法

结构化方法VS面向对象方法

结构化方法和面向对象方法都是现在软件工程领域应用比较广泛的软件开发方法,要探讨两者的区别,必须先把两者的概念搞清. 首先对比一下两者的基本原则: 一.基本原则 1.结构化方法遵循的基本原则 结构化方法的基本思想就是将待解决的问题看作一个系统从而用系统科学的思想方法来分析和解决问题结构化方法遵循以下基本原则(1)抽象原则 抽象原则是一切系统科学方法都必须遵循的基本原则它注重把握系统的本质内容而忽略与系统当前目标无关的内容它是一种基本的认知过程和思维方式(2)分解原则 分解原则是结构化方法中最基本的