-
2022-01-06 18:10:38
《UML2基础、建模与设计教程》杨弘平等编著,清华大学出版社,第5章 类图和对象图课后习题
1.试论述类与用例的区别。
2.试比较边界类与实体类的异同。
3.试运用本节所学的静态建模技术找出用户管理模块中的所有的类。
4.请找出学生管理系统中学生注册用例的实体类,边界类,控制类。
5.什么是依赖?它与关联有什么区别?
6.什么是泛化?泛化是否就是类的继承?如果不是请说明理由。
7.试论述聚合和组合的异同。更多相关内容 -
类图和对象图
2021-03-04 05:33:32类图是定义其他图的基础,在类图基础上,可以使用状态图、协作图、组件图和配置图等进一步描述系统其他方面的特性。类图包括7个元素:类(Class)、接口(Interface)、协作(collaboration)、依赖关系(Dependency... -
第六章 类图和对象图
2012-05-13 21:26:24类图(Class diagram)显示了系统的静态结构,而系统的静态结构构成了系统的概念基础。 类图,就是用于对系统中的各种概念进行建模,并描绘出它们之间关系的图。 -
对象图和类图的区别
2021-02-27 23:29:19UML类图UML对象图01 类图和对象图的关系这就要从两者的概念入手了:类图:用于描述系统中所包含的类以及它们之间的相互关系。对象图:用于描述某一时刻的一组对象及它们之间的关系。两个概念拎出来一对比,差别就很...两者的关系:对象图可以看做是类图的实例,用来表达各个对象在某一时刻的状态。
两者的异同:主要表现为两者建模元素的异同(下面有对比说明)。
UML类图 UML对象图 01 类图和对象图的关系
这就要从两者的概念入手了:
类图:用于描述系统中所包含的类以及它们之间的相互关系。
对象图:用于描述某一时刻的一组对象及它们之间的关系。两个概念拎出来一对比,差别就很明显了,在于后者多了“某一时刻”。
因此,对象图可以视作类图的实例,用来表达各个对象在某一时刻的状态。
对象图中的建模元素主要有对象和链,对象是类的实例,链是类之间的关联关系的实例。
02 类图和对象图的异同
就像前面已经提到的,两者的异同主要表现为建模元素的异同。
下面就从两者的建模元素说起:
类图VS对象图 1)类具有3个分栏,自上而下依次为名称、属性和操作;对象只有两个分栏,自上而下依次为名称、属性
2)在类的名称分栏中只有类名;对象的名称形式为“对象名:类名”,匿名对象的名称形式为“:类名”;
3)类的属性分栏定义了所有属性的特征;对象则只定义了属性的当前值,以便用于测试用例或例子中;
4)类中列出了操作;对象图中不包括操作,因为对于同属于同一个类的对象而言,其操作是相同的;
5)类使用关联连接,关联使用名称、角色、多重性以及约束等特征定义。类代表的是对对象的分类所以必须说明可以参与关联的对象的数目;对象使用链连接、链拥有名称、角色,但是没有多重性。对象代表的是单独的实体,所有的链都是一对一的,因此不涉及到多重。
-
类图与对象图
2019-07-21 00:15:52对象图概述(Obiect Diagram) 接口 抽象类 一:类图的概述 (1)类名 类名不能省略,属性和操作可以 类名两种表示方法: 简单名:如E。 全名:也称为路径名,就是在类名前面加上包的名称,例如 cn::E ...- 类图的概述
- 对象图概述(Obiect Diagram)
- 接口
- 抽象类
一:类图的概述
(1)类名
类名不能省略,属性和操作可以
类名两种表示方法:
- 简单名:如E。
- 全名:也称为路径名,就是在类名前面加上包的名称,例如 cn::E
(2)属性
在UML中,类属性的语法为:[可见性]属性名[:类型][=初始值][{属性字符串}]
- 可见性:+(Public),-(Private),#(Protected)
UML的类中不存在默认的可见性,如果没有显示任何一种符号,就表示没有定义该属性的可见性
- 可以为属性指定一个默认值
- 属性字符串:属性字符串用来指定关于属性的其他信息,例如某个属性应该是永久的。任何希望添加在属性定义字符串值但又没有合适的地方可以加入的规则,都可以放在属性字符串里。 (这个有点懵,不知道什么意思,也不知道怎么在starUML使用)
(3)操作
在UML中,类操作的语法为:[可见性]操作名[(参数表)][:返回类型][{属性字符串}]
- 可见性:+(Public),-(Private),#(Protected),~(Package)包内公有
- 多个参数要用逗号隔开,参数可以有默认值
- 属性字符串:在操作的定义中加入一些除了预定义元素之外的信息
- 如果是静态方法,在方法的名字下面添加下划线
(4)约束
约束是用{}的格式写在类的边上,指定个别属性的取值范围(这{}是starUML画出来的??我不知道怎么画,不知道怎么给属性加上约束)
在 StartUML 中,如果双击类名会看到右边的控制面板出现下图的表格:
如果没有,那点这里
再双击类图中的类名,就会出来了
里面一些属性参考:https://www.jianshu.com/p/3c86eb617763
(1)stereotype:这个中文翻译也叫构造型,其实就是对类的概念的精化。简单的说加一句话来更加清楚准确描述这个类。
现在往 stereotype 添加 EE,看看类图会发生什么变化?可以发现在类名 E 上面会出现 <<EE>> ,因为在 UML 当中构造型(Stereotype)就是用<< >> 符号来表示。
stereotype 其实就是给你类分类,entity,domain,service,这三种都是按层次划分的,分别表示不同层中的类。entity是实体层的,domain是业务领域层的,service就是服务层的。
(2)visibility:这个是可见性的意思,这里一共有四个选项,分别是 public、protected、private、package。不过你无论选什么选项类图都不会有什么变化的,不过要注意的是 Java 中只能使用 public 和 package 来修饰类。
(3)isAbstract:这个选项就代表是否为抽象类。如果选上这个选项类名就会变成斜体字,如图:
(4)isFinalSpecialization:是否为 final 类,如果选上这个选项,类图并没有什么变化。
(5)isLeaf:其实这个的意思和 isFinalSpecialization 基本上都是一样的,都代表选上都代表这个类为 final 类。如果选上这个选项类图会有如下变化,可以看到类名的右下角出现 {leaf}。
(6)isActive:是否为活动对象。那什么是活动对象呢?活动对象就是可以主动的启动某些流程,而被动对象就是要其他对象来调用它。如果选上这个选项类图会有如下变化:可以看到类图左右两边加多了一条线。
更多参考刚刚文章。。
二:对象图概述(Obiect Diagram)
1>对象包含几部分:
(1)标识(名字)
(2)状态(属性)
(3)行为(方法,事件)
2>对象和类的区别:
类是静态的,对象是动态的;类是一般化,对象是个性化;类是定义,对象是实例;类是抽象,对象是具体。
3>对象图
对象图可以被看作是类图在某一刻的实例
(1)对象名:格式“对象名:类名”,这两部分可选;匿名类对象的名称格式为“:类名”。
(2)对象只定义了属性的当前值,不包括操作,因为对于属于同一个类的对象而言,其操作是相同的。
(3)类使用关联连接;对象使用链连接,所有的链都是一对一的,因此不涉及多重性。
画对象图:
点击后,去改name
三:接口
接口名字为斜体
两种形式
四:抽象类
在UML中抽象类的图形表示和类图一样,只是在最上面一层的类名前加描述<<abstract>>或者是在类的属性描述上设置该类为抽象类,抽象类类名用斜体表示
接口和抽象类的不同:
- 抽象类可以包含某些实现代码,但接口没有任何实现部分;
抽象类是可以有普通方法的
- 抽象类可以包含属性而接口没有;
接口只有常量(public,final修饰)
- 接口可以被结构继承,但抽象类不行;
- 抽象类可以有构造函数和析构函数,而接口都没有;
- 抽象类可以继承其他类和接口而接口仅能继承接口
抽象类可以继承类,而接口不能继承类
- 接口支持多继承而抽象类仅支持单继承。
-
UML之类图和对象图
2021-02-24 14:07:27①对系统的词汇建模②对简单协作建模③对逻辑数据库模式建模什么是对象图?关于类和类图的一些总结分类:(个人感觉一幅图胜过千言万语,所以我很少用文字描述,基本上都整理成了思维导图的形式呈现出来,供大家参考... -
类图与对象图概述
2021-12-03 14:53:43前几周画活动图,用例图,这周画类图 类图在UML的静态机制中是重要的组成部分,它不但是设计人员关心的核心,更是实现人员关注的重点。建模工具也主要根据类图来产生...重点理解类图和对象图的相关概念,掌握类的定义前几周画活动图,用例图,这周画类图
类图在UML的静态机制中是重要的组成部分,它不但是设计人员关心的核心,更是实现人员关注的重点。建模工具也主要根据类图来产生代码。类图在UML的9种图中占据了相当重要的地位。
类图是用来显示系统中的类、接口及它们之间静态结构和关系的一种静态模型,它用于描述系统的结构。类图的建模贯穿系统的分析和设计阶段的始终,通常从用户能够理解的用例开始建模,最终到系统开发小组能够完全理解的类。本章将重点介绍类图和对象图及其相关的概念。
本章要点
重点理解类图和对象图的相关概念,掌握类的定义及类的可视化表示。理解并掌握类之间的关系:依赖关系、泛化关系、关联关系和实现关系。理解对象的基本概念及对象的可视化表示。能够利用类图正确地描述系统结构。
5.1 类图和对象图概述
5.1.1 类图的概述
类是对一组具有相同属性、操作、关系和语义的对象的抽象。主要包括名称部分(Name)、属性部分(Attribute)和操作部分(Operation)。在UML中类用一个矩形框表示,它包含3个区域,最上面是类名,中间是类的属性,最下面是类的方法,如图5.1所示。
图5.1 类1.名称
每个类都必须有一个能和其他类进行区分的名称,类的名称部分是不能省略的,其他组成部分可以省略。名称(Name)是一个文本串,类的命名要求由字符、数字、下划线组成的唯一的字符串即可。表示方法有以下两种。
(1)简单名:如图5.2中的Account,它只是一个单独的名称。
(2)全名:也称为路径名,就是在类名前面加上包的名称,如Business:Account。
2.属性
属性描述了类在软件系统中代表的事物(即对象)所具备的特性。类可以有任意数目的属性,也可以没有属性。类如果有属性,则每一个属性都必须有一个名字(如图5.2中的Account类中的balance属性),另外还可以有其他的描述信息,如可见性、数据类型、缺省值等,如图5.2所示。
图5.2 类说明在UML中,类属性的语法为:
[可见性]属性名[:类型][=初始值][{属性字符串}]
(1)可见性:类中属性的可见性主要包括公有(Public)、私有(Private)和受保护(Protected)。在UML中,用“+”表达公有类型,用“-”表达私有类型,而用“#”表达受保护类型。UML的类中不存在默认的可见性,如果没有显示任何一种符号,就表示没有定义该属性的可见性。
(2)属性名:每个属性都必须有一个名字以区别于类中的其他属性,是类的一个特性。属性名由描述所属类的特性的名词或名词短语组成。按照UML的约定,单字属性名小写。如果属性名包含多个单词,这些单词要合并,且除了第一个单词外其余单词的首字母要大写。
例如,在图5.2中balance是属性名,是私有属性。
(3)类型:说明属性的数据类型。在类的图标里,可以指定每个属性值的类型。可能的类型包括字符串(string)、浮点型(float)、整型(int)和布尔型(boolean),以及其他的枚举类型。指明类型时,需要在属性值后面加上类型名,中间用冒号隔开。还可以为属性指定一个默认值。
(4)初始值:为了保护系统的完整性,防止漏掉取值或被非法的值破坏系统的完整性,可以设定属性的初始值。图5.2中的balance属性的数据类型是double,且初始值等于“1”。
(5)属性字符串:属性字符串用来指定关于属性的其他信息,例如,某个属性应该是永久的。任何希望添加在属性定义字符串值但又没有合适地方可以加入的规则,都可以放在属性字符串里。
3.操作
操作是对类的对象所能做的事务的一个抽象。一个类可以有任意数量的操作或者根本没有操作。类如果有操作,则每一个操作也都有一个名字,其他可选的信息包括可见性、参数的名字、参数类型、参数默认值和操作的返回值的类型等。
在UML中,类操作的语法为:
[可见性]操作名[(参数表)][:返回类型][{属性字符串}]
(1)可见性:类中操作的可见性主要包括公有(Public)、私有(Private)、受保护(Protected)和包内公有(Package)。在UML中,公有类型用“+”表示,私有类型用“-”表示,受保护类型则用“#”表示,而包内公有类型用“~”表示。
(2)操作名:用来描述所属类的行为的动词或动词短语。
(3)参数表:一些按顺序排列的属性定义了操作的输入。它是可选的,即操作不一定必须有参数。
参数的定义方式为“名称:类型”。若存在多个参数,将各个参数用逗号隔开。参数可以具有默认值。
(4)返回类型:是可选的,即操作不一定必须有返回类型。绝大部分编程语言只支持一个返回值。在编程语言中一般要加一个关键字void来表示无返回值。
(5)属性字符串:在操作的定义中加入一些除了预订义元素之外的信息。
像前面给类的属性指定附加信息一样,也可以给操作指定附加信息。在操作名后面的括号中可以说明操作所需要的参数和参数的类型。有一种操作叫函数(function),它在完成操作后要返回一个值,可以指明函数的返回值及返回值的类型。
例如,图5.2中共有两个操作,分别是Deposite(Amount:double):int和ComputeInterest()。其中Amount:double是参数列表,int是操作返回值的类型。
4.职责
可以在操作列表框下面的区域说明类的职责,职责用来说明类要做什么或说明另一个类的信息。类的职责可以是一个短语或一个句子。在UML中,把职责列在类图底部的分隔栏中。在图5.3中,借阅者类的职责是借阅者可以从图书管理系统中借阅图书和将图书归还。
5.约束
说明类的职责是消除二义性的一种非形式化的方法,形式化的方法是使用约束。约束指定了该类所要满足的一个或多个规则。在UML中,约束用{}的格式写在类的边上,指定个别属性的取值范围。
括号中的文本指定了该类所要满足的一个或者多个规则。例如,假设你想指定借阅者类的类别只能是教师、学生或者行政管理人员,也就是给借阅者类的“类别”属性加上约束,可以在借阅者类图标的旁边写一个约束“{类别=教师or学生or行政管理人员}”,如图5.3所示。
【例5-1】在图书管理系统中的借阅者类中,类名为借阅者,该类共有5个属性,即借阅证号、是否有借阅资源、姓名、性别和类别,操作有借书和还书。如图5.3所示。
在图5.3中,借阅者是类的名称,在5个属性中,借阅证号、是否有借阅资源是私有属性,类型分别为int和boolean。姓名、性别和类别属性是公有属性,类型都是string。两个操作都是公有的,均没有返回值。
图5.3 借阅者类图5.2中的Account类为例,这个类可以用C++实现的程序如下:
5.1.2 对象图的概述
类图是描述类、接口、协作以及它们之间关系的图,用来显示系统中各个类的静态结构。类图是定义其他图的基础,在类图基础上,可以使用状态图、协作图、组件图和部署图等进一步描述系统其他方面的特性。前面详细地介绍了类的基本概念,下面将对对象进行具体的介绍并将类和对象进行比较。
1.什么是对象
对象指的是一个单独的、可确认的物体、单元或实体,它可以是具体的也可以是抽象的,在问题领域里有确切定义的角色。换句话说,对象是边界非常清楚的任何事物。一个对象通常包含以下几部分。
标识(名称):为了将一个对象与其他的对象区分开,通常会为对象确定一个“标识”,也就是“对象名”。
状态(属性):对象的状态包括对象的所有属性(通常是静态的)和这些属性的当前值(通常是动态的)。
行为(方法,事件):没有一个对象是孤立存在的,对象可以被操作,也可以操作别的对象。而行为就是一个对象根据它的状态改变和消息传送所采取的行动和所做出的反应。
人们经常会将对象和类的概念混淆,对象和类的区别如下。
对象是一个存在于时间和空间中的具体实体,而类仅代表一个抽象,抽象出对象的“本质”。
类是共享一个公用结构和一个公共行为对象集合。
类是静态的,对象是动态的;类是一般化,对象是个性化;类是定义,对象是实例;类是抽象,对象是具体。
2.对象图
对象图(Object Diagram)描述的是参与交互的各个对象在交互过程中某一时刻的状态。对象图可以被看做是类图在某一时刻的实例。在UML中,对象图使用的是与类图相同的符号和关系,因为对象就是类的实例,如图5.4所示。
对象图主要包括以下几部分。
对象名:由于对象是一个类的实例,因此其名称的格式是“对象名:类名”,这两个部分是可选的,但如果是包含了类名,则必须加上“”,另外,为了和类名区分,还必须加上下划线。
属性:由于对象是一个具体的事物,因此所有的属性值都已经确定,通常会在属性的后面列出其值。
图5.4 对象图
对象图和类图在UML图形表中是很相似,但是两者也存在区别,如表5.1所示。
5.1.3 接口
接口(Interface):是描述类的部分行为的一组操作,它也是一个类提供给另一个类的一组操作。通常接口被描述为抽象操作,也就是只用标识(返回值、操作名称、参数表)说明它的行为,而真正实现部分放在使用该接口的对象中,也就是说,接口只负责定义操作而不负责具体的实现。
接口的模型表示法和类大致相同,都是用一个矩形图标来表示。其不同之处在于,接口只是一组操作,没有属性。在UML图形中,接口的表示和类图的表示类似,只是在最上面的一层类名前加描述<<interface>>,或是用一个圆圈表示。如图5.5所示。
图5.5 接口
5.1.4 抽象类
抽象类是包含一种或多种抽象方法的类,它本身不需要构造实例。定义抽象类后,其他类可以对它进行扩充,并且通过实现其中的抽象方法使抽象类具体化。在UML中,抽象类的图形表示和类图一样,只是在最上面一层的类名前加描述<<abstract>>或是在类的属性描述上设置该类为抽象类,抽象类的类名用斜体表示。如图5.2所示的Account类被定为抽象类,其类名使用斜体表示。
接口与抽象类非常相似,例如两者都不能产生实例对象,都可以作为一种定义使用。但接口和抽象类仍有本质的不同,这些不同包括:
(1)抽象类可以包含某些实现代码,但接口没有任何实现部分;
(2)抽象类可以包含属性,而接口没有属性;
(3)接口可以被结构继承,但抽象类不可以;
(4)抽象类可以有构造函数和析构函数,而接口没有;
(5)抽象类可以继承其他类和接口,而接口仅仅能继承接口;
(6)接口支持多继承,而抽象类仅仅支持单继承。
-
软件需求分析与建模-类图和对象图.ppt
2022-06-20 22:12:33软件需求分析与建模-类图和对象图.ppt -
UML之对象图(与类图的区别)
2019-07-07 10:51:47UML中的对象描述的事参与交互的哥哥对象在交互过程中某一时刻的状态。对象图可以被看做是UML类图中的某一... UML中类图与对象图的区别: 类图 对象图 类具有3个分栏:名称、属性和操作 ... -
第 类图和对象图PPT学习教案.pptx
2021-10-10 21:32:29第 类图和对象图PPT学习教案.pptx -
第4章类图和对象图[参照].pdf
2021-10-12 05:39:53第4章类图和对象图[参照].pdf -
学生管理系统用例图、类图、对象图的绘制.doc
2020-10-07 14:33:14有一个学生管理系统其中有参与者三人分别为系统管理员教师和学生需求如下1 系统管理员登录系统后通过身份验证能够对学生的基本信息进行管理包括录入学生基本信息修改学生基本信息查询学生基本信息删除学生基本信息... -
uml基础教程第四章-类图和对象图.ppt
2021-09-28 11:17:50uml基础教程第四章-类图和对象图.ppt -
UML中类图与对象图的区别
2019-12-31 14:22:43UML中类图与对象图的区别 类图 对象图 类具有3个分栏:名称、属性和操作 对象只有两个分栏:名称和属性 在类的名称分栏中只有类名 对象的名称形式为“对象名:类名”,匿名对象的名称形式为“:类名” 类的属性... -
类图和对象图详解
2016-11-03 12:34:13对于类图和对象图来说我们需要了解的是类图和对象图的概念,类图的组成,使用Rose创建类图和对象图。当然最重要的是如何使用Rose创建类图案例分析。具体的创建通过选课管理系统的简单用例说明创建类图和对象图的方法... -
UML类图和对象图
2020-12-25 20:57:08类之间的关系 关联 聚集和组合 泛化 依赖 在大多数情况下,依赖关系体现在某个类的方法使用、调用另一个类的对象作为参数。...抽象类和接口 ...在Java中抽象类表示的是一种继承关系,一个类只能继承一个...对象图 ... -
第5章 类图和对象图-软件建模技术.PPT
2021-04-27 18:43:45中北大学 软件学院 -
UML类图与对象图
2020-03-26 16:38:471.类图基础属性 -表示private #表示protected ~表示default,也就是包权限 _下划线表示static 斜体表示抽象 2.类与类之间关系 在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现... -
【UML】--类图和对象图
2018-03-09 14:56:12对象图:类的实例化类图与对象图的区别: 类图 对象图 在类中包含三个部分:类名、类、类的属性和类的操作 对象包含两个部分:对象的名称和对象的属性 类的名称栏只包含类名 对象的名称栏包含对象名和类名 类... -
类图、对象图和包图.doc
2010-10-13 21:28:09类图、对象图和包图辨析 类图、对象图和包图辨析 -
类图及对象图
2011-11-08 10:17:20类图及对象图