版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、类图类图什么是类图什么是类图类图的应用类图的应用类图的组成类图的组成类图的建模技术类图的建模技术对象图对象图包图包图实例分析图书管理系统实例分析图书管理系统本次课主要内容example什么是类图?什么是类图?类(class)、对象(object)和它们之间的关系是面向对象技术中最基本的元素。类图技术是oo方法的核心。类图标加上它们之间的关系就构成了类图类图。a class diagram is a graphic presentation of the static view that shows a collection of declarative (static) model eleme
2、nts, such as classes, types, and their contents and relationships.类图的应用类图的应用类图用于对系统静态设计视图建模。与数据模型类图用于对系统静态设计视图建模。与数据模型不同,它不仅显示了信息的结构,同时还描述了不同,它不仅显示了信息的结构,同时还描述了系统的行为。系统的行为。类图中可以包含接口,包,关系等建模元素,也类图中可以包含接口,包,关系等建模元素,也可以包含对象,链等实例。可以包含对象,链等实例。类图典型的应用在下面三类建模:类图典型的应用在下面三类建模:对系统的词汇建模对简单协作建模对逻辑数据库模式建模类图的组成类图
3、的组成类图通常包含下述内容:类图通常包含下述内容:类接口协作依赖、泛化和关联关系类图可以包含注解和约束;类图可以包含注解和约束;类图还可以有包或子系统,二者都用于把类图还可以有包或子系统,二者都用于把模型元素聚集成更大的组件。模型元素聚集成更大的组件。类类(class)a class is the descriptor for a set of objects with similar structure, behavior, and relationships.在uml中,类可视化表示为划分成三个格子的长方形,如图所示:类名类名属性属性操作操作接口接口(interface)接口是一组用于描述
4、类或构件的一个服务的操作。在图形上,把接口画为一个圆;其扩展形式是接口表示为一个构造型化类。协作协作(collaboration)协作是一组类、接口和其他元素的群体,它们共同工作,提供比各组成部分的功能总和更强的合作行为。练习:请为下面这段练习:请为下面这段java代码补充类图代码补充类图pulic class studentprivate string name;public void setname(string name)=name;public string getname()return ;回答问题回答问题在学校中,一个学生可以选修多门课程,一在学
5、校中,一个学生可以选修多门课程,一门课程可以由多个学生选修,那么学生和课门课程可以由多个学生选修,那么学生和课程之间是(程之间是( )关系。)关系。类类a的一个操作调用类的一个操作调用类b的一个操作,且这的一个操作,且这两个类之间不存在其他关系,那么类两个类之间不存在其他关系,那么类a和类和类b之间是(之间是( )关系。)关系。在在mfc类库中,类库中,window类和类和dialogbox类之间是(类之间是( )关系。)关系。类的关系类的关系 类之间的静态关系主要有:类之间的静态关系主要有:依赖:它表示类之间的使用关系(包括精化、 跟踪和绑定关系)泛化:它把一般类连接到它的特殊类;关联:它表
6、示对象之间的结构关系。类的依赖类的依赖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。在类中,依赖由各种原因引起,如:一个类向另一个类发消息;一个类是另一个类的某个操作参数类型
7、。练习练习在一个课程注册系统中,定义了类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 ele
8、ment and 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) 表示两个类之间存在某种语义上的联系,它是一种结构关系,规定了一种事物的对象可以
9、和另一种事物的对象相联系。关联的图标:在类图中,关联用一条把类连接在一起的实线表示。personcompany关联名称关联名称可以给关联加上关联名关联名,来描述关联的作用。例如person类和company类之间的关联可以表示多种意义,如这个人是公司的客户、雇员、所有者等。下图是使用关联名的一个例子:一般地,关联的名字通常是动词或动词短语。关联命名的原则是该命名是否有助于理解该模型。personcompanyworks for关联角色关联角色 关联两端的类可以某种角色角色参与关联。例如下图中,“公司”以“雇主”的角色,“人”以“雇员”的角色参与关联。“雇主”和“雇员”称为角色名。如果在关联上没
10、有标出角色名,则隐含地用类的名称作为角色名。关联的多重性关联的多重性角色还具有多重性多重性(multiplicity),表示可以有多少个对象参与该关联。在下图中,雇主(公司)可以雇佣多个雇员,表示为“0.n”; 雇员只能被一家雇主雇佣,表示为“1”。多重性指标多重性指标练习:根据下面的陈述画出类图1)学生包括本科生、研究生两种。2)研究生可以利用课余时间担任助教。3)教师包括讲师和教授两种。4)一名助教可以为一位讲师或一位教授助课,一位讲师只能有一名助教,一位教授可以有5名助教。聚集和组合聚集和组合聚集聚集(aggregation)是一种特殊形式的关联。聚集表示类之间的整体与部分的关系。组合组
11、合(composition)是一种特殊形式的聚集,组合关系中的整体与部分具有同样的生存期。an aggregation is a form 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)
12、uml中聚集和组合的表示:carwheelcompanydepartmentcompanydepartment类图的抽象层次类图的抽象层次在软件开发的不同阶段使用的类图具有不同的抽象层次。一般地,类图可分为三个层次,即概念概念层层,说明层说明层和实现层实现层。类的概念层概念层,说明层说明层和实现层实现层的划分最先是由 steve cook和john daniels引入的。概念层概念层(conceptual)类图描述应用领域中的概念,一般地,这些概念和类有很自然的联系,但两者并没有直接的映射关系。说明层(specification)类图描述软件的接口部分,而不是软件的实现部分。实现层(imple
13、mentation)类图才真正考虑类的实现问题,揭示实现细节。类图的三个层次的例子类图的三个层次的例子概念层说明层实现层概念类概念类分析类分析类设计类设计类建立类图的一般步骤建立类图的一般步骤1. 研究分析问题领域2. 发现对象与类,明确它们的含义和责任,确定属性。3. 发现类之间的关系。把类之间的关系用关联、泛化、聚集、组合、依赖等关系表达出来。4. 设计类与关系。调整和细化已得到的类和类之间的关系,解决诸如命名冲突、功能重复等问题。5. 绘制类图并编制相应的说明。概念模型(领域)用户访问用户访问领域知识领域知识现实世界经验现实世界经验建立域模型建立域模型问题描绘书问题描绘书如何发现类和它们
14、之间的关系名词-动词分析法l找出以上来源中的名词或名词短语,作为候选类l对候选类进行筛选,去掉冗余的、和系统无关的、以及非独立的类l以动词为线索确定类之间的关系实例分析-图书管理系统在图书管理系统中,要为每个借阅者建立一个账户,并给借阅者发放借阅卡(借阅卡可以提供借阅卡号、借阅者姓名),账户中存储借阅者的个人信息、借阅信息以及预订信息,持有借阅卡的借阅者可以借阅书刊、返还书刊、查询书刊信息、预订书刊并取消预订,但这些操作都是通过图书管理员进行的。在借阅书刊时,需要输入所借阅的书刊名、书刊的isbn/issn号,然后输入借阅者的图书卡号和借阅者名,完成后提交所填表格,系统验证借阅者是否有效,若有
15、效,借阅请求被接受,系统查询借阅者所借阅的书刊是否存在,若存在,则借阅者可借出书刊,系统记录借阅记录。借阅者还书后,系统清除借阅记录。如果借阅者所借书刊已被借出,借阅者还可预订该书刊。边界类边界类(boundary)边界类处理系统环境与系统内部之间的通信,为用户或另一个系统提供了接口。边界类组成了系统中依赖于环境的部分,边界类用于为系统的接口建模,代表了系统和系统外的一些实体之间的接口。边界类实体类实体类(entity)实体类是模拟必须被存储的信息和关联行为的类。实体对象是实体类的实例,被用来保存或更新关于某个现象的信息,通常是持久性的。实体类通常是独立于他们的环境,对于系统环境如何与系统通信
16、是不敏感的。实体类实体类控制类控制类(control)控制类是用来为特定于一个或几个用例的控制行为建模的类。控制对象是控制类的实例,它经常控制其他的对象,所以控制对象的行为是协调类型的,控制类协调实现用例的规定行为所需要的事件。控制类封装了特定于用例的行为,通常依赖于应用程序的类。控制类控制类对象图(object diagram)对象图是表示在某一时间点上一组对象以对象图是表示在某一时间点上一组对象以及它们的关系的图。在图形上,对象图是及它们的关系的图。在图形上,对象图是顶点和弧的集合。顶点和弧的集合。a object diagram is a diagram that shows objec
17、ts and their relationships at a point in time.对象图与类图对象图与类图对象图对象图的模型元素有对象对象和链链(link)。对象是类的实例;对象之间的链是类之间的关联的实例。对象与类的图形表示相似,uml中对象图与类图具有相同的表示形式。对象图实质上是类图的实例。对象图常用于表示复杂的类图的一个实例。对象图的使用相当有限,主要用于表达数据结构的示例,以及了解系统在某个特定时刻的具体情况。对象图对象图包包(package)包是用于把元素组织成组的通用机制。在图形上, 把包画为带标签的文件夹。a package is a general-purpose
18、mechanism for organizing elements into groups.包的有关说明包的有关说明包名分simple name和path name两种形式。例:lcameralsensors:vision:camera包中可以包含其它建模元素,如class, interface, component, node, use case, package, , 等。包可以嵌套,但嵌套层次不要过深。包没有实例,即在系统运行时见不到包。包之间可以存在依赖关系, 但这种依赖关系不存在传递性。包的应用包的应用对建模元素进行分组。对建模元素进行分组。设计良好的包把一些语义上接近并倾向于一起变设计良好的包把一些语义上接近并倾向于一起变化的元素组织在一起。化的元素组织在一起。在在rose中,包可以提供一些特殊的功能,如中,包可以提供一些特殊的功能,如l在数据建模中,用包表示模式和域包;在数据模型和对象模型之间的转换是以包为单位进行的;l在web建模中,包
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年广西国际壮医医院公开招聘工作人员16人参考考试试题及答案解析
- 2025浙江温州市平阳县兴阳控股集团有限公司下属房开公司招聘项目制员工15人模拟笔试试题及答案解析
- 2025浙江嘉兴市海宁市海昌街道社区卫生服务中心招聘1人备考笔试题库及答案解析
- 2025四川雅安市雨城区公益性岗位招聘8人备考笔试试题及答案解析
- 25江西南昌动物园招聘1人备考笔试题库及答案解析
- 2026河北沧州市直卫健系统公立医院高层次人才选聘67人参考考试试题及答案解析
- 网推广协议书范本
- 耕地开垦合同范本
- 职工领工资协议书
- 联营合作n协议书
- 潍坊学院简明中外教育史期末考试复习题
- 两位数加两位数口算练习题4000道278
- 《CuZnAl催化剂催化合成气直接制乙醇的研究》
- 房产抵押合同书模板
- 四年级语文上册 每日默写单(基础知识默写单)
- 外贸英语函电教程 第二版 课件Unit 8 Shipping;Unit 9 Settling Claims
- 儿童静脉输液安全管理
- 管道(沟槽)开挖支护方案
- 医院课件:《抗肿瘤药物分级管理培训》
- 转让烟酒店带烟证合同
- 走向世界的中国文学智慧树知到答案2024年哈尔滨工业大学
评论
0/150
提交评论