2021年结构化方法与面向对象方法比较.pdf
结构化方法与面向对象方法的内在联系(一)二者在分解和抽象原则上一致分解和抽象是软件开发中控制问题复杂性的重要原则。分解即化整分零,将问题剥茧抽丝,层层消化;抽象则是通过分解体现,在逐层分解时,上层是下层的抽象,下层是上层的具体解释和体现,运用抽象可以不用一次考虑太多细节,而逐渐的有计划有层次的了解更多细节。面向对象方法与结构化方法在运用分解和抽象原则上的要求是完全一致的。(二)局部化和重用性设计上的一致局部化是软件开发中的一个重要原则,即不希望软件一部分过多地涉及或影响软件的其它部分。在结构化方法中,局部化主要体现在代码与数据的分隔化,即程序各部分除必要的信息交流外,彼此相互隔离而互不影响,而面向对象方法则采用数据、代码的封装,即将数据、代码和操作方法封装成一个类似“黑箱”的整体对象,提高了程序的可靠性和安全性,同时增强了系统的可维护性。也就是说面向对象方法比结构化方法的运用更加深入更彻底。结构化方法与面向对象方法的区别(一)处理问题时的出发点不同结构化方法是强调过程抽象化和模块化,以过程为中心构造或处理客观世界问题的,它是一种面向过程的开发方法;面向对象方法强调把问题域的要领直接影射到对象及对象之间的接口上,是用符合人们通常的思维方式来处理客观世界的问题。精品w o r d 学习资料 可编辑资料-精心整理-欢迎下载-第 1 页,共 4 页(二)处理问题的基本单位和层次逻辑关系不同结构化方法把客观世界的问题抽象成计算机可以处理的过程,处理问题的基本单位是能清晰表达过程的模块,用模块的层次结构概括模块或模块间的关系和功能;面向对象方法是用计算机逻辑来模拟客观世界中的物理存在,以对象的集合类作为处理问题的基本单位,尽可能使计算机世界向客观世界靠拢,以使问题的处理更直截了当,面向对象方法是用类的层次结构来体现类之间的继承和发展。(三)数据处理方式与控制程序方式不同结构化方法是直接通过程序来处理数据,处理完毕后即可显示处理结果,在控制程序方式上是按照设计调用或返回程序不能自由导航,各模块程序之间存在着控制与被控制的关系;面向对象方法将数据与对应的代码封装成一个整体,原则上其它对象不能直接修改其数据,即对象的修改只能由自身的成员函数完成,控制程序方式上是通过“事件驱动”来激活和运行程序。(四)分析设计与编码转换方式不同结构化方法强调分析、设计及编码之间按规则进行转换,贯穿软件生命周期的分析、设计及编码之间实现的是一种有缝的连接;面向对象方法从分析到设计再到编码则采用一致性的模型表示,贯穿软件生命周期的分析、设计及编码之间是一种平滑过程,即实现的是一种无缝连接。结构化方法和面向对象方法各有优缺点主要表现在如下几个方面:精品w o r d 学习资料 可编辑资料-精心整理-欢迎下载-第 2 页,共 4 页文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6(一)从执行效率来说。结构化方法比面向对象方法产生的可执行代码更直接,更高。所以对于一些嵌入式的系统,结构化方法产生的系统更小,运行效率更高;(二)从重用性方面来说。采用结构化方法的系统难以修改和扩充。结构化分析与设计清楚定义了系统的接口,当系统对外界接口发生变动时,往往造成系统结构较大变动,难以扩充新的功能接口。采用结构化方法的系统可复用性较差。结构化方法将数据和操作分离,导致一些可重用的软件构件在特定具体应用环境才能应用,降低了软件的可重用性。面向对象方法具有很好的重用性。在遇到类似的问题,通过应用了抽象继承等技术,来重用代码;(三)从程序语言编译器来说。面向对象方法,通过编译器实现代码的面向对象性。也就是说经过编译器后,代码会被翻译为相对应的结构化代码。所以要熟练开发,还要懂一定的结构化方法做为基础;(四)从掌握难度来说,面向对象方法比结构化对象方法复杂,难于理解。面象对象方法的内容广,概念多,而且很多都是难于理解,做到精通更加不易。应用面向对象方法,常常需要一种支持的分析,设计方法,如RUP 方法,敏捷方法等。这些知识抽象枯燥,难于掌握。面象对象方法要经过长期的开发实践才能很好的理解,掌握。相比之下,结构化方法知识内容少,容易上手;(五)从应用的范围看,结构化方法适用于数据少而操作多的问题。实践证明对于像操作系统这样的以功能为主的系统,结构化方法比较精品w o r d 学习资料 可编辑资料-精心整理-欢迎下载-第 3 页,共 4 页文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6适应它。面向对象方法正好相反,对于数据库,信息管理等以数据为主的而操作较少的系统,用面向对象方法描述要好于结构化方法。七、结语综上所述,软件开发的目标是以最小的代价开发出满足用户需求的软件。为此,根据系统的实际需求,分别针对具体情况选择采用不同的设计方法,可以充分发挥面向对象与结构化方法各自的优势。目前在大多数软件系统的分析设计过程中,这两种方法都兼而有之。笔者以为,开发者在开发实践中,从实际出发,考虑执行效率、开发者的技术水平、系统规模、是否为易需求变化的系统等因素,尽量利用它们各自的优点,避免他们的缺点。如对于开发一些小型嵌入式实时监控系统或同等稳定小系统,可用结构化方法;对于开发入门者,使用结构化方法和面向对象方法相结合;对于大型系统或者需求易变系统,使用面向对象方法。总之,根据实际出发,选取合适的软件开发方法,达到最佳的开发效益。精品w o r d 学习资料 可编辑资料-精心整理-欢迎下载-第 4 页,共 4 页文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6文档编码:CS8U9P7F1C4 HD6Y10A1N2E6 ZJ3D1V8F10P6