浅谈结构化方法和面向对象方法的理解

  人对于世界的认识是不断的在深化的,人对于世界的改造方式也是在不断的改变的,在程序的世界里,并没有一种绝对的对,或者错,也没有绝对的好或者是坏,只要能解决一个问题,那这个方法就是可行的,就是好的,所谓结构化方法,又或者是面向对象的方法,都是人们在对世界的客观理解变化之后,所采取的一些反应,都是对这个社会的不同角度的理解,又或者说是对于解决问题从不同的角度提出来的一些解决办法,并没有根本上的对错之分,也不会说某种方法从此不会再有用武之地,退出历史舞台。

通过从概念上,本质上我们来对比面向对象方法和结构化方法,我们可以更好的理解这两种方法,也可以在以后的工作中更好的运用这两种方法。

结构化方法,是一种直观的用分析的观点来解释世界的方法,当我们遇到一个问题的时候,如果用结构化的方法尝试去解决这个问题,核心思想就是分层次,通过将一个问题不断的分层,用结构化的方法去解析,逐步降低难度直到达到最后解决问题的目的。在分解的过程当中,每个阶段都在人们的控制处理之下。

面向对象方法的解答问题的思路和结构化方法的不一样,总的来说更加关注于宏观和泛型一些,产生的主要原因是人们想要通过解答一个问题达到能同时解决其他同类问题的目的,能做到触类旁通,做到少些无聊代码的目的,让程序员的精力主要集中在调试有效代码上,这样就能提高程序员的工作效率。面向对象通过对于问题所产生的环境的理解,通过建立对象。将问题的参与者对象化,将问题的描述转化为对象的交互之中,这样是和人们认识世界的方式是一致的,譬如我们想象某件事情的时候,如烧菜,我们先想象到的是食材,锅,炉子等等之类的材料,然后才想到的是整个炒菜的过程,我们更加倾向于每个对象的属性,而整个过程则是通过对象之间的交互来理解完成的,相较而言,面向过程的思考方式则是:先准备食材,炒菜等等,一些过程,如果说我们完成了一个炒饭的程序,用结构化的方法来写,那如果再需要再写一个炒菜的程序,改动可能会非常的多,但是如果我们用面向对象的方法来写,那样修改起来会很简单,我们只需要修改饭这个对象的属性,将它改成对应的菜的属性,就基本完成了整个程序改造的工作量,因为两个过程其实差不多,差的只是对象的不一样。通过面向对象的思维方法,的确可以较好的做到通过程序描述这个世界的目的,让编程的难度降低了许多。

  就我个人的理解而言,面向对象的方法更加倾向于规范化、统一化,更好的维护管理、移植,而结构化的思想更加的灵活,更加的难以预料,但是解决问题更加精细,也更加具有针对性,很多情况下可能会更加迅速一些。结构化方法产生的时间比较早,而且面向对象方法大有后来者超越前者的势头,然而这并不意味着结构化方法的没落,结构化方法依然有很大的用武之地,譬如算法分析的领域,很多时候我们只需要过程化的描述算法,测试一个算法的效率,如果说用面向对象的那一套很多时候就会显得很是拖沓、繁重,用过程化的方法来写就会显得很精简,很实用。而在工业应用领域,我们更多的是适用面向对象的方法,为了便于管理,为了解决更加复杂的问题,在注重效率的同时更加注重鲁棒性。

  面向对象方法是以面向对象思想为指导进行系统开发的一类方法的总称。这类方法以对象为中心,以类和继承为构造机制来抽象现实世界,并构建相应的软件系统。面向对象方法也有一定的缺陷型,就是不同的人用面向对象的方法设计出来的软件可能会有天然之别,无论从结构方面来看还是从效率方面,都有很大的差距,原因就是不同的人对于一个问题往往有不同的理解方式,设计出来的对象往往是不同的,优秀的设计人员往往设计出来的架构非常优美,而差劲的设计人员往往也能拿出一款方案,但是结果往往是不尽人意的,而结构化方法设计出来软件可能效率要好一些,虽然不同的人写出来的东西层次也有很大区别。

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

  结构化的方法设计出来的产品往往精细度方面有一定的保证,但是结构化方法往往缺少一种对于全局性的把握以及对于未来变更的一些把握,适应性会比较弱。结构化方法主要包括三个方面:结构化分析、结构化设计、结构化程序设计三部分。结构化分析主要包括:对当前的数据进行分析,做出数据流图DFD,然后利用DFD对数据处理等过程进行分析。结构化设计主要包括:将数据流图所示的信息转换成程序结构的设计描述。在这一阶段,首先是通过需求分析的结果,构造出一个具体的系统设计方案,然后在总的设计基础上,确定每个模块的内部结构和算法,生成每个模块的程序流程图。结构化设计的基本原则主要包括:抽象原则、分解原则、模块化原则。

  结构化方法是强调过程抽象化和模块化,以过程为中心构造或处理客观世界问题的,它是一种面向过程的开发方法;面向对象方法强调把问题域的要领直接影射到对象及对象之间的接口上,是用符合人们通常的思维方式来处理客观世界的问题。结构化方法把客观世界的问题抽象成计算机可以处理的过程,处理问题的基本单位是能清晰表达过程的模块,用模块的层次结构概括模块或模块间的关系和功能;面向对象方法是用计算机逻辑来模拟客观世界中的物理存在,以对象的集合类作为处理问题的基本单位,尽可能使计算机世界向客观世界靠拢,以使问题的处理更直截了当,面向对象方法是用类的层次结构来体现类之间的继承和发展。

  综上所述,软件开发的目标是以最小的代价开发出满足用户需求的软件。为此,根据系统的实际需求,分别针对具体情况选择采用不同的设计方法,可以充分发挥面向对象与结构化方法各自的优势。目前在大多数软件系统的分析设计过程中,这两种方法都兼而有之。笔者以为,开发者在开发实践中, 从实际出发, 考虑执行效率、开发者的技术水平、系统规模、是否为易需求变化的系统等因素, 尽量利用它们各自的优点, 避免他们的缺点。如对于开发一些小型嵌入式实时监控系统或同等稳定小系统, 可用结构化方法;对于开发入门者, 使用结构化方法和面向对象方法相结合;对于大型系统或者需求易变系统,使用面向对象方法。总之,根据实际出发, 选取合适的软件开发方法, 达到最佳的开发效。

时间: 2024-10-24 17:25:38

浅谈结构化方法和面向对象方法的理解的相关文章

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

一. 引言 在软件开发过程中,有很多不同的软件开发方法.选取合适的软件开发方法,对于软件开发的过程和结果有着非常重要的影响.我们知道自软件工程发展以来诞生了很多不同的软件开发方法,例如具有代表性的结构化方法.面向对象方法,以及其他的原型法.面向数据结构的Jackson方法.基于模型的VDM方法等.而结构化方法和面向对象方法在软件开发过程中的应用是最广泛的,因而了解两者的区别与联系,并将两者更好的结合是长期以来软件开发人员津津乐道的话题.所以我们今天来探讨一下结构化方法与面向对象方法之间的一些区别

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

结构化方法与面向对象方法浅析   在目前的软件开发领域,结构化方法和面向对象方法是两种比较流行的方法.在过去两年多时间里,我们也对这两种方法进行了学习和实践,下面谈一谈自己对这两种方法的理解.   结构化方法   结构化方法是一种比较传统的软件系统开发方法,主要思想是分析问题确定软件功能,之后将整体功能划分成不同的功能模块,然后将实现之后的模块拼接结合在一起,是一个先分再和的过程.功能分解可以使软件条理清晰,将复杂的问题拆分成相对简单的小问题也便于实现. 结构化方法注重算法和数据,程序过程可以看

浅谈设计模式3-模板方法模式

模版方法模式,个人认为还是用处比较多的一个设计模式,而且也是比较好学和理解的一个.依然来通过模拟一个场景来慢慢了解. 现在我们来实现一下泡茶这个过程.首先我们需要烧开一壶水,然后往茶壶中放茶叶,加入开水,等待茶泡好. 经过前两次的分享,大家应该具备了基本的面向对象的思想了,这里就不再用面向过程的方式演示了. 首先,有一种普通人,他泡茶的方式是这样的 public class Common     { public void MakeTea()         {             Heat

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

学习过C语言和JAVA的同学们一定清楚,这两种语言代表了两种不同的开发方式,即以C语言为代表的结构化开发方法和JAVA代表的面向对象的开发方法.由于二者在程序结构上有着很大的区别,因此,在软件开发领域中,根据自己的需求来选择合理的开发方式就显得尤为重要. 开发软件通常有三个层次: 1.满足用户需求 2.可维护性,即可修改性,让软件能随着用户需求的变更而容易改变 3.可重用性(在其它软件中,能尽量重用该软件的模块) 通过对软件的这三个主要层次的分析,我们就能在实际开发中确定我们的选择. 结构化方法

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

结构化方法和面向对象方法的比较 结构化方法 1概述        结构化方法(SD方法)是一种传统的软件开发方法,它是由结构化分析.结构化设计和结构化程序设计三部分有机组合而成的.它的基本思想:把一个复杂问题的求解过程分阶段进行,而且这种分解是自顶向下,逐层分解,使得每个阶段处理的问题都控制在人们容易理解和处理的范围内. 2基本思想 结构化方法的基本要点是:自顶向下.逐步求精.模块化设计.结构化编码. 结构化分析方法是以自顶向下,逐步求精为基点,以一系列经过实践的考验被认为是正确的原理和技术为支

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

在软件开发的过程中,采用的开发方法主要有两种,分别为结构化开发方法和面向对象的开发方法,本文将对两种开发方法进行介绍和比较. 一.      结构化方法介绍 结构化方法,即面向过程开发是最早最传统的软件开发方法,由结构化分析,结构化设计和结构化程序设计三个部分有机的组合而成,它将软件分为多个过程进行开发,是迄今为止信息系统中应用最普遍,最成熟的一种软件开发方法. 1.1结构化分析 结构化分析(SA)是一种面向功能或面向数据流的需求分析方法,它是结构化方法中的一部分,是由1960到70年代的系统分

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

结构化方法与面向对象方法之比较 姓名  周子硕   学号  14061031 软件开发的过程中,结构化方法和面向对象方法先后被提出,为解决不同的软件开发问题带来了不同的思路.下面是对于结构化方法和面向对象方法的认识和比较. 结构化方法的基本要点是对现实世界的营运问题进行分解,面向过程设计问题空间的解域,强调自顶向下.逐步求精.模块化设计.结构化方法将待解决的问题看做一个系统,从而用系统科学的思想方法来分析和解决问题.结构化方法循序以下基本原则: 抽象原则: 抽象原则是一切系统科学方法都必须遵循的

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

结构化方法 结构化方法是一种传统的软件开发方法,这种方法强调的是自顶向下.逐步求精.模块化设计.结构化编码的思想与要点.结构化软件开发方法可以说是最早的软件开发方法,同时也是到现今开发应用中比较普遍.比较成熟的软件开发方法,由结构化方法所引入的工程与结构化的思想对于软件的设计.开发与编写都有很大的影响. 结构化方法中自顶向下的思想将程序的设计分层,将程序的功能分解,程序变成了一种逐步向下,从概况到详细的过程.而结构化方法中的模块化设计将程序所需要的各种功能分解,将一个系统划分为若干个模块,每一个

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

结构化方法与面向对象方法的比较 引言 结构化方法(SD方法)是一种传统的软件开发方法,它是由结构化分析.结构化设计和结构化程序设计三部分有机组合而成的.它的基本思想:把一个复杂问题的求解过程分阶段进行,而且这种分解是自顶向下,逐层分解,使得每个阶段处理的问题都控制在人们容易理解和处理的范围内. 面向对象方法(Object-Oriented Method)是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称OO (Object-Oriented)方法,是建立在"对象"