跟我学UML建模工具StarUML(第4部分)——应用StarUML创建类图的创建示例

发布时间:2025-05-02 16:48

1.1跟我学UML建模工具StarUML(第4部分)——应用StarUML创建类图的创建示例
1.1.1UML类图
1、UML类图
(1)类图
类是面向对象模型的最基本的模型元素。

类图表达为了实现某一用例中的一组对象类之间的静态结构,以及它们之间的联系和交互。

(2)类图的作用
主要体现在描述结构和联系:类图描述系统中类的静态结构,它不仅定义系统中的类,表示类之间的联系(关联、依赖、聚合等),还包括类的内部结构(类的属性和操作)。

(3)类的UML的图示
类是对象的集合,这些对象有共同的结构特征、行为特征、联系和语义;在UML中类的图形表示为实线矩形框。

但要注意的是:
在类图中不一定要列出全部的成员内容。

如在建立分析模型或设计模型时,可以只列出类名,在图中只需要着重表达类之间的联系;在建立实现模型时,再在类图中给出类的组成成员属性和操作方法等方面的详细内容。

如下图所示:
2、类中的属性成员及其UML的图示
(1)属性(成员变量)
类中的成员属性表示的形式为:可视性属性名(多重性):类型=初始值
其中的可视性可以为:公共、保护和私有三种不同的形式,而类型也就是数据类型,依赖于所选择的编程实现的语言。

(2)类的static成员属性
所应该注意的是,对类的成员属性也就是static成员属性在类图中的表示为带下划线的形式。

如下面的Compute类中的“oneUSBDevice”成员属性的表示方式。

3、类中的方法成员及其UML的图示
(1)类中的操作(成员方法)
操作是类的行为特征或动态特征,用于对服务或实体相关的操作建模。

一个类可以有操作并且可以允许有多个不同的操作,当然也可以没有。

没有一个功能操作方法的类经常用于表达数据。

功能操作方法在类图中位于最底部,同时用文字串说明。

其表示为:
可视性操作名(参数列表):返回列表{性质}
(2)类中的操作的类型
1)实现者操作(Implementor operations):实现一些业务功能。

实现者操作可从交互图
中找到。

2)管理者操作(Manager operations):管理对象的生成和构造。

例如,类的构造器和
删除器。

3)访问操作(Access Operations):属性通常是专用或保护的,但其他类可能要浏览或
改变某个类的属性,可以通过访问操作实现。

应该,通过对每个属性建立Get和Set操作来实现。

4、类的关联(Association)关系
(1)关联的含义
关联是一种结构化的关系,指一种对象和另一种对象有联系。

它是对具有共同结构特性、行为特性、关系和语义的链接的描述。

(2)关联的UML图示
在UML的类图中,关联用一条实线将类连接在一起。

如果是单向关联,则在关联端加箭头表示方向。

如果是双向关联则不用。

(3)关联的重数
由于关联有两元关系和多元关系。

而两元关系是指一种一对一的关系,多元关系是一对多或多对一的关系。

并且在关联端可以标出关联中的数量关系——重数(多重性)。

关联端的多重性规定该类中有多少个对象参与该关联。

常用的有
1)“0..1”:表示零到1个对象
2)“1”:表示1个对象
3)“0..*或者*”:表示零到多个对象
4)“5..17”:表示5 到17个对象
如果图中没有明确地标识关联的重数,那就意味着是1。

例如下图所示:
5、类的聚合与组合关系
聚合与组合反映了事物的部分与整体之间的关系。

通过聚合与组合对实体之间的部分与整体关系建模。

识别聚合关系的常用方法是在系统需求分析中寻找“由….构成”、“包含”或者“是….”等字句。

注意:
1)聚合暗示着整体在概念上处于比局部更高的一个级别,而关联暗示两个类在概念上
位于相同的级别。

2)聚合也转换成Java中的一个实例作用域变量。

(1)聚合(Aggregation)
1)比较弱的部分与整体
聚合表示事物的部分与整体的一种松散(比较弱)的对象间的关系,举个例子:计算机和他的外围设备就是一例。

2)UML的表示法
其表示方法为在关联线端加一个小空心菱形,菱形链接处代表整体事物类,称为聚合类,另一端连接代表部分事物类。

(2)共享聚合
1)整体方的类的重数为多
在聚合中,代表部分事物的对象可以属于多个聚合对象,此时为共享聚合(整体方的类的重数为多)。

2)示例
例如,某高校社团组织与其成员的关系,其成员未必只属于该组织,还可以属于别的组织(既是书法协会的成员,也可能又是摄影协会成员)。

(3)组合(Composition)---复合聚合
1)较强的聚合
组合表示事物的部分与整体关系的较强情况,比如:树和它的树叶之间的关系。

此时构成整体类的部分类完全属于整体类并且体现树状结构的关系。

2)UML的表示法
其表示方法为在关联线端加一个小实心菱形,菱形链接处代表整体事物类,称为组合类,另一端连接代表部分事物类。

可以将组合理解成强类型的聚合。

3)合成的新对象与组成部分的各个对象的关系
在一个合成里,部分与整体的生命周期都是一样的。

一个合成的新对象完全拥有对其组成部分的支配权。

包括他们的创建和毁灭(与代表整体的对象同时存在、消失)。

因为如果没有了整体类,则此时系统中的部分类也没有存在的价值,部分类的存在是因为有整体
类的存在。

6、泛化与特化
泛化与特化是现实世界中一般性实体与特殊性实体之间的关系,一般性实体是特殊性实体的泛化,特殊性实体是一般性实体的特化。

类与其子类便具有这样的关系。

如,学生,大学生,研究生等。

(1)继承
UML中地泛化体现了分类与继承原则,一个子类继承超类的全部属性、方法,子类本身还可以有自己的子类,从而构成复杂的一般与特殊的结构。

继承又可分为单继承和多继承。

(2)重载与多态
重载与多态是面向对象技术的重要组成部分,重载是实现多态的一条重要途径,对于同一个操作产生不同的结果。

在用UML建模时,对于一个操作,可以用约束“{polymorphic}”规定为多态性操作,即该操作可以为子类重载;对于一组泛化,可以用约束“{overlapping}”规定为是可重载的,即它的实例可以有多种类型。

(3)泛化与特化的UML表示形式
1)父类与子类的关系图示为一个带空心三角形的直线,空心三角形紧挨着父类。

2)类的继承关系的层次体现
(4)抽象类的表示形式
抽象类或抽象操作的名字用斜体字表示。

关键字abstract可以放置在位于名称下面或后面的特性表中,如Account{abstract},如下的Computer类为系统中的抽象类。

7、依赖(Dependency)和精化
(1)依赖(实体之间一个“使用”关系)
1)依赖关系是一种使用关系
特定事物的改变有可能会影响到使用该事物的事物,反之不成立。

软件系统的设计人员在想显示一个事物使用另一个事物时使用依赖关系。

在程序设计实现中的依赖关系体现在某个类的方法使用另一个类作为参数。

2)语义联系
依赖是两个模型元素(类、用例)之间的语义联系,依赖是指一个模型元素变化必影响到另一个模型元素;一个模型元素是独立的,另一个模型元素是非独立的(依赖前面的
元素)。

3)在UML中的图示
类与类之间的依赖关系的UML图示采用用一条虚箭线表示,箭头指向独立的类。

其尾端的类依赖于头端的类。

(2)精化
精化关系用于表示同一事物的两种描述之间的关系,对同一事情的两种描述建立在不同的抽象层上。

精化关系常用于模型化表示同一个事物的不同实现,比如一个是简单实现,一个是比较复杂或者高效的实现。

精化关系的图示方法与泛化与特化的表示相似,但用带空心三角形的虚线表示并且空心三角形指向粗类。

如下面的图示表明设计类是对分析类的精化。

1.1.2应用StarUML创建类图的创建示例
1、在项目中添加类图
右击右边的“Design Model”树形节点,在弹出的快捷菜单中选择“Add Diagram”子菜单项目,如何再进一步地选择其中的“Class Diagram”添加类图的子菜单。

2、设置该类图的名称为“计算机组成部件及相互关系的类图”
在属性面板的名称栏中修改该类图的名称为“计算机组成部件及相互关系的类图”。

此时在左边的Toolbox工具箱面板中将自动地出现与类图相关的各个工具按钮,根据设计的需要直接拖动对应的工具按钮将可以创建相关的元素。

3、在类图中相关相关的Compute类
(1)添加“Compute(计算机)”类
点击左边Toolbox工具箱中的Class工具按钮,然后在面板中点击将创建出一个空的类,设置该类的名称为Compute。

(2)设置该类为抽象类
4、为Compute类添加相关的成员属性
(1)添加成员属性
右击图中的目标类,在弹出菜单中选择“Add”中的“Attribute”子菜单,为其添加一个属性.
填入期望的属性名称“intelCPU”,并在属性面板中的type类型栏中输入类型名称为CPU。

(2)再添加一个名称为BingPai的成员属性,数据类型为String,并带有初始值为“联想计算机”
(3)再添加一个名称为oneUSBDevice的USB类型的静态成员属性
(4)再添加剩余的成员属性
属性名称为hpPrinter、类型为Printer;属性名称为oneHDDisk,类型为HDDisk。

5、为Compute类添加相关的成员方法(1)添加一个抽象的成员方法
(2)抽象方法名称为calculateData()
6、在类图中在添加其它相关的类
(1)主要包括PCCompute、CPU、HDDisk、Print、ComputUser、Data等类
(2)熟悉类之间关系的按钮
7、设置PCCompute和Compute之间的泛化与特化关系
在左边的Toolbox面板中点击Generalization按钮,然后从PCCompute类拖到Compute 类并松开,将自动地创建出PCCompute类和Compute类之间的泛化与特化关系。

8、设置CPU和Compute之间的组合关系、HDDisk和Compute之间的组合关系
(1)设置CPU和Compute之间的组合关系
(2)设置HDDisk和Compute之间的组合关系
9、设置Print和Compute之间的聚合关系
(1)关联的重数相关的工具选项
(2)设置ComputUser和Compute之间的关联关系
11、设置Data和Compute之间的依赖关系
点击左边Toolbox工具箱中的Dependency工具按钮,然后在点击Compute类并拖到
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
杨教授大学堂,版权所有,盗版必究。

21/21页 Data 类后松开,将自动地创建出Data 和Compute 之间的依赖关系。

12、最终的结果类图。

网址:跟我学UML建模工具StarUML(第4部分)——应用StarUML创建类图的创建示例 http://c.mxgxt.com/news/view/939287

相关内容

跟我学UML建模工具StarUML(第8部分)——应用StarUML创建组件图的创建示例
StarUML官方正式版(建模工具) v6.0.1 免费汉化版
UML starUML
【StarUML中文版下载】StarUML 5.0.2
staruml mac版下载
StarUML画产品架构图 staruml怎么画业务流程图
StarUML下载
StarUML怎么画用例图
staruml画的图怎么加载到word
StarUML使用与类之间的关系

随便看看