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

  1. 结构化方法

结构化方法是一种传统的软件开发方法,这种方法强调的是自顶向下、逐步求精、模块化设计、结构化编码的思想与要点。结构化软件开发方法可以说是最早的软件开发方法,同时也是到现今开发应用中比较普遍、比较成熟的软件开发方法,由结构化方法所引入的工程与结构化的思想对于软件的设计、开发与编写都有很大的影响。

结构化方法中自顶向下的思想将程序的设计分层,将程序的功能分解,程序变成了一种逐步向下,从概况到详细的过程。而结构化方法中的模块化设计将程序所需要的各种功能分解,将一个系统划分为若干个模块,每一个模块实现自己特定的功能,模块彼此之间相互独立,通过自顶向下的层次关系来进行上下层里的调用操作。

下图即为结构化方法分层、分模块的示例图。

 

结构化方法按软件生命周期划分,有结构化分析(SA),结构化设计(SD),结构化实现(SP)。

结构化分析的步骤如下:

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

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

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

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

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

⑥选择一种方案;

⑦建立完整的需求规约。

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

①评审和细化数据流图;

②确定数据流图的类型;

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

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

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

⑥描述模块接口。

其中上述步骤中所述的DFD即指的是数据流图,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,上图就是一个图书馆管理系统的数据流图模型。

总而言之,结构化方法的基本原则就是分解原则和模块化原则,分解原则是结构化方法中最基本的原则,它是一种先总体后局部的思想原则,在构造信息系统模型时,它采用自顶向下、分层解决的方法,使得程序的思路由概括到具体,逐渐地变得明朗清晰。模块化原则将程序分为多个模块,并且使每个模块尽量只执行一个功能,每个模块之间用过程语句或函数方式等调用其他的模块。

2.面向对象方法

对比与结构化的方法,面向对象的方法则不是将程序按照功能的不同分解开来,而是按照不同的对象来进行分解。

在面向对象的思想里,客观世界中的事物都是对象,对象之间存在一定的关系,并且复杂对象由简单对象构成,而具有相同属性和操作的对象属于一个类,对象是类的一个实例。另外,类与类之间可以有层次结构,即类可以有子类,其中,子类继承父类的全部属性和操作,而且子类有自己的属性和操作。就比如说,动物是一个大类,鸟是动物的一种,把鸟分成一个类的话,那么鸟类就是动物类的子类,而在鸟类中有麻雀,有鹦鹉,这些都是鸟类这个笼统的类的一些实例,他们就是鸟类这个类中的对象。其实从上面的这些示例中就可以看出,在面向对象的思想中,强调充分运用人在日常逻辑思维中经常采用的思想方法与原则,因此,面向对象方法与人的日常思维方法十分的相似,这使得用户与编程者、测试人员都能很容易地理解整个程序的架构和运作方式。

面向对象的方法分为面向对象的分析方法(OOA)和面向对象设计(OOD)。

在用OOA具体地分析一个事物时,大致上遵循如下五个基本步骤:

①确定问题域;

②区分类和对象;

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

④定义属性和服务;

⑤确定附加的系统服务。

面向对象分析方法是立足于应用,用于刻画问题,以此得出程序的总体设计结构。

OOD的方法用于细化分析结果并补充实现相关,其大致上遵循如下五个基本步骤:

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

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

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

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

⑤对象设计。

面向对象的原则中还存在封装性和多态性。封装是对抽象元素的划分过程抽象,由结构和行为组成,封装用来分离抽象的原始接口和它的执行。封装使数据和加工该数据的方法封装为一个整体,以实现独立性很强的模块,使得用户只能见到对象的外特性,而对象的内特性对用户是隐蔽的。封装的目的在于把对象的设计者和对象者的使用分开,使用者不必知晓行为实现的细节,只须用设计者提供的消息来访问该对象。而多态性则指的是对象根据所接收的消息而做出动作。同一消息为不同的对象接受时可产生完全不同的行动,这种现象称为多态性。

3.优缺点比较

结构化的方法由于其自顶向下的特性,决定了这种程序是由表及里、由大到小、由概括到具体的程序。这样一来,处理问题的过程变得由易到难,逐层解决问题,编程的思路更加清晰,从而降低了处理问题的难度。但是,在使用结构化的方法解决问题的时候,在得到问题本质性的描述之前,不断分解出的结论和需要处理的信息越来越多、越来越复杂。因为这种逐层解决的思想,它需要对问题有比较透彻的理解,要求设计者有大局观,能够透过问题的表象抓住问题的本质。因此,当软件项目较小、系统设计者能力足够高的时候,结构化方法能快速的找到最简洁、高效率的逻辑模型。但是对于复杂的问题,结构化方法的帮助有限,但它有助于使用面向分析方法的系统分析员确认系统最初的高阶模型。

面向对象方法与人类习惯的思维方法一致,使得使用者和维护人员都容易理解,在软件维护中可维护性也较高,并且易于测试和调试,面向对象方法直接由问题入手,来进行系统的建模。面向对象软件的稳定性好,对软件的局部进行修改时,不会引起整体的变化,而且对局部修改容易实现;另外,面向对象软件的可重用性好,并且由于它是把大的问题分解成相互独立的小问题处理,降低了开发的技术难度。但是由于面向对象方法总是试图抽象出更公用的类,因此对系统分析员抽象事物和把握最初分析方向的要求很高,常常难以控制抽象 的对象,其掌握难度高于结构化分析方法。对于需求变化频繁的系统,得到一个高度可复用的面向对象软件系统设计是很困难的事情。

结构化方法与面向对象方法并不是对立的,不论哪一种设计方法,都有自己的优势,当然也会有自己的劣势,对于每个问题,需要设计者透彻理解,才能正确地找到适合当前问题的方法。

时间: 2024-10-13 19:46:58

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

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

学习过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方法.面向对象方法等.其中,结构化方法和面向对象方法是两种应用十分广泛的软件开发方法,未来的软件开发过程中,可能还会出现一些更好的软件开发方法,如现在的面向服务的软件开发方法,但就目前来说,结构化方法和面向对象方法

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

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