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

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

 

在目前的软件开发领域,结构化方法和面向对象方法是两种比较流行的方法。在过去两年多时间里,我们也对这两种方法进行了学习和实践,下面谈一谈自己对这两种方法的理解。

 

结构化方法

 

结构化方法是一种比较传统的软件系统开发方法,主要思想是分析问题确定软件功能,之后将整体功能划分成不同的功能模块,然后将实现之后的模块拼接结合在一起,是一个先分再和的过程。功能分解可以使软件条理清晰,将复杂的问题拆分成相对简单的小问题也便于实现。

结构化方法注重算法和数据,程序过程可以看作是数据经过各个算法逻辑结构被一步步处理之后最终得到问题解的过程。所以在结构化方法中,数据流是核心。面对一个问题,首先应该分析清楚它的数据是怎样流动变换的,然后将这一过程拆分成一个个节点,每个节点对应不同的功能模块,这样便得到一个逻辑模型。数据流图是一个很好的表示这一过程的工具,可以帮助我们清晰地对数据流进行分析。

综上分析,结构化程序设计方法可以概括为以下几个步骤:

●结构化分析:

1.分析当前的情况,做出反映当前物理模型的数据流图;

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

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

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

●结构化设计:

1.评审和细化数据流图;

2.确定数据流图的类型;

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

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

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

6.描述模块接口。

这学期的编译程序设计就是一个很好的结构化方法的应用例子。首先将整个编译过程划分为词法分析、语法分析、语义分析、中间代码生成、目标代码生成几个阶段,在语法分析过程中,采用递归子程序法对语法的每一个非终结符都编一个分析程序,当根据文法和当时的输入符号预测到要用某个非终结符去匹配输入串时,就调用该非终结符的分析程序。可以看到各个子模块之间分工明确,通过顺序结构、选择结构或循环结构组成一个整体。我们可以简单分析一下数据的流动,输入源程序经过词法分析、语法分析和语义分析之后被翻译成了中间代码,中间代码再经过一遍翻译便得到了目标代码。简单的数据流图如下:

结构化方法是一种面向问题和问题解决过程的方法,这与我们解决问题时的思考方式一致,所以比较容易开发出程序。采取分块处理问题的方法,可以把一个比较复杂的问题分解为若干个容易处理解决的部分,从而可以降低问题处理的难度。结构化方法思路清晰,条理清楚,又有效地分解了繁复的问题,使得编写程序简明清晰。但是结构化方法也存在不足之处,很重要的一点是结构化方法开发的程序不容易维护,因为结构化方法是围绕实现处理功能的过程来构造系统的。然而,用户需求的变化大部分是针对功能的,因此, 对需求变化的适应能力比较弱,造成用结构化方法设计出的系统结构常常是不稳定的。结构化方法定义了目标系统的边界,且开出发的系统结构依赖于对系统边界的定义,因此,很难把系统扩展到新的边界,系统较难修改和扩充。

 

面向对象方法

 

面向对象方法是以面向对象思想为指导进行系统开发的方法。它以对象为中心,以类和继承为构造机制来抽象现实世界,并用抽象出来的模型构建相应的软件系统。总的来说,面向对象方法仍旧采用模块化思想,但是与结构化方法面向功能和过程不同的是,它主要着力于对现实世界的抽象并按类对问题进行划分。

面向对象方法的基本思想体现在以下方面:一、一切皆对象,客观世界中的事物都是对象,对象之间存在关系,简单对象构成复杂对象。二、属性和操作相同的对象属于一个类,对象是类的一个实例。三、类之间可以通过继承产生层次结构。四、类具有封装性,把类内部的属性和一些操作隐藏起来,只有公共的操作对外是可见的,对象只可通过消息来请求其他对象的操作或自己的操作。

可见,面向对象方法符合人们对现实世界的认知,面对一个问题,找出组成问题的各个对象,通过对象之间的交互解决问题。这就跟现实中人与人之间解决问题的情景类似。每个对象根据接收到的信息而做出相应的动作,通过传递信息让别的对象产生改变,最终促成问题的解决。采用面向对象方法时,对类的抽象、类的属性与方法的确定以及类之间的交互设计是十分重要的。

综上分析,面向对象方法可以概括为以下几个步骤:

●面向对象方法的分析过程:

1.确定问题域;

2.区分类和对象;

3.区分整体对象以及组成部分,确定类的关系以及结构;

4.定义属性和服务;

5.确定附加的系统约束;

●更加精细的设计过程:

1.改进和完善系统分析的结果;

2.设计交互过程和用户结构;

3.设计任务管理,以及子系统以及任务之间的协调方式;

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

5.对象设计。

采用面向对象方法分析问题时,UML是一个比较好的建模工具。UML全称统一建模语言或标准建模语言,它有三种基本的构造块:事物、关系和图。事物是对模型中最具有代表性的成分的抽象,包括结构事物,分组事物,注释事物。关系用来把事物结合在一起,包括依赖、关联、泛化和实现关系。而UML图有活动图、状态图、类图、序列图等分类,可以灵活选取。

面向对象方法最大的优点就是思想与人类习惯的思维方法一致,开发复杂的程序时,基于对象的分析相对于基于功能逻辑上更加清晰,使得使用者和维护人员都容易理解,在软件维护中可维护性也较高,并且易于测试和调试。在需求发生变化时,对软件的局部进行修改时,也不会引起太大的整体变化。

同时面向对象也存在缺点。首先,有些问题难以抽象出合理的类,可能会使问题更加复杂。此外,面向对象方法对开发者抽象事物和把握最初分析方向的要求很高,常常难以控制抽象对象的层次、粒度,甚至抽象出与问题本质面目全非的对象模型,相对于结构化分析方法更加难以掌握。

总结

 

结构化方法和面向对象方法各有优劣,需要根据实际的情况加以选择。在进行软件开发的时候,认真分析问题,确定采用哪种方法更加适合。两种方法也并不是相互孤立的,有时候也可将两者的思想结合起来。总之寻找最适合的。

时间: 2024-10-11 00:11:17

结构化方法与面向对象方法浅析的相关文章

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

学习过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

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

结构化方法和面向对象方法之比较 我们都知道,结构化方法和面向对象方法是当前程序设计中主流的两大设计方法,编写程序的时候,我们根据所编写的程序来选择适当的方法进行开发,来获得最大的效率.本文就结构化方法和面向对象方法的特点和过程,分析比较了该两种方法的优劣. 一.结构化方法 结构化方法按生命周期划分由结构化分析(SA).结构化设计(AD).结构化程序设计(SP)三部分组成.系统按功能需求分解成若干个子功能模块,子模块再继续进行分解,如此循环直至模块功能变得非常具体,由综合变得单一.这种分解自顶向下

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

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