uml类图-对象图-包图.ppt

上传人:本田雅阁 文档编号:3486051 上传时间:2019-09-02 格式:PPT 页数:45 大小:1.44MB
返回 下载 相关 举报
uml类图-对象图-包图.ppt_第1页
第1页 / 共45页
uml类图-对象图-包图.ppt_第2页
第2页 / 共45页
uml类图-对象图-包图.ppt_第3页
第3页 / 共45页
uml类图-对象图-包图.ppt_第4页
第4页 / 共45页
uml类图-对象图-包图.ppt_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《uml类图-对象图-包图.ppt》由会员分享,可在线阅读,更多相关《uml类图-对象图-包图.ppt(45页珍藏版)》请在三一文库上搜索。

1、类图 什么是类图 类图的应用 类图的组成 类图的建模技术 对象图 包图 实例分析图书管理系统,本次课主要内容,Example,什么是类图?,类(Class)、对象(Object)和它们之间的关系是面向对象技术中最基本的元素。类图技术是OO方法的核心。 类图标加上它们之间的关系就构成了类图。 A class diagram is a graphic presentation of the static view that shows a collection of declarative (static) model elements, such as classes, types, and t

2、heir contents and relationships.,类图的应用,类图用于对系统静态设计视图建模。与数据模型不同,它不仅显示了信息的结构,同时还描述了系统的行为。 类图中可以包含接口,包,关系等建模元素,也可以包含对象,链等实例。 类图典型的应用在下面三类建模:,对系统的词汇建模 对简单协作建模 对逻辑数据库模式建模,类图的组成,类图通常包含下述内容:,类 接口 协作 依赖、泛化和关联关系,类图可以包含注解和约束; 类图还可以有包或子系统,二者都用于把模型元素聚集成更大的组件。,类(Class),A class is the descriptor for a set of obje

3、cts with similar structure, behavior, and relationships.,在UML中,类可视化表示为划分成三个格子的长方形,如图所示:,类名,属性,操作,接口(Interface),接口是一组用于描述类或构件的一个服务的操作。在图形上,把接口画为一个圆;其扩展形式是接口表示为一个构造型化类。,协作(Collaboration),协作是一组类、接口和其他元素的群体,它们共同工作,提供比各组成部分的功能总和更强的合作行为。,练习:请为下面这段Java代码补充类图,pulic class Student private String name; public

4、void setName(String name) this.name=name; public String getName() return this.name; ,回答问题,在学校中,一个学生可以选修多门课程,一门课程可以由多个学生选修,那么学生和课程之间是( )关系。 类A的一个操作调用类B的一个操作,且这两个类之间不存在其他关系,那么类A和类B之间是( )关系。 在MFC类库中,Window类和DialogBox类之间是( )关系。,类的关系,类之间的静态关系主要有: 依赖:它表示类之间的使用关系(包括精化、 跟踪和绑定关系) 泛化:它把一般类连接到它的特殊类; 关联:它表示对象之间

5、的结构关系。,类的依赖,A dependency is a relationship between two elements in which a change to one element (the supplier) may affect or supply information needed by the other element (the client). 有两个元素X、Y,如果修改元素X的定义可能会引起对另一个元素Y的定义的修改,则称元素Y依赖(Dependency)于元素X。 在类中,依赖由各种原因引起,如:一个类向另一个类发消息;一个类是另一个类的某个操作参数类型。,练习,

6、在一个课程注册系统中,定义了类CourseSchedule和类Course,并在类CourseSchedule中定义了方法add(c:Course)和方法remove(c:Course),则类CourseSchedule和类Course之间的关系是: A、泛化关系 B、组成关系 C、依赖关系 D、包含关系,类的泛化,泛化(Generalization)定义了一般元素和特殊元素之间的分类关系。在UML中,泛化表示为一头为空心三角形的连线。 A generalization is a taxonomic relationship between a more general element and

7、 a more specific element. The more specific element is fully consistent with the more general element and contains additional information.,类的泛化(Cont),泛化意味着子类的对象可以被用在父类的对象可能出现的任何地方,但反之不行。 泛化为“is-kind-of”的关系 多数情况,用类和接口间的泛化指明继承关系。,类的关联,关联(association) 表示两个类之间存在某种语义上的联系,它是一种结构关系,规定了一种事物的对象可以和另一种事物的对象相联系

8、。 关联的图标:在类图中,关联用一条把类连接在一起的实线表示。,关联名称,可以给关联加上关联名,来描述关联的作用。例如Person类和Company类之间的关联可以表示多种意义,如这个人是公司的客户、雇员、所有者等。下图是使用关联名的一个例子: 一般地,关联的名字通常是动词或动词短语。 关联命名的原则是该命名是否有助于理解该模型。,关联角色,关联两端的类可以某种角色参与关联。例如下图中,“公司”以“雇主”的角色,“人”以“雇员”的角色参与关联。“雇主”和“雇员”称为角色名。如果在关联上没有标出角色名,则隐含地用类的名称作为角色名。,关联的多重性,角色还具有多重性(Multiplicity),表

9、示可以有多少个对象参与该关联。在下图中,雇主(公司)可以雇佣多个雇员,表示为“0n”; 雇员只能被一家雇主雇佣,表示为“1”。,多重性指标,练习:根据下面的陈述画出类图,1)学生包括本科生、研究生两种。 2)研究生可以利用课余时间担任助教。 3)教师包括讲师和教授两种。 4)一名助教可以为一位讲师或一位教授助课,一位讲师只能有一名助教,一位教授可以有5名助教。,聚集和组合,聚集(aggregation)是一种特殊形式的关联。聚集表示类之间的整体与部分的关系。 组合(composition)是一种特殊形式的聚集,组合关系中的整体与部分具有同样的生存期。 An aggregation is a f

10、orm of association that specifies a whole-part relationship between a whole and a constituent part. A composition is a form of aggregation association with strong ownership and coincident lifetime of parts by the whole.,聚集和组合(cont),UML中聚集和组合的表示:,类图的抽象层次,在软件开发的不同阶段使用的类图具有不同的抽象层次。一般地,类图可分为三个层次,即概念层,说明

11、层和实现层。 类的概念层,说明层和实现层的划分最先是由 Steve Cook和John Daniels引入的。,概念层(Conceptual)类图描述应用领域中的概念,一般地,这些概念和类有很自然的联系,但两者并没有直接的映射关系。 说明层(Specification)类图描述软件的接口部分,而不是软件的实现部分。 实现层(Implementation)类图才真正考虑类的实现问题,揭示实现细节。,类图的三个层次的例子,概念类,分析类,设计类,建立类图的一般步骤,1. 研究分析问题领域 2. 发现对象与类,明确它们的含义和责任,确定属性。 3. 发现类之间的关系。把类之间的关系用关联、泛化、聚集

12、、组合、依赖等关系表达出来。 4. 设计类与关系。调整和细化已得到的类和类之间的关系,解决诸如命名冲突、功能重复等问题。 5. 绘制类图并编制相应的说明。,概念模型(领域),如何发现类和它们之间的关系,名词-动词分析法 找出以上来源中的名词或名词短语,作为候选类 对候选类进行筛选,去掉冗余的、和系统无关的、以及非独立的类 以动词为线索确定类之间的关系,实例分析-图书管理系统,在图书管理系统中,要为每个借阅者建立一个账户,并给借阅者发放借阅卡(借阅卡可以提供借阅卡号、借阅者姓名),账户中存储借阅者的个人信息、借阅信息以及预订信息,持有借阅卡的借阅者可以借阅书刊、返还书刊、查询书刊信息、预订书刊并

13、取消预订,但这些操作都是通过图书管理员进行的。,在借阅书刊时,需要输入所借阅的书刊名、书刊的ISBN/ISSN号,然后输入借阅者的图书卡号和借阅者名,完成后提交所填表格,系统验证借阅者是否有效,若有效,借阅请求被接受,系统查询借阅者所借阅的书刊是否存在,若存在,则借阅者可借出书刊,系统记录借阅记录。借阅者还书后,系统清除借阅记录。如果借阅者所借书刊已被借出,借阅者还可预订该书刊。,边界类(boundary),边界类处理系统环境与系统内部之间的通信,为用户或另一个系统提供了接口。 边界类组成了系统中依赖于环境的部分,边界类用于为系统的接口建模,代表了系统和系统外的一些实体之间的接口。,边界类,实

14、体类(entity),实体类是模拟必须被存储的信息和关联行为的类。 实体对象是实体类的实例,被用来保存或更新关于某个现象的信息,通常是持久性的。 实体类通常是独立于他们的环境,对于系统环境如何与系统通信是不敏感的。,实体类,控制类(control),控制类是用来为特定于一个或几个用例的控制行为建模的类。 控制对象是控制类的实例,它经常控制其他的对象,所以控制对象的行为是协调类型的,控制类协调实现用例的规定行为所需要的事件。 控制类封装了特定于用例的行为,通常依赖于应用程序的类。,控制类,对象图(Object Diagram),对象图是表示在某一时间点上一组对象以及它们的关系的图。在图形上,对象

15、图是顶点和弧的集合。 A object diagram is a diagram that shows objects and their relationships at a point in time.,对象图与类图,对象图的模型元素有对象和链(link)。对象是类的实例;对象之间的链是类之间的关联的实例。 对象与类的图形表示相似,UML中对象图与类图具有相同的表示形式。 对象图实质上是类图的实例。 对象图常用于表示复杂的类图的一个实例。 对象图的使用相当有限,主要用于表达数据结构的示例,以及了解系统在某个特定时刻的具体情况。,对象图,包(Package),包是用于把元素组织成组的通用机制

16、。在图形上, 把包画为带标签的文件夹。 A package is a general-purpose mechanism for organizing elements into groups.,包的有关说明,包名分simple name和path name两种形式。 例: Camera Sensors:Vision:Camera 包中可以包含其它建模元素,如class, interface, component, node, use case, package, , 等。 包可以嵌套,但嵌套层次不要过深。 包没有实例,即在系统运行时见不到包。 包之间可以存在依赖关系, 但这种依赖关系不存在传

17、递性。,包的应用,对建模元素进行分组。 设计良好的包把一些语义上接近并倾向于一起变化的元素组织在一起。 在Rose中,包可以提供一些特殊的功能,如 在数据建模中,用包表示模式和域包;在数据模型和对象模型之间的转换是以包为单位进行的; 在Web建模中,包可以表示某一虚拟目录(virtual directory),在该目录下的所有web元素都在这个包中; 包在Rose中还可以作为控制单元(controlled unit),以方便团队开发和配置管理。,思考与讨论,类图代表了什么含义? 查找资料,阐述领域建模的方法 如何发现关联关系?,作业:按如下描述画出一个自治机器人的类图。,这张图的焦点是聚集在那

18、些让机器人在路上行走的机制所对应的类上。你可以发现一个虚类Motor和两个从它派生出来的类:SteeringMotor和MainMotor。这两个类都从它的父亲Motor继承了五个方法:move()、stop()、resetCounter()、status()、distance()。这两个类又是另一个类Driver的一部分。类PathAgent和Driver有一个1对1的关系,和CollisionSensor有1对n的关系。,作业:请根据以上题目描述,给出系统的UML类图设计方案,系统名称:农夫果园游戏系统 人物角色:农夫(Farmer)、市场调查员(Inquirer)、农场主(Boss) 系统实物:各种果树(Fruit)、果园(Garden) 功能需求:1、农夫可以根据市场行情种植各种水果; 2、市场调查员可以了解市场行情; 3、农场主可以向农夫、市场调查员发布命令 4、各种果树都具有种植(plant)、成长(grow)、收获(harvest)行为; 5、果园是人物和实物进行交易的经营场所。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1