


单击此处编辑母版标题样式,,单击此处编辑母版文本样式,,第二级,,第三级,,第四级,,第五级,,,*,第,6,章,UML,基础,-1,徐 天 宇,,本章内容,面向对象的主要概念,,UML,概述,,用例图,,类图与对象图,,状态图,,活动图,,交互图,,包图,,构件图,,配置图,,UML,的扩展,,6.1 UML,基础,6.1.1,面向对象的主要概念,,1,.对象,,对象(,Object,),是系统中一个用来描述客观事物的实体对象具有自己的静态特征和动态特征静态特征是对象自身所要维护的信息,称为属性,可用值来描述;,,动态特征是对象所表现的行为或对象所具有的功能,称为操作(方法)2,.类,类(,Class,),是一组具有相同属性和相同操作的对象的抽象集合类有一个惟一的标识名一个具体的对象只是类的一个实例,,,,,3,.封装,封装(,Encapsulation,),是指把对象内部信息对外界是隐蔽的,不允许外界直接存取对象的属性,而只能通过有限的接口与对象发生联系4,.继承,继承(,Inheritance,),是指子类(特化类、派生类)可以自动拥有父类(基类、泛化类、超类)的全部属性与操作。
父类与子类的关系是一般与特殊的关系4,.继承,,Reservation,dateExpires,discountCategory,Purchase,productSet,store,,date,ID,Transaction,,多继承,在有些情况下,一个类可能需要同时使用两个以上的父类的属性和操作,或者一个类包含在两个以上的父类的交集之中,则该类将从两个以上的父类中继承属性和操作,这称为,多继承,(,Multiple,Inhentance,)如担任领导的教师,,,多继承,,,5,.消息,消息(,Message,),是指对象之间在交互中所传送的通信信息一个消息应当含有以下信息:,,消息名、,,接收消息的对象的标识、,,调用操作的标识、,,输入信息、,,回答信息,多态性,多态性(,Polymorphism,),是指在基类中定义的属性和操作为其子类继承后,可以具有不同的数据类型或表现出不同的行为多态性,,,6.2 UML,概述,统一建模语言(,Unified Modeling Language,,,UML,),是一个通用的可视化建模语言,用于对软件进行描述、可视化处理、构造和建立软件系统制品的文档。
6.2.1 UML,简史,,6.2.2 UML,的特点,UML,的主要特点有:,,⑴,统一标准,,⑵,面向对象,,⑶,可视化、表示能力强大,,⑷,独立于过程,,⑸,容易掌握使用,,,,UML,语言内容,UML,语言包含以下三方面内容1,),UML,基本图素2,),UML,模型图3,),UML,建模规则UML,的应用领域,UML,具有很广的应用领域,其中最常用的是为软件系统建模,,,,UML,还可用来描述其他非软件系统,如,,一个机构的组成,,机构中的工作流程支持,UML,的工具,目前有很多支持,UML,的工具,例如,,Rational Rose,,Together,,ArgoUML,,,MagicDRaw,UML,,Visual UML,等UML,只是一套可视化的面向对象系统分析,与设计的,语言,它一定要与一套工具搭配使用与,UML,搭配最密切的工具就是,Rational Rose,6.2.,4,Rational Rose,Rose,提供对工业标准的支持,其中包括统一建模语言,UML,Rose,具有建立、浏览、修改和保存模型的能力,保证不同模型视图之间、模型与代码之间转化的一致性,它具有支持正/反向建模的能力。
Rose,主要针对企业信息系统建模Rational Rose,有多种版本,Rose Modeler,:,提供建模功能,但不支持代码生成和由代码逆向生成模型(逆向工程)Rose,Professinnal,:,支持生成一种语言的代码Rose Enterprise,:,支持,VC,,,Java,,,Ada,,,CORBA,,,Visual Basic,,,COM,,,Oracles,与,XML,架构下生成代码,模型的组件可以用不同语言生成代码近来推出的,Rose 2000,,,Rose 2002,,,Rose 2003,可以支持,Java,,,VB,,,VC++,等架构的代码生成和逆向工程Rose,开发环境,启动,Rose,,单击[开始]-[程序]-[,Rational suite Enterprise,]-[,Rational Rose Enterprise Edition,],,出现如图,4,-,l,所示的界面Rose,图形界面构成,菜单栏;,,浏览框(,Brower,);,,标准工具栏(,standard Toolbar,);,,图素工具栏(,Diagram Toolbar,);,,图形窗口(,Diagram Windows,);,,文档窗口(,Document window,);,,日志栏(,Log,);,,状态栏(,Status,);,,规范对话框(,Specification,)。
Rose,界面,,图象工具栏,浏览框,工具栏,菜单栏,文档栏,状态栏,日志栏,图形窗口,,Rose,的四种视图,Rose,创建一个新的系统模型时自动生成下列四种视图:,,用例视图、,,逻辑视图、,,组件视图,,部署视图,,,Rose,把视图看成是模型结构中的第一层次6.2.3,公共机制,修饰与扩展是,UML,语言中有两个重要机制,使用它们可使得,UML,更加简化注解是一种最重要的能单独存在的修饰,,,,扩展集则包括构造型、标记值和约束注解,注解(,note,),是附加在元素或元素集上用来表示约束或注释的图形符号在图形上,把注解画成带有把角的矩形,在矩形中填写文字或图形注释注解,,,6.3,用例图,用例图,(Use Case Diagrams,)是显示一组用例、参与者,以及它们之间关系的图用例图,用于描述系统的功能集用例图是其他模型的核心和基础用例图只能静态地描述系统功能,为了描述系统的行为,可以使用活动图、顺序图等6.3.1,用例,,用例,(Use Case,),是对系统的用户需求(主要是功能需求)的描述用例也称案例,用况等,,,用例是指一个或多个参与者为达到某个目的与要设计的系统进行的典型交互作用。
用例表达了系统的功能,即系统提供的服务参与者可以是人,也可以是外部计算机系统和外部进程获取用例,获取用例的最简单的途经是与典型用户进行交谈,,,,软件开发人员工作是用简单的图形和文字描述用户的想法,并为之取个名称一系列用例的集合,就组成了整个系统的需求6.3.2,用例图,,用例图,(Use Case Diagrams,)是显示一组用例、参与者,以及它们之间关系的图用例图用来描述用户的功能需求用例图一般由参与者和用例构成,,,订货系统用例图,,用例图的图形符号,,图形符号,名称,描述,,用例,,,角色(参与者),,,关联关系,,,1.,参与者,在用例图中,参与者用一个名称写在下面的小人表示,,,,参与者都必须有唯一的名称或标识参与者运行用例一个参与者可运行多个用例;反过来,一个用例也可由多个参与者所运行1.,参与者,参与者(,Actor,),是指处于系统边界之外的,与系统发生交互作用的外部用户、,设备,或其他系统在系统的实际运作中,一个实际用户可能对应系统的多个参与者不同的用户也可以只对应于一个参与者,从而代表同一参与者的不同实例在处理参与者时,重要的是角色,而不是人的职务等属性2.,识别用例,,识别用例的另一个重要来源是首先需要找出各种可能的参与者,开列出他们的名单,,,,然后通过对这些参与者的调查,为他们描绘出各自要求的用例。
2.,识别用例,识别用例的另一个重要来源是外部事件应该考察所有来自外部世界且需要作出反应的事件一个给定事件可能会引起一个与参与者无关的系统反应,或者一个主要来自参与者的反应3.,用例描述,用例,描述是对系统响应参与者操作所进行的内部操作顺序的详细描述3.,用例描述,事件(,Event,)是对一个在时间和空间上占有一定位置的有意义的事情的规格说明对于每个用例,都可以用事件流来规定用例的行为用例的事件流是对完成用例行为所需的事件的描述3.,用例描述,在描述事件流时,应该包括下列内容:,,用例什么时候开始,怎样开始用例什么时候结束,怎样结束用例和参与者之间有什么样的交互作用用例需要什么数据用例的基本事件流的描述用例的分支事件流的描述替代的事件流的描述用例描述模板,进行用例描述,应使用一个标准模板X,.,用例,XX,(,用例名)的事件流,,X1,前置条件(,Pre,-,Conditions,),,X2,后置条件(,Post-Conditions,),,X,3,扩充点(,Extension Points,),,X4,事件流,,X4.1,基流(,Basic Flow,),,X4.2,分支流(,Subfl,o,ws,)(,可选),,X4.3,替代流(,Alternative Flows,),,,用例的活动图描述,,,4.,用例的关系,用例除了与参与者有联系以外,用例之间还存在着一定的关系。
参与者之间还存有关系关系包括:,,参与者与用例之间的关系、用例之间的关系、参与者之间的关系关系类型包括:,,关联关系、包含关系、扩展关系和泛化关系⑴,关联关系,描述参与者与用例之间的关系在,UML,中用实线表示,例如,客户启动系统的取钱功能,表示客户启动与用例的关联,,,关系方向显示是谁启动了通信,,,,建立通信之后,信息是可以双向流动的关于双向通信,——,由客户或用例来启动查看购物车状态,,⑵,泛化关系,泛化,关系,(,Generalization Association,)是,表示一般与特殊的关系泛化关系用于共享用例的共同功能行为子,用例可以继承父用例的含义和行为,也可以对父用例的行为进行增加和修改子,用例可以出现在父用例出现的任何位置泛化关系,泛化关系用泛化箭线(带空心三角箭头的实线)表示,从子用例发出,指向父用例如果需要可以在箭线上标出联系的名称,,,泛化,关系,,⑵,包含关系,包含关系(,Include Association,),是指一个基本用例的行为包含了另一个用例的行为使用时,常常是把公共的行为放到被包含的用例中,被包含的用例通常作为某些包含它的更大的基本用例的一部分在图,形上,,用一条从基本用例指向被包含的用例的虚箭线表示,并在箭线上标有构造型,<
用例之间的关系,,包含关系,,,⑶,扩展关系,扩展关系(,Extend Association,),表明扩展用例的行为相对于基本用例是在一个给定延伸点上的延伸关系扩展关系允许一个用例扩展另一个用例所提供的功能扩展关系,在图,形上,,扩展关系用一条从扩展用例指向基本用例的虚箭线表示,并在箭线上标有构造型,<
绘制用例图的步骤,(,1,)找出系统的参与者,确定系统的边界和范围2,)确定每一个用户所期望的系统行为3,)把这些用户所期望的系统行为命名为用例4,)把一些公共的系统行为单独分解为一些用例,供其他的用例引用把一些变更的行为分解为扩展用例5,)绘制出用例图END,,。