计算机软件及应用第5章类图及对象图课件_第1页
计算机软件及应用第5章类图及对象图课件_第2页
计算机软件及应用第5章类图及对象图课件_第3页
计算机软件及应用第5章类图及对象图课件_第4页
计算机软件及应用第5章类图及对象图课件_第5页
已阅读5页,还剩104页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

问题:教学进程1、谈谈用例图的作用。2、用例之间存在着(),(),(),()关系??问题:教学进程3、下面几种用什么符号表示:

用例,关联,扩展,包含?问题:教学进程4、下面说法错误的是:A泛化表示一般和特殊的关系

B用例之间存在泛化关系

C参与者之间存在泛化关系

D参与者和用例之间存在泛化关系?问题:教学进程5、下面说法错误的是:A参与者是与所建立系统交互的人或物

B参与者可以是人,也可以是其他系统

C参与者是系统的一部分,是用例图的重要组成部分

D参与者之间存在泛化关系?类图及对象图5.1

类的定义5.2

类的关系5.3

类图5.4

几个特殊问题5.5

对象图5.6

包图第5章类图及对象图5.1.1

类的概念5.1.2

类的属性5.1.3

类的操作5.1.4

类的类型第5章5.1类的定义5.1.1类的概念

1.类的定义

类(class):

具有相似结构、行为和关系的一组对象。

2.类的表示

类名属性操作

3.类的其他几种表示形式

①简化表示②缩略表示实体类界面类控制类

4.类名

①名词或名词短语(动词或动词短语表示控制类)②尽可能用明确、简短,业务领域中事物的名称,避免使用抽象、无意义的名词例如:人,桌子,图形,汇总③用英文,第1个字母大写例如:Shape,Person④可分为简单类名,带路径类名例如:

Item

Business::Item例如:帐户,订单,事物问题:教学进程1、指出下面命名有问题的的类。?5.1.2类的属性

1.属性的含义

属性(attribute):描述类所表示事物的静态性质。

2.属性的格式

[可见性]属性名[:类型][‘[’多重性[次序]‘]’][=初始值][{特性}]5.1.2类的属性

1.属性的含义

属性(attribute):描述类所表示事物的静态性质。

2.属性的格式

第1个英文单词首字母小写,其它单词首字母大写

contactName

credintLimit

isPrepaid[可见性]属性名[:类型][‘[’多重性[次序]‘]’][=初始值][{特性}]5.1.2类的属性

1.属性的含义

属性(attribute):描述类所表示事物的静态性质。

2.属性的格式

该属性对外部实体的显现程度.

可见public:+

受限protected:#

私有private:-[可见性]属性名[:类型][‘[’多重性[次序]‘]’][=初始值][{特性}]5.1.2类的属性

1.属性的含义

属性(attribute):描述类所表示事物的静态性质。

2.属性的格式

属性的数据类型:

字符串:String

日期:Date

布尔:Boolean

整型:Int[可见性]属性名[:类型][‘[’多重性[次序]‘]’][=初始值][{特性}]5.1.2类的属性

1.属性的含义

属性(attribute):描述类所表示事物的静态性质。

2.属性的格式

表示属性值的取值的多寡,以及有序性:

例如:name:String[0..1]

表示属性”name”可能无值,也可能仅有一个值.points:Point[2..*ordered]

表示有两个或多个值,有序[可见性]属性名[:类型][‘[’多重性[次序]‘]’][=初始值][{特性}]5.1.2类的属性

1.属性的含义

属性(attribute):描述类所表示事物的静态性质。

2.属性的格式

表示属性初始所取的值:

例如:#visibility:Boolean=false

表示属性”visibility”初始取”false”[可见性]属性名[:类型][‘[’多重性[次序]‘]’][=初始值][{特性}]5.1.2类的属性

1.属性的含义

属性(attribute):描述类所表示事物的静态性质。

2.属性的格式

表示属性约束说明:

例如:#visibility:Boolean=false{读写}

表示属性”visibility”可读,写任何希望添加在属性定义字符串值但又没有合适地方可以加入的规则,都可以放在属性字符串里。[可见性]属性名[:类型][‘[’多重性[次序]‘]’][=初始值][{特性}]问题:教学进程1、指出下面属性名的含义。?+studentName:String=“黎明”#studentBirthDay:Date=1999-10-21-price:float=12.01{R/W}5.1.3类的操作

1.操作的含义

操作(operation):描述类所表示事物的动态性质。

2.操作的格式

[可见性]操作名[(参数列表):返回类型][{特性}]5.1.3类的操作

1.操作的含义

操作(operation):描述类所表示事物的动态性质。

2.操作的格式

[可见性]操作名[(参数列表):返回类型][{特性}]第1个英文单词首字母小写,其它单词首字母大写

close()

creditRecording()5.1.3类的操作

1.操作的含义

操作(operation):描述类所表示事物的动态性质。

2.操作的格式

该操作对外部实体的显现程度.

可见public:+

受限protected:#

私有private:-[可见性]操作名[(参数列表):返回类型][{特性}]5.1.3类的操作

1.操作的含义

操作(operation):描述类所表示事物的动态性质。

2.操作的格式

该操作的输入参数,可以为空.

例如:#create()+hide()-ttachXWindow(xwin:Xwindow)[可见性]操作名[(参数列表):返回类型][{特性}]5.1.3类的操作

1.操作的含义

操作(operation):描述类所表示事物的动态性质。

2.操作的格式

该操作的返回值的类型.

例如:+display():Location[可见性]操作名[(参数列表):返回类型][{特性}]问题:教学进程1、指出下面操作名的含义。?+setName(String:name)+getName():String+creatbook()5.1.4类的类型

边界类位于系统与外界的交界处,承担系统与外界的信息功能.1.边界类

边界类处在用例图中,参与者与用例的关联处,可以根据用例图发现边界类。说明:通过usecase图可以确定需要的边界类。每个actor/usecase交互至少要有一个边界类。但并非每个actor/usecase对要生成唯一边界类,多个actor启动同一usecase时,可以用同一个边界类与系统通信。例如:实体类对应着现实中的客观实物,用来保存信息,一般对应着数据表、文件等。2.实体类

实体类可以从现实中存在的客观事物,以及需要持久存放的信息两方面来发现。说明:通常,每个实体类在数据库中有相应的表,实体类中的属性对应数据库中表的字段。实体类可以通过事件流和交互图发现。实体类通常用领域术语命名。控制类承担着事务处理,控制调控的控制作用。3.控制类

一个用例中最少会有一个控制类,用来控制用例中的事件顺序,也可以在多个用例之间协调用例之间的联系。一个例子:订货系统类图及对象图5.2.1

关联5.2.2

聚集和组合5.2.3

泛化5.2.4

依赖第5章5.2类之间的关系5.2.1关联

1.关联的定义

●关联的通俗含义表示事物之间的一种牵连式的固有联系。例如:关联5.2.1关联

1.关联的定义●关联的本质含义关联(association):表示两个类之间存在某种语义上的联系,它是一种结构关系,规定了一种事物的对象可以和另一种事物的对象相联系。关联可以分为单向关联,双向关联。

单向关联双向关联例:单向关联所生成的Java代码:(可以选择是否生成类的缺省构造方法)publicclassB{

/***@roseuid3DAFBF0F01A2*/publicB(){

}}publicclassA{publicBtheB;

/***@roseuid3DAFBF0F01FC*/publicA(){

}}

2.关联的特性

①关联名关联名★如果关联关系已经清楚,就无需关联名

2.关联的特性

②关联的角色★如果关联名与角色名相同,则不标出角色名关联的角色

2.关联的特性

③关联的多重性0..1:0或10..n,0..*:0或多11..n:1到多*:0到多关联的角色关联的多重性

2.关联的特性

④关联类通过关联类描述关联的属性,操作,及其它信息。关联类

2.关联的特性

⑤关联的约束通过约束加强关联的含义。例如,“帐户”不能同时与“人”和“公司”有关联。约束

2.关联的特性

⑥限定关联通过限定符来规定关联的限定关系。例如,“文件目录”通过“文件名”来与具体的文件对象进行关联。“银行”通过“帐户”与具体的“人”对象进行关联。限定关联

3.关联的种类

①一元(自返)关联②二元关联

3.关联的种类

③多元关联三元关联

4.对关联须注意的一个问题

关联一定指的是类中对象与类中的对象之间的连接对应关系。类图对象图问题:教学进程

“教师”和“学生”两个类之间存在授课关系,一个教师可以教授多个学生,一个学生可以由多个教师授课,标出这两个类的关系。?问题:教学进程采购员从供货商处订货,双方需要签订订单,一个采购员可以订多个供货商的货品,一个供货商也可以给多个采购员供货。要求:

1.提取这个问题涉及的类;2.定义各个类之间的关系,并画出类图。?1.提取本问题的类?类是否提取完全了,还有没有隐藏的没有提取的类?1.提取本问题的类2.确定类之间的关系①2.确定类之间的关系②?货品是由供应商提供,但订单所订的货品怎么样反映出来?2.确定类之间的关系②5.2.2聚集和组合

1.聚集

聚集(aggregation):表示类之间一种松散的整体与部分的组成关系,是一种特殊的关联。表示例子5.2.2聚集和组合

2.组合

组合(composition):表示类之间一种紧密的整体与部分的组成关系,也是一种特殊的关联。表示例子5.2.2聚集和组合

3.聚集与组合的区别

①聚集松散,组合紧密;

●5.2.2聚集和组合

3.聚集与组合的区别

①聚集松散,组合紧密;②一个部分事物对象可以属于多个聚集对象,但一个部分事物对象仅能属于一个组合对象;

●5.2.2聚集和组合

3.聚集与组合的区别

①聚集松散,组合紧密;②一个部分事物对象可以属于多个聚集对象,但一个部分事物对象仅能属于一个组合对象;③聚集的对象生命周期可以不同,但组合对象则是同存同亡。●问题:教学进程举出一个具有聚合关系的类图的例子。?5.2.3泛化

1.泛化的含义

泛化(generalization):表示事物之间的一般与特殊的关系。也可以称为继承关系。泛化关系除了表示类与类之间的关系之外,还可以表示参与者、用例、包、构件、接口等建模元素之间的关系。

5.2.3泛化

2.泛化的表示例子表示例子:5.2.4依赖

1.依赖的含义

依赖(dependency):表示两个元素X、Y,如果X的变化必然导致Y的变化,则称Y依赖X。依赖关系不仅限于类,用例、包、构件之间都可以存在依赖关系。

5.2.4依赖

2.依赖的表示例子表示在类中,依赖由各种原因引起,如:一个类向另一个类发消息;一个类是另一个类的数据成员类型;一个类是另一个类的某个操作参数类型。问题:教学进程

下面几个模型图中,()能够正确地表示出“一个雇员只有一个经理,经理可以管理多个雇员,也可以不管理一个雇员”这样的意思。?问题:教学进程下面对类之间关系的描述,()是正确的。

A聚集关系中的部分只属于一个整体;

B组合关系中的部分可能属于整体;

C关联是表示对象之间的关系;

D泛化是表示对象之间的关系。?类图及对象图5.3.1

类图的概念5.3.2

类图的抽象层次5.3.3

建立类图第5章5.3类图5.3.1类图的概念

类图(ClassDiagram):是由类,相关建模元素,及其关系构成的图,用来描述类之间的静态关系。类图在系统中处在核心位置。也是UML中最为重要的一种图。5.3.2类图的抽象层次在系统的不同开发阶段,类图可以具有不同的抽象程度。随着开发的深入,类图应该越来越详细、具体。可以分为:概念层,逻辑层,实现层。概念层逻辑层实现层概念层(Conceptual)类图描述应用领域中的概念,一般地,这些概念和类有很自然的联系,但两者并没有直接的映射关系。说明层(Specification)类图描述软件的接口部分,而不是软件的实现部分。实现层(Implementation)类图才真正考虑类的实现问题,揭示实现细节。不要过早陷入实现细节,根据项目开发的不同阶段,采用不同层次的类图。如果处于分析阶段,应画概念层类图;当开始着手软件设计时,应画说明层类图;当考察某个特定的实现技术时,则应画实现层类图。

建立类图的一般步骤:①研究分析问题领域,确定系统需求;

●5.3.3建立类图用户访问领域知识现实世界经验建立域模型问题描绘书

建立类图的一般步骤:

①研究分析问题领域,确定系统需求;②确定类,明确类的含义和职责,确定类的属性和操作;

●5.3.3建立类图

建立类图的一般步骤:

①研究分析问题领域,确定系统需求;②确定类,明确类的含义和职责,确定类的属性和操作;③确定类之间的关系。关联,泛化,聚集,组合,依赖;

●5.3.3建立类图如何发现类和它们之间的关系名词-动词分析法找出以上来源中的名词或名词短语,作为候选类对候选类进行筛选,去掉冗余的、和系统无关的、以及非独立的类以动词为线索确定类之间的关系

建立类图的一般步骤:

①研究分析问题领域,确定系统需求;②确定类,明确类的含义和职责,确定类的属性和操作;③确定类之间的关系。关联,泛化,聚集,组合,依赖;④调整和细化类及其关系,解决重复和冲突;

●5.3.3建立类图

建立类图的一般步骤:

①研究分析问题领域,确定系统需求;②确定类,明确类的含义和职责,确定类的属性和操作;③确定类之间的关系。关联,泛化,聚集,组合,依赖;④调整和细化类及其关系,解决重复和冲突;⑤绘制类图,并增加相应说明。●5.3.3建立类图类图及对象图5.4.1

对象类和抽象类5.4.2

派生属性和派生关联5.4.3

接口第5章5.4

几个特殊问题

①对象类

可以实例化为对象的类。我们前面所提的例子都属于对象类。

②抽象类不能直接产生实例的类。抽象类的类名一般被写成为斜体。5.4.1

对象类和抽象类

派生属性和派生关联的概念

可以从其它属性或关联计算推演得到的属性和关联。在派生的名字前面加/,以示区别。派生容易产生不一致,应注意。5.4.2

派生属性和派生关联派生关联派生属性5.4.3接口(Interface)接口是一组用于描述类或构件的一个服务的操作。在图形上,把接口画为一个圆;其扩展形式是接口表示为一个构造型化类。接口接口是版型化的类,版型为<<interface>>的类,如下图所示:Label形式Decoration形式Icon形式5.5

对象图

1、对象图的概念:

对象图表示一组对象及其它们之间的联系。对象是系统的详细状态在某一时刻的快照,通常用来表示复杂类图的一个实例。

2、说明:①对象图并不在任何时间必须;②Rose2003不支持对象图。例:表示网络间节点关系的类图及其一个对象图的例子。类图对象图Rose中对象图的表示:类图对象图类图和对象图的区别

类图对象图类具有三个分栏:名称、属性和操作对象只有两个分栏:名称和属性在类的名称分栏中只有类名对象的名称形式为“对象名:类名类中列出了操作对象图中不包含操作,因为对于属于同一个类的对象而言,其操作是相同的类使用关联连接,关联使用名称、角色、多重性以及约束等特征定义。类代表的是对对象的分类,所以必须说明可以参与关联的对象的数目对象使用链连接,链拥有名称、角色,但是没有多重性。对象代表的是单独的实体,所有的链都是一对一的,因此不涉及到多重性类的属性分栏定义了所有属性的特征对象则只定义了属性的当前值,以用于测试用例或例子中注意点:教学进程1、类图是用来描述系统资源和要素相互之间的静态结构关系。

区分类图和用例图之间的区别注意点:教学进程2、类图可以用于业务模型,需求模型,逻辑模型和设计模型中。

业务模型:对业务资源的关系建模需求模型:系统要素关系建模逻辑模型:系统要素关系建模设计模型:系统要素关系建模注意点:教学进程3、类的类型可以具有三种类型:

界面类:表示外界与系统的交互接口实体类:表示实体型事物控制类:表示控制和协调作用的要素注意点:教学进程4、类的关系具有四种:

关联:表示类中对象之间的链接关系组成:表示事物之间的整体和部分关系,(聚合,组合)泛化:表示事物的一般和特殊关系依赖:事物之间的因果关系注意点:教学进程5、类图的抽象层次:

概念层逻辑层实现层注意点:教学进程6、类可以优化,一个复杂类可以分解为多个简单类。

例如:教学进程注意点:教学进程7、描绘类图时,应根据所要表现的应用需要来提取要素,绘制类图。

例如:教学进程描述公司与个人雇佣关系的类图。

方法1:方法2:问题为:教学进程提取企业与个人雇佣关系的类图。

一个企业可以雇佣多个人员。企业的属性包括名称、住址、电话、简况。人员的情况包括姓名、年龄、性别、住址、电话、简历等。雇佣的信息包括雇佣的开始日期、截止日期,简要说明等。双方要签订雇佣合同。雇佣还涉及到人员所从事的工作岗位。方法3:教学进程练习1:教学进程绘制图书馆图书借阅管理的类图。

对于图书馆里的每一种图书,计算机管理目录中包括:书名、作者、ISBN号、出版社、单价。每一种

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论