- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二章 面向对象的分析与设计方法
§1面向对象的分析与设计方法的产生和发展
§1.1现实世界中的对象
面向对象的分析与设计方法认为客观存在的、可被感知的、有独立性状的实体都是对象,如汽车、空气、数据库、操作系统等。这种认识观点十分接近于哲学的唯物论观点。而面向对象的分析与设计方法则强调从一个整体的观点上去分析事物。
§1.2面向对象(Object Oriented)概念的起源
面向对象的概念首先是由挪威人Dahl和Nygaard于二十世纪60年代中期提出的,并在1967年推出simulation语言(至今仍有使用)编译器的开发中进行了实验。当时的主要思路是期望能从一个现实的物理模型为基础直接转变为相应的软件模型。
§1.3面向对象理论体系的发展
限于当时的计算机开发条件,自从那次实验之后直到二十世纪80年代中期,面向对象的分析与设计方法的研究陷入了沉寂。而随着二十世纪80年代中期以后计算机硬件的飞速进步和软件开发的更大规模拓展,对能够解决现存方法所带有的各种缺陷的新型软件开发方法的呼声日益高涨。面向对象的分析与设计方法的研究再次被提出,到1991年竟出现了15种不同的理论方法。有代表性的有:
·1989~1991,Sally Shlaer和Steve Mellor出了两本关于OO分析与设计的书;
·1987年,David Harel引入了状态图,用以描述系统或子系统有限状态的变化过程;
·1991~1995,Peter Coad和Ed Yourdon经过研究,开发出了较为简捷的面向原型的分析方法;
·1990年Smalltalk协会开发出了一种称为CRC(Class Responsibility Collaboration)卡的工具用于对象模型的分析过程;
·1991年Jim Rumbaugh小组对象的OMT(Object Modeling Technique)模型,后经Grady Booch作了进一步的完善(主要是符号体系和术语)成为目前公认的最实用化的OO模型;
·几乎在同一年,Ivar Jacobson(当时在为Ericsson服务)为OMT引入了Use Case的概念,成为了后来的UML的基础;
到目前为止,面向对象的分析与设计方法的新概念、新思路、新论点仍在不断的出现。图2-1只是截止到1998年以前的面向对象的分析与设计方法模型理论发展的历程示意图。由于面向对象的分析与设计方法目前还没有国际通用的建模套路,故本书内容所采用的是目前较为成熟的OMT(Object Modeling Technique)建模理论。
图 1-1 面向对象的分析与设计方法模型理论发展的历程示意图
§1.3面向对象的分析与设计方法的优势
之所以会在计算机软件开发中掀起面向对象的分析与设计方法的研究和学用热潮是与面向对象的分析与设计方法相对于传统的面向过程的分析设计方法而存在的明显优势分不开的。在传统的面向过程的分析设计方法中,处理数据的过程部分永远是被动地伴随数据流的变化而变化的。常常是分析数据流的人员并不研发与之相关的处理过程。这种从文档内就明显存在的二者的脱节给日后的维护工作带来了巨大的困难。而面向对象的分析与设计方法在自始至终的环节上都将被处理的数据集合(即对象)及其处理过程紧密的联系在一起,从根本上避免了上述问题的发生。另外,随着软件品种的日益丰富,软件开发商迫切的希望能够充分的利用已有的软件资源,避免对功能雷同或类似的软件部件进行重复开发,从而降低开发成本且提高开发速度。面向对象的分析与设计方法正是适应了此种需要并提出了多种可操作的解决方案。而传统的面向过程的分析设计方法已无法满足这种需要了。在适应多任务环境、并行计算、安全防范等方面,面向对象的分析与设计方法更是有着传统的面向过程的分析设计方法无法比拟的优势。
§2 面向对象的分析法(Object Oriented Analysis)
§2.1 对象(Object)概述
使人类赖以生存的客观物质世界都是由不同的对象所构成的。将一个工业的阀门看作一个软件系统中的对象进行一些深入的分析可能有助于理解对象的概念。一个正常工作的阀门应具有开启、关闭的状态,此时它还会处于内含的液(气)体的压力之下,具备一定的抗压强度。当阀门处在开启状态后,液(气)体还有通过阀门时的流量、温度等对阀门有一定影响的形态的存在。在外力的刺激作用下,阀门的开关可以发生移动而改变内部液气体的流量、压力、温度等直至打开或关闭阀门的状态。如果此种移动定义为开移(即开阀门的移动)或关移(关阀门的移动)两个动作的话,对即非开又非关的移动便可定义为流量调节的移动。因此一个阀门对象的以上特性可以归纳为下述两类:
表现自身所处状态、位置、品质的数据描述;
能够改变自身所处状态、位置、品质的所有的动作行为描述;
因此可以将表现自
文档评论(0)