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

合集下载

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

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

结构化⽅法与⾯向对象⽅法的介绍与对⽐结构化⽅法与⾯向对象⽅法的介绍与对⽐结构化和⾯向对象,这两个概念在计算机领域的中应⽤⼗分⼴泛。

在软件⼯程中,结构化和⾯向对象的思想也占有重要地位,产⽣了结构化⽅法和⾯向对象⽅法,⽤来指导软件⽣产。

⼀、结构化⽅法结构是指系统内各个组成要素之间的相互联系、相互作⽤的框架。

结构化⽅法强调开发⽅法的结构合理性以及所开发软件的结构合理性。

针对软件⽣存周期各个不同阶段,可以分为结构化分析(SA)、结构化设计(SD)、结构化程序设计(SP)等⽅法。

1.1结构化分析⽅法结构化分析⽅法是⾯向数据流的分析⽅法,是70年代由Yourdon、Constaintine及DeMarco 等⼈提出和发展,并得到⼴泛的应⽤,其基本思想为分解和抽象。

结构化分析⽅法的设计原则有:(1)使每个模块尽量只执⾏⼀个功能(坚持功能性内聚);(2)每个模块⽤过程语句(或函数⽅式等)调⽤其他模块;(3)模块间传送的参数作数据⽤;(4)模块间共⽤的信息(如参数等)尽量少。

在结构化分析⽅法中,常⽤的⼯具有:数据流图数据流图(Data Flow Diagram,简称DFD)是描述系统中数据流程的图形⼯具,它标识了⼀个系统的逻辑输⼊和逻辑输出,以及把逻辑输⼊转换逻辑输出所需的加⼯处理。

通常,⼀个系统的DFD图会进⾏分层设计,使数据处理过程更加有层次,逻辑更加清晰。

DFD图的设计原则为:数据守恒与数据封闭原则、加⼯分解的原则、⼦图与⽗图的平衡、合理使⽤⽂件。

数据字典分层数据流图只是表达了系统的“分解”,为了完整地描述这个系统,还需借助“数据词典”(data dictionary)对图中的每个数据和加⼯给出解释。

对数据流图中包含的所有元素的定义的集合构成了数据词典。

它有四类条⽬:数据流、数据项、⽂件及基本加⼯。

在定义数据流或⽂件时,使⽤下表给出的符号,将这些条⽬按照⼀定的规则组织起来,构成数据词典。

在以上⼯具的辅助下,我们可以进⾏完整的结构化分析,⼀个典型的结构化分析过程为:①分析当前的情况,做出反映当前物理模型的DFD;②推导出等价的逻辑模型的DFD;③设计新的逻辑系统,⽣成数据字典和基元描述;④建⽴⼈机接⼝,提出可供选择的⽬标系统物理模型的DFD;⑤确定各种⽅案的成本和风险等级,据此对各种⽅案进⾏分析;⑥选择⼀种⽅案;⑦建⽴完整的需求规约。

软件工程 比较结构化方法和面向对象

软件工程 比较结构化方法和面向对象

软件工程比较结构化方法和面向对象一、引言软件工程是一门关注软件开发过程的学科,它涉及到软件开发的各个方面,包括需求分析、设计、编码、测试和维护等。

在软件工程领域中,有两种主要的开发方法:比较结构化方法和面向对象方法。

本文将对这两种方法进行详细的比较和分析。

二、比较结构化方法1.概念结构化方法是一种基于模块化设计思想的软件开发方法。

它将一个大型系统划分为多个小模块,每个模块都有明确的输入和输出,并且通过调用其他模块来实现其功能。

2.特点(1)强调程序流程控制;(2)采用自顶向下或自底向上的设计方式;(3)使用层次结构图表示程序流程;(4)采用数据流图表示数据流动情况;(5)模块之间通过参数传递来交换信息。

3.优缺点①易于理解和维护;②适合大型系统开发;③能够提高程序可读性。

(2)缺点:①不够灵活,难以应对需求变更;②不支持复杂的数据类型;③容易出现模块间的耦合。

三、面向对象方法1.概念面向对象方法是一种基于对象思想的软件开发方法。

它将一个系统看作是由多个对象组成,每个对象都有自己的属性和方法,并且通过消息传递来实现对象之间的交互。

2.特点(1)强调数据抽象和封装;(2)采用自下而上的设计方式;(3)使用类图表示程序结构;(4)采用序列图表示消息传递过程;(5)支持继承和多态等高级特性。

3.优缺点①能够提高代码重用性;②支持动态绑定,具有更好的灵活性;③能够提高系统可扩展性。

(2)缺点:①易于出现类爆炸问题;②需要掌握较为复杂的概念和技术。

四、比较分析1.设计思想不同结构化方法注重程序流程控制,通过模块化设计来实现程序结构清晰、易于维护。

而面向对象方法则注重数据抽象和封装,通过对象之间的交互来实现程序功能。

2.设计方式不同结构化方法采用自顶向下或自底向上的设计方式,通过层次结构图和数据流图来表示程序结构和数据流动情况。

而面向对象方法则采用自下而上的设计方式,通过类图和序列图来表示程序结构和消息传递过程。

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

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

结构化方法和面向对象方法的比较结构化方法是结构化分析,结构化设计和结构化编程的总称,是最早最传统的软件开发方法,也是迄今为止信息系统中应用最普遍、最成熟的一种,它引入了工程思想和结构化思想,使大型软件的开发和编程都得到了极大的改善。

面向对象方法它不仅仅是一些具体的软件开发技术与策略,而且是一整套关于如何看待软件系统与现实世界的关系,用什么观点来研究问题并进行问题求解,以及如何进行软件系统构造的软件方法学。

人们普遍认为面向对象方法是一种运用对象、类、继承、封装、聚合、关联、消息和多态性等概念和原则来构造系统的软件开发方法。

结构化方法和面向对象方法二者的比较如下。

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

一、自顶向下,逐步求精:把程序看成是一个逐步演化的过程。

把一个系统与程序看成是一层一层的。

例如:户籍管理系统可以划分为:户籍迁入迁出,人员迁入迁出,户籍注销,人员注销等几个子系统,而每个子系统又划分为接收用户信息,实施处理,提供返回信息等等部分。

二、模块化:即将几个系统分成几个模块,每个模块实现特定的功能,最终整个系统由这些模块组成。

模块跟模块之间通过接口传递信息,模块最重要的特点就是独立性,模块之间还有上下层的关系,上层模块调用下层模块来实现一些功能。

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

面向对象方法的基本思想主要有:一、客观世界中的事物都是对象,对象之间存在一定的关系,并且复杂对象由简单对象构成。

二、具有相同属性和操作的对象属于一个类,对象是类的一个实例。

三、类之间可以有层次结构,即类可以有子类,其中,子类继承父类的全部属性和操作,而且子类有自己的属性和操作。

四、类具有封装性,把类内部的属性和一些操作隐藏起来,只有公共的操作对外是可见的,对象只可通过消息来请求其他对象的操作或自己的操作。

五、强调充分运用人在日常逻辑思维中经常采用的思想方法与原则。

例如:抽象,分类,继承,聚合,封装,关联等。

结构化方法和面向对象方法的特点、优点与不足。

结构化方法和面向对象方法的特点、优点与不足。

结构化方法和面向对象方法的特点、优点与不足。

结构化方法和面向对象方法是两种重要的程序设计方法,它们分别有各自独特的特点、优点和不足。

在本篇文章中,我将对这两种方法进行全面评估,并据此撰写一篇有价值的文章,以便你能更深入地理解这个主题。

一、结构化方法1. 特点结构化方法是一种从任务分解的角度来思考问题的方法。

它强调程序的模块化和层次化设计,将整个系统划分成若干个较小的、相对独立的模块或功能单元,然后逐步细化这些模块,直至得到可直接转换成程序的模块为止。

2. 优点(1)易于理解和维护:结构化程序易于理解和维护,因为每个模块都相对独立,不会相互影响。

(2)适合大型项目:结构化方法适合大型项目的开发,因为它能够将复杂的系统分解成若干相对简单的模块,便于团队协作。

(3)代码重用:结构化方法能够促进代码的重用,提高开发效率。

3. 不足(1)难以处理复杂关联:结构化方法在处理复杂关联和交互较多的系统时,容易使得程序的结构变得复杂,不易理解和维护。

(2)不够灵活:结构化方法在应对需求变化时,不够灵活,需要重新调整模块之间的关系。

二、面向对象方法1. 特点面向对象方法是一种从对象抽象的角度来思考问题的方法。

它将系统中的各种实体抽象为对象,这些对象包含了数据和操作这些数据的方法,同时也能够与其他对象进行交互。

2. 优点(1)便于理解:面向对象方法更符合人类的思维模式,因此更容易理解。

(2)灵活性:面向对象方法更灵活,能够更好地应对需求变化。

(3)代码重用:面向对象方法通过继承和多态,能够更好地促进代码的重用。

3. 不足(1)学习曲线较陡:面向对象方法对程序员的抽象能力要求较高,因此刚开始学习时往往感到困难。

(2)性能开销:在一些性能要求较高的场景下,面向对象方法可能带来一些性能开销。

结合以上对结构化方法和面向对象方法的评估,我认为两种方法各有优劣。

在实际项目中,我们应根据项目的特点和需求来选择合适的方法,甚至可以结合两种方法的优点,定制出适合项目的开发方法。

软件工程 比较结构化方法和面向对象

软件工程 比较结构化方法和面向对象

软件工程一、引言在当今信息技术高速发展的时代,软件的开发和维护变得越来越重要。

为了有效管理软件项目,提高开发效率和质量,软件工程的概念应运而生。

软件工程是一门研究如何按照系统化、规范化、定量化和可重复性的方式开发和维护软件的学科。

在软件工程中,结构化方法和面向对象是两种常用的开发方法。

本文将对结构化方法和面向对象进行比较,并探讨它们在软件工程中的优劣和适用场景。

二、结构化方法2.1 定义和特点结构化方法是一种基于数据流和流程的软件开发方法。

它将软件系统视为一系列逐步细化的模块,通过分析数据流和流程来设计和实现软件系统。

结构化方法强调模块化、层次化和自顶向下的设计思想,以确保程序逻辑清晰、易于理解和修改。

2.2 优点1.结构化方法强调模块化,将软件系统分解为多个模块,每个模块负责特定的功能。

这种模块化的设计使得程序易于理解、修改和测试,提高了软件的可维护性和可测试性。

2.结构化方法采用自顶向下的设计思想,先设计系统的总体框架,再逐步细化到具体的模块。

这种逐步细化的设计方式使得开发过程更加可控,项目管理更加容易。

同时,自顶向下的设计过程也便于团队协作和分工。

3.结构化方法将程序逻辑分解为一系列有序的步骤,每个步骤都有明确的输入和输出。

这种严格的输入输出规定使得程序的设计和测试更加方便。

4.结构化方法在软件开发初期就明确定义了数据流和流程,使得开发人员能够更好地理解和掌握软件系统的整体架构,从而减少了项目失败的风险。

2.3 缺点1.结构化方法的设计过程较为复杂,需要详细分析系统的数据流和流程。

对于较大规模的软件系统,分析和设计的工作量较大,容易导致项目开发周期延长。

2.结构化方法强调模块化,但对于一些复杂的问题,模块化的设计可能不够灵活和强大。

这就需要在设计阶段尽可能考虑全部的需求和功能,否则可能会在后期的修改过程中遇到困难。

三、面向对象3.1 定义和特点面向对象是一种以对象为基础的软件开发方法。

在面向对象方法中,软件系统由一组相互作用的对象组成。

软件工程:结构化方法VS面向对象方法

软件工程:结构化方法VS面向对象方法

软件⼯程:结构化⽅法VS⾯向对象⽅法⼀、基本概念1、结构化⽅法 结构化⽅法是⼀种传统的软件开发⽅法,它是由结构化分析、结构化设计和结构化程序设计三部分有机组合⽽成的。

基本思想:把⼀个复杂问题的求解过程分阶段进⾏,⽽且这种分解是⾃顶向下,逐层分解,使得每个阶段处理的问题都控制在⼈们容易理解和处理的范围内。

2、⾯向对象⽅法 ⾯向对象⽅法是⼀种把⾯向对象的思想应⽤于软件开发过程中,指导开发活动的系统⽅法,简称OO,是建⽴在“对象”概念基础上的⽅法学。

对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,⼀个对象类定义了具有相似性质的⼀组对象。

基本思想:尽可能模拟⼈类习惯的思维⽅式,使开发软件的⽅法与过程尽可能接近⼈类认识世界、解决问题的⽅法与过程, 也就是使描述问题的问题空间与实现解法的求解空间在结构上尽可能⼀致。

⼆、两者对⽐1、基本单位不同 结构化⽅法的基本单位是模块。

⾯向对象⽅法的基本单位是对象。

2、分析⽅法不同 结构化分析⽅法是⼀种⾯向数据流⽽基于功能分解的分析⽅法, 在该阶段主要通过采⽤数据流程图、编制数据字典等⼯具, 描述边界和数据处理过程的关系, ⼒求寻找功能及功能之间的说明。

⾯向对象分析是把对问题域和系统的认识理解, 正确地抽象为规范的对象( 包括类、继承层次) 和消息传递联系, 最终建⽴起问题域的简洁、精确、可理解的⾯向对象模型, 为后续的⾯向对象设计和⾯向对象编程提供指导。

⾯向对象分析通常建⽴三种模型: 对象模型、动态模型、功能模型。

其中, 对象模型描述了系统的静态结构,确定类的名称和类间的关系;动态模型表⽰瞬时的、⾏为化的系统的“ 控制”性质, 规定了对象模型中的对象的合法变化序列;功能模型表明了系统中数据之间的依赖关系, 以及有关数据的处理功能。

3、各⾃局限(1)结构化⽅法 i.不能直接反映问题域: 结构化分析⽅法以数据流为中⼼, 强调数据的流动及每⼀个处理过程, 不是以问题域中的各事物为基础, 打破了各事物的界限, 分析结果不能直接反映问题域, 容易隐蔽⼀些对问题域的理解偏差。

软件工程之结构化方法与面向对象方法之比较与结合

软件工程之结构化方法与面向对象方法之比较与结合

软件⼯程之结构化⽅法与⾯向对象⽅法之⽐较与结合 软件开发⽅法指,在项⽬投资规模和时间限制内,设计、实现符合⽤户需求的⾼质量软件,根据软件开发的特点,提出的多种软件开发的策略。

随着20世纪60年代,计算机软件、硬件发展不均衡,使⼤型软件的开发过程中出现了复杂程度⾼、研制周期长、正确性难以保证的三⼤难题,引发了“软件危机”。

为了同时提⾼软件效率和质量,软件开发⽅法不断⾰新。

经过⼏⼗年的研究和应⽤,两种基于相应的程序设计思想和语⾔的软件开发⽅法,结构化⽅法与⾯向对象⽅法,成为了主流的开发⽅法之⼀,⼴泛地使⽤于软件⼯程。

结构化⽅法包括结构化分析(Structured Analysis,简称SA)、结构化设计(Structured Design,简称SD)和结构化程序设计(Structured Program Design,简称SP)三部分内容。

相应地,⾯向对象⽅法包括⾯向对象分析(Object-Oriented Analysis,简称OOA)、⾯向对象设计(Object—Oriented Design,简称OOD)和⾯向对象程序语⾔(Object-Oriented Program Design,简称OOP)。

两种软件开发⽅法从起源、思想、分析、设计,到程序设计、扩展重⽤、应⽤等各个⽅⾯有着许多的联系和区别,下⽂我将对⼆者进⾏⽐较分析。

两种⽅法针对不同的⼯作环境和应⽤场景,各具优势,也都有所不⾜,我也将讨论⼆者在软件⼯程中的结合,以期产⽣更好的效果。

(⼀)从起源上看 结构化⽅法与⾯向对象⽅法都起源于相应的程序设计思想和语⾔。

20世纪60年代后期,《程序结构理论》和《GOTO陈述有害论》的提出,证明了任何程序的逻辑结构都可以⽤顺序结构、选择结构和循环结构来表⽰,确⽴了结构化程序设计思想,产⽣了如FORTRAN、PASCAL、C等语⾔。

结构化⽅法把对程序的分析、设计,延伸⾄对项⽬⼯程的分析、设计,结合程序设计语⾔的技术⽀持,得以产⽣和发展。

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

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

结构化⽅法与⾯向对象⽅法之应⽤⽐较结构化⽅法与⾯向对象⽅法是最具代表性的,也是⽬前应⽤最为⼴泛的软件开发⽅法。

本⽂将分别对两者进⾏介绍和⽐较。

⼀、结构化⽅法 结构化⽅法(Structured Methodology)是计算机学科的⼀种典型的系统开发⽅法。

它采⽤系统科学的思想⽅法,从层次的⾓度,⾃顶向下地分析和设计系统。

基本思想是基于功能的分解和抽象,形成系统的模块结构,从⽽针对每个模块进⾏结构化设计及结构化编程来完成系统的开发。

结构化⽅法由结构化分析(SA)、结构化设计(SD)和结构化程序设计(SP)三者组成。

(⼀)结构化分析 结构化分析是⾯向数据流进⾏需求分析的⽅法。

采取的⼯具主要有数据流图、数据字典、实体关系图等。

数据流图(Data Flow Diagram,DFD)是⼀种分层的建⽴系统逻辑模型的⽅法,模拟系统的⼀个⼤致边界,并展⽰系统和外部的接⼝、数据的输⼊输出以及数据的存储。

它有四个基本要素:数据流、实体、数据加⼯和数据存储。

数据流图分层的思想体现为,⾸先确定系统和系统涉及到的外部实体之间的数据流,画出第0层数据流图(顶层图);其次在顶层图的基础上对系统的主要功能进⾏分析,抽象出功能作为系统的加⼯,确定实体和加⼯之间的数据流,将顶层图细化为第1层数据流图;依此类推,之后不断细化得到第2、3乃⾄更多层的数据流图,直到不能再细化为⽌。

数据字典(Data Dictionary)是⼀个包含所有系统数据元素定义的仓库。

数据元素的定义必须是精确的、严格的和明确的。

⼀个实体⼀般应包含以下⼏个部分的内容:名字、别名、⽤途、内容描述、备注信息。

实体关系图(E-R图)是数据库设计的基础,是指以实体、关系、属性三个基本概念概括数据的基本结构,从⽽描述静态数据结构的概念模式。

(⼆)结构化设计 结构化设计是指在结构化分析的基础上,映射分析模型到设计模型,得到系统的模块结构、数据库结构等。

如在数据流图的基础上,进⾏相应的变换分析和事务分析得到系统的模块结构,在ER模型的的基础上,进⾏数据库设计得到数据库结构。

1、结构化、面向对象程序设计差别、类基本概念

1、结构化、面向对象程序设计差别、类基本概念

1、结构化、⾯向对象程序设计差别、类基本概念1、⾯向对象程序设计与结构化程序设计的优缺点对⽐(1)结构化程序(C程序为例)的特点程序 = 数据结构 + 算法程序由全局变量以及众多相互调⽤的函数组成,算法以函数的形式实现,⽤于对数据结构进⾏操作。

(2)结构化程序设计缺点①结构化程序设计中,函数和其所操作的数据结构,没有直观的联系。

随着程序规模的增加,程序逐渐难以理解,很难⼀下⼦看出来:某个数据结构到底有哪些函数可以对它进⾏操作?某个函数到底是⽤来操作哪些数据结构的?任何两个函数之间存在怎样的调⽤关系?②结构化程序设计没有“封装”和“隐藏”的概念。

③要访问某个数据结构中的某个变量,就可以直接访问,那么当该变量的定义有改动的时候,就要把所有访问该变量的语句找出来修改,⼗分不利于程序的维护、扩充。

④难以查错,当某个数据结构的值不正确时,难以找出到底是那个函数导致的。

⑤重⽤:在编写某个程序时,发现其需要的某项功能,在现有的某个程序⾥已经有了相同或类似的实现,那么⾃然希望能够将那部分代码抽取出来,在新程序中使⽤。

⑥在结构化程序设计中,随着程序规模的增⼤,由于程序⼤量函数、变量之间的关系错综复杂,要抽取这部分代码,会变得⼗分困难。

软件业的⽬标是更快、更正确、更经济地建⽴软件。

总之,结构化的程序,在规模庞⼤时,会变得难以理解,难以扩充(增加新功能),难以查错,难以重⽤。

违背了软件设计的⽬标。

(3)⾯向对象程序设计的特点⾯向对象的程序设计⽅法,能够较好解决上述问题。

⾯向对象的程序 = 类 + 类 + …+ 类设计程序的过程,就是设计类的过程。

(4)⾯向对象的程序设计⽅法:将某类客观事物共同特点(属性)归纳出来,形成⼀个数据结构(可以⽤多个变量描述事物的属性);将这类事物所能进⾏的⾏为也归纳出来,形成⼀个个函数,这些函数可以⽤来操作数据结构(这⼀步叫“ 抽象”)。

然后,通过某种语法形式,将数据结构和操作该数据结构的函数“捆绑”在⼀起,形成⼀个“ 类”,从⽽使得数据结构和操作该数据结构的算法呈现出显⽽易见的紧密关系,这就是“封装” 。

理解结构化和面向对象的区别

理解结构化和面向对象的区别

理解结构化和⾯向对象的区别结构化⽅法 结构化程序设计⽅法包含结构化分析(SA)、结构化设计(SD)、结构化程序设计(SP)三个⽅⾯,分别对应了软件开发中的分析、设计和编码阶段。

结构化分析是由DeMarco和Yourdon在20世纪70年代所倡导的。

结构化分析是⼀种基于功能分解的分析⽅法,在分析过程中使⽤了各种⼯具,例如数据流图等,这些⼯具本质上是⼀个对⽤户需求的解读,也是⾯向⽤户展⽰的⼀个“说明书”,⽬的在于使软件真正符合⽤户的需求。

结构化设计⾯向数据流,其最⼤的着⼒点在于设计系统各个组成部分之间的内部联系,以满⾜软件所需要的层次和结构。

结构化设计中,软件被⾃顶向下地不断细分,并谨慎地对待数据流通软件时的每⼀个步骤。

David Hay曾经说过(1999):"信息⼯程是1970年代开发的结构化技术的逻辑延伸。

结构化编程导致结构化设计,这⼜导致结构化系统分析。

这些技术的特点是使⽤图表,例如为结构化设计的产⽣的结构图和为结构化分析⽽产⽣的数据流图,这些图表都是为了帮助⽤户与开发者之间的交流,以及规范化分析、开发过程⽽产⽣的。

在20世纪80年代,各种⼯具开始出现,它们⾃动绘制图表,并跟踪在数据字典中描述的东西。

"[1] 例如CAD/CAM这样的CASE⼯具。

⾯向对象⽅法 和结构化设计类似,⾯向对象技术包括⾯向对象分析(OOA)、⾯向对象设计(OOD)和⾯向对象编程(OOP)三部分。

⾯向对象⽅法有⼏个需要遵循的基本原则:即抽象、封装、继承和多态。

在⾯向对象建模中,代码和数据被合并成⼀个单⼀的不可拆分的单元,也就是⼀个对象。

这样的特性允许对象保持像⼀个⿊盒⼦,也就是说没有⼈需要看到⾥⾯的具体原理。

⽽为了达到这⼀点,对任何对象的所有修改是通过作⽤于对象的消息来完成的,并且实际上所有对象都从消息中获得它们的动作。

在⾯向对象建模中,这种特性被称为封装性,它⼤⼤便利了软件部件、包或者库的调⽤,并且更便于重⽤。

结构化程序设计和面向对象程序设计

结构化程序设计和面向对象程序设计

结构化程序设计和面向对象程序设计结构化程序设计和面向对象程序设计程序设计是计算机科学领域的基础,是软件开发的重要部分。

结构化程序设计和面向对象程序设计是两种方法,被广泛使用。

本文将分别介绍这两种方法的特点和优势。

一、结构化程序设计结构化程序设计是一种程序设计的方法,它通常采用顺序、选择和循环等基本结构,使用结构化编程语言编写程序。

结构化程序设计强调程序的清晰性和易维护性,对程序员而言,它更容易理解。

结构化程序设计将程序分解为若干小的、独立的模块,每个模块包含若干明确定义的输入和输出,这样能够使程序员更好地组织代码,并且在必须修改时更容易进行维护。

由于它可以实现代码的重用,因此可以使得程序员更加高效率和节省时间和精力,而且非常适合需求比较简单的软件项目。

二、面向对象程序设计面向对象程序设计(OOP)是目前最为先进的程序设计方法之一,它包括了对对象建模、类和继承等概念的广泛应用。

面向对象的编程语言,如Java、Python和C++,都采用了这种方式。

在面向对象的程序设计中,程序被看作一个对象的集合,每个对象都具有属性和方法。

对象可以相互作用,通过方法来告知计算机他们想要做的事情。

因此,面向对象程序设计将程序员体验变为了“物体之间的关系”,从而更贴近现实世界。

面向对象程序设计的特点在于代码的复用性,它能够提高程序员的工作效率,而且更便于阅读和修改。

面向对象程序设计能够最大限度地减少程序员编写重复代码的问题,从而避免了出现代码的冗余和失误,而对于比较复杂的项目,它更为合适,在软件系统中的应用越来越广泛。

因此,如果需要完成一个高质量的、复杂的软件项目,面向对象程序设计是不可或缺的。

综上所述,结构化程序设计和面向对象程序设计都是程序设计领域中重要的方法。

两者都有其自身的优势和使用场景,根据不同的需求来选择不同的编程方法。

当程序比较简单、需求不复杂时,可以采用结构化程序设计;如果程序需要拥有更多的灵活性和可扩展性时,建议采用面向对象的编程方法。

面向对象和结构化程序设计的区别

面向对象和结构化程序设计的区别

⾯向对象和结构化程序设计的区别结构化编程强调功能模块。

结构化程序的概念⾸先是从以往编程过程中⽆限制地使⽤转移语句⽽提出的。

转移语句可以使程序的控制流程强制性的转向程序的任⼀处,在传统流程图中,就是⽤上节我们提到的"很随意"的流程线来描述这种转移功能。

如果⼀个程序中多处出现这种转移情况,将会导致程序流程⽆序可寻,程序结构杂乱⽆章,这样的程序是令⼈难以理解和接受的,并且容易出错。

尤其是在实际软件产品的开发中,更多的追求软件的可读性和可修改性,象这种结构和风格的程序是不允许出现的。

⽐如:C,FORTRAN,PASCAL等等结构化程序设计⽅法主要由以下三种逻辑结构组成:1)顺序结构:顺序结构是⼀种线性、有序的结构,它依次执⾏各语句模块。

2)循环结构:循环结构是重复执⾏⼀个或⼏个模块,直到满⾜某⼀条件为⽌。

3)选择结构:选择结构是根据条件成⽴与否选择程序执⾏的通路。

**采⽤结构化程序设计⽅法,程序结构清晰,易于阅读、测试、排错和修改。

由于每个模块执⾏单⼀功能,模块间联系较少,使程序编制⽐过去更简单,程序更可靠,⽽且增加了可维护性,每个模块可以独⽴编制、测试。

**⾯向对象程序语⾔中⽀持的对象具有三个明显得特征:封装、继承、多态;⽽Javascript在类别和副本上并没有明显地分界。

事实上,Javascript语⾔中所有的变量数据类型在JS中都是对象。

JS 总共⽀持4种对象:内置对象、⾃定义对象、浏览器程序对象和ActiveX对象。

return this只是返回该对象,以便别处引⽤,但并不是多出⼀个对象。

所以,⾯向过程的程序设计中:程序=算法+数据结构(数据和数据类型)数据结构和算法相分离的,所以,系统庞⼤后,它的控制、移植、重⽤就成了问题。

⽽在⾯向对象的程序设计中:对象=数据结构+算法程序=对象+对象+.....结构化程序设计从系统的功能⼊⼿(有的⽤户也成为⾯向过程的设计),按照⼯程的标准和严格的规范将系统分解为若⼲功能模块,系统是实现模块功能的函数和过程的集合。

结构化系统分析方法与面向对象分析方法的区别何在

结构化系统分析方法与面向对象分析方法的区别何在

1、结构化系统分析方法与面向对象分析方法的区别何在?答:结构化系统分析方法是采用“自顶向下,由外到内,逐层分解”的思想对复杂的系统进行分解化简,从而有效地控制了系统分析每一步的难度,并运用数据流图、加工说明和数据字典作为表达工具的一种系统分析技术。

而面向对象的分析方法则是通过将数据和逻辑结构抽象成为对象,运用对象属性和方法等来操作和处理业务数据和逻辑的系统分析方法。

两者的区别在于:当软件项目较小、系统分析员能力足够高的时候,结构化方法能快速的找到最简洁、高效率的逻辑模型,结构化方法对复杂问题的帮助有限,而面向对象的分析方法提供了一种方便的、可持续观测和扩展系统的机制,通过信息隐藏和封装等手段屏蔽了对象内部的执行细节,控制了错误的蔓延,对于需求变化频繁的系统,可以用面向对象软件系统的方法。

2. 在实际项目中,具体地是采用结构化系统分析方法,还是或面向对象分析方法,是否存在相应的前提条件?或者说依据什么来选择不同的分析方法?答:两种方法不是对立的,没有谁先进谁过时之说,可在项目中结合使用。

恰当的运用方法解决问题才是根本性的问题。

在运用时应关注运用方法的成本和价值。

如果软件项目较小、系统分析员能力足够高的时候,用结构化方法较好,如果系统需求变化较大,内部逻辑关系较复杂,复用性要求较高,可采用面向对象的方法。

3.结构化系统分析方法是否已经过时?为什么现在很多项目都要采用UML进行系统分析和设计?谈谈你的理解答:结构化系统分析方法没有过时,当软件项目较小、系统分析员能力足够高的时候,结构化方法是快速的找到最简洁、高效率的逻辑方式;UML是一种应用于面象对象软件开发过程的建模语言,是一种简单、直观的表示符号和标准,UML的优点在于:1、对于开发团队的层面来说:有利于队员间在各个开发环节间确立沟通的标准,便于系统文档的制定和项目的管理。

UML的简单、直观和标准性,在一个团队中用UML来交流比用文字说明的文档要好得多。

简述软件设计的两种分类方法

简述软件设计的两种分类方法

简述软件设计的两种分类方法软件设计是指根据用户需求和系统要求,对软件进行规划、设计和实现的过程。

软件设计可以分为两种分类方法:结构化设计和面向对象设计。

一、结构化设计结构化设计是一种传统的软件设计方法,它采用模块化的思想来组织程序。

结构化设计的主要特点包括:1. 模块化:将程序分解成若干个相互独立的模块,每个模块只负责完成一个特定的功能。

2. 自顶向下:从整体到局部进行逐步分解,直到最小单元为止。

3. 逐步细化:对每个模块进行进一步细化,直到可以编写代码为止。

4. 结构图:采用流程图或草图等方式表示程序结构。

二、面向对象设计面向对象设计是一种相对较新的软件设计方法,它以对象为中心来组织程序。

面向对象设计的主要特点包括:1. 封装性:将数据和操作封装在一个对象中,保证数据安全性和操作正确性。

2. 继承性:通过继承机制实现代码重用和扩展性。

3. 多态性:同一个操作可以作用于不同类型的对象上,并且具有不同行为表现。

4. 类图:采用类图表示程序结构。

三、软件设计的流程无论是结构化设计还是面向对象设计,软件设计都有一定的流程。

下面是软件设计的一般流程:1. 需求分析:明确用户需求和系统要求,确定软件功能和性能指标。

2. 概要设计:根据需求分析结果,进行概念性的设计,确定程序框架和模块划分。

3. 详细设计:对每个模块进行详细的设计,包括数据结构、算法、接口等。

4. 编码实现:根据详细设计结果编写代码,并进行单元测试和集成测试。

5. 调试测试:对整个程序进行测试和调试,保证程序正确性和可靠性。

6. 维护更新:对程序进行维护和更新,保证程序持续稳定运行。

四、总结软件设计是一个复杂的过程,需要遵循一定的方法和流程。

结构化设计和面向对象设计都有各自的特点和优势,在实际应用中需要根据具体情况选择合适的方法。

同时,在软件开发过程中还需要注意代码质量、可读性、可维护性等方面,以提高软件开发效率和质量。

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

对结构化方法和面向对象方法的对比和讨论
二 结 构 化 方 法
① 基 于 映 射 : 把现 实世 界 的 工 作 过程
从 超 类 继 承 属 性 和 操 作 ; 超 类 — — 也 称 作 基 类 ,是 一 组 相 关 类 的泛 化 。 () 向 对 象 的 特 点 2面
结 构 化 方 法 是 强 调 开 发 方法 的 结 构合 理 性 以及 所 开 发 软 件 的 结 构 合 理 性 的 软 件 开 发 方 法 。 结 构 化 分 析 方 法 给 出 一 组 帮 助 系 统
进 行 仿 真 , 引 入 了类 概 念 和 继 承 机 。 7 年 代 0
结 构 化 方 法 是 强 调 开 发 方 法 的 结 构 合 理 性 以及 所 开 发 软 件 的 结 构 合 理 性 的 软 件 开 发
末 ,另 一个专用 的面 向对象语 言S a 1 a k m l t l 开 始进 行设 计 ,并在8 年提 出一个 完善 版本 。 O 但 这时只 在实 验室和 科研 活动 中使用 。随着 软件 复 杂程度 的进 一步提 高 ,低 耦 合、高 内
实体有 直接对 应关 系 ,一 个对 象类定 义 了具 有相似 性质 的一组 对象 。而每 继承性 是对 具 有层次 关系 的类 的属性和 操作 进行共 享 的一
种方式 。所 谓面 向对象就 是基 于对象 概念 , 以对 象 为 中心 , 以 类 和 继 承 为 构 造 机 制 , 来 认 识 、理 解 、 刻 画 客 观 世 界 和 设 计 、 构 建 相 应 的 软件 系 统 。
面 向对 象 的 思 想 应 用 于 软 件 开 发 过 程 中 , 指 导 开 发 活 动 的 系 统 方 法 , 简 称 O 方 法 ,是 建 O 立 在 “ 象 ” 概 念 基 础 上 的 方 法 学 。 对 象 是 对 由数 据 和 容 许 的 操 作 组 成 的 封 装 体 , 与 客 观

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

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

结构化方法与面向对象方法一、概述结构化方法和面向对象方法是软件开发中两种不同的编程思想。

结构化方法强调程序的流程控制,将程序划分为多个模块,每个模块完成特定的功能。

面向对象方法则强调数据和行为的封装,将数据和操作数据的函数封装在一个类中,通过类来描述问题。

二、结构化方法1. 模块化设计结构化方法将程序划分为多个模块,每个模块完成特定的功能。

在设计过程中需要考虑模块之间的接口和数据传递方式。

通常采用自顶向下或自底向上的设计方式。

2. 顺序、选择和循环控制结构结构化方法强调程序的流程控制,其中顺序、选择和循环控制结构是最基本的三种控制结构。

在编写代码时需要根据实际情况选择合适的控制结构。

3. 结构体和数组结构体是一种用户定义类型,在一个结构体中可以包含多个不同类型的变量。

数组是一种相同类型变量组成的集合。

在处理大量数据时可以使用数组来简化代码。

4. 函数和指针函数是一段可重复使用的代码,可以接受参数并返回值。

指针是一种特殊的变量,它存储的是内存地址。

在结构化方法中,函数和指针是非常重要的概念。

三、面向对象方法1. 类和对象面向对象方法强调数据和行为的封装,将数据和操作数据的函数封装在一个类中。

类是一种用户定义类型,它描述了一组属性和方法。

对象则是类的一个实例。

2. 继承继承是面向对象编程中最重要的概念之一。

通过继承可以实现代码复用和层次关系描述。

派生类可以继承基类中所有公有成员,并且可以添加自己的成员。

3. 多态多态是指同一操作作用于不同的对象上面时,可以产生不同的解释和不同的执行结果。

多态性分为静态多态性和动态多态性两种形式。

4. 封装封装是将数据和行为包装在一个单元中,并保护其内部状态不被外部访问或修改。

通过封装可以提高代码重用性、可读性和可维护性。

四、结构化方法与面向对象方法比较1. 设计思路不同结构化方法强调程序流程控制,而面向对象方法强调数据和行为的封装。

2. 技术实现不同结构化方法主要采用模块化设计、顺序、选择和循环控制结构、结构体和数组、函数和指针等技术实现。

面向对象与结构化区别

面向对象与结构化区别

面向对象与面向过程的区别1、面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。

面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。

2、面向对象以数据(属性)为导向,将具有相同一个或者多个属性的物体抽象为“类”,将他们包装起来;而有了这些数据(属性)之后,我们再考虑他们的行为(对这些属性进行什么样的操作),面向过程以功能(行为)为导向,按模块化的设计,在你在脑袋中也许也有一个类似“类”的概念,但是表现出来的是属性与行为的分离,1.什么是面向对象技术?面向对象技术是一种以对象为基础,以事件或消息来驱动对象执行处理的程序设计技术。

它具有抽象性、封装性、继承性及多态性。

2.面向对象与面向过程程序设计有什么不同?面向对象与面向过程程序设计有如下不同:(1)面向过程程序设计方法采用函数(或过程)来描述对数据的操作,但又将函数与其操作的数据分离开来;面向对象程序设计方法将数据和对数据的操作封装在一起,作为一个整体来处理。

函数与数据是否分离(2)面向过程程序设计方法以功能为中心来设计功能模块,难于维护;而面向对象程序设计方法以数据为中心来描述系统,数据相对于功能而言具有较强的稳定性,因此更易于维护。

以功能为中心;以数据为中心(3)面向过程程序的控制流程由程序中预定顺序来决定;面向对象程序的控制流程由运行时各种事件的实际发生来触发,而不再由预定顺序来决定,更符合实际需要。

预定顺序;由运行时各种事件的实际发生来触发(4)面向对象程序设计方法可以利用框架产品(如MFC,Microsoft Foundation Classes)进行编程。

面向对象可利用框架面向对象和面向过程的根本差别,在于封装之后,面向对象提供了面向过程不具备的各种特性,最主要的,就是继承和多态。

3.面向对象技术有哪些优点?面向对象技术具有程序结构清晰,自动生成程序框架,实现简单,可有效地减少程序的维护工作量,代码重用率高,软件开发效率高等优点。

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

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

结构化⽅法和⾯向对象⽅法的⽐较⼀、引⾔20 世纪60 年代以来。

软件的发展⼀直受到开发综合症“软件危机”的影响。

为了提⾼软件质量,软件开发⽅法不断推陈出新,其中结构化⽅法经过30 多年的研究及应⽤,最为成熟且影响最⼤,直到现在仍有许多系统仍然是使⽤结构化⽅法开发的。

⽽⾯向对象⽅法是在结构化⽅法、信息建模⽅法等基础上发展起来的,近10 年来发展较快,现已呈现出取代结构化⽅法的趋势。

⼆、结构化⽅法结构化⽅法是⼀种传统的软件开发⽅法,它是由结构化分析、结构化设计和结构化程序设计三部分有机组合⽽成的。

它的基本思想:把⼀个复杂问题的求解过程分阶段进⾏,⽽且这种分解是⾃顶向下,逐层分解,使得每个阶段处理的问题都控制在⼈们容易理解和处理的范围内。

结构化⽅法基于功能分解设计系统结构,通过不断把复杂的处理逐层分解来简化问题,它从内部功能上模拟客观世界. ⽤结构化开发的软件运⾏效率较⾼, 且能够增加软件系统的可靠性。

2.1、结构化分析结构化分析(Structured Analysis,简称SA)是软件⼯程中的⼀种⽅法,结构化分析和结构化设计可以分析商业的需求,再转换为规格⽂件,最后再产⽣电脑软件、硬件配置及相关的⼿册及程序。

结构化分析包括将系统概念转换为⽤数据及控制的来表⽰,也就是转换为数据流程图。

数据流程图中的程序以泡泡来表⽰,因此也称为“泡泡图”。

不过完整的数据流程图中可能有许多的“泡泡”,使得很难去追踪数据移动的情形。

数据字典⽤来描述数据和指令的移动,⽽⽤程序规格来描述交易或数据转换的相关信息。

结构化分析的步骤如下:(1)、分析当前的情况,做出反映当前物理模型的DFD;(2)、推导出等价的逻辑模型的DFD;(3)、设计新的逻辑系统,⽣成数据字典和基元描述;(4)、建⽴⼈机接⼝,提出可供选择的⽬标系统物理模型的DFD;(5)、确定各种⽅案的成本和风险等级,据此对各种⽅案进⾏分析;(6)、选择⼀种⽅案;(7)、建⽴完整的需求规约。

结构化与面向对象的程序设计方法比较

结构化与面向对象的程序设计方法比较
( 封 大 学 a 机 电 工程 学 院 ;. 开 . b 软件 职业 技 术 学 院 , 南 开 封 4 5 0 ) 河 70 4

要 : 序设 计的基 本方 法 包括早期 的 结 构化 程序 设计 方 法 和 面向对 象的程序 设 计 方 法. 程 程 从
序设 计的 角度看 , 结构化 方法和 面向对 象方 法各有优 缺点. 从提 高程 序 的重用性和 可维护 性的 角度 看, 面向对 象方 法有较好 的应 用前景. 面 向对 象程 序设 计方 法 的基础 仍 然是 结构化 程序 设 计 , 但 即
收稿 日期 :0 0—1 2 2 1 2— 5
面 向对 象方 法 与结 构 化方 法不 同 , 把数 据 和 它
行为看成 同等重 要. 它是 一种 以数据 为主线 , 把数据
和对数据 的操作 紧密地 结合 在一起 的方法 .
2 1 面向对 象方 法的特 点 .
把 面 向对象 作为融 合 了数 据及 在数据 上的操作

1 结构化 程序设 计方 法
1 1 结构化程序 设计 的提 出 .
步分解 , 进入另 一个抽 象层次 . 12 2 基本 控制结 构 .. 用顺 序 方式 确 定各 部分 的执行 顺序 ,选 择方 用
计算 机软件 是伴 随着计算 机硬件 的发展 而发展
的. 早期 的程序 多为个人 的设计 产 品 , 开发者 和维 护
结构 化程 序设 计 的原 则 可 表 示 为 : 序 =( 程 算
法 ) 数据 结构 ) +( . 算 法 是 一 个 独 立 的 整 体 , 据 结 构 ( 含 数 数 包 据类 型 与 数 据 ) 是 一 个 独 立 的 整 体 . 者 分 开 也 两 设计 , 以算 法 ( 函数 或 过 程 ) 主 . 具 体 结 构 见 为 其 图 13( 中 的虚 线 表 示 上 面 的算 法 与 下 面 的 数 _ 图 据是 分 离 的 , 双箭 头 表 示 函数 或 过 程 对 数 据 的 输

面向对象和面向结构区别联系

面向对象和面向结构区别联系

面向对象方法与结构化方法比较答:分析是问题抽象 (做什么),设计是问题求解 (怎么做),实现是问题的解 (结果)。

在问题抽象阶段,结构化方法面向过程,按照数据变换的过程寻找问题的结点,对问题进行分解。

因此,与面向对象方法强调的对象模型不同,描述数据变换的功能模型是结构化方法的重点。

如果问题世界的功能比数据更复杂或者更重要,那么结构化方法仍然应是首选的方法学。

如果数据结构复杂且变换并不多,那么如以过程主导分析和设计,一旦有系统变更就会给下游开发带来极大混乱。

由于对过程的理解不同,面向过程的功能细分所分割出的功能模块有时会因人而异。

而面向对象的对象细分,从同一问题领域的对象出发,不同人得出相同结论的比率较高。

在设计上,结构化方法学产生自顶向下、结构清晰的系统结构。

每个模块有可能保持较强的独立性,但它往往与数据库结构相独立,功能模块与数据库逻辑模式间没有映射关系,程序与数据结构很难封装在一起。

如果数据结构复杂,模块独立性很难保证。

面向对象方法抽象的系统结构往往并不比结构化方法产生的系统结构简单,但它能映射到数据库结构中,很容易实现程序与数据结构的封装。

在软件工程基本原则中有一条“形式化原则”,即对问题世界的抽象结论应该以形式化语言 (图形语言、伪码语言等) 表述出来。

结构化方法可以用数据流图、系统结构图、数据辞典、状态转移图、实体关系图来进行系统逻辑模型的描述;而面向对象方法可以使用对象模型图、数据辞典、动态模型图、功能模型图。

其中对象模型图近似系统结构图与实体关系图的结合,动态模型图类似状态迁移图,功能模型图类似数据流图。

结构化方法三大模型:分析模型;设计模型;实现模型面向对象方法三大模型:对象模型;动态模型;功能模型等价划分的基本思想是什么?答:根据程序的输入特性,将程序的定义域划分为有限个等价区段—“等价类”,从等价类中选择出的用例具有“代表性”,即测试某个等价类的代表值就等价于对这一类其它值的测试。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

结构化方法和面向对象方法的比较结构化方法是结构化分析,结构化设计和结构化编程的总称,是最早最传统的软件开发方法,也是迄今为止信息系统中应用最普遍、最成熟的一种,它引入了工程思想和结构化思想,使大型软件的开发和编程都得到了极大的改善。

面向对象方法它不仅仅是一些具体的软件开发技术与策略,而且是一整套关于如何看待软件系统与现实世界的关系,用什么观点来研究问题并进行问题求解,以及如何进行软件系统构造的软件方法学。

人们普遍认为面向对象方法是一种运用对象、类、继承、封装、聚合、关联、消息和多态性等概念和原则来构造系统的软件开发方法。

结构化方法和面向对象方法二者的比较如下。

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

一、自顶向下,逐步求精:把程序看成是一个逐步演化的过程。

把一个系统与程序看成是一层一层的。

例如:户籍管理系统可以划分为:户籍迁入迁出,人员迁入迁出,户籍注销,人员注销等几个子系统,而每个子系统又划分为接收用户信息,实施处理,提供返回信息等等部分。

二、模块化:即将几个系统分成几个模块,每个模块实现特定的功能,最终整个系统由这些模块组成。

模块跟模块之间通过接口传递信息,模块最重要的特点就是独立性,模块之间还有上下层的关系,上层模块调用下层模块来实现一些功能。

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

面向对象方法的基本思想主要有:一、客观世界中的事物都是对象,对象之间存在一定的关系,并且复杂对象由简单对象构成。

二、具有相同属性和操作的对象属于一个类,对象是类的一个实例。

三、类之间可以有层次结构,即类可以有子类,其中,子类继承父类的全部属性和操作,而且子类有自己的属性和操作。

四、类具有封装性,把类内部的属性和一些操作隐藏起来,只有公共的操作对外是可见的,对象只可通过消息来请求其他对象的操作或自己的操作。

五、强调充分运用人在日常逻辑思维中经常采用的思想方法与原则。

例如:抽象,分类,继承,聚合,封装,关联等。

二、基本原则的比较
结构化方法遵循基本原则有:一、抽象原则:是一切系统科学方法都必须遵循的基本原则,它注重把握系统的本质内容,而忽略与系统当前目标无关的内容,它是一种基本的认知过程和思维方式。

二、分解原则:是结构化方法中最基本的原则,它是一种先总体后局部的思想原则,在构造信息系统模型时,它采用自顶向下、分层解决的方法。

三、模块化原则:结构化方法最基本的分解原则的具体应用,它主要出现在结构化设计阶段中,其目标是将系统分解成具有特定功能的若干模块,从而完成系统指定的各项功能。

面向对象方法遵循基本原则有:一、抽象:是处理现实世界复杂性的最基本方式,在OO方法中它强调一个对象和其他对象相区别的本质特性,对于一个给定的域确定合理的抽象集是面向对象建模的关键问题之一。

二、封装:是对抽象元素的划分过程抽象,由结构和行为组成,封装用来分离抽象的原始接口和它的执行。

封装也称为信息隐藏,它将一个对象的外部特征和内部的执行细节分割开来,并将后者对其他对象隐藏起来。

三、模块化:是已经被分为一系列聚集的和耦合的模块的系统特性,对于一个给定的问题,确定正确的模块集几乎与确定正确的抽象集一样困难,通常每个模块应该足够简单以便能够被完整地理解。

(高内聚低耦合)四、层次:抽象集通常形成一个层次,层次是对抽象的归类和排序,在复杂
的现实世界中有两种非常重要的层次,一个是类型层次,另一个是结构性层次。

确定抽象的层次是基于对象的继承,它有助于在对象的继承中发现抽象间的关系,搞清问题的所在,理解问题的本质。

三、优点的比较
结构化方法在程序设计时,先考虑问题大的方面,在确定了主要方向后,再由表及里深入到问题具体的细节,由易到难,逐层解决问题,使得整个程序设计过程由模糊到清晰,由概括到具体。

结构化方法强调功能抽象和模块化,采取了分块处理问题的方法,可以把一个比较复杂的问题分解为若干个容易处理解决的部分,从而降低了问题处理的难度。

由于结构化方法思路清晰,条理清楚,又有效地分解了繁复的问题,使得编写程序时清晰明了,简化了编程人员繁杂的工作,而在阅读时也能够一气呵成,给人以明朗的感觉。

面向对象方法与人类习惯的思维方法一致,使得使用者和维护人员都容易理解,在用户使用时不会理解困难,在软件维护中可维护性也较高,并且易于测试和调试。

它的稳定性好,对软件的局部进行修改时,不会引起整体的变化,而且对局部修改容易实现。

它的可重用性好,并且由于它是把大的问题分解成相互独立的小问题处理,降低了开发的技术难度,开发工作的管理也变的容易了,开发大型软件变的容易,成本也降低了。

面向对象方法直接由问题入手,来进行系统的建模,降低了使用成本,让用户在使用一个新的软件时,能够在最短的时间里了解使用方法,能正确、清楚地使用软件。

在编写程序方面,结构化方法有着比较强的优势,它思路清晰,条理严谨,步骤整洁,便于阅读理解;而在注重功能的用户使用方法,面向对象方法则更容易理解,它操作简单,界面清楚,使得软件使用变得简单。

四、缺点的比较
结构化方法在得到问题本质性的描述之前,不断分解出的结论和需要处理的信息越来越多、越来越复杂,它要求系统分析员具有一种“俯视全局”的能力,能够透过问题的表象直接把握到问题本质。

当软件项目较小、系统分析员能力足够高的时候,结构化方法能快速的找到最简洁、高效率的逻辑模型。

结构化方法对复杂问题的帮助有限,但它有助于使用面向分析方法的系统分析员确认系统最初的高阶模型。

面向对象方法总是试图抽象出更公用的类,因此对系统分析员抽象事物和把握最初分析方向的要求很高,常常难以控制抽象对象的层次、粒度,甚至抽象出与问题本质面目全非的对象模型,掌握难度高于结构化分析方法。

面向对象方法通过信息隐藏和封装等手段屏蔽了对象内部的执行细节,控制了错误的蔓延,但发生错误时,定位故障的代价大,尤其是继承的深度很大时。

对于需求变化频繁的系统,得到一个高度可复用的面向对象软件系统设计是很困难的事情。

结论:结构化方法与面向对象方法不是对立的,没有谁先进谁过时之说,不论哪一种设计方法,正确清晰的需求界定都是开发一个成功的软件系统必不可少的前提条件,所以恰当的运用方法解决问题,在运用时关注运用方法的成本和价值才是根本性的问题。

相关文档
最新文档