1、UML建模语言目录5.1 UML概述5.2 通用模型元素5.3 用例建模5.4静态建模5.5 动态建模5.6 实现模型概 述 5.1 UML5.1 UML概述概述什么是模型?什么是模型?UML作为一种可视化的建模语言,作为一种可视化的建模语言,提供了丰富的基于提供了丰富的基于面向对象概念的模型元素及其图形表示元素。面向对象概念的模型元素及其图形表示元素。5.1.1 UML5.1.1 UML的形成的形成九十年代中,面向对象方法已经成为软件分析和设计九十年代中,面向对象方法已经成为软件分析和设计方法的主流。方法的主流。1994年年10月月Jim Rumbaugh和和Grady Booch共同合作共
2、同合作把他们的把他们的OMT和和Booch方法统一起来,到方法统一起来,到1995年成为年成为“统统一方法一方法”(Unified Method)版本)版本0.8。随后,。随后,Ivar Jacobson加入,并采用他的用例加入,并采用他的用例(User case)思想思想,到到1996年,年,成为成为“统一建模语言统一建模语言”版本版本0.9。1997年年1月,月,UML版本版本1.0被提交给被提交给OMG组织,作为组织,作为软件建模语言标准的候选。其后的半年多时间里,一些重软件建模语言标准的候选。其后的半年多时间里,一些重要的软件开发商和系统集成商都成为要的软件开发商和系统集成商都成为“U
3、ML伙伴伙伴”,如,如IBM,Mircrosoft,HP等等.1997年年11月月7日被正式采纳作为业日被正式采纳作为业界标准。界标准。图5.15.1.1 UML5.1.1 UML的形成的形成UML的定义包括的定义包括UML语义和语义和UML表示法两个部分。表示法两个部分。(1)UML语义语义 描述基于描述基于UML的精确元模型的精确元模型(meta-model)定义。元模型为定义。元模型为UML的所有元素在语法和语义上提供了简单、的所有元素在语法和语义上提供了简单、一致、通用的定义性说明一致、通用的定义性说明,使开发者能在语义上取得一致使开发者能在语义上取得一致,消消除了因人而异的表达方法所
4、造成的影响。此外除了因人而异的表达方法所造成的影响。此外UML还支持对还支持对元模型的扩展定义。元模型的扩展定义。UML支持各种类型的语义。如布尔、表达式、列表、阶、支持各种类型的语义。如布尔、表达式、列表、阶、名字、坐标、这字符串和时间等,还允许用户自定义类型。名字、坐标、这字符串和时间等,还允许用户自定义类型。(2)(2)UML表示法表示法定义定义UML符号的表示法符号的表示法,为开发者或开为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准发工具使用这些图形符号和文本语法为系统建模提供了标准.。这些图形符号和文字所表达的是应用级的模型这些图形符号和文字所表达的是应用级的模型,
5、在语义上它是在语义上它是UML元模型的实例。元模型的实例。5.1.2 UML5.1.2 UML的主要内容的主要内容5.1.2 UML5.1.2 UML的主要构成的主要构成UML是一种标准化的图形建模语言,它是是一种标准化的图形建模语言,它是面向对象分析与设计的一种标准表示。由面向对象分析与设计的一种标准表示。由:UML的主要内容 一个系统应从不同的角度进行描述一个系统应从不同的角度进行描述,从一个角度观察从一个角度观察到的系统称为一个到的系统称为一个视图(视图(view)。视图视图由多个图由多个图(Diagrams)构成,它不是一个图表构成,它不是一个图表(Graph),而是在某一个抽象层上,
6、对系统的抽象表示。而是在某一个抽象层上,对系统的抽象表示。如果要为系统建立一个完整的模型图,需定义一定如果要为系统建立一个完整的模型图,需定义一定数量的视图,每个视图表示系统的一个特殊的方面。另数量的视图,每个视图表示系统的一个特殊的方面。另外,视图还把建模语言和系统开发时选择的方法或过程外,视图还把建模语言和系统开发时选择的方法或过程连接起来。连接起来。5.1.2 UML5.1.2 UML的主要内容的主要内容设计视图设计视图实现视图实现视图配置视图配置视图过程视图过程视图Use case视图视图描述描述系统的外部特性、系统的外部特性、系统功能等。系统功能等。表示系统表示系统的实现特征,常的实
7、现特征,常用构件图表示。用构件图表示。描描述系统设计特征,述系统设计特征,包括结构模型视包括结构模型视图和行为模型视图和行为模型视图,前者描述系图,前者描述系统的静态结构统的静态结构(类类图、对象图图、对象图),后,后者描述系统的动者描述系统的动态行为态行为(交互图、交互图、状态图、活动图状态图、活动图)。表示系统内表示系统内部的控制机制。常用类图描部的控制机制。常用类图描述过程结构,用交互图描述述过程结构,用交互图描述过程行为。过程行为。配置配置视图描述系统的物理配置视图描述系统的物理配置特征。用配置图表示特征。用配置图表示。5.1.2 UML5.1.2 UML的主要内容的主要内容UML语言
8、定义了五种类型,语言定义了五种类型,9 9种不同的图,把它们有机的结种不同的图,把它们有机的结合起来就可以描述系统的所有视图。合起来就可以描述系统的所有视图。(Use case diagram)从用户角度描述系统功能从用户角度描述系统功能,并指并指出各功能的操作者出各功能的操作者。(Static diagram),),表示系统的静态结构。表示系统的静态结构。包括包括类图、类图、对象图、包图。对象图、包图。(Behavior diagram),描述系统的动态模型和组成对描述系统的动态模型和组成对象间的交互关系。包括象间的交互关系。包括状态图、活动图状态图、活动图。(Interactive dia
9、gram),描述对象间的交互关系描述对象间的交互关系。包括包括顺序图、合作图顺序图、合作图。(Implementation diagram)用于描述系统的物理实现。用于描述系统的物理实现。包括包括构件图、部件图构件图、部件图。5.1.2 UML5.1.2 UML的主要内容的主要内容图代表面向对象中的类,对象,关系和消息等概念,是代表面向对象中的类,对象,关系和消息等概念,是构成图的最基本的常用的元素。一个模型元素可以用在多构成图的最基本的常用的元素。一个模型元素可以用在多个不同的图中,无论怎样使用,它总是具有相同的含义和个不同的图中,无论怎样使用,它总是具有相同的含义和相同的符号表示。相同的符
10、号表示。用于表示其他信息,比如注释,模型元素的语义等。用于表示其他信息,比如注释,模型元素的语义等。另外,为了适应用户的需求,它还提供了扩展机制另外,为了适应用户的需求,它还提供了扩展机制(Extensibility mechanisms),包括构造型,包括构造型(Stereotype)、标记值标记值(Tagged value)和约束和约束(Constraint).).使用使用UML语言语言能够适应一个特殊的方法(或过程),或扩充至一个组织能够适应一个特殊的方法(或过程),或扩充至一个组织或用户。或用户。5.1.2 UML5.1.2 UML的主要内容的主要内容 UML在演变过程中还提出了一些新
11、的概念。在在演变过程中还提出了一些新的概念。在UML标标准中新加了模板准中新加了模板(Stereotypes)、职责、职责(Responsibilities)、扩展、扩展机制机制(Extensibility mechanisms)、线程、线程(Threads)、过程、过程(Processes)、分布式、分布式(Distribution)、并发、并发(Concurrency)、模式模式(Patterns)、合作、合作(Collaborations)、活动图、活动图(Activity diagram)等新概念等新概念,并清晰地区分类型并清晰地区分类型(Type)、类、类(Class)和实和实例例(
12、Instance)、细化、细化(Refinement)、接口、接口(Interfaces)和组件和组件(Components)等概念。等概念。5.1.2 UML5.1.2 UML的主要内容的主要内容 (1)(1)统一标准统一标准UML统一了统一了Booch、OMT和和OOSE等方法中的基本概念,等方法中的基本概念,已成为已成为OMG的正式标准,提供了标准的面向对象的模型元素的的正式标准,提供了标准的面向对象的模型元素的定义和表示。定义和表示。(2)(2)面向对象面向对象UML还吸取了面向对象技术领域中其他流派的长处。还吸取了面向对象技术领域中其他流派的长处。UML符号表示考虑了各种方法的图形表
13、示符号表示考虑了各种方法的图形表示,删掉了大量易引起混乱的、删掉了大量易引起混乱的、多余的和极少使用的符号多余的和极少使用的符号,也添加了一些新符号。也添加了一些新符号。(3)(3)可视化、表示能力强可视化、表示能力强系统的逻辑模型或实现模型都能用系统的逻辑模型或实现模型都能用UML模型清晰的表示,模型清晰的表示,可用于复杂软件系统的建模。可用于复杂软件系统的建模。(4)(4)独立于过程独立于过程UML是系统建模语言,独立于开发过程。是系统建模语言,独立于开发过程。(5)(5)易掌握、易用易掌握、易用由于由于UML的概念明确,建模表示法简洁明了,图形结构清的概念明确,建模表示法简洁明了,图形结
14、构清晰,易于掌握使用。晰,易于掌握使用。5.1.3 UML5.1.3 UML的特点的特点5.2 5.2 通用模型元素通用模型元素 模型元素是模型元素是UML构造系统的各种元素,是构造系统的各种元素,是UML构建模型构建模型的基本单位。的基本单位。模型元素代表面向对象中的类,对象,关系和消模型元素代表面向对象中的类,对象,关系和消息等概念,是构成图的最基本的常用的概念。息等概念,是构成图的最基本的常用的概念。分为以下两类:分为以下两类:是已由是已由UML定义的模型元素。如:类、结点、构件、注定义的模型元素。如:类、结点、构件、注释、关联、依赖和泛化等。释、关联、依赖和泛化等。在基元素的基础上构造
15、的新的模型元素,是由基元素增加在基元素的基础上构造的新的模型元素,是由基元素增加了新的定义而构成的,如扩展基元素的语义(不能扩展语法结了新的定义而构成的,如扩展基元素的语义(不能扩展语法结构)构),也允许用户自定义。构造型用括在双尖括号中的字也允许用户自定义。构造型用括在双尖括号中的字符串表示。符串表示。目前目前UML提供了提供了4040多个预定义的构造型元素。如使用多个预定义的构造型元素。如使用Use、扩展、扩展 Extend。5.2.1 5.2.1 模型元素模型元素图5.2 模型元素在图中模型元素在图中用其相应的视图元素(符号)表示,图用其相应的视图元素(符号)表示,图3.23.2给出了常
16、用的元素给出了常用的元素符号:类、对象、结点、包和组件等。符号:类、对象、结点、包和组件等。属性属性用例用例包包结点结点状态状态 组件组件类类操作操作对象对象属性属性操作操作接口接口注释注释 模型元素 3.2.1 3.2.1 模型元素模型元素关联关联聚合聚合依赖依赖泛化(继承)泛化(继承)模型元素与模型元素之间的连接关系也是模型元素,常见模型元素与模型元素之间的连接关系也是模型元素,常见的关系有的关系有关联关联(association)、泛化泛化(generalization)、依赖依赖(dependency)和和聚合聚合(aggregation),其中聚合是关联的一种特殊,其中聚合是关联的一
17、种特殊形式。这些关系的图示符号如图形式。这些关系的图示符号如图3.33.3所示。所示。5.5.关联和关联和 如图如图3.3.(a)(b)(a)(b)所示,关联有二元关联所示,关联有二元关联(binary)、三元关、三元关联联(ternary)、多元关联、多元关联(higher order)。人员人员公司公司二元关联的例二元关联的例(人员)(人员)张涛张涛(公司)(公司)通大通大链的例子链的例子项目项目语言语言人人三元关联的例三元关联的例(项目项目)CAD系统系统(语言语言)C+(人人)李波李波链的例子链的例子 3.2.3 关联的表示5.2.3 5.2.3 关联的表示关联的表示PersonHob
18、by1 1*图5.5 带有多重性关联 有序关联与导航(导引)有序关联与导航(导引)在关联的多端标注在关联的多端标注ordered指明指明这些对象是有序的这些对象是有序的(图图3.6)。关联可以用箭头,表示该关联使关联可以用箭头,表示该关联使用的方向用的方向(单向或双向单向或双向),称为,称为导引导引或或导航导航(navigation)。(a)指定链接之间 有明确的顺序0.*1.*ordered保险合同保险合同个人个人PolygonPoint ordered图5.6(b)单向关联 受限关联受限关联(qualified association)(qualified association)使用限定
19、词对该关联的另一端的对象进行明确的标识和使用限定词对该关联的另一端的对象进行明确的标识和鉴别(鉴别(图图5.75.7)。)。类类1类类25.3.1 5.3.1 关联的表示关联的表示5 5关联的表示U M L 中 提 供 了 一 种 简 便、统 一 和 一 致 的 约 束中 提 供 了 一 种 简 便、统 一 和 一 致 的 约 束(constraint),是各种模型元素的一种语义条件或限制。一是各种模型元素的一种语义条件或限制。一条约束只能应用于同一类的元素。条约束只能应用于同一类的元素。约束的表示约束的表示如果约束应用于一种具有相应视图元素的模型元素,它可如果约束应用于一种具有相应视图元素的
20、模型元素,它可以出现在它所约束元素视图元素的旁边。以出现在它所约束元素视图元素的旁边。通常通常一个约束由一对花括号括起来一个约束由一对花括号括起来(constraint),花括,花括号中为约束内容(图号中为约束内容(图5.85.8)。)。如果一条约束涉及同一种类的多如果一条约束涉及同一种类的多个元素,则要用虚线把所有受约束的个元素,则要用虚线把所有受约束的元素框起来,并把该约束显示在旁边元素框起来,并把该约束显示在旁边(如或约束)。(如或约束)。PolygonPoint ordered图5.85.2.4 5.2.4 约束约束0.*1.*ordered保险合同保险合同个人个人 约束图5.9 对泛
21、化的约束的两种表示方法关联的约束关联的约束应用于泛化的约束,显示在大括号里,若有多个约束,用应用于泛化的约束,显示在大括号里,若有多个约束,用逗号隔开。如果没有共享,则用一条虚线通过所有继承线,并逗号隔开。如果没有共享,则用一条虚线通过所有继承线,并在虚线的旁边显示约束,在虚线的旁边显示约束,如图如图5.95.9所示:所示:constraint 1,constraint 2Class AClass BClass CClass Dconstraint 1,constraint 2Class AClass CClass BClass D 对对泛化泛化有以下常用的约束:有以下常用的约束:说明说明泛化
22、中所有子元素都已在模型中说明,泛化中所有子元素都已在模型中说明,不允许再增加其它子元素不允许再增加其它子元素。父类对象不能有多于一个型的子对象。父类对象不能有多于一个型的子对象。说明不是说明不是泛化中所有子元素都已说明,允泛化中所有子元素都已说明,允许再增加其它子元素许再增加其它子元素。给定父类对象可有多于一个型的子对象,给定父类对象可有多于一个型的子对象,表示重载表示重载。5.3.2 5.3.2 约束约束返回返回帐号帐号人人单位单位图5.10 对象类的xor关联5.3.2 5.3.2 约束约束 对关联有以下常用的约束:对关联有以下常用的约束:该关联只是概念性的,在对模型进行精化时不再用。该关
23、联只是概念性的,在对模型进行精化时不再用。具有多重性的关联一端的对象是有序的。具有多重性的关联一端的对象是有序的。关联对象之间的链关联对象之间的链(Link)(Link)是可变的(添加、修是可变的(添加、修改、删除)。改、删除)。可在任意时刻增加新的链接。可在任意时刻增加新的链接。冻结已创建的对象,不能再添加、删除和修改它的冻结已创建的对象,不能再添加、删除和修改它的链接。链接。“或约束或约束”,某时刻只有一个当前的关联实例。,某时刻只有一个当前的关联实例。5.2.6 5.2.6 依赖依赖 依赖关系描述的是两个模型元素(类,组合,用例等)依赖关系描述的是两个模型元素(类,组合,用例等)之间的语
24、义上的连接关系,其中一个模型元素是独立的,另之间的语义上的连接关系,其中一个模型元素是独立的,另一个模型元素是非独立的(或依赖的)。一个模型元素是非独立的(或依赖的)。如图如图5.115.11表示表示类类A A依赖于类依赖于类B B的一个友元依赖关系。的一个友元依赖关系。类类A类类 B友元友元从一个对象中提取一些特性,并用从一个对象中提取一些特性,并用类方法表示。类方法表示。为模板参数指定值,以定义一个新的模为模板参数指定值,以定义一个新的模板元素。板元素。对不同类或包进行性质相似融合。对不同类或包进行性质相似融合。允许另一个对象对本对象的访问。允许另一个对象对本对象的访问。声明使用一个模型元
25、素需要用到已存在的声明使用一个模型元素需要用到已存在的另一个模型元素,这样才能正确实现使用者的功能另一个模型元素,这样才能正确实现使用者的功能(包括调用、包括调用、实例化、参数、发送实例化、参数、发送)。声明不同模型中元素的之间的存在一些连声明不同模型中元素的之间的存在一些连接。接。允许一个包访问另一个包的内容。允许一个包访问另一个包的内容。声明一个类调用其他类的操作的方法。声明一个类调用其他类的操作的方法。5.2.6 5.2.6 依赖依赖声明一个实例可从另一个实例导出。声明一个实例可从另一个实例导出。允许一个元素访问另一个元素,不管被允许一个元素访问另一个元素,不管被访问的元素是否具有可见性
26、。访问的元素是否具有可见性。允许一个包访问另一个包的内容并被访允许一个包访问另一个包的内容并被访问组成部分增加别名。问组成部分增加别名。关于一个类的方法创建了另一个关于一个类的方法创建了另一个类的实例声明。类的实例声明。一个操作和它参数之间的关系。一个操作和它参数之间的关系。说明和其实之间的关系。说明和其实之间的关系。声明具有两个不同语义层次上的元素之声明具有两个不同语义层次上的元素之间的映射。间的映射。信号发送者和信号接收者之间的关系。信号发送者和信号接收者之间的关系。5.2.6 5.2.6 依赖依赖5.2.7 5.2.7 细化细化有两个元素有两个元素A A和和B B,若,若B B元素是元素
27、是A A元素的详细描述,则称元素的详细描述,则称B,AB,A元素之间的关系为元素之间的关系为B B元素细化元素细化A A元素元素。细化与类的抽象层次有密切的关系,在构造模型时要经过细化与类的抽象层次有密切的关系,在构造模型时要经过逐步细化逐步细化,逐步求精的过程。逐步求精的过程。如图如图3.93.9所示,所示,类类B B是类是类A A细化的结果。细化的结果。注释用于对注释用于对UML语言的元素或实体进行说明,解释和语言的元素或实体进行说明,解释和描述。通常用自然语言进行注释。描述。通常用自然语言进行注释。这是一个类这是一个类人员人员5.3 用例建模 5.3 5.3 用例建模用例建模描述系统的功
28、能需求。描述系统的功能需求。通过对典型用例的分析,使开发者能够有效通过对典型用例的分析,使开发者能够有效地了解用户的需求。地了解用户的需求。5.3.1 5.3.1 用例建模概述用例建模概述贸易经理贸易经理风险分析风险分析设置边界设置边界进行交易进行交易交易估价交易估价更新帐目更新帐目使用使用使用使用扩展扩展营销人员营销人员超越边界超越边界评价评价记帐系统记帐系统销售人员销售人员图3.14 用例模型描述的是外部执行者用例模型描述的是外部执行者(Actor)所理解的系统功能。所理解的系统功能。它描述了待开发系统的功能需求。它描述了待开发系统的功能需求。它驱动了需求分析之后各阶段的开发工作它驱动了需
29、求分析之后各阶段的开发工作,不仅在开发过不仅在开发过程中保证了系统所有功能的实现程中保证了系统所有功能的实现,而且被用于验证和检测所开而且被用于验证和检测所开发的系统发的系统,从而影响到开发工作的各个阶段和从而影响到开发工作的各个阶段和 UML 的各个的各个模型。模型。用例模型用例模型若干个若干个在在UML中中,构成用例图的主要元素是构成用例图的主要元素是用例和执行者及其它们之间的联系。用例和执行者及其它们之间的联系。3.3.2 3.3.2 用例模型用例模型 定义系统、确定执行者和用例、描述用例、定义用例间的定义系统、确定执行者和用例、描述用例、定义用例间的关系、确认模型。关系、确认模型。执行
30、者是指用户在系统中所扮演的角色。执行者在用例执行者是指用户在系统中所扮演的角色。执行者在用例图中是用类似人的图形来表示图中是用类似人的图形来表示,但执行者可以是人,也可以但执行者可以是人,也可以是一个外界系统。是一个外界系统。()一、执行者一、执行者5.3.2 5.3.2 用例模型用例模型供货供货买饮料买饮料取货款取货款客户客户供货人供货人收银员收银员图5.15自动售货系统回例1二、用例 从本质上讲从本质上讲,一个用例是用户与计算机之间的一次典型交一个用例是用户与计算机之间的一次典型交互作用。在互作用。在UML中中,用例被定义成系统执行的一系列动作用例被定义成系统执行的一系列动作(功能)。(功
31、能)。用例有以下特点用例有以下特点:用例捕获某些用户可见的需求用例捕获某些用户可见的需求,实现一个具体的用户目标。实现一个具体的用户目标。用例由执行者激活用例由执行者激活,并将结果值反馈给执行者。并将结果值反馈给执行者。用例必须具有功能上的完整描述。用例必须具有功能上的完整描述。1 1、与系统实现有关的主要问题是什么?、与系统实现有关的主要问题是什么?2 2、系统需要哪些输入、系统需要哪些输入/输出?这些输入输出?这些输入/输出从何而来?到哪输出从何而来?到哪里去?里去?3 3、执行者需要系统提供哪些功能?、执行者需要系统提供哪些功能?4 4、执行者是否需要对系统中的信息进行读、创建、修改、删
32、、执行者是否需要对系统中的信息进行读、创建、修改、删除或存储?除或存储?二、用例5.3.2 5.3.2 用例模型用例模型回例15.3.3用例图图3.16 用例图的元素用例图描述了系统的功能需求,它是从执行者的角度来理用例图描述了系统的功能需求,它是从执行者的角度来理解系统,用于捕获系统的需求,规划和控制项目;描述了系统解系统,用于捕获系统的需求,规划和控制项目;描述了系统外部的执行者与系统提供的用例之间的某种联系。外部的执行者与系统提供的用例之间的某种联系。图中还有另外两种类型的连接图中还有另外两种类型的连接,即使用和扩展关即使用和扩展关系,是两种不同形式的泛化关系。系,是两种不同形式的泛化关
33、系。用例用例2用例用例A用例用例执行者执行者用例用例1用例用例3用例用例B使用使用使用使用扩展扩展(a)(b)(c)UseUse表示一个用例使用另一个用例。表示一个用例使用另一个用例。ExtendExtend通过向被扩展的用例添加动作来扩展用例。通过向被扩展的用例添加动作来扩展用例。用例图实例贸易经理贸易经理风险分析风险分析设置边界设置边界进行交易进行交易交易估价交易估价更新帐目更新帐目使用使用使用使用扩展扩展营销人员营销人员超越边界超越边界评价评价记帐系统记帐系统销售人员销售人员5.3.4 5.3.4 用例图实例用例图实例5.3.4 5.3.4 用例图实例用例图实例 系统的主要功能是:项目管
34、理,资源管理和系统管理。项系统的主要功能是:项目管理,资源管理和系统管理。项目管理包括项目的增加、删除、更新。资源管理包括对资源和目管理包括项目的增加、删除、更新。资源管理包括对资源和技能的添加、删除和更新。系统管理包括系统的启动和关闭,技能的添加、删除和更新。系统管理包括系统的启动和关闭,数据的存储和备份等功能。数据的存储和备份等功能。到确定到确定 项目管理员、资源管理员、系统管理员、备份数据系统。项目管理员、资源管理员、系统管理员、备份数据系统。项目管理,资源管理和系统管理。项目管理,资源管理和系统管理。对上层的用例进行分解对上层的用例进行分解,并将执行者分配并将执行者分配到各层次的到各层
35、次的Use caseUse case图中。图中。角色:角色:角色职责:角色职责:角色职责识别:角色职责识别:图5.19角色描述模板 还应画出相应的执行者描述模板及用例还应画出相应的执行者描述模板及用例描述模板。描述模板。添加技能添加技能删除技能删除技能更新技能更新技能资源管理员资源管理员添加资源添加资源删除资源删除资源更新资源更新资源查找技能查找技能Use查找资源查找资源UseUseUse把技能指把技能指定给资源定给资源从资源中从资源中清除技能清除技能ExtendExtend图可以自顶而下不图可以自顶而下不断精化,抽象出不同层次的断精化,抽象出不同层次的图。图。5.3.4 5.3.4 用例图实
36、例用例图实例系统管理员系统管理员项目管理员项目管理员资源管理员资源管理员资源管理资源管理项目管理项目管理系统管理系统管理项目项目管理员管理员添加项目添加项目删除项目删除项目更新项目更新项目添加活动添加活动删除活动删除活动更新活动更新活动查找项目查找项目Use添加任务添加任务Use把技能指把技能指定给资源定给资源从资源中从资源中清除技能清除技能ExtendExtend删除任务删除任务更新任务更新任务ExtendExtendExtendExtendExtendExtend5.3.4 5.3.4 用例图实例用例图实例系统管理系统管理员员添加技能添加技能存储数据存储数据启动系统启动系统关闭系统关闭系统
37、查找技能查找技能UseUseUse备份资备份资源数据源数据备份项备份项目数据目数据 Extend Extend Use备份数据备份数据备份系统备份系统 现有一医院病房监护系统,病症监视器安置在每个病现有一医院病房监护系统,病症监视器安置在每个病房,将病人的病症信号实时传送到中央监视系统进行分析房,将病人的病症信号实时传送到中央监视系统进行分析处理。在中心值班室里,值班护士使用中央监视系统对病处理。在中心值班室里,值班护士使用中央监视系统对病员的情况进行监控,根据医生的要求随时打印病人的病情员的情况进行监控,根据医生的要求随时打印病人的病情报告,定期更新病历,当病症出现异常时,系统会立即自报告,
38、定期更新病历,当病症出现异常时,系统会立即自动报警动报警,并实时打印病人的病情报告,立及更新病历。并实时打印病人的病情报告,立及更新病历。要求根据现场情景,对医院病房监护系统进行需求分要求根据现场情景,对医院病房监护系统进行需求分析,析,建立系统的建立系统的请对系统需求进行分析!请对系统需求进行分析!经过初步的需求分析,得到系统功能要求:经过初步的需求分析,得到系统功能要求:1 1、监视病员的病症(血压、体温、脉搏等)、监视病员的病症(血压、体温、脉搏等)2 2、定时更新病历、定时更新病历3 3、病员出现异常情况时报警。、病员出现异常情况时报警。4 4、随机地产生某一病员的病情报告。、随机地产
39、生某一病员的病情报告。例例2 2 医院病房监护系统医院病房监护系统产生产生病情报告病情报告监视病情监视病情更新病历更新病历情景教学情景教学 任何建模语言都以静态建模机制为基础任何建模语言都以静态建模机制为基础,标准建模语言标准建模语言UML也不例外。也不例外。类和对象的建模,是类和对象的建模,是UML建模的基础。我们认为建模的基础。我们认为,熟练掌熟练掌握基本概念、区分不同抽象层次以及在实践中灵活运用握基本概念、区分不同抽象层次以及在实践中灵活运用,是三是三条最值得注意的建模基本原则。条最值得注意的建模基本原则。5.4 静态建模5.4 5.4 静态建模静态建模5.4.1 5.4.1 对象类与对
40、象对象类与对象 面向对象的开发方法的基本任务是建立对象模型,是软面向对象的开发方法的基本任务是建立对象模型,是软件系统开发的基础。件系统开发的基础。UML中的对象类图中的对象类图(Class Diagram)与与对象图对象图(Object Diagram)表达了对象模型的静态结构,能够表达了对象模型的静态结构,能够有效地建立专业领域的计算机系统对象模型。有效地建立专业领域的计算机系统对象模型。对象类简称类,是面向对象模型的最基本的模型元素,对象类简称类,是面向对象模型的最基本的模型元素,用类图来描述。用类图来描述。由系统中使用的类以及由系统中使用的类以及它们之间的关系组成,是描述系统的一种图式
41、,它们之间的关系组成,是描述系统的一种图式,分为长式和分为长式和短式。类及类型名均用英文大写字母开头,属性及操作名为短式。类及类型名均用英文大写字母开头,属性及操作名为小写字母开头。常见类型有:小写字母开头。常见类型有:Char,Boolean,Double,Float,Integer,Object,Short,String等。等。类图是构建其它图的基础。类图是构建其它图的基础。5.4.1 5.4.1 对象类与对象对象类与对象 对象是对象类的实例对象是对象类的实例(instance),用对象图来描述。对象用对象图来描述。对象图亦分长式和短式。图亦分长式和短式。丁一:作家丁一:作家姓名姓名=丁一
42、丁一年龄年龄=30丁一办公室中的丁一办公室中的PC:计算机计算机名称名称=Dell 466内存内存=64丁一家里的丁一家里的PC:计算机计算机名称名称=长城长城PII MMX内存内存=64attribute 属性用来描述类的特征,表示需要处理的数据。属性用来描述类的特征,表示需要处理的数据。属性定义:属性定义:其中:可见性其中:可见性(visibility)表示该属性对类外的元素是否可见。表示该属性对类外的元素是否可见。分为:分为:public(+)公有的,即模型中的任何类都可以访问该属性。公有的,即模型中的任何类都可以访问该属性。private(-)私有的,表示不能被别的类访问。私有的,表示
43、不能被别的类访问。protected(#)受保护的,表示该属性只能被该类及其子类受保护的,表示该属性只能被该类及其子类访问。访问。如果如果可见性未申明,表示其可见性不确定。可见性未申明,表示其可见性不确定。5.4.1 5.4.1 对象类与对象对象类与对象 对数据的具体处理方法的描述则放在操作部分,操作说明了对数据的具体处理方法的描述则放在操作部分,操作说明了该类能做些什么工作。操作通常称为函数,它是类的一个组成部该类能做些什么工作。操作通常称为函数,它是类的一个组成部分,只能作用于该类的对象上。分,只能作用于该类的对象上。操作定义:操作定义:visibility operating-name(
44、parameter-list):return-type property-string 其中:可见性同上。其中:可见性同上。参数表:参数名:类型,参数表:参数名:类型,Parameter-name:type=default-value 返回类型:操作返回的结果类型。返回类型:操作返回的结果类型。5.4.1 5.4.1 对象类与对象对象类与对象类图的描述5 5。4.1 4.1 对象类与对象对象类与对象二、类的识别二、类的识别 是面向对象方法的一个难点,但又是建模的关键。常用的是面向对象方法的一个难点,但又是建模的关键。常用的方法有:方法有:1、名词识别法、名词识别法 2、系统实体识别法、系统实体
45、识别法 3、从用例中识别类、从用例中识别类 4、利用分解与抽象技术、利用分解与抽象技术关键是要定义类的关键是要定义类的“属性属性”及及“操作操作”。5.4.2 UML5.4.2 UML中类之间的关系中类之间的关系 UML中类的关系有关联中类的关系有关联(association)、聚集、聚集(aggregation)、泛化泛化(generalization)、依赖依赖(depending)和细化和细化(refinement)。关联是类之间的连结关联是类之间的连结,分为:分为:1、常规关联、常规关联(图图5.26)2、多元关联、多元关联3、有序关联、有序关联4、受限关联、受限关联5、或关联、或关联
46、(图图5.27)6、关联类、关联类(图图5.28)公司公司员工员工0.*顾顾 佣佣 0.*工作于工作于管理管理 1.*工人工人老板老板0.1用户用户工作站工作站 授权授权*授权授权优先级优先级特权特权开始一个时间片开始一个时间片保险公司保险公司保险合同保险合同人人公司公司*or5.4.2 UML5.4.2 UML中类之间的关系中类之间的关系7 7、其它关联、其它关联 递归关联递归关联(Recursive association)(Recursive association)即一个类到自身的关联。即一个类到自身的关联。节点节点连接连接*人人治疗治疗病人病人医生医生 聚集是一种特殊的关联,它指出类
47、间的聚集是一种特殊的关联,它指出类间的“整体整体-部分部分”关系。关系。又分为:又分为:其其“部分部分”对象可以是任意对象可以是任意“整体整体”对象的一部分。当对象的一部分。当“整体整体”端的重数不是端的重数不是1时,称聚集是共享的。时,称聚集是共享的。整体类整体类部分类部分类 其其“整体整体”(重数为重数为0、1)拥有它的拥有它的“部分部分”。部分仅属于。部分仅属于同一对象,整体与部分同时存在。同一对象,整体与部分同时存在。整体类整体类部分类部分类窗口窗口工具框工具框显示区显示区标题标题窗口窗口标题标题工具框工具框显示区显示区3.4.2 UML3.4.2 UML中类之间的关系中类之间的关系项
48、目项目人员人员 泛化指出类之间的泛化指出类之间的“一般与特殊关系一般与特殊关系”,即继承关系。父,即继承关系。父类与子类之间构成类与子类之间构成。一般类一般类特殊特殊人员人员教师教师学生学生5.4.2 UML5.4.2 UML中类之间的关系中类之间的关系 指没有实例的类,定义一些抽象的操作,即不提供指没有实例的类,定义一些抽象的操作,即不提供实现方法的操作,只提供操作的特征。并附以实现方法的操作,只提供操作的特征。并附以abstract。在继承树中,若存在某种具有公共父类的多重继在继承树中,若存在某种具有公共父类的多重继承,称为是交叠承,称为是交叠(overlapping)的。否则是的。否则是
49、的的(disjoint)。一般类特化出它所有的子类,称为完全泛化,记一般类特化出它所有的子类,称为完全泛化,记为为complete。即未特化出它所有的子类,称为是即未特化出它所有的子类,称为是incomplete.有关泛化的约束有关泛化的约束 5.4.2 UML5.4.2 UML中类之间的关系中类之间的关系complete人人女人女人男人男人性别性别交通工具交通工具drive()汽车汽车drive()轮船轮船drive()drive()启动启动轮子转动轮子转动drive()启动启动螺旋浆螺旋浆Person驾驶驾驶drive()是是抽象操作抽象操作propulsionpropulsionover
50、lapping交通工具交通工具汽车汽车船船水陆两栖车水陆两栖车图图 形形abstract颜颜 色色中心位置中心位置笔的粗细笔的粗细移移 动()动()旋旋 转()转()显显 示()示()abstract2 维维abstract定位定位填充类型填充类型缩放缩放填充填充多边形多边形边数边数顶点数顶点数显示显示园园直径直径显示显示旋转旋转线线 端点端点 显示显示0 维维abstract点点 显示显示样条样条 控制点控制点 显示显示弧弧半径半径起始角起始角弧度角弧度角显示显示1 维维abstract定位定位缩放缩放维数维数5.4.2 UML5.4.2 UML中类之间的关系中类之间的关系5.4.2 UML