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