面向对象技术基础统一建模方法(UML)DQ_第1页
面向对象技术基础统一建模方法(UML)DQ_第2页
面向对象技术基础统一建模方法(UML)DQ_第3页
面向对象技术基础统一建模方法(UML)DQ_第4页
面向对象技术基础统一建模方法(UML)DQ_第5页
已阅读5页,还剩138页未读 继续免费阅读

下载本文档

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

文档简介

1、北航软件所 李虎版权保护未经作者书面许可不得以任何形式复制和传播面向对象技术基础第二部分 统一建模方法浅介北京航空航天大学软件工程研究所李虎L北航软件所 刘超对象入门 - 2 UML建模方法概述建模技术概述UML的来源UML概述北航软件所 刘超对象入门 - 3建模的基本目的模型是对事物的一种抽象。 人们常常在正式建造实物之前,先建立模型,以便更透彻地了解它的本质,抓住问题的要害建模的目的是为所要建造的复杂系统预先绘制(或制作)一个具体的、简明易懂的模型(或原型),以便在着手解决一个复杂问题之前,对解决方案进行检测用于同客户和其他相关人员进行交流加强视觉效果对复杂问题进行适度简化北航软件所 刘超

2、对象入门 - 4 建模技术要点建模技术要点u构造模型的基本技术是抽象,应突出与问题有关的特征,构造模型的基本技术是抽象,应突出与问题有关的特征,将与问题无关的性质略去。将与问题无关的性质略去。u不必追求绝对的真实和完全,只需从期望的目的角度看其不必追求绝对的真实和完全,只需从期望的目的角度看其是否充分。是否充分。u应当刻画问题的关键方面,略去相对次要的因素。应当刻画问题的关键方面,略去相对次要的因素。u建模语言应支持人的由模糊到清晰、由粗到细逐渐完善的建模语言应支持人的由模糊到清晰、由粗到细逐渐完善的认识过程。认识过程。u应采用可视化图形建模语言。应采用可视化图形建模语言。北航软件所 刘超对象

3、入门 - 5 系统的多态性系统的多态性u在功能和性能方面:功能正确,性能良好(效率要高)。在功能和性能方面:功能正确,性能良好(效率要高)。u在非功能方面:鲁棒性、可扩充性、可再用性、兼容性、在非功能方面:鲁棒性、可扩充性、可再用性、兼容性、可移值性、可验证性、完整性以及易使用性等方面要好。可移值性、可验证性、完整性以及易使用性等方面要好。u 一个系统应具有多方面的特点:一个系统应具有多方面的特点:u 一个系统要从多个视角去描述。一个系统要从多个视角去描述。u 一个视图可能包含多个模型图,每张模型图都应当简单明了,易于一个视图可能包含多个模型图,每张模型图都应当简单明了,易于交流。交流。u U

4、MLUML:重点是针对系统的重点是针对系统的“功能性功能性”北航软件所 刘超对象入门 - 6What we look for?techniques to improve quality and reduce cost and time-to-market, include component technology visual programming patterns frameworks also, techniques to manage the complexity of systems as they increase in scope and scale.北航软件所 刘超对象入门 -

5、 7什么是UML?UML 1.3: The Unified Modeling Language (UML) provides system architects working on object analysis and design with one consistent language for specifying, visualizing, constructing, and documenting the artifacts of software systems, as well as for business modeling.北航软件所 刘超对象入门 - 8What does

6、 UML provide? The Unified Modeling Language (UML) is a language for specifying, visualizing, constructing, and documenting the artifacts of software systems, as well as for business modeling and other non-software systems. The UML represents a collection of the best engineering practices that have p

7、roven successful in the modeling of large and complex systems. UML can better fit and support those advanced technologies北航软件所 刘超对象入门 - 9 UML是一种建模语言是一种建模语言u建模方法建模方法 = 建模语言建模语言 + 建模过程建模过程 + 工具。工具。u建模语言定义了用于表示设计的符号建模语言定义了用于表示设计的符号( (通常是图形符号通常是图形符号) );建模过程描述进行设计所需要遵循的步骤。建模过程描述进行设计所需要遵循的步骤。u标准建模语言标准建模语言

8、UML是一种建模语言,而不是一种方法,它是一种建模语言,而不是一种方法,它统一了面向对象建模的基本概念、术语及其图形符号,为统一了面向对象建模的基本概念、术语及其图形符号,为人们建立了便于交流的共同语言。人们建立了便于交流的共同语言。u建模能力:建模方法建模能力:建模方法 + 领域知识领域知识 + 实践实践北航软件所 刘超对象入门 - 10UML概述概述1. 引引 论;论;2. UML的模型图;的模型图;3. UML的基本视图;的基本视图;4. 标准建模过程概述;标准建模过程概述;5. UML的学习方法和应用领域。的学习方法和应用领域。北航软件所 刘超对象入门 - 111. 引引 论论u 为什

9、么有必要统一建模语言;为什么有必要统一建模语言;u UML是一种建模语言;是一种建模语言;u UML的设计目标;的设计目标;u UML的发展历程。的发展历程。北航软件所 刘超对象入门 - 12 为什么有必要统一建模语言为什么有必要统一建模语言u 面对众多的建模语言,用户没有能力区别不同语言之间的差别。面对众多的建模语言,用户没有能力区别不同语言之间的差别。u 在众多的建模语言中,实际上各有千秋,需要取长补短,日臻完善。在众多的建模语言中,实际上各有千秋,需要取长补短,日臻完善。u 虽然不同的建模语言大多相同,但仍存在某些细微的差别,这极大地虽然不同的建模语言大多相同,但仍存在某些细微的差别,这

10、极大地妨碍了用户之间的交流。妨碍了用户之间的交流。北航软件所 刘超对象入门 - 13 UML的设计目标的设计目标 UML是由是由 Booch,Rumbaugh 和和 Jacobson 发起,在发起,在 Booch方法、方法、OMT方法和方法和OOSE方法的基础上,集众家之方法的基础上,集众家之长,几经修改而成。长,几经修改而成。UML的设计目标是:的设计目标是:u运用面向对象概念来构造系统模型运用面向对象概念来构造系统模型( (不仅是针对不仅是针对软件软件) )。u建立起从概念模型直至可执行体之间明显的对建立起从概念模型直至可执行体之间明显的对应关系。应关系。u着眼于那些有重大影响的问题。着眼

11、于那些有重大影响的问题。u创建一种对人和机器都适用的建模语言。创建一种对人和机器都适用的建模语言。北航软件所 刘超对象入门 - 14 UML的主要特点的主要特点u UML统一了统一了Booch,OMT和和OOSE等方法中的基本概念:用例图从等方法中的基本概念:用例图从OOSE来;类图从来;类图从OMT和和Booch等方法来;等方法来;实现图实现图( (构件图和配置图构件图和配置图) )从从Booch的模块的模块图图和过程图来。和过程图来。u UML吸取了吸取了OO技术领域各流派的长处:状态图从技术领域各流派的长处:状态图从 Harel 而来;活而来;活动图从工作流图而来;合作图从动图从工作流图

12、而来;合作图从Booch的对象图和的对象图和Fusion的对象交的对象交互作用图等而来;等等。互作用图等而来;等等。u 在演变过程中在演变过程中UML提出了一些新的概念。提出了一些新的概念。北航软件所 刘超对象入门 - 15 UML的发展历程的发展历程u1994.10,Booch 和和 Rumbaugh 将将 Booch93和和 OMT-2 统一,统一,1995.10.发布发布 UM0.8。u1995年秋,经过年秋,经过 Booch 等三人的努力,等三人的努力,1996.6 和和1996.10发布发布UML0.9和和UML0.91。u1996年成立年成立UML成员协会,有成员协会,有700多公

13、司支持多公司支持UML,占领占领OO市场的市场的 85%。u1997.1发布发布UML1.0,1997.9发布发布UML1.1。u1997.11 OMG采纳采纳 UML1.1作为作为OO技技 术的标准建模语言。术的标准建模语言。u此后,此后,UML的维护工作由的维护工作由Cris Kobryn领导的领导的OMG 版本修改小组版本修改小组RTF ( Revision Task Force)负责负责.u1998.6: UML V. 1.1 (编辑修改版编辑修改版).u1999.6: UML V. 1.3 (技术终订版技术终订版).uUML3.0 目前目前北航软件所 刘超对象入门 - 16 UML的

14、发展历程的发展历程( (续续) )公公众众反反馈馈OOPSLA95 Unified Method 0.8工业化工业化标准化标准化统一化统一化分散的分散的各部分各部分 Booch93 OMT-21996.6和和1996.10 UML 0.9&0.91 1997.11.171997.9公布公布 UML 1.1 1997.1公布公布 UML 1.0合作伙合作伙伴意见伴意见UML 1.1被被OMG 接纳为标准接纳为标准其他方法其他方法 Booch91 OMT-1 OOSE1999.6 UML1.32003.6.12. UML2.0北航软件所 刘超对象入门 - 17Who is OMG? The Obj

15、ect Management Group, Inc. (OMG) is an international organization supported by over 800 members, including information system vendors, software developers and users. Founded in 1989 OMG promotes the theory and practice of object-oriented technology in software development. Primary goals are the reus

16、ability, portability, and interoperability of object-based software in distributed, heterogeneous environments.北航软件所 刘超对象入门 - 18主要参考书(续1) 刘超、张莉,可视化面向对象建模技术-标准建模语言UML,北京航空航天大学出版社,2001.7(第二次印刷), 17.00 姚淑珍等译,UML参考手册,机械工业出版社,2001.1 邵维忠等译,UML用户指南,机械工业出版社,2001.6 周伯生等译,统一软件开发过程,机械工业出版社,2002.1 蒋慧等编,UML Prog

17、ramming Guide-设计核心技术,北京希望电子出版社,2001年4月北航软件所 刘超对象入门 - 19有关的常用网址: OMG home page. Contains specs for UML and related modeling stds, such as MOF and XMI: UML RTF home page. Contains UML spec artifacts, including the UML 1.3 final draft and the RTFs final UML resource page containing links to

18、 specs, pubs, events, and : Rational Products & UML北航软件所 刘超对象入门 - 20Some References of InterestBruce Powel Douglass, Ph.D.Chief Evangelist,I-Logix, Inc.,北航软件所 刘超对象入门 - 212. UML的模型图的模型图两类、九种模型图 静态模型图,又称结构图+可视化、说明、构造和文档化系统静态特性 动态模型图,又称行为图+可视化、说明、构造和文档化系统动态特性北航软件所 刘超对象入门 - 22静态图静态图u 类图类图:展示对象类、接口、及其相互合

19、作与关联:展示对象类、接口、及其相互合作与关联u 包图包图:在:在UML 1.1 以后,它不再被看作一种独立的模以后,它不再被看作一种独立的模型图型图u 对象图对象图:展示对象及其相互之间的关系:展示对象及其相互之间的关系u 实现图:实现图:u 构件图构件图:描述部件的物理结构以及各部件之间的依赖关:描述部件的物理结构以及各部件之间的依赖关系;系;u 配置图配置图:定义系统中软硬件的物理构架。:定义系统中软硬件的物理构架。北航软件所 刘超对象入门 - 23动态图动态图u 用例图用例图: 从用户角度描述系统的行为,并指出各功能的操作从用户角度描述系统的行为,并指出各功能的操作者者u 状态图状态图

20、:描述由事件驱动的系统:描述由事件驱动的系统/对象的状态转移对象的状态转移u 活动图活动图:描述活动之间的控制流:描述活动之间的控制流u 交互图:描述对象之间的交互情况交互图:描述对象之间的交互情况u 顺序图顺序图:重点描述消息发生的事件顺序:重点描述消息发生的事件顺序u 合作图合作图:重点描述各个对象之间收发消息的情况:重点描述各个对象之间收发消息的情况北航软件所 刘超对象入门 - 24 2.1 关于保险业务的一张用例图关于保险业务的一张用例图保险销售人员保险销售人员客客 户户客户统计表客户统计表签署保险文件签署保险文件销售统计表销售统计表1. 领取保险文件;2.讲解保险条款3.填写保单;4

21、.客户和销售代表签字;北航软件所 刘超对象入门 - 25 用例图举例(UML1.1)使用使用贸易经理贸易经理设置边界设置边界更新帐目更新帐目记帐系统记帐系统扩展扩展用例用例执行者执行者使用使用风险分析风险分析交易估价交易估价进行交易进行交易超越边界超越边界-扩展点:大交易量扩展点:大交易量评评 价价营销人员营销人员销售人员销售人员北航软件所 刘超对象入门 - 26用例图举例(UML1.3)包含包含贸易经理贸易经理设置边界设置边界更新帐目更新帐目记帐系统记帐系统泛化泛化用例用例执行者执行者包含包含风险分析风险分析交易估价交易估价进行交易进行交易超越边界超越边界评评 价价营销人员营销人员销售人员销

22、售人员北航软件所 刘超对象入门 - 27用例Use Cases用例用例:是用户与计算机之间为达到某个目的的一次典型交互是用户与计算机之间为达到某个目的的一次典型交互描述用户提出的可见需求包含一组场景:+一个主场景和若干个备选场景场景场景:用户与系统之间的一个交互过程,即为实现这次交互所要经历的一系列步骤以字处理程序为例,“将某些正文置为黑体”和“创建一个索引”便是两个典型的用例用例可大可小例:10人年的项目,20-100个用例北航软件所 刘超例:基用例和扩展用例对象入门 - 28北航软件所 刘超对象入门 - 29北航软件所 刘超用例的描述用例名称目标+内容:用例预达到的业务目标+描述方式:可以

23、用自然语言描述 (“该用例的目的是”描述+内容:-基本工作流程-备选工作流程+描述方式:-最好用半形式化 的方式(“该系统应当”)-也可以用形式化的方式前置条件+该用例执行的前置条件?后置条件+该用例执行之后系统应当满足什么条件?约束条件+其他需求或约束条件对象入门 - 30北航软件所 刘超思考题采用用例模型来描述一个典型软件产品/系统的需求 产品/系统名称: 产品/系统说明: 用例模型: 用例说明: 需求文档:对象入门 - 31北航软件所 刘超对象入门 - 32 用例图中的图符(UML1.3)执行者执行者系统系统用例用例关联关联扩展扩展注释体注释体注释连接注释连接包含包含泛化北航软件所 刘超

24、对象入门 - 33 2.2 静态图:类图、对象图和包图静态图:类图、对象图和包图u静态图包括类图、对象图和包图,用以描述模型中类及静态图包括类图、对象图和包图,用以描述模型中类及其实例之间的静态关系其实例之间的静态关系u类图用于定义系统中的类,包括描述类之间的联系类图用于定义系统中的类,包括描述类之间的联系( (如关如关联、依赖、聚合等联、依赖、聚合等) )以及类的内部结构以及类的内部结构,即类的属性和操,即类的属性和操作作u对象图显示类的对象实例,一个对象图是类图的一个实对象图显示类的对象实例,一个对象图是类图的一个实例例u包图由包或类组成,主要表示包与包、或包与类之间的包图由包或类组成,主

25、要表示包与包、或包与类之间的关系。包图用于描述系统的分层结构关系。包图用于描述系统的分层结构北航软件所 刘超对象入门 - 34 关于金融贸易的一张类图关于金融贸易的一张类图客客 户户有 价 证 券有 价 证 券明细表明细表代理代理1 1.* Owns1.* 1.* HandlesContains0.*0.*证证 券券债债 券券互助基金互助基金股股 票票北航软件所 刘超对象入门 - 35关于保险的一张类图关于保险的一张类图客客 户户保险单保险单代理代理1 1.* Owns1.* 1.* HandlesContains0.*0.*保险保险人寿险人寿险医疗保险医疗保险车险车险北航软件所 刘超对象入门

26、 - 36 类图和对象图类图和对象图类图类图展示类展示类Uses0.1 1.*计算机计算机名字:名字:String内存:内存:Integer作者作者名字:名字:String年龄:年龄:Integer小影:作者小影:作者名字名字 =“王小兰王小兰”年龄年龄 = 32王小兰的家用王小兰的家用PC:计算机计算机名字名字 = “联想联想1+1”内存内存 = 1G王小兰的工作王小兰的工作PC: 计算机计算机名字名字 = “Compaq P4”内存内存 = 2G对象图对象图展示类的实例展示类的实例北航软件所 刘超类和对象的表示:类图和对象图(续)类类 名名(Class Name)类类 名名属属 性性 (A

27、ttributes)类类 名名属属 性性(Attributes)操作操作 (Operations)类的表示类的表示对象名对象名(Object Name)对象名对象名属性属性值值(AValues)对象名对象名属性属性值值 (AValues)方法方法 (Methods)对象的表示对象的表示20071114北航软件所 刘超属性的语法 可见性 名称:类型 = 缺省值 约束特性 可见性:表示该属性对类外的元素是否可见。常用的有公有“+” 、受保护“#”和私有“-”三种。 名称:属性的名称, 是一个字符串。 类型:定义属性的种类(基本数据类型或用户自定义的类型) 缺省值:属性的初始值。 约束特性:描述对属

28、性的约束。北航软件所 刘超补充说明u 客户属性的名称可以定义为一个单独的类:定义名字的属性及其相关的操作;然后在客户类和该属性名称类之间建立关联。u 对于任何一个对象,其每个属性都具有一个确定的值。而且,一般来讲,属性总是单值的。u 目前只须将属性看成是一个小而简单的类,诸如字符串、日期、资金对象以及非对象的值(例如整型和实型)。北航软件所 刘超派生属性派生属性u 派生关联和派生属性是指那些可以根据类图中其他的关联和属性计算得到的关联和属性。u 在说明层,派生表示值与值之间的约束关系。u 图中为属性 duration 加注了派生标记(“/”)表示对这个属性的一种约束。时间段时间段start:D

29、ateend:Date/duration:Date时间段表时间段表北航软件所 刘超操作的语法 可见性 名称(参数表):返回类型表达式约束特性可见性:表示该属性对类外的元素是否可见。常用的有公有“+” 、受保护“#”和私有“-”三种。名称:操作的名称,是一个字符串。参数表:其语法与属性的参数相同,参数个数是任意的。返回类型表达式(可选项):依赖于语言的描述。约束特性:用以描述对此操作的约束。北航软件所 刘超补充说明u 两类操作:不改变类(对象)的可见状态的操作;例如,查询操作仅从类中取值,但不改变其可见状态。改变类(对象)的可见状态的操作称为修改操作。u 查询操作可以按任意的顺序执行,但修改操作

30、的顺序是重要的,如果不按照预定的顺序执行修改操作,有可能得到不同的结果。为了保证这两类操作相互独立,应避免从修改操作中返回值。北航软件所 刘超操作(Operations)与方法(methods)操作(Operations):界面可见性 名称(参数表):返回类型表达式约束特性例:+ Age(Date Today):Integer方法(methods):操作的一个具体的实现class Person String Name;Date Birthday;Integer Age(Date Today) return(Year(Today) - Year(this.Birthday); 北航软件所 刘超

31、可见性可见性u +(Public):公有成员在程序的任何位置都是可见的,系统中的任何对象都可以使用它。u -(Private):私有成员仅可以由定义它的类使用。u #(Protected):受保护的成员仅可以由定义它的类和该类的子类中的对象使用。 对对“Public”、Private”和和“Protected”等三个可见等三个可见性标识符的含义,各种语言都有它自己的规定。性标识符的含义,各种语言都有它自己的规定。UML的定义是:的定义是:北航软件所 刘超角色的多元性u 角色可以具有多元性(一个角色可以有多个对象来扮演)。例如,每一个客户对象可以有零个或多个订单对象。u 多元性的表示。1 表示

32、1.1 ;*代表零到无穷;0.1是选择符,表示没有或仅有1个;一个数;一个范围;数字和范围不连续的组合。 * B A表示表示 A 和零个、一个或多个和零个、一个或多个 B 关联关联0.1 B A表示表示 A 和零个或一个和零个或一个 B 关联关联1.* B A表示表示 A 和一个或多个和一个或多个 B 关联关联1 B A表示表示 A 和一个和一个 B 关联关联北航软件所 刘超泛化的定义泛化的定义 泛化关系定义两个同类(可泛化的)元素之间存在的一般与特殊关系,即一般元素说明了所有同类的特殊元素所具有的共同特性,特殊元素说明的实例带有的该一般元素说明的所有共同特性,并还具有自己的独有特性。 一般元

33、素称作父,特殊元素称作子。 泛化是一种可传递的反对称关系。 可泛化元素:类、用例、其它类元、关联、状态、时间、协作北航软件所 刘超类元(Classifier) 描述结构或行为特性的模型元素 模型中一些概念的总称,这些概念具有身份标识、状态、行为和关系 类元: 类、接口、数据类型 行为概念、环境事物、执行接口的具体化:+ 用例、参与者、构件、节点、子系统、信号北航软件所 刘超泛化(Generalization)泛化(Generalization): 抽象化特化(Specialization): 实例化继承(Inheritance): 泛化关系的一种实现机制 并非所有的泛化关系都适合用继承关系实现

34、北航软件所 刘超继承与泛化u 继承是实现泛化的一种机制。在这种机制中,超类的任何一个子类都须具有其超类的所有行为:不仅要求其操作界面在文法上一致,而且要求其行为在语义上一致。u 当子类中的一个操作重载其超类中相应的操作时,必须确保它提供与超类中的操作相同的服务(内容可以更多或更具体)。u 如没有证明子类的行为是否与父类相同,就试图用继承来实现新类中的行为,当两者不一致时,会导致难以预测的错误。北航软件所 刘超约束规则的语法u 在画类图的过程中,关联、属性和操作等基本要素都要为模型加注约束条件u 约束规则的语法:将约束条件放在括号 中,用自然语言或其他常见的设计语言来描述,其描述要简洁准确u 在

35、理想的情况下,在所使用的程序计语言中,规则应该作为断言来实现,并在调试代码时调用它北航软件所 刘超约束规则实例 if 定货单、客户、信用等级定货单、客户、信用等级=“低低” then 定货单、预付款定货单、预付款 必须是必须是“真真”1* 项项订单项订单项数量:数量:Integer价格:价格:Money确认:确认:Boolean订单订单收到日期收到日期预付款预付款数量数量价格价格发货()发货()结束()结束()北航软件所 刘超聚集和组成的基本概念聚集和组成的基本概念聚集描述类的对象之间的关系是整体与部分“是.的一部分”或“包含.”的关系。组成描述类的对象之间的关系是整体拥有各部分(一个部分对象

36、仅属于一个整体)且部分与整体共存亡:“由组成”。关联是指任意两个对象(或者多个对象甚至一个对象的两种角色)之间的某种联系,聚集和组成都是一种关联。对象入门 - 52北航软件所 刘超聚集和组成的符号聚集和组成的符号对象入门 - 53聚集聚集多边形多边形点点ordered13.*图形属性块图形属性块颜色颜色结构结构11组成组成包包: : 1图形属性块图形属性块多边形多边形点点13.* ordered组成的另一种表示组成的另一种表示北航软件所 刘超 分类和泛化分类和泛化泛化:泛化:u描述基类和子类之间的关系;描述基类和子类之间的关系;u基类和子类之间的属性是可传递的;基类和子类之间的属性是可传递的;

37、u通过泛化可以合并分类。通过泛化可以合并分类。分类:分类:u描述两个子类之间的关系;描述两个子类之间的关系;u子类之间的属性是非传递的;子类之间的属性是非传递的;u不能通过分类合并泛化。不能通过分类合并泛化。北航软件所 刘超多重继承一个类可能有多个基类实例:对象入门 - 55车车船船两栖车两栖车北航软件所 刘超对象入门 - 56多值分类在单值分类中,一个对象仅属于一个类型多值分类:一个对象具有一组类型(多个类型的向量)性别性别complete女女 人人男男 人人角色角色识别名称识别名称泛化线泛化线人人理疗师理疗师护护 士士医医 生生外科医生外科医生家庭医生家庭医生健康人健康人病病 人人北航软件

38、所 刘超多值分类多值分类( (续续) )识别名称:多值分类中几个子类可以共享同一个识别名称,此时这些子类是互斥的。识别名称用complete标记时,表示这些子类是全集。子类的组合:多值分类可用一条标有识别名称的泛化线将子类进行任意可接受的组合。合法组合有:(女人,病人,护士);(女人,病人);(女人,医生,外科医生)。非法组合有:(病人,医生)和(男人,医生,护士);等等。对象入门 - 57北航软件所 刘超对象入门 - 58多值分类的实现:授权机制 授权机制:组合类型人人理疗师理疗师护士护士医生医生职业职业健康健康病病身体状况身体状况性别性别女女男男北航软件所 刘超动态分类动态分类u 动态分类

39、允许动态改变对象的类型。这种改变在其同类的子类型结构中进行。u 静态分类不允许改变对象的类型。u 静态分类对类型和状态做了明确的区分,而动态分类则合并了这两个概念。u 此图用于说明一个人的职业。因为人的职业可以改 变,因而需要用到动态分类。 工作工作 dynamic推销员推销员工程师工程师管理者管理者人人性别性别complete女人女人男人男人北航软件所 刘超 接口和抽象类接口和抽象类u 接口是一个不带实现的类,它只规定类的外部特性,包括公共属性、操作及其语义,因此只有操作声明而没有方法体和物理存储区。u 抽象类和接口很相似,也只定义接口而推迟定义其实现部分,然而抽象类允许增加一些方法的实现。

40、UML采用斜体表示抽象元素的名称;如果不用斜体字,也可使用abstract约束来表示。北航软件所 刘超接口和抽象类接口和抽象类( (续续) )依赖依赖文本文本编辑器编辑器 toFront()toBack()abstractabstract 窗口窗口Mac Mac 窗口窗口toFront()toBack()Windows Windows 窗口窗口toFront()toBack()u 抽象类允许增加一些方法的实现,但接口必须推迟定义所有的方法。北航软件所 刘超Java示例(示例(Order:LineItem的实现方案)的实现方案)InterfaceCollectionequalsaddOrderL

41、ine Items*InterfaceListgetDependency(requires interface)InterfaceAbstract ListequalsgetaddImplementation(provides interface)AbstractmethodAbstractclassArrayListgetaddoverriding注:Martin Fowler, UML Distilled (3rd Edition)北航软件所 刘超Interface: Ball-and-socket notationOrderLine Iterm*ArrayListListCollecti

42、on北航软件所 刘超 限定关联限定关联u 限定关联是一对多或多对多关联的另一种表示,它通过添加限定符来标识在这个关联的一方出现的多个对象中的每一个对象。例如,紧贴关联目录类一例如,紧贴关联目录类一端的小矩形是一个限定符端的小矩形是一个限定符,它限定目录对象使用文,它限定目录对象使用文件名来标识属于它的每一件名来标识属于它的每一个文件。个文件。文件名文件名目录目录文件文件*限定关联限定关联北航软件所 刘超 关联类关联类u 关联类不仅有名称、有相关对象的角色以及参与这些角色的对象数量(多重性),而且还有属性(如工作时间)、操作以及其他一些特性。关联类关联类雇雇 佣佣Period:dateRange

43、公司公司* 雇主雇主0.1人人使用关联类时,在任何两个相关的对象之间只能存在关联类使用关联类时,在任何两个相关的对象之间只能存在关联类的一个实例。的一个实例。北航软件所 刘超 参数化类参数化类u 参数化类的表达;u 模板的应用;u 注意事项。北航软件所 刘超参数化类的表达参数化类的表达TInsert (T)Remove (T)模板参数模板参数模板类模板类 Set 一个模板可有多个占位符,相当于类的参数。利用模板可以声明任何具有特定类型的元素的集合类。参数化类也叫模板,这一概念特别适用于强类型语言参数化类也叫模板,这一概念特别适用于强类型语言中的集合或群的概念,其表达如图示。图中中的集合或群的概

44、念,其表达如图示。图中T 表示类表示类型参数的占位符。型参数的占位符。北航软件所 刘超模板的应用模板的应用u 模板的应用有两种表示方法,如图所示。其中bind是一种基于细化关系的构造型,表示EmployeeSet 应与 Set的接口一致,即 EmployeeSet 是 Set的一个子类型。Set 模板类模板类 细化细化参数约束参数约束边界元素边界元素EmployeeSet模板参数模板参数TInsert (T)Remove (T) Set(a)(b)北航软件所 刘超构造型构造型u 构造型的定义;u 构造型的表示;u 定义构造型的步骤。北航软件所 刘超构造型的定义构造型的定义u 构造型扩展机制是在

45、一个已定义的模型元素的基础上构造一种新的模型元素的机制,适用于所有类型的模型元素。u 采用构造型扩展机制构造的模型元素叫作构造型的模型元素(构造型元素或构造型);那个被扩展的元素称作它的基元素。构造型可以看作是元模型类型的子类型。u 一个构造型元素与它的基元素并无不同,只是添加了某种新的语义,可以用在它的基元素能够使用的各种场合。北航软件所 刘超构造型构造型(Stereotype)的表示的表示u 构造型用带有一对尖括号的词组来表示,如执行者、使用和扩展等。为增加模型的直观效果,也可采用不同的图符。u 实例:构造型执行者的三种表示符号。执行者执行者营销人员营销人员营销人员营销人员营销人员营销人员

46、北航软件所 刘超构造型举例泛化关系:uses,extend分层概念:概念层,说明层,实现层常用构造型:dynamic,etc.北航软件所 刘超定义构造型的步骤定义构造型的步骤u在定义构造型元素时,需要做两件工作:在定义构造型元素时,需要做两件工作:u 确定图符:在基元素模型符号的基础上,附加确定图符:在基元素模型符号的基础上,附加 构构造型名称或者指定一个图符。造型名称或者指定一个图符。u 定义语义:可以扩展它的基元素的语义,但必须与基定义语义:可以扩展它的基元素的语义,但必须与基元素的语义一致,且不能扩展基元素的文法结构;采元素的语义一致,且不能扩展基元素的文法结构;采用形式化方法、自然语言

47、或其他半形式化方法描述。用形式化方法、自然语言或其他半形式化方法描述。u实例:使用和扩展这两个关系都是泛化关系的实例:使用和扩展这两个关系都是泛化关系的构造型。构造型。北航软件所 刘超对象入门 - 74 2.3 行为图:状态图,活动图行为图:状态图,活动图u 行为图包括状态图和活动图,描述系统的动态模型和组成对象间行为图包括状态图和活动图,描述系统的动态模型和组成对象间的交互关系。的交互关系。u 状态图描述一类对象的所有可能的状态以及事件发生时状态的转状态图描述一类对象的所有可能的状态以及事件发生时状态的转移条件。移条件。u 活动图描述为满足用例要求所要进行的活动以及活动间的约束关活动图描述为

48、满足用例要求所要进行的活动以及活动间的约束关系。使用活动图可以很方便地表示并行活动。系。使用活动图可以很方便地表示并行活动。北航软件所 刘超 状态图状态图u 状态语法和转移语法;状态语法和转移语法;u 状态的转移条件;状态的转移条件;u 转移条件的互斥性;转移条件的互斥性;u 状态图的基状态表示法;状态图的基状态表示法;u 并发状态图。并发状态图。北航软件所 刘超对象入门 - 76 一部电梯的状态图一部电梯的状态图上升(楼层)上升(楼层)在第一层在第一层上升(楼层)上升(楼层)向第一层下降向第一层下降下降状态下降状态空闲状态空闲状态上升状态上升状态到达到达(楼层)(楼层)到达到达(楼层)(楼层

49、)下降(楼层)下降(楼层)超时超时北航软件所 刘超对象入门 - 77基本文法BT1(int r)r 0 / f(r)event nameguardaction liststateAentry / g(x), h(y)exit / m(a), n(b)do / act(a,y,z)defer / e1, e2e3 / p(x,y), q(z)event parametersentry actionsexit actionsactivitiesdeferred eventsinternal transitionstate name北航软件所 刘超对象入门 - 78组合状态北航软件所 刘超对象入门

50、- 79对象(或系统)并发行为的建模状态图:对象的并发状态拒绝拒绝 状态状态已发货已发货状态状态取消取消 状态状态终点终点已确认已确认状态状态付款确认付款确认 状态状态等待等待 状态状态发货发货 状态状态检查检查 状态状态北航软件所 刘超活动图活动图来源: 活动图主要来源于 Jim Odell 的事件图、SDL状态建模技术和 Petri 网技术活动图的核心符号是活动,通过连接将活动组成活动图对象入门 - 80北航软件所 刘超对象入门 - 81 一台打印机服务器的活动图一台打印机服务器的活动图创建附加文件创建附加文件显示显示磁盘已满磁盘已满的信息的信息显示显示正在打印正在打印的信息的信息磁盘已满

51、磁盘已满 尚有磁盘空间尚有磁盘空间 打印机打印机.打印打印( (文件文件) )删除显示信删除显示信息的对话框息的对话框北航软件所 刘超对象入门 - 82 没有可口可乐没有可口可乐 判断条件判断条件 判定活动判定活动 找到可找到可 口可乐口可乐 活动活动 找到咖啡找到咖啡 没有咖啡没有咖啡 同步条件同步条件找饮料找饮料将咖啡放到将咖啡放到 过滤器中过滤器中取一听取一听可口可乐可口可乐加水到加水到容器中容器中取出取出咖啡杯咖啡杯人人熄灭咖啡炉熄灭咖啡炉 点燃点燃咖啡炉咖啡炉把过滤器放把过滤器放到咖啡炉上到咖啡炉上冲调咖啡冲调咖啡终点终点喝饮料喝饮料倒咖啡倒咖啡并发活动北航软件所 刘超对象入门 -

52、83泳道技术图图10.5 泳道技术泳道技术收到订单选出未付的订单项按订单 分配货物对于被选中的每一订单项*所有未付的 订单项入库 将剩余货物入库认可失败 取消订单付款认可财务管理财务管理订单处理订单处理仓库管理仓库管理收到订单对每一订单项*检查订单项有库存分配订单订购货物需要订购发送订单将库存货物分配给每个订单项并认可付款 北航软件所 刘超工作流程与用例分析:避免混淆!贸易经理贸易经理营销人员营销人员销售人员销售人员记帐系统记帐系统更新帐目更新帐目使用使用扩展扩展设置边界设置边界使用使用风险分析风险分析交易估价交易估价进行交易进行交易超越边界超越边界-扩展点:大交易量扩展点:大交易量评评 价价

53、用例之间没有“流程”关系!北航软件所 刘超活动的活动的元模型元模型 活动的元模型基于活动的元模型基于 SADT 技术,它包含五个元技术,它包含五个元 素:素: 输输入,输出,支持,控制和活动。入,输出,支持,控制和活动。活活 动动控控 制制输输 入入输输 出出支支 持持前置条件前置条件后置条件后置条件北航软件所 刘超活动图的基本要素活动图的基本要素u 活动和组合活动;活动和组合活动;u 特殊活动;特殊活动;u 对对 象;象;u 起点和终点;起点和终点;u 控制流,对象(数据)流,信号流;控制流,对象(数据)流,信号流;u 泳道和时标;泳道和时标;u 注释体和注释连接。注释体和注释连接。北航软件

54、所 刘超活动和组合活动活动和组合活动u 活动:活动图所描述的过程中的某一原子活动活动:活动图所描述的过程中的某一原子活动( (即即不可再被细分不可再被细分) )。u 组合活动:活动图所描述的过程中的某一活动可再组合活动:活动图所描述的过程中的某一活动可再分为成多个活动分为成多个活动( (一般用另一张活动图加以描述一般用另一张活动图加以描述) )的的活动活动。组合活动的定义是递归的。组合活动的定义是递归的。北航软件所 刘超特殊活动:条件判断,同步条,信号接收和信号发送特殊活动:条件判断,同步条,信号接收和信号发送u 条件判断:表示活动流程中的判断。通常有多个信息流从它条件判断:表示活动流程中的判

55、断。通常有多个信息流从它引出,表示决策后的不同活动分支。引出,表示决策后的不同活动分支。u 同步条:表示活动之间的同步。一般有一个或多个信息流向同步条:表示活动之间的同步。一般有一个或多个信息流向它引入,有一个或多个信息流从它引出,表示引入的信息流它引入,有一个或多个信息流从它引出,表示引入的信息流同时到达,引出的信息流被同时触发。同时到达,引出的信息流被同时触发。u 信号接收:若与信号流相连,表示它是某个活动转移的必要信号接收:若与信号流相连,表示它是某个活动转移的必要条件,等价于信息流上的事件标识条件,等价于信息流上的事件标识 。u 信号发送:若与信号流相连,表示在某个活动转移发生时向信号

56、发送:若与信号流相连,表示在某个活动转移发生时向某个对象发送一个信号,等价于信息流上的发送子句。某个对象发送一个信号,等价于信息流上的发送子句。北航软件所 刘超对象入门 - 89 2.4 交互图:顺序图,合作图交互图:顺序图,合作图u交互图包括顺序图和合作图,交互图包括顺序图和合作图,它描述对象间的交互它描述对象间的交互( (动态动态合作合作) )关系关系。u顺序图:用以显示对象之间在时间顺序方面的动态合作关顺序图:用以显示对象之间在时间顺序方面的动态合作关系。因此,如果强调时间和顺序,应当使用顺序图。系。因此,如果强调时间和顺序,应当使用顺序图。u合作图:着重描述对象间的通信方面的动态合作关

57、系。因合作图:着重描述对象间的通信方面的动态合作关系。因此,如果强调通信关系,则可以选择合作图。此,如果强调通信关系,则可以选择合作图。北航软件所 刘超对象入门 - 90 一台打印机服务器的顺序图一台打印机服务器的顺序图: 计算机计算机: 打印服务程序打印服务程序: 打印机打印机: 打印队列打印队列打印机空闲打印机空闲打印(文件)打印(文件)打印机忙打印机忙保存(文件)保存(文件)打印(文件)打印(文件)北航软件所 刘超订货系统的顺序图订货系统的顺序图needsToReorder=“true” new创建创建交付货物交付货物check=“true” new返回返回进货货物进货货物check=t

58、rue remove()needsToReorder()回授回授订单提交窗口订单提交窗口订单项订单项仓库货物仓库货物对象对象check()条件条件订单订单prepare()消息消息迭代迭代* prepare()对象的生命线对象的生命线北航软件所 刘超并发过程、激活和审查失败并发过程、激活和审查失败交易协调人交易协调人beInvalidnewnew交易交易new第二个交第二个交易审查员易审查员failnew第一个交第一个交易审查员易审查员终止检测终止检测kill北航软件所 刘超顺序图的基本要素顺序图的基本要素u 顺序图描述对象之间的动态交互关系,着重体现对象顺序图描述对象之间的动态交互关系,着重

59、体现对象间消息传递的时间顺序。间消息传递的时间顺序。u 顺序图的基本要素:顺序图的基本要素:对象:对象、对象的生命线、激活的对象和对象的删对象:对象、对象的生命线、激活的对象和对象的删除。除。消息:简单消息、同步消息、异步消息、返回消息。消息:简单消息、同步消息、异步消息、返回消息。条件、注释体和注释连接。条件、注释体和注释连接。北航软件所 刘超对象入门 - 94 一台打印机服务器的合作图一台打印机服务器的合作图 打印机忙打印机忙 1.21.2保存(文件)保存(文件): 计算机计算机: 打印队列打印队列1:打印打印(文件)(文件): 打印服务程序打印服务程序: 打印机打印机打印机空闲打印机空闲1.1打印打印(文件)(文件)北航软件所 刘超对象入门 - 95 2.5 实现图:构件图,配置图实现图:构件图,配置图u实现图包括构件图和配置图。实现图包括构件图和配置图。u构件图:描述部件的物理结构以及各部件之间的构件图:描述部件的物理结构以及各部件之间的依赖关系。依赖关系。u配置图:定义系统中配置图:定义系统中( (特别是在分布式及网络环特别是在分布式及网络环境中境中) )软硬件的物理构架软硬件的物理构架。北航软件所 刘超对象入门 - 96 反映程序代码构件之间的依赖关系的构件图反映程序代码构件之间的依赖关系的构件图 main.obj: 主类主类comhnd.obj:命令处理器命令处理器

温馨提示

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

评论

0/150

提交评论