《uml系统分析与设计课件》由会员分享,可在线阅读,更多相关《uml系统分析与设计课件(39页珍藏版)》请在金锄头文库上搜索。
1、第第7章章 类图、对象图和包图类图、对象图和包图主要内容主要内容v类图的定义和应用类图的定义和应用v对象图的定义和应用对象图的定义和应用v包图的定义和应用包图的定义和应用v图书馆系统实例分析图书馆系统实例分析2类类v类类是是任任何何面面向向对对象象系系统统中中最最重重要要的的构构造造块块。类类是是一一种种重重要要的的分分类类器器(ClassifierClassifier),用用来来描描述述结结构构和和行行为为特特性性的的机机制制,它它包包括括类类、接接口口、数数据据类类型型、信信号号、组组件件、节节点点、用用例例和子系统。和子系统。v类类是是对对一一组组具具有有相相同同属属性性、操操作作、关关
2、系系和和语语义义的的对对象象的的描描述述。这这些些对对象象包包括括现现实实世世界界中中的的软软件件事事物物和和硬硬件件事事物物,甚甚至至也也可可以以包包括括纯纯粹粹概概念念性性的的事事物物,它它们们是是类类的的实实例例。一一个个类类可可以以实实现现一一个个或或多多个个接接口口。结结构构良良好好的的类类具具有有清清晰晰的的边边界界,并并成成为为系系统统中中职职责责均均衡衡分分布布的一部分。的一部分。 7.1 7.1 类图类图3类类 v面向对象系统组织结构的核心。面向对象系统组织结构的核心。v对一组具有相同属性、操作、关系和语义的对象对一组具有相同属性、操作、关系和语义的对象的抽象。的抽象。v包括
3、名称部分(包括名称部分(Name)、属性部分)、属性部分(Attribute)和操作部分()和操作部分(Operation)。)。4 类类图图(class diagram)是是描描述述类类、接接口口、协协作作、以以及及它它们们之之间间关关系系的的图图。它它是是系系统统中中静静态态视视图图的的一一部部分分,静静态态视视图图可可以以包包括括许许多多的的类类图图。静静态态视视图图用用于于为为软软件件系系统统进进行行结结构构建建模模,它它构构造造系系统统的的词词汇汇和和关关系系,而而结结构构模模型型的视化就是通过类图来实现的。的视化就是通过类图来实现的。 类图类图5类图所包括的内容如下:类图所包括的内
4、容如下:类、接口、协作类、接口、协作依赖、泛化、实现和关联关系依赖、泛化、实现和关联关系6类图的用途类图的用途v类图是系统静态视图的一部分,它主要是用来类图是系统静态视图的一部分,它主要是用来描述软件系统的静态结构。该视图主要支持系描述软件系统的静态结构。该视图主要支持系统的功能需求,也就是系统要提供给最终用户统的功能需求,也就是系统要提供给最终用户的服务。的服务。v当系统分析师以支持软件系统的功能需求为目当系统分析师以支持软件系统的功能需求为目的设计静态视图时,通常以下述的设计静态视图时,通常以下述3种方法之一种方法之一使用类图:使用类图: (1)对系统的词汇建模对系统的词汇建模 (2)对简
5、单协作建模)对简单协作建模 (3)对逻辑数据库模式建模)对逻辑数据库模式建模7类图建模技术类图建模技术1. 对简单协作建模对简单协作建模 协协同同是是软软件件系系统统的的动动态态交交互互在在软软件件系系统统的的静静态态视视图图上上的的映映射射。协协同同的的静静态态结结构构是是通通过过类类图图表表达达出出来来的的。在在对对类类图图的的简简单单协协同同建建模模时时,不不仅仅要要描描述述类类的的职职责责、结结构构和和服服务,还要强调类间的关系。务,还要强调类间的关系。 8在协同建模时,要遵循的策略包括:在协同建模时,要遵循的策略包括:v(1)识识别别要要模模拟拟的的机机制制。一一个个机机制制描描述述
6、了了被被建建模模的的部部分分系系统统的的一一些些功功能能和和行行为为,这这些些功功能能和和行行为为是由类、接口等元素交互作用产生的。是由类、接口等元素交互作用产生的。v(2)对对每每种种机机制制,识识别别参参与与协协作作的的类类、接接口口和和其其他协作,并识别它们间的关系。他协作,并识别它们间的关系。v(3)通通过过协协作作的的脚脚本本,发发现现建建模模的的模模型型是是否否有有被被遗漏和语义错误的地方,并更正错误。遗漏和语义错误的地方,并更正错误。v(4)得得出出相相应应类类的的对对象象,并并确确定定具具体体的的属属性性和和操操作。作。9实例分析实例分析102. 对数据库模式建模对数据库模式建
7、模 在在对对软软件件系系统统进进行行建建模模时时,不不仅仅要要定定义义系系统统的的动动态态行行为为,还还需需要要为为动动态态行行为为所所操操作作的的数数据据指指定定相应的格式。相应的格式。 传传统统的的逻逻辑辑数数据据库库建建模模工工具具“实实体体关关系系(E-R)”图图只只针针对对数数据据,而而UML的的类类图图还还允允许许对对行行为建模。为建模。11在为数据库建模时,要遵循的策略包括:在为数据库建模时,要遵循的策略包括:(1)在在系系统统中中确确定定的的类类,它它的的状状态态必必须须超超过过其其应应用用系系统统生命周期。生命周期。(2)创创建建包包含含这这些些类类的的类类图图,并并把把它它
8、们们标标记记成成永永久久的的(persistent)。)。(3)展展开开这这些些类类的的结结构构信信息息,即即详详细细的的描描述述属属性性的的细细节节,并注重关联和构造这些类的基数。并注重关联和构造这些类的基数。(4)观观察察系系统统中中的的公公共共模模式式(如如循循环环关关联联、一一对对一一关关联联等等),它它们们往往往往使使物物理理数数据据库库设设计计复复杂杂化化。如如果果必必要要,系统分析师需要创建简化逻辑结构的中间抽象。系统分析师需要创建简化逻辑结构的中间抽象。(5)考考虑虑这这些些类类的的行行为为,扩扩充充那那些些对对于于数数据据存存储储和和数数据据完整性很重要的操作。完整性很重要的
9、操作。(6)如果可能,用工具来把逻辑设计换成物理设计。)如果可能,用工具来把逻辑设计换成物理设计。12实例分析实例分析13v对象代表一个单独的、可确认的物体、单元或实对象代表一个单独的、可确认的物体、单元或实体,它可以是具体的也可以是抽象的,在问题领体,它可以是具体的也可以是抽象的,在问题领域里有确切定义的角色。换句话说,对象是边界域里有确切定义的角色。换句话说,对象是边界非常清楚的任何事物。非常清楚的任何事物。状态(属性):对象的状态包括对象的所有属性(通状态(属性):对象的状态包括对象的所有属性(通常是静态的)和这些属性的当前值(通常是动态的)常是静态的)和这些属性的当前值(通常是动态的)
10、 行为(方法,事件):没有一个对象是孤立存在的,行为(方法,事件):没有一个对象是孤立存在的,对象可以被操作,也可以操作别的对象。而行为就是对象可以被操作,也可以操作别的对象。而行为就是一个对象根据它的状态改变和消息传送所采取的行动一个对象根据它的状态改变和消息传送所采取的行动和所做出的反应和所做出的反应 标识(名字):为了将一个对象与其它所有对象区分标识(名字):为了将一个对象与其它所有对象区分开来,我们通常会给它起一个开来,我们通常会给它起一个“标识标识” 7.2 7.2 对象图对象图14v在在UMLUML中,对象图(中,对象图(Object DiagramObject Diagram)是
11、表示是表示在某一时刻一组对象以及它们之间的关系的在某一时刻一组对象以及它们之间的关系的图。图。v对象图可以被看作是类图在系统某一时刻的对象图可以被看作是类图在系统某一时刻的实例。实例。v在图形上,对象图由节点以及连接这些节点在图形上,对象图由节点以及连接这些节点的连线组成,节点可以是对象也可以是类,的连线组成,节点可以是对象也可以是类,连线表示对象间的关系。连线表示对象间的关系。15对象图的用途对象图的用途 捕获实例和连接捕获实例和连接 在分析和设计阶段创建在分析和设计阶段创建 捕获交互的静态部分捕获交互的静态部分 举例说明数据举例说明数据/对象结构对象结构 详细描述瞬态图详细描述瞬态图 由分
12、析人员、设计人员和代码实现人员由分析人员、设计人员和代码实现人员开发开发16实例实例1 117实例实例2 218对象图建模对象图建模 对象图主要用来描述类的实例在特定时刻的状态。对象图主要用来描述类的实例在特定时刻的状态。它可以是类的实例也可以是交互图的静态部分。它可以是类的实例也可以是交互图的静态部分。 对于组件图和部署图来说,对于组件图和部署图来说,UML可以直接对它们建可以直接对它们建模,组件图和部署图上分别可以包含部件或结点的模,组件图和部署图上分别可以包含部件或结点的实例。实例。 对象图的建模过程:对象图的建模过程:(1)确定参与交互的各对象的类,可以参照相应的类)确定参与交互的各对
13、象的类,可以参照相应的类图和交互图;图和交互图;(2)确定类间的关系,如依赖、泛化、关联和实现;)确定类间的关系,如依赖、泛化、关联和实现;(3)针对交互在某特定时刻各对象的状态,使用对象)针对交互在某特定时刻各对象的状态,使用对象图为这些对象建模;图为这些对象建模;(4)建模时,系统分析师要根据建模的目标,绘制对)建模时,系统分析师要根据建模的目标,绘制对象的关键状态和关键对象之间的连接关系。象的关键状态和关键对象之间的连接关系。19对象与类的关系对象与类的关系v对象对象是一个存在于时间和空间中的具体实体,是一个存在于时间和空间中的具体实体,而类仅代表一个抽象,抽象出对象的而类仅代表一个抽象
14、,抽象出对象的“本质本质”。v类类是共享一个公用结构和一个公共行为对象是共享一个公用结构和一个公共行为对象集合。集合。 v类类是静态的,是静态的,对象对象是动态的;是动态的;类类是一般化,是一般化,对象对象是个性化;是个性化;类类是定义,是定义,对象对象是实例;是实例;类类是抽象、是抽象、对象对象是具体。是具体。20类图和对象图的区别类图和对象图的区别 类图类图 对象图对象图 类具有三个分栏:名称、属性和操类具有三个分栏:名称、属性和操作作对象只有两个分栏:名称和属性对象只有两个分栏:名称和属性在类的名称分栏中只有类名在类的名称分栏中只有类名对象的名称形式为对象的名称形式为“对象名:类名对象名
15、:类名”,匿名对象的名称形式为,匿名对象的名称形式为“:类:类名名”类中列出了操作类中列出了操作对象图中不包含操作,因为对于属对象图中不包含操作,因为对于属于同一个类的对象而言,其操作是于同一个类的对象而言,其操作是相同的相同的类使用关联连接,关联使用名称、类使用关联连接,关联使用名称、角色、多重性以及约束等特征定义。角色、多重性以及约束等特征定义。类代表的是对对象的分类,所以必类代表的是对对象的分类,所以必须说明可以参与关联的对象的数目须说明可以参与关联的对象的数目对象使用链连接,链拥有名称、角对象使用链连接,链拥有名称、角色,但是没有多重性。对象代表的色,但是没有多重性。对象代表的是单独的
16、实体,所有的链都是一对是单独的实体,所有的链都是一对一的,因此不涉及到多重性一的,因此不涉及到多重性类的属性分栏定义了所有属性的特类的属性分栏定义了所有属性的特征征对象则只定义了属性的当前值,以对象则只定义了属性的当前值,以用于测试用例或例子中用于测试用例或例子中217.3 7.3 包图包图v包可直接理解为命名空间、文件夹,是用包可直接理解为命名空间、文件夹,是用来组织图形的封装,包图可以用来表述功来组织图形的封装,包图可以用来表述功能组命名空间的组织层次。能组命名空间的组织层次。 v包的作用是:包的作用是: 1)对语义上相关的元素进行分组;)对语义上相关的元素进行分组; 2)定义模型中的)定
17、义模型中的“语义边界语义边界”; 3)提供配置管理单元;)提供配置管理单元; 4)在设计时,提供并行工作的单元;)在设计时,提供并行工作的单元; 5)提供封装的命名空间,其中所有名称必)提供封装的命名空间,其中所有名称必须惟一须惟一 。22包图包图v包图由包和包之间的联系构成,它是维护和控制包图由包和包之间的联系构成,它是维护和控制系统总体结构的重要建模工具。系统总体结构的重要建模工具。v当对大型系统进行建模时,经常需要处理大量的当对大型系统进行建模时,经常需要处理大量的类、接口、构件、节点和图,这时就有必要将这类、接口、构件、节点和图,这时就有必要将这些元素进行分组,即把那些语义相近并倾向于
18、一些元素进行分组,即把那些语义相近并倾向于一起变化的元素组织起来加入同一包,这样方便理起变化的元素组织起来加入同一包,这样方便理解和处理整个模型。同时也便于轻松地控制这些解和处理整个模型。同时也便于轻松地控制这些元素的可见性,使一些元素在包外可见,一些元元素的可见性,使一些元素在包外可见,一些元素是隐藏在包内的。素是隐藏在包内的。v设计良好的包是高内聚、低耦合的,并且对其内设计良好的包是高内聚、低耦合的,并且对其内容的访问具有严密的控制。容的访问具有严密的控制。23包的名字包的名字v和其他建模的元素一样,每个包都必须有和其他建模的元素一样,每个包都必须有一个区别于其他与其他包的名字。模型包一个
19、区别于其他与其他包的名字。模型包是名字是一个字符串,它可分为简单名是名字是一个字符串,它可分为简单名(simple namesimple name)和路径名(和路径名(path namepath name)。)。简单名是指包仅含一个简单的名称,路径简单名是指包仅含一个简单的名称,路径名是指以包所位于的外围包的名字作为前名是指以包所位于的外围包的名字作为前缀的包名。缀的包名。v图形上,包是带有标签的文件夹。图形上,包是带有标签的文件夹。24包拥有的元素v包是对模型元素进行分组的机制,它把模型元包是对模型元素进行分组的机制,它把模型元素划分成若干个子集。包可以拥有素划分成若干个子集。包可以拥有UM
20、L中的中的其他元素,包括类、接口、组件、节点、协作、其他元素,包括类、接口、组件、节点、协作、用例和图,包甚至还可以包含其他包。用例和图,包甚至还可以包含其他包。25包的可见性包的可见性v包的可见性用来控制包外界的元素对包内元素的包的可见性用来控制包外界的元素对包内元素的可访问权限,这一点和类的可见性类似。可见性可访问权限,这一点和类的可见性类似。可见性可以分成可以分成3种。种。(1)公有访问(公有访问(public):):包内的模型元素可以被包内的模型元素可以被任何引入了此包的其他包的内含元素访问。公有任何引入了此包的其他包的内含元素访问。公有访问用前缀于内含元素名字的加号(访问用前缀于内含
21、元素名字的加号(+)表示。)表示。(2)保护访问(保护访问(protected):):表示此元素能被该表示此元素能被该模型包在继承关系上后继模式包的内含元素访问。模型包在继承关系上后继模式包的内含元素访问。保护访问用前缀于内含元素名字的号()表保护访问用前缀于内含元素名字的号()表示。示。(3)私有访问(私有访问(private):):表示此元素可以被属表示此元素可以被属于用一包的内含元素访问。私有访问用前缀于内于用一包的内含元素访问。私有访问用前缀于内含元素名字的减号()表示。含元素名字的减号()表示。26引入与输出引入与输出v在在UML里,引入一个包中的元素可以单向里,引入一个包中的元素可
22、以单向的访问另一个包中的元素。引入的访问另一个包中的元素。引入(import)关系用构造型的关系用构造型的import来修饰。来修饰。包中具有公有访问权限的内含元素称为输包中具有公有访问权限的内含元素称为输出(出(export)。)。v在包引入的表示方法中,带有箭头一侧的在包引入的表示方法中,带有箭头一侧的包被引入到没有箭头一侧的包中。包被引入到没有箭头一侧的包中。27包图中的依赖关系包图中的依赖关系vuse使用关系使用关系:是一种默认的依赖关系,说:是一种默认的依赖关系,说明客户包(发出者)中的元素以某种方式使用提明客户包(发出者)中的元素以某种方式使用提供者包(箭头指向的包)的公共元素,也
23、就是说供者包(箭头指向的包)的公共元素,也就是说客户包依赖于提供者包客户包依赖于提供者包 vimport引用关系引用关系:最普遍的包依赖类型,说:最普遍的包依赖类型,说明提供者包明提供者包(箭头指向的包箭头指向的包)的命名空间(包本身代的命名空间(包本身代表命名空间)将被添加到客户包(发出者)的命表命名空间)将被添加到客户包(发出者)的命名空间中,客户包中的元素也能够访问提供者包名空间中,客户包中的元素也能够访问提供者包的所有公共元素的所有公共元素 vaccess访问关系访问关系:只想使用提供者包中的元:只想使用提供者包中的元素,而不想将其命名空间合并则应使用该关系素,而不想将其命名空间合并则
24、应使用该关系vtrace追溯关系追溯关系:想表示一个包到另一个包的:想表示一个包到另一个包的历史发展,则需要使用历史发展,则需要使用trace关系来表示关系来表示 28包建模技术包建模技术v 当为较复杂的系统建模时,使用包是非常当为较复杂的系统建模时,使用包是非常有效的建模方法。有效的建模方法。v 包在很多方面与类相似,但是在对大系统包在很多方面与类相似,但是在对大系统模型时特别要注意区别包与类。类是对问题模型时特别要注意区别包与类。类是对问题领域或解决方案的事物的抽象,包是把这些领域或解决方案的事物的抽象,包是把这些事物组织成模型的一种机制。包可以没有标事物组织成模型的一种机制。包可以没有标
25、识因为它没有实例,在运行系统中不可见;识因为它没有实例,在运行系统中不可见;类必须有标识,它有实例,类的实例(对象)类必须有标识,它有实例,类的实例(对象)是运行系统的组成元素。是运行系统的组成元素。29建立包图的具体的做法如下。建立包图的具体的做法如下。(1)分析系统模型元素(通常是对象类),把)分析系统模型元素(通常是对象类),把概念上或语义上相近的模型元素纳入一个包。概念上或语义上相近的模型元素纳入一个包。(2)对于每一个包,标出其模型元素的可视性)对于每一个包,标出其模型元素的可视性(公共、保护或私用)。(公共、保护或私用)。(3)确定包与包之间的依赖联系,特别是输入)确定包与包之间的
26、依赖联系,特别是输入依赖。依赖。(4)确定包与包之间的泛化联系,确定包元素)确定包与包之间的泛化联系,确定包元素的多态性与重载。的多态性与重载。(5)绘制包图。)绘制包图。(6)包图精化。)包图精化。30实例分析实例分析1 131实例分析实例分析2 2v分析系统工作流程:分析系统工作流程: 1)通过)通过Internet连接到股票信息服务器,获连接到股票信息服务器,获取实时的股票信息,并存入数据库中。取实时的股票信息,并存入数据库中。 2)根据用户的输入和选择,从数据库中获取)根据用户的输入和选择,从数据库中获取相应的信息,展现在屏幕中。相应的信息,展现在屏幕中。 3)在数据的展现过程中,将需
27、要绘制大量的)在数据的展现过程中,将需要绘制大量的图表图表32实例分析实例分析2 2v根据功能模块组织包:根据功能模块组织包:33实例分析实例分析2 234类包图的应用类包图的应用v在用包对类进行分组时,一般遵循在用包对类进行分组时,一般遵循3个经验个经验法则:法则:将具有继承关系的类分到一个包里将具有继承关系的类分到一个包里将具有组合关系的类分到一个包里将具有组合关系的类分到一个包里将协作较多的类分到一个包里将协作较多的类分到一个包里35367.4 7.4 图书馆管理系统的类图图书馆管理系统的类图v7个类:个类:Item:可借阅物,即书或杂志:可借阅物,即书或杂志Title:书或杂志:书或杂志Loan:借阅记录:借阅记录Reservation:预订记录:预订记录BorrowerInformation:借阅人信息:借阅人信息37图书馆管理系统的类图图书馆管理系统的类图 38本章小结本章小结v类图和对象图描述了系统的结构。类图和对象图描述了系统的结构。v包图可用于对任意类型的包图可用于对任意类型的UML分类器进行分类器进行分组,使得分组,使得UML图易于理解。图易于理解。v掌握如何使用类图、对象图和包图对系统掌握如何使用类图、对象图和包图对系统建模。建模。39