`
sunguanxing
  • 浏览: 1097469 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

OOAD(Object Orient Analysis Design,面向对象的分析和设计,面向对象分析与设计)

阅读更多
http://baike.baidu.com/view/1076468.htm

OOAD(Object Orient Analysis Design,面向对象的分析和设计,面向对象分析与设计)是现代软件企业广为采用的一项有效技术。OOAD方法要求在设计中要映射现实世界中指定问题域中的对象和实体,例如:顾客、汽车和销售人员等。这就需要设计要尽可能地接近现实世界,即以最自然的方式表述实体。所以面向对象技术的优点即为能够构建与现实世界相对应的问题模型,并保持他们的结构、关系和行为为模式。
  大师说:"没有不变的需求,世上的软件都改动过3次以上,唯一一个只改动过两次的软件的拥有者已经死了,死在去修改需求的路上。"
  目前众多的软件项目有什么样的问题呢?早些时候上ERP的企业在企业发展的时候发现原有的ERP系统需要改进,可是要改进或者是更改现有的ERP系统,唯一的方法就是重新开发一个ERP系统。这对于企业来说是笔不小的支出。此时,落后的信息系统就成为制约企业发展的重要因素。是什么原因造成了这种情况呢?主要的因素是传统的系统分析是在假定需求不变的情况下进行的,这样可以把企业的资源配置到最优的程度。可是在现代瞬息万变的社会,一个企业固守旧有模式,势必会在竞争中处于劣势(因此现在也出现了"组件化"的ERP,这是题外话)。既然企业的需求是变化的、不稳定的,那么以变化的需求为基础建立起来的企业信息系统当然也就不稳定了。这时候,有个问题就产生了,前面我们已经说过,需求是项目的根本,既然需求都是不稳定的,那么何以建立起稳定的企业信息系统呢?
  要回答这个问题,首先要比较面向过程和面向对象的开发方法的差别,传统的面向过程的开发方法在前20年大行其道,为中国企业的信息化建设立下了汗马功劳。之所以称为面向过程,是因为开发的焦点集中于过程,开发者集中于以函数为核心的过程,例如前些年很多人试图编写一些通用转账函数来满足银行的需求。面向过程的开发语言包括:Cobol、Pascal、C及C的变形语言。面向对象的概念是在近10年才进入中国的,而它的思想至今也没有真正意义上得到普及。简单的说,面向对象就是面向世界,世界上的任何事物都是对象,因此面向对象是很自然的思想,是符合我们的思维习惯的。面向对象的语言包括了Smalltalk、C++、Java,还有Object Pascal,以及刚刚诞生的C#。
  需求是不稳定的,那么需求之中是不是没有稳定的东西呢?有的,就是对象。世界都是由对象组成的,而对象都是持久的,例如动物、植物已经有相当长的时间。虽然对象也在变化,动物,植物也在不断的进化。但对象在一个相当长的时期内都存在,动植物的存在时间肯定比任何一家企业长久。面向对象的开发方法的精髓就是从企业的不稳定需求中分析出企业的稳定对象,以企业对象为基础来组织需求、构架系统。这样得出的系统就会比传统的系统要稳定得多,因为企业的模式一旦变化,只需要将稳定的企业对象重新组织就行了。这种开发的方法就被称为OOAD(Object Orient Analysis & Design 面向对象的分析和设计),而分析出的企业对象就被称为Common Business Object。
  围棋与OOAD的几个相似点:
  活棋与对象
  一块活棋至少有两个眼位,一个对象或类(有用的)至少要有一个属性和一个方法。眼位表明了这块棋存在的理由,属性和职责同样表明了一个对象存在的理由。
  简单与复杂
  围棋构成简单,一黑一白,以简单构建复杂,与对象方法的理念相同。
  棋盘与边界
  围棋的棋盘有边界,系统有系统边界。
  定式与模式
  下围棋有定式,面向对象方法有分析模式和设计模式。都是个中高手们长期实践的经验结果。
  当然更主要的相似之处,应该在方法和过程上。围棋谁都会下,不就是在棋盘上圈地,看谁圈的多吗。但是高手与低手的水平却有天壤之别。例如:
  1、 围棋忌讳把棋下成"愚形",就是一大块棋坨在一起,行棋效率不高,对于对象就是紧耦合,一个复杂的对象负担太重,??围棋高手能够灵活运用各种定式和"手筋",看到两颗子,就能推测以后的种种演化,一个面向对象的设计高手可以灵活地运用各种设计模式,画几张图就能描绘未来的宏伟系统;
  3、 围棋有"金角银边草肚皮"的说法,在系统分析中首先根据系统边界来确定系统的主要功能和外部接口也是最有效的做法,俗称"用例驱动"。
  4、 围棋有"大场",强调大局观,系统分析也要求分析人员把握全局,从错综复杂的业务逻辑当中洞察最主要的矛盾。
  整个行棋的过程都是演进的、逐步精化的,每一阶段没有明显的区分。针对主要需求的设计可以首先完成,阶段性设计成果一旦确定,就可以转移到下一个"大场"。符合面向对象方法的"统一过程"理论。
  开局与需求分析
  下棋的两个人好比一个是分析师,一个是用户,开始谁也不知道谁想干什么,通过一问一答的方式明确需求。高手的对话只需要寥寥几子就知道对方的路数,有经验的分析师几个回合就对系统了然在胸。
  布局与架构设计
  至于布局选择"中国流"还是"韩国流",就相当于系统架构是DotNET还是J2EE,都是根据用户具体的需求和设计师的临场判断做出的。
  中盘与详细设计
  根据架构展开对象和类的设计,棋盘上渐渐浮现一块块活棋的模样。经过几轮不断的"精化"和"转换",大局已定。至于关子,就是编码阶段,交给程序员去做吧。
  最后,如果你能够从棋盘上看出一幅对象交互图来,那么恭喜你,你快走火入魔了。
  如果继续列举,可能还能发现不少相似之处,可是这样不免有生拉硬扯之嫌,也不是我写这篇文字的本意。下围棋与系统设计都是需要高超智慧的,其中蕴涵着丰富的方法论和哲理。经常听说,有围棋高手宁可输棋,也不愿下出形状难看的棋来,他们称之为艺术,看着棋盘上一块块活棋,简洁而高效,互通而互动,他们感觉到一种享受。而优秀的设计又何尝不是一种艺术呢,一个由对象构成的系统,每个对象都各司其职,消息在其中合理而流畅的传递着。你不觉得也是一种享受吗?
  而其中最为高妙的地方就在于"平衡"。高手对局,胜负往往只有半目,棋盘上双方棋子的分布和契合可以用完美来形容,这就达到了平衡的极至,此时输赢已经不重要,弈者已经得到了他所要的。
  平衡是一种美。
分享到:
评论

相关推荐

    面向对象分析与设计课件(OOAD、英文)

    面向对象分析与设计(Object-Oriented Analysis and Design,简称OOAD)是软件工程领域中的一个核心概念,它强调在软件开发过程中,以对象作为基本的思考和组织单元,通过分析现实世界的问题来构建软件模型。...

    面向对象分析设计OOAD.zip

    面向对象分析与设计(Object-Oriented Analysis and Design,简称OOAD)是软件工程领域中的一种重要方法,它强调在软件开发过程中,以对象作为基本的思考和组织单元,通过分析问题域中的实体及其相互关系,来构建...

    面向对象分析与设计(第3版).pdf

    本书旨在为读者提供一套完整的面向对象分析与设计(OOAD)的方法,并结合实际应用案例来帮助读者深入理解面向对象的核心概念和技术。 #### 面向对象分析与设计概述 面向对象分析与设计是一种软件开发方法,它强调...

    面向对象分析与设计.pdf

    由于提供的文件内容不包含实际的文本信息,而是重复的URL链接,因此无法从该部分提供有关面向对象分析与设计(OOAD)的知识点。但是,我将尽可能详细地介绍面向对象分析与设计的相关知识点,以满足您的需求。 面向...

    UML 面向对象分析与设计 5份期末试卷(附答案)

    面向对象分析与设计(Object-Oriented Analysis and Design, 简称OOAD)是软件开发过程中的关键步骤,它结合了模型驱动工程(Model-Driven Engineering)与统一建模语言(Unified Modeling Language, UML)等现代...

    面向对象分析与设计(第3版)

    在处理复杂系统时,Booch 等作者提出了一种系统化的新方法,结合了面向对象分析与设计(OOAD)和UML,来构建系统的架构。这种方法强调了系统架构的重要性,使得整个系统的构建过程更为清晰和有序。此外,书中还对对象...

    面向对象分析与设计OOAD课件(北大青鸟内部培训课件)

    面向对象分析与设计(Object-Oriented Analysis and Design,简称OOAD)是软件工程领域中的一种重要技术,它主要用于构建复杂、可维护的软件系统。本课件是北大青鸟内部培训材料,全面且深入地讲解了面向对象的理论...

    面向对象分析与设计(第3版) Object Oriented Analysis And Design With Applications 3Rd Edition

    理论部分深刻剖析了面向对象分析与设计 (OOAD)的概念和方法。应用部分连续列出了5个不同类型、不同领域的应用,描述如何从初始阶段到移交阶段将OOAD理论和方法应用到项目中。应用部分所涉及的领域包括系统架构、数据...

    面向对象与分析习题及答案

    面向对象与分析(Object-Oriented Analysis and Design,简称OOAD)是软件开发过程中至关重要的一个环节,它结合了面向对象编程的思想与分析方法,旨在提高软件系统的可维护性、可扩展性和复用性。本资源包含的是...

    面向对象分析与设计(pdf,ppt)

    8. 面向对象设计(OOD):在分析之后,设计阶段开始,其目标是创建系统的架构,定义组件及其相互作用。OOD涉及到选择合适的设计模式,创建类的详细结构,以及考虑性能、可扩展性和可测试性等因素。 9. UML工具:在...

    面向对象分析与设计 grady著 中文版(第三版)

    根据提供的文件信息,有关《面向对象分析与设计 Grady 著 中文版(第三版)》的知识点将围绕面向对象分析与设计(Object-Oriented Analysis and Design, 简称OOAD)的主要概念进行详细说明。由于提供的部分内容重复...

    《面向对象分析与设计》是高等院校计算机软件和相关专业的一门必修课。

    面向对象分析与设计(Object-Oriented Analysis and Design,简称OOAD)是计算机科学领域中一个核心的概念,尤其在软件工程中占据着重要的地位。它是一种系统化的方法,用于理解和构造复杂的软件系统,通过模拟真实...

    面向对象分析与设计课程设计任务书.pdf

    面向对象分析与设计(Object-Oriented Analysis and Design,OOAD)是软件工程领域的一种方法论,专注于如何通过面向对象(Object-Oriented,OO)的方法来分析和设计软件系统。面向对象的方法强调对象是系统的基本...

    面向对象分析与设计电子教案

    面向对象分析与设计(Object-Oriented Analysis and Design,简称OOAD)是软件工程领域中的一个核心概念,它主要用于构建复杂、可维护的软件系统。本教程“面向对象分析与设计电子教案”针对初学者,旨在帮助他们...

    面向对象分析与设计 uml设计

    面向对象分析与设计(Object-Oriented Analysis and Design, OOAD)是软件开发过程中至关重要的一个环节,它结合了面向对象编程的思想与方法,旨在创建高效、可维护且易于理解的软件系统。在这个过程中,UML...

Global site tag (gtag.js) - Google Analytics