ImageVerifierCode 换一换
格式:DOCX , 页数:57 ,大小:1MB ,
资源ID:16071463      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16071463.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第二章面向对象的分析与设计方法Word下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第二章面向对象的分析与设计方法Word下载.docx

1、19891991,Sally Shlaer和Steve Mellor出了两本关于OO分析与设计的书;1987年,David Harel引入了状态图,用以描述系统或子系统有限状态的变化过程;19911995,Peter Coad和Ed Yourdon经过研究,开发出了较为简捷的面向原型的分析方法;1990年Smalltalk协会开发出了一种称为CRC(Class Responsibility Collaboration)卡的工具用于对象模型的分析过程;1991年Jim Rumbaugh小组对象的OMT(Object Modeling Technique)模型,后经Grady Booch作了进一步

2、的完善(主要是符号体系和术语)成为目前公认的最实用化的OO模型;几乎在同一年,Ivar Jacobson(当时在为Ericsson服务)为OMT引入了Use Case的概念,成为了后来的UML的基础;到目前为止,面向对象的分析与设计方法的新概念、新思路、新论点仍在不断的出现。图2-1只是截止到1998年以前的面向对象的分析与设计方法模型理论发展的历程示意图。由于面向对象的分析与设计方法目前还没有国际通用的建模套路,故本书内容所采用的是目前较为成熟的OMT(Object Modeling Technique)建模理论。图 1-1 面向对象的分析与设计方法模型理论发展的历程示意图1.3面向对象的分

3、析与设计方法的优势之所以会在计算机软件开发中掀起面向对象的分析与设计方法的研究和学用热潮是与面向对象的分析与设计方法相对于传统的面向过程的分析设计方法而存在的明显优势分不开的。在传统的面向过程的分析设计方法中,处理数据的过程部分永远是被动地伴随数据流的变化而变化的。常常是分析数据流的人员并不研发与之相关的处理过程。这种从文档内就明显存在的二者的脱节给日后的维护工作带来了巨大的困难。而面向对象的分析与设计方法在自始至终的环节上都将被处理的数据集合(即对象)及其处理过程紧密的联系在一起,从根本上避免了上述问题的发生。另外,随着软件品种的日益丰富,软件开发商迫切的希望能够充分的利用已有的软件资源,避

4、免对功能雷同或类似的软件部件进行重复开发,从而降低开发成本且提高开发速度。面向对象的分析与设计方法正是适应了此种需要并提出了多种可操作的解决方案。而传统的面向过程的分析设计方法已无法满足这种需要了。在适应多任务环境、并行计算、安全防范等方面,面向对象的分析与设计方法更是有着传统的面向过程的分析设计方法无法比拟的优势。2 面向对象的分析法(Object Oriented Analysis)2.1 对象(Object)概述 使人类赖以生存的客观物质世界都是由不同的对象所构成的。将一个工业的阀门看作一个软件系统中的对象进行一些深入的分析可能有助于理解对象的概念。一个正常工作的阀门应具有开启、关闭的状

5、态,此时它还会处于内含的液(气)体的压力之下,具备一定的抗压强度。当阀门处在开启状态后,液(气)体还有通过阀门时的流量、温度等对阀门有一定影响的形态的存在。在外力的刺激作用下,阀门的开关可以发生移动而改变内部液气体的流量、压力、温度等直至打开或关闭阀门的状态。如果此种移动定义为开移(即开阀门的移动)或关移(关阀门的移动)两个动作的话,对即非开又非关的移动便可定义为流量调节的移动。因此一个阀门对象的以上特性可以归纳为下述两类: 表现自身所处状态、位置、品质的数据描述; 能够改变自身所处状态、位置、品质的所有的动作行为描述;因此可以将表现自身所处状态、位置、品质等特性的数据描述集中在一起,而将与之

6、相关联全部的动作行为也集中在一起并使其包围数据描述。于是,据此可以绘制出如图2-1所示的阀门对象图。在该图中以直线将不同的动作分割开来。推而广之,客观世界中的所有对象都具有这两类特性。并且对上述内容进一步抽象,将封装于内圆的那些表现对象内部各种所处状态、位置、品质的数据描述的总合称为属性(Attribute或知识);将外包的与属性相关联动作或操作行为的总合称为方法(Method),并将一个具有完整的属性和方法的客观实体称为一个对象(如图2-2)。图2-2的图形通常又被简称为田田圈。具此,前面讨论的阀门可用如图2-2所示的田田圈表示出来。2.2 封装(Encapsulation)由上所述,一个对

7、象中的属性和方法具有极为紧密的联系。每一个方法的行为目标就是田田圈内的部分或全部的属性数据。每个属性成员数据的某个时刻的数值又是前一次方法实施的结果。于是将一个具有完全的内置属性与外置方法的构成体就称为封装。面向对象分析法中所讨论的对象都具有封装的特性。图2-2所示的田田圈也正是一个对象封装的典型形态。实际上将此概念推广至自然界中的对象,封装特性也是同样存在的。封装具有下述的三个特点: 封装将发生关联的所有属性与方法捆绑到一起,形成了具有明确边界的对象布局; 属性内容的改变只受到对象内部方法的作用,与对象边界以外的任何因素的变化无直接关系。 每个对象的方法都不能自主动作,而是由来自对象外的信号

8、或者由来自本对象中另外方法的信号才能触发。2.3 对象方法的引用消息每个对象外层的方法是外界可以看到并能直接引用的。但引用一个对象的方法却要经过特定的访问形式才能实现。这个访问形式便称为消息(Message)。一个消息必须包含下述两项内容: 接收消息的对象标识; 所引用的该对象的方法标识;一个消息可能包含下述另外两项内容: 被访问的方法所需的参数; 在引用完成后可能存在返回信息。因此从上述意义上讲,一个消息的定义又可以叙述如下:促使对象动作的来自外界的触发信息的总和被称为消息。如果一个系统由两个以上的对象所构成的,则发出消息的一方被称为客户方(Client),而接收消息的一方被称为服务器方(S

9、erver)。所以可以得出下述结论:若要使得一个对象产生一个动作或改变某种状态,则必须有一个对象向其发出一个消息。而消息可能返回的信息也必然应回传给消息的发出者。因而这样又称一对消息的发/收方构成了一个客户服务器结构模型(如图2-3所示)。当然,客户方和服务器方并不是一成不变的。在一个系统中通常会因运行条件的不同而相互转变它们之间的角色位置。例1:试将下述C语言语句按对象消息结构予以说明:“double d= 0;d+=2.5;”。解:若视d为一个对象,则“=”和“+=”将是对象d方法中的一员。两式中的数值0和2.5应视为消息所使用的参数(如图2- 4所示)。实际上,题中两个消息的发出者分别是

10、编译器和一个临时存在的对象d。例2:设a= ,b=,c=a+b,试绘其相应的消息传递图。依据上题的分析思路便可获得如图2-5所示的消息流程图。2 对象数据类型的抽象与类如同传统的面向过程分析与设计方法研究问题一样,在面向对象的分析与设计方法中研究的对象应尽量避免使用过于个性化的单个对象作为样本,通常是采用在对分散的、孤立的对象进行抽象之后的而获得的具有同类对象共性的抽象化的对象类进行。2.1 对象的抽象类在面向对象的分析与设计方法中将被抽象化的对象称做类(Class)。这与C语言中的用户自定义数据类型struct结构的情景十分相似。类就如同一个对象的模具,可以制造出一个个装有具体属性数值的对象

11、来。如一个学生对象应有描述学生学号、姓名等属性数据成员;还应有对这些属性数据成员进行输入/输出操作的相应方法。于是可将它们绘制成如图2-6所示的对象生成流图。在现实世界中的对象内的属性和方法可以按数学模型设立访问权限,这些访问权限是通过具体的语言所提供的相应的语法予以支持。由此可得出类的如下特点: 一个类是同一类对象的抽象存在形式,包含全部的属性数据结构及其相应方法的描述但不包含具体的属性数值; 用一个类可以生成多个含具体属性数值的同类的对象; 类的属性成员的值将随对象的不同而不同,而所有的同类对象却只引用一套方法。2.2OMT系统的符号定义为了能够明确地将具体的对象与其抽象形式类相区别,OM

12、T确定用下述两种符号分别代表对象和类:两者之间的主要差别在属性描述上,类中的属性结构描述只要声明属性的类型、长度的等定性结构。而对象中属性值描述则必须给以确定的数值(如图2-7所示)。当要对类的所有成份进行精细描述时可使用如图2-8所示的图符来表述。一个学生类及其对象的描述如图2-9所示2.4应用OMT构建对象模型的基本内容和步骤OMT构建对象模型的步骤是围绕以下三项基本内容展开的:对象模型(Object Model)、动态模型(Dynamic Model)和功能模型(Function Model)。一对象模型所要解决的问题系统中对象的提取与类标注;系统中对象间的关系;对象类中的属性结构和方法

13、的描述;二动态模型所要解决的问题描述系统的控制机制;描述系统的工作形态的变化形式;三功能模型所要解决的问题描述系统内各对象的数据流入/流出形态;描述系统内各对象的数据流入/流出的相应处理过程;OMT作为一种经典的面向对象的分析与设计方法,不仅仅是上述的三个分析与设计步骤,而且还提出的一整套与上述步骤相配套的文档描述格式、图形符号和对象演化技术。这些内容将在后续章节中陆续讨论到。2.5 类间的相互关系 不同类的对象必然要产生相互的关系。这种关系概括起来可分为三类:包容(Aggregration)关系、继承(Inheritance)关系和关联(Association)关系。一包容关系描述 现实当中

14、,一个对象往往可以由一个以上的其他对象所构成。如一个学校由若干学生、课程和教师所构成;而课程可以由数学、外语等不同内容的具体课程所构成(如图2-10示意图所示)。但倘若学校缺了其中一部分 ,则学校的性质就发生了变化。 因此,在一个类中若存在至少有一个属性成员不是简单的数据类型而是另外一个类的关系就被称为包容关系(如图2-11所示)。这些内容 学校 学生 课程 教师 数学 外语 图2-10 学校的包容关系示意都不是用简单的数据类型能够代替的。类的包容关系有下述特点: 包容类含有一个以上的不同于自身特性的类对象,舍此而无法存在; 被包容的类作为包容类的一个必须的组成部分而存在于包容类之中;即具有自身的原有性质,也不受包容类中其它被包容的类对象的影响; 作为包容类的一个

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1