第4章面向对象方法学与UML解析_第1页
第4章面向对象方法学与UML解析_第2页
第4章面向对象方法学与UML解析_第3页
第4章面向对象方法学与UML解析_第4页
第4章面向对象方法学与UML解析_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第4章面向对象方法学与UML面向对象的概念面向对象的软件开发方法UML概述UML的事物UML的关系UML的图使用和扩展UML4.1面向对象的概念面向对象 对象类继承多态消息通信面向对象 Coad和Yourdon给出的定义:面向对象对象类令继承通信如呆一个软件系统是使用这样4个概念设计和实现 的,则我们认为这个软件系统是面向对象的. 一个面向对象的程序的每一成份应是对象,计算是 通过新对象的建立和对象之间的通信来执行的对氯(瞇竝(类对象和实例对象)是面向对象开发模式的 基本成份.每个对象可用它枣身的一“牲去它可以执行的 一俎操作来定义.业一般只能通过执行对象的操作来改变操作又称为方法或服务,它描

2、述了对象执行的功 能,若通过消息传递,还可以为其它对象使用.类(class)类是一组具有相同数据结构和相同操作的对象 的集合类的定义包括一红“属廿在如上的一俎 舍法操作.类定义可以视为一个具有类似特性与共同行为 的对象的模板,可用来产生对象每个对象都是类的实例(Instance),它们都可 使用类中提供的函数.继承(Inheritance)继承是使用既存类做为基础建宜新类的技术. 既存类称为基类.父类或超类,新类称为派生 类或子类.子类除了拥有父类的属性和方法,还可以增加 新的属性和方法.通过覆盖父类的方法,可以对继承来的方法进 行修改,也可以禁用继承来的方法.多杰AMvm叫根据为请求提供服务

3、的对象不同可以得到不同 的行为,这种现象称为多态.在运行时对类进行实例化,并调用与实例化对 象相应的方法,称为动态绑定.后期绑定或运 行时绑定.相应地,如果方法的调用是在编译 时确定的,則称为是静态绑定.前期绑定或编 译时绑定.通过在子类中覆盖父类的方法实现多态.消息是一个对象与另一个对象的通信单元,是要 求某个对象执行类中定义的某个操作的规格说明.发送给一个对象的消息定义了一个方法名和一个 参数表(可能是空的),并指定某一个对象. 一个对象接收到消息,则调用消息中指定的方法, 并将形式参数与参数表中相应的值结合起来.4.2面向对象的开发方法面向对象软件开发方法的特征A方法的唯一性即方法是对软

4、件开发过程所有阶段进行综合 考虑而得到的A从生存期的一个阶段到下一个阶段的高度连 续性即生存期后一阶段的成果只是在前一阶段成 果的补充和修改.把面向对象分析(00A)、面向对象设计(00D) 和面向对象程序设计(OOP)集成到生存期的 相应阶段.Rumbnugh 方法Rumbaugh和他的同事提出的对象模型化技术 (0MT)用于分析、系统设计和对象级设计.分析 活动建立三个模型:对象模型(描述对象、类、层次和关系);动态模型(描述对象和系统的行为);功能模型(类似于高层的DFD,描述穿越系统的 信息流)Cond 和 Y ourdon 方法Coad和Yourdon方法常常被认为是最容易学习的 0

5、0A方法.建模符号相当简单,其00A过程如下:(1) 使用“要找什么”准则标识对象;(2) 定义对票之间的一般化/特殊化结构(又称为分类结 构); 定义对象之间的整体/部分结构(又称为组合结构);(4) 标识主题;(5) 定义对象的属性及对象之间的实例连接;定义服务及对象之间的消息连接.Booch方法包含“微开发过程”和“宏开发过程”两个过 程00A宏观开发过程如下:标识类和对象;标识类和对象的语义;标识类和对象间的关系;A进行一系列精化;实现类和对象。Jacobson 方法也称为OOSE(面向对象软件工程),其特点是特 别强调使用用例用以描述用户和产品或系 统间如何交互的场景.过程如下:标识

6、系统的用户和他们的整体责任构造需求模型构造分析模型4.3 UML概述 UML的产生和发展 UML的特点 UML的基本模型UML的特点UML(Unified Modeling Language)的概念1996年山而向对象方法领域 的二位 * 名 V 家Grady Booch James Rumbaugh和Ivar Jacobson提出 的1996年6丿J和10月分别发布了 UML0.9, UML091997年1丿,UML1.0被提交给对彖管理组织OMG1997年9月,提交UML1.1, 1997年11被OMG采纳作为基于面向对象 技术的标准建模语言。 1998、2000、2001、2003、20

7、05年分别发布 TUML1.2 UML1.3、 UML1.4, UML1.5, UML2.0。 2007年发布了UML2.1.1. UML2.1.2。2009年发布了UML2.2UML的产生和发展统一标准UML不仅统一了Booch. 0MT和OOSE等方法中的基 本概念,还吸取了面向对象技术领域中其他流派的 长处,其中也包括非00方法的影响.已经成为0MG的 标准。面向对象UML支持面向对象技术的主要概念,它提供了一批基本的表示模型元素的图形和方法,能简洁明了 地表达面向对象的各种概念和模型元素UML的特点可视化,表达能力强大UML是一种图形化语言,用UML的模型图形能清晰地 表示系统的逻辑模

8、型或实现模型.UML还提供了语言 的扩展机制,用户可以根据需要增加定义自己的构 造型、标记值和约束等.独立于过程UML是系统建模的语言,不依赖特定的开发过程.容易掌握使用UML概念明确,建模表示法简洁明了,清晰,容易掌握使用.(6)与编程语言的关系支持UML的一些CASE工具(如Rose)可以根据 UML所建立的系统模型自动产生Java. C卄等代码框 架.UML的基本模型x UML符号为开发者或开发工具使用这些图形符号 和文本语法为系统建模提供了标准.这些图形符号和文字所表达的是应用级的模型, 在语义上它是UML元模型的实例.,UML模型由事物.关系和图组成UML的基本模型4.4 UML的基

9、本事物vinchinMZVo|vn|(24.20(12) |iSpdllDROrdvr(C)披 I I用例(j)状态Sev policy .dec対象(k) itMrz Order 、 Management .(g)协作4.5 UML的关系依赖关联泛化实现聚合交合(状态)迁移同步消息 简单消息异步消息依赖关系依赖(Dependency)是两个事物之间的语义关系, 其中一个事物发生变化会影响到另一个事物的语义,它用一个虚线箭头表示.虚线箭头的方向从源审物指向目标事物,表示源 事物依赖于目标事物CourseScheduleaddfczCouie) Curserem(e(c:on rse)依赖关系依

10、*5診科类功舵关健壬1檬包(如用户畀面包|禎赋子了可访树目标色如业务g色的枚限 并可引用目标包中的元素。MSS1鲜Jfe目怵类蹇*械类寰:sig茨加於敛亿为TMM).嫄类長将指疋盜代涣 悝灯巻数而宝成賞轿定工、如7兴芒列沁熄.BflMi用厦冋濒旻中的1十口 F矩花关前dl.WJlH用了龙文在口忖宴O飾得幣tfl ft$虚关的diawhcM友无:|_r1 心心-r: t.-, - n,二”蒸賞所占私方成貝.(UML2.U中浚育)hxnd龙主鹫事A如年器)H以从目标溝如岀生年冃通it计鼻孚出.knve1 mN英(如笹农娄)可创髦目栋娄如虢龜姑与垃的实刮cceate缁化宵一欖型斤累an不悶Wi程复敦

11、干冏谱义廉次的谡岳说!繪如住紺 13)(WWft配1!皿更为神细.lefuK交洌化WJT*茨的实例(创劳丁目斥黄的实洌 W* 而艮还 做了初培化和满足约束的二作.intmituHc依赖关系依貝的科典依功能允许尤许溝事再访何或处理目惊事務(如中的 内客.pciuiitI卖91一个农格询0找的祷Z1)和:K且体姿現(谐賃的型齐現)之阖釦2 捕关釆italueI am一个倍勺笈送君(血电禅竝穷為与佰号接何者咒儀层管遅器ZW 的关礼send农阴携英可以支撷B呼庐前攢口,幷可以在姿型土明为冃好宗前伦方取 枪目标类佬承性和实击性郝可支伶逹科关系.mbstitutc霞用强优;寧竹如电张凶庭菇曜寥正确地an亍

12、护费(包茎曲审、专注、 男例化.发送铮则要*目标事拐(*存在.imc(r)追蘇它连役两个棧里元索,宸明目忻建婷的历史上幻前甩。如龙互和x作迪 是从用料片出的.trace关联关系关联(association)是一种结构关系,它描述了两 个或多个类的实例之间的连接关系,是一种特殊 的依赖.关联分为普通关联、限定关联.关联类,以及聚 合与复合.关联关系一普通关联普通关联是最常见的关联关系,只要类与类之间 存在连接关系就可以用普通关联表示.普通关联 又分为二元关联和多元关联.二元关联描述两个类之间的关联,用两个类之间 的一条直线来表示,直线上可写上关联名.教授A学徒关联关系一普通关联多重性(multi

13、plicity):多重性表明在一个关联 的两端连接的类实例个数的对应关系,即一端的类 的多少个实例对象可以与另一端的类的一个实例相 关.如果图中没有明确标出关联的多重性,则默认的多重性为11 -1个实例0.1 一0到1个实例0.* 或 *-0到多个实例1+ 或 L?-1到多个实例关联关系一普通关联角色:关联端点上还可以附加角色龙,表示类的 实例在这个关联中扮演的角色.UML还允许一个类 与它自身关联.乘务员V冷理多元关联:多元关联是指3个或3个以上类之间的 关联。多元关联由一个羡形,以及由菱形引出的通向各 个相关类的直线组成,关联名可标在菱形的旁边, 在关联的端点也可以标上多重性等信息.关联的

14、就程序员境程语古项HC 卄 CAD周斌Java M姑C+ CADC 卄MIS关联关系一限定关联限定关联通常用在一对多或多对多的关联关系中, 可以把模型中的多重性从一对多变成一对一,或 将多对多简化成多对一.在类图中把限定词(qualifier)放在关联关系末 端的一个小方框内.关联关系一关联类在关联关系比较简单的情况下,关联关系的语义用关联关 系的名字来概括.但在某些情况下,需要对关联关系的语义做详细的定义、 存储和访问,为此可以建立关联类(association class),用来描述关联的属性.关联中的每个链与关联类的一个实例相联系.关联类通过 一条虔线与关联连接.关联关系聚合聚合(Agg

15、regation)也称为聚集,是一种特殊的 关联。它描述了整体和部分之间的结构关系两种特殊的聚合关系:共享聚合(shared aggregation)和复合聚合(composition aggregation).如果在聚合关系中处于部分方的实例可同时参与 多个处于整体方实例的构成,则该聚合称为共享 聚合.剧细o演炳共亨聚合关联关系一聚合如果部分类完全隶属于整体类,部分类需要与整 体类共存,一旦整体类不存在了,则部分类也会 随之消失,或失去存在价值,则这种聚合称为复 合聚合.复合聚合关联关系一导航导航(navigability)是关联关系的一种特性, 它通过在关联的一不端点上加箭头来表示导航的

16、方向.导肮泛化关系泛化(generalization)关系就是一般类和特殊类 之间的继承关系.在UML中,一般类亦称泛化类,特療类亦称特化类.泛化针对类型而不针对实例,因为一个类可以继 承另一个类,但一个对象不能继承另一个对象.泛化可进一步划分成普通泛化和受限泛化两类.泛化关系一普通泛化普通泛化与前面讲过的继承基本相同.但在泛化 关系中常遇到抽象类 一般称没有具体对象的类为抽象类.抽象类通常 作为父类,用于描述其他类(子类)的公共属性和行为.|血切沦悅了卜.泛化关系一普通泛化普通泛化可以分为多重继承和单继承。多重继承 是指一个子类可同时继承多个上层父类。M.恢学妆援泛化关系受限泛化受限泛化关系

17、是指泛化具有约束条件. 一般有4种约束:交叠(overlapping)、不相交 (disjoint)、完全(complete)和不完全(incomplate)实现关系实现(implement)是泛化关系和依赖关系的结合, 也是类之间的语义关系,通常在以下两种情况出 现实现关系:接口和实现它们的类或构件之间;用例和实现它们的协作之间4.6 UML的图 UML规范定义了 6种类型的图:用例类图交互图“状态图活动图实现图用例图1.用例模型用例模型描述的是外部执行者(actor)所理解的系统 功能.用例模型用于需求分析阶段,它的建立是系 统开发者和用户反复讨论的结果,描述了开发者和 用户对需求规格达成的共识在UML中,一个用例模型由若干个用例图来描述,用 例图的主要元素是用例和执行者.用例图是包括执行者、由系统边界(一个矩形)封 闭的一组用例,执行者和用例之间的关联、用例间 关系以及执行者的泛化的图.用例图的建模元素2.用例之间的关系用例之间可以有扩展、使用和组合三种关系 扩展和使用是继承关系(即泛化关系)的两种不 同形式。组合则是把相关的用例打成包,当作 一个整体看待.扩展关系向一个用例中加入一些新的动作后构成了另一个用例,这 两个用例之间的关系就是扩展关系,后者通过

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论