浅谈程序设计的方法

时间:2022-10-15 04:44:14

浅谈程序设计的方法

【摘要】通过浅析面向对象方法与结构化方法的比较,分析探讨了结构化方法和面向对象方法存在的问题,在比较两者内在一致性和主要区别基础上,提出在软件开发过程中应结合面向对象方法与结构化方法。

【关键词】面向对象方法;结构化方法;软件开发

面向对象方法解决了传统结构化方法中问题空间和解空间在结构上不一致的问题,避免了从分析和设计到软件模块结构间的多次转换过程,使开发软件变得简捷、高效、合理。

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

可以看出,面向对象的方法基本思想是: 对问题空间进行自然分割,以更接近人类思维的方式建立问题域模型,以便对客观实体进行结构模拟和行为模拟,从而使设计出的软件尽可能直接地描述现实世界,构造出模块化的,可重用的,维护性好的软件,同时限定软件的复杂性和降低开发维护费用。

二、结构化方法与面向对象方法的内在联系

二者在分解和抽象原则上一致,分解和抽象是软件开发中控制问题复杂性的重要原则,面向对象方法与结构化方法在运用分解和抽象原则上的要求是完全一致的;局部化和重用性设计上的一致,在结构化方法中,局部化主要体现在代码与数据的分隔化,即程序各部分除必要的信息交流外,彼此相互隔离而互不影响,而面向对象方法则采用数据、代码的封装,即将数据、代码和操作方法封装成一个类似“黑箱”的整体对象,提高了程序的可靠性和安全性,同时增强了系统的可维护性。

三、结构化方法与面向对象方法的区别

(一)处理问题时的出发点不同

结构化方法是强调过程抽象化和模块化,以过程为中心构造或处理客观世界问题的,它是一种面向过程的开发方法;面向对象方法强调把问题域的要领直接影射到对象及对象之间的接口上,是用符合人们通常的思维方式来处理客观世界的问题。

(二)处理问题的基本单位和层次逻辑关系不同

结构化方法把客观世界的问题抽象成计算机可以处理的过程,处理问题的基本单位是能清晰表达过程的模块,用模块的层次结构概括模块或模块间的关系和功能;面向对象方法是用计算机逻辑来模拟客观世界中的物理存在,以对象的集合类作为处理问题的基本单位,尽可能使计算机世界向客观世界靠拢,以使问题的处理更直截了当,面向对象方法是用类的层次结构来体现类之间的继承和发展。

(三)数据处理方式与控制程序方式不同

结构化方法是直接通过程序来处理数据,处理完毕后即可显示处理结果,在控制程序方式上是按照设计调用或返回程序不能自由导航,各模块程序之间存在着控制与被控制的关系;面向对象方法将数据与对应的代码封装成一个整体,原则上其它对象不能直接修改其数据,即对象的修改只能由自身的成员函数完成,控制程序方式上是通过“事件驱动”来激活和运行程序。

(四)分析设计与编码转换方式不同

结构化方法强调分析、设计及编码之间按规则进行转换,贯穿软件生命周期的分析、设计及编码之间实现的是一种有缝的连接;面向对象方法从分析到设计再到编码则采用一致性的模型表示,贯穿软件生命周期的分析、设计及编码之间是一种平滑过程,即实现的是一种无缝连接。

四、结构化方法和面向对象方法各有优缺点

(一)从执行效率来说

结构化方法比面向对象方法,产生的可执行代码更直接,更高。所以对于一些嵌入式的系统,结构化方法产生的系统更小,运行效率更高。

(二)从重用性方面来说

采用结构化方法的系统难以修改和扩充。结构化分析与设计清楚定义了系统的接口,当系统对外界接口发生变动时,往往造成系统结构较大变动,难以扩充新的功能接口。采用结构化方法的系统可复用性较差。结构化方法将数据和操作分离,导致一些可重用的软件构件在特定具体应用环境才能应用,降低了软件的可重用性。面向对象方法具有很好的重用性。在遇到类似的问题,通过应用了抽象继承等技术,来重用代码。

(三)从程序语言编译器来说

面向对象方法,通过编译器实现代码的面向对象性。也就使说经过编译器后,代码会被翻译为相对应的结构化代码。所以要熟练开发,还要懂一定的结构化方法做为基础。

(四)从掌握难度来说,面向对象方法比结构化对象方法复杂,难于理解

面象对象方法的内容广,概念多,而且很多都是难于理解,做到精通更加不易。应用面向对象方法,常常需要一种支持的分析,设计方法,如RUP 方法,敏捷方法等。这些知识抽象枯燥,难于掌握。面象对象方法要经过长期的开发实践才能很好的理解,掌握。相比之下,结构化方法知识内容少,容易上手。

(五)从应用的范围看,结构化方法适用于数据少而操作多的问题

实践证明对于象操作系统这样的以功能为主的系统,结构化方法比较适应它。面向对象方法正好相反,对于数据库,信息管理等以数据为主的而操作较少的系统,用面向对象方法描述要好于结构化方法。

五、结语

综上所述,软件开发的目标是以最小的代价开发出满足用户需求的软件。为此,根据系统的实际需求,分别针对具体情况选择采用不同的设计方法,可以充分发挥面向对象与结构化方法各自的优势。目前在大多数软件系统的分析设计过程中,这两者方法都兼而有之。

上一篇:融合喀纳斯景区文化开发旅游新产品 下一篇:浅析互联网思维对传统商业管理的冲击