UML各类实例.docx

上传人:b****6 文档编号:5823355 上传时间:2023-01-01 格式:DOCX 页数:24 大小:426.42KB
下载 相关 举报
UML各类实例.docx_第1页
第1页 / 共24页
UML各类实例.docx_第2页
第2页 / 共24页
UML各类实例.docx_第3页
第3页 / 共24页
UML各类实例.docx_第4页
第4页 / 共24页
UML各类实例.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

UML各类实例.docx

《UML各类实例.docx》由会员分享,可在线阅读,更多相关《UML各类实例.docx(24页珍藏版)》请在冰豆网上搜索。

UML各类实例.docx

UML各类实例

描述用例:

用例名称

用户注册

用例类型:

业务需求 □

用例ID

U001

优先权

1

来源

需求—001

主要业务参与者

客户

其它参与者

涉众群体

描述

该用例描述用户进入注册界面以后,输入要求输入的信息比如用户名和密码等,新用户注册成功。

前置条件

用户系统正常运行

触发器

用户通过任何方式访问系统

典型事件过程

参与者动作

系统响应

第3步:

用户输入系统要求填写的信息并提交给系统

第1步:

系统对用户访问作出响应、自动跳转到注册状态。

第2步:

系统要求用户输入相关信息比如用户名及密码。

第4步:

系统验证登录用户输入信息的格式和内容

第5步:

系统显示用户注册成功,并跳转到用户的主页面。

替代事件过程

替代第4步:

如果客户未的信息错误,则系统给与提示、回到第2步

结论

用户成功注册进入系统后,该用例结束。

后置条件

用户进入系统,可以使用权限范围之内的所有功能

业务规则

Ø用户无论通过哪种途径访问系统,该用例都是系统唯一入口。

需要加以限制,实现自动跳转。

实现约束和说明

必须采用B/S系统架构,通过浏览器实现对系统的访问

数据库管理系统必须采用具有事务处理功能的SQLSERVER2005

开放问题

 

描述用例解释:

用例名称:

表明用户的意图或者用例的用途,例如图中的动作表示的是注册。

用例ID:

唯一的标识符,可以在项目的其他地方引用这个用例,例如图中的用例ID是U001。

主要业务参与者:

使用用例所提供的服务而实现某个目标的对象,比如需要注册的人是客户,则在参与者中写明客户。

前置条件:

列出了用例在执行之前必须满足的条件,是另一个用例已经执行或者用户具有运行当前用例的权限,但是并不是所有的用例都有前提条件,比如,注册用例的前置条件是系统运行正常。

触发器:

用例开始需要的动作,用户要使用动作最开始需要进入动作的环境,比如注册,触发注册活动,需要用户点击注册或者选择任何方式登录。

典型事件过程:

用户和执行用例中的每一步,将个别用例进行合适的细化任务。

比如注册动作需要进行5步,要求系统和用户的互动。

替代事件过程:

很少使用的或者变更工作方式、出现异常或者错误情况应遵循的步骤。

比如用户输入的密码错误,系统会提示错误并返回到重新登录的界面。

结论:

说明用例的功能,并结束用例。

后置条件:

用例执行完毕后系统应该处于什么状态,满足什么需要。

比如用户成功注册后,就可以在自己的权限内使用系统。

图书管理系统参考《面向对象分析设计与编程》吴炜煜编著

图书管理系统的功能有:

1、借书处理:

完成读者借书的流程处理。

2、还书处理:

完成读者还书的流程处理。

3、资料查询:

包括图书信息查询和读者借阅情况查询。

4、图书资源管理:

包括输入新书资料和删除旧书资料。

包括的对象和属性:

1、读者:

读者姓名、学号、密码。

2、图书:

图书编号、书名、作者、出版社、借阅标志(是否借出)

3、工作人员:

工作人员姓名、编号、密码。

4、借书记录:

读者学号、图书编号。

流程:

1、借书流程:

读者借阅所需的图书,借出后图书的借阅标志为false(已被借出),借书记录中增加一个实例。

2、还书流程:

读者归还所借的图书,还书图书的借阅标志为true(可以外借),删除借书记录中相应的记录。

3、资料查询:

读者和工作人员可以进行图书信息查询,输入图书的编号或者图书书名,从图书对象中查找相关的实例。

读者还可以查询自己的借书情况,输入姓名和学号,从借书记录中查找相应的实例。

4、图书资源管理:

首先由工作人员在“录入新书资料”和“删除旧书资料”两个选项中选择。

若是“录入新书资料”,则由工作人员输入新书资料,将新书资料添加为图书对象的新实例。

若是“删除旧书资料”,则查找需要删除的图书资料,将其从图书对象中删除。

一、用例图UseCaseDiagram

用例图的元素:

参与者Actor、用例UseCase、关联关系Association、包含关系Include、扩展关系Extend、泛化关系Generalization。

1、参与者Actor:

系统外部的一个实体,以某种方式参与用例的执行过程。

2、用例UseCase:

系统中一个可以描述系统参与者与系统之间交互作用的功能单元。

3、关联关系Association:

表示用例之间的联系。

4、包含关系Include:

一个用例可以简单的包含其他用例实具有的行为,并把它所包含的用例行为作为自身行为的一个部分。

如图所示:

包含关系用虚线箭头加“Include”,箭头指向被包含的用例。

包含用例也叫做客户用例,被包含用例也叫提供者用例。

使用包含用例的条件:

两个以上用例具有大量的一致的功能,可以将这些功能分解到另一个用例中,其他用例可以和这个用例建立包含关系;

一个用例的功能太多时,可以使用包含关系建模。

使用包含用例注意:

客户用例只依赖于提供者用例的返回结果,不必了解提供者的内部结构;客户用例总会要求提供者用例执行,对提供者的调用是无条件的。

例如,课程管理可以包含添加课程、修改课程、删除课程等内容。

图中对图书资源管理包含了添加新书记录和删除旧书记录。

5、扩展关系Extend:

把新的行为插入到已有的用例中的方法。

扩展关系用箭头加“Extend”,指向基础用例。

基础用例提供扩展点,在这些扩展点中可以添加新的行为,扩展用例提供了一组插入片段,这些片段能够被插入到基础用例的扩展点,基础用例不必知道扩展用例的任何细节,只为其提供扩展点。

比如图中对图书资料的查询结果,可以导出也可以打印。

6、泛化关系Generalization:

一个用例可以被特别列举为一个或者多个子用例。

父用例被使用时任何子用例也可以被使用。

泛化关系用一个三角箭头从子用例指向父用例。

子用例表示父用例的特殊形式,子用例从父用例继承行为和属性,还可以添加、覆盖、改变继承的行为。

几种关系的比较:

1、使用关系《use》,表明关系是使用,一个用例调用另一个用例的服务,比如用户和登录用例之间的关系。

2、继承关系《extend》表明是对用例的一种纵向的继承,子用例不仅继承了父用例的一些特点,而且是对父用例的一种扩展,具有了一些新功能。

比如对查询结果的处理,打印和输出,他们使用了新的行为来扩展了父用例的行为。

3、泛化关系,表示的是一种横向的分类继承,有组成的意思。

比如资料查询,分为图书资料查询和借阅资料查询,这两种子查询的查询步骤有些相似,都是从资料查询而来,反过来,资料查询是由图书和借阅两种组成,而继承关系则不具有这样的关系。

4、包含关系《Include》表明是一种包含关系,比如课程管理中包含对课程的添加修改删除,与泛化关系也不同,包含关系没有继承父用例中的属性。

 

例如下面的用例图中包括了读者和工作人员两个参与者,进行的行为有:

借书处理、还书处理、资料查询、图书资源管理4个大行为,其中资料查询中包括了图书资料查询和借阅资料查询,学生可以进行的行为有:

借书处理、还书处理、资料查询;工作人员可以进行的行为有:

图书资料查询和图书资源管理。

二、类图ClassDiagram

描述类、接口、协作以及实现他们之间的关系的图。

1、类包括:

类Class、接口Interface、关联关系Association、依赖关系Dependency、泛化关系Generalization、实现关系Realization

2、类Class

类是对一组具有相同属性、操作、关系和定义的对象的描述。

⑴名称Name:

类的名字

⑵属性Attribute:

代表事物的特征

[可见性]属性名[:

类型][:

初始值][{属性字符串}]

可见性:

包括公有Public(可以在类的外部查看和使用)、私有Private(不可以从外部访问)、受保护Protected(常与返还和特化一起使用),在图中分别用“—”“、+”、“#”号表示。

属性名:

该属性的名字,名字原则上可以任意取,但是为了方便图更容易被读懂,需要选择有意义的名字。

类型:

该属性的类型,比如是字符型、数字型等

初始值:

保护系统的完整性和为用户提供易用性,可以不设置

属性字符串:

用来指定关于属性的其他信息,一般不用该功能

⑶行为Operation:

对类所用作事物的抽象。

[可见性]操作名[(参数表)][:

返回类型][{属性字符串}]

可见性里多了一个“包内公有Package”(用~表示),在同一个包内的对下象才能调用,其他的解释同上;

参数表:

按照顺序排列的属性定义了操作的输入,操作不一定有参数

返回类型:

比如进行了行为返回数字或者字符等,这个也是可选的,返回类型至多一个

属性字符串:

预定义元素之外的信息

⑷除上述三个,类中还有职责Responsibility、约束Construction、注释Note等。

3、接口Interface

在没有给出对象的实现和状态的情况下对对象行为的描述。

接口包含操作但是不包含属性,并且它没有对外界可见的关联。

一个类可以实现一个或者多个接口,并且所有的都可以实现接口中的操作。

接口用一个带有名称的小圆圈表示的,并通过一条实线与它的模型元素相连。

4、依赖关系Dependency:

类之间使用的关系

⑴使用Usage依赖:

直接的,表示客户使用提供者提供的服务已实现自己的行为

依赖关系

功能

关键字

使用

声明使用一个模型元素需要用到已存在的另一个模型元素,这样才能正确实现使用者的功能(包括了调用、实例化、参数和发送)

use

调用

声明一个类调用其他类的操作方法

call

参数

声明一个操作和它的参数之间的关系

parameter

发送

声明信号发送者和信号接受者之间的关系

send

实例化

声明一个类的方法创建了另一个类的实例

instantiate

⑵抽象Abstraction依赖:

表示客户和使用者之间的关系

依赖关系

功能

关键字

跟踪

声明不同模型元素中的元素之间存在一些链接,但不如映射精确

trace

精化

声明具有两个不同语义层次上的元素之间的映射

refine

派生

声明一个实例可以从另一个实例导出

derive

⑶授权Permission依赖:

表示一个事物访问另一个事物的能力。

提供者通过规定客户的权限,可以控制和限制对其内容访问的方法。

依赖关系

功能

关键字

访问

允许一个包访问另一包的内容

access

导入

允许一个包访问另一个包的内容并为被访问的包的组成部分增加别名

import

友元

允许一个元素访问另一个元素,不管被访问的元素是否具有可见性

friend

⑷绑定Binding依赖:

较高级别的依赖类型,用于绑定模板以创建新的模型元素

依赖关系

功能

关键字

绑定

为模板参数指定值,以生成一个新的模型元素

bind

5、泛化关系Generalization:

类之间一般和特殊关系。

“isakindof”关系,用一条从子类指向父类的空心三角箭头表示

泛化的两个用途:

⑴当一个变量被声明承载某个给定类的值时,可使用类的实例作为值,例如自行车下面有电动自行车和折叠自行车。

⑵在共享祖先所定义的成分的前提下,允许它自身定义增加的描述,这被称作继承

这种多重继承关系,比如mp3兼有播放器和移动存储卡的属性。

6、关联关系Association:

对象之间的结构关系

指明一个事物的对象与另一个事物的对象之间的联系。

关联是一种结构关系,表现为一个对象能够获得另一个对象的实例引用并调用它的服务(即使用它),这是一种长期的稳定的关系;而依赖是一种使用关系,表现为一个对象仅仅是调用了另一个对象的服务,是类需要使用到另一个类时的关系,依赖没有关联强烈。

简单的说人与空气之间是依赖关系,但是人与人之间是关联关系。

关联关系用一条连接连个类的实现表示,常见的是二元关联,包含6中元素:

名称、角色、多重性、聚合、组合和导航性。

⑴名称Name:

关联的名称,描述性质,比如学生和学校的关联,关联名称是学习,即,学生在学校学习

⑵角色Role:

关联关系中一个类对另一个类所表现出来的职责。

⑶多重性Multiplicity:

约束关联关系

修饰

语义

修饰

语义

0

恰为0

1

恰为1

0..1

0或者1

1..n

1或者更多

0..n

0或者更多

n

0或者更多

⑷聚合Aggregation关系:

表示整体与部分关系的关联,“hasa”的关系。

聚合关系用带空心菱形头的实现来表示,箭头指向整体。

比如动物下面有哺乳动物、爬行动物等

⑸组合Composition关系:

组合是聚合关系的一种特殊情况,是强聚合。

用一条带实心菱形头的实现表示,箭头指向整体。

各个部分不能脱离整体而独立存在,如果计算机被破坏,其中的对象不会继续存在。

组合关系的表示:

计算机是由CPU、存储器、输入和输出设备、总线等组成。

⑹导航性Navigation:

导航性描述的是一个对象通过链进行导航访问另一个对象,只在一个方向上可以导航的关联称为单向关联,用一条带箭头的实现表示,箭头指向目标;在两个方向上都可以导航的关联称为双向关联,用双箭头线表示。

7、实现关系Realization:

类中规模说明和实现之间的关系

实现关系可以将一种模型元素和另一种模型元素连接起来。

比如类和接口。

实现关系通常在两种情况下被使用:

在接口与实现该接口的类之间;在用例以及实现该用例的协作之间,用一条带指向接口的空心三角箭头的虚线表示。

接口2为接口的省略表示方法,和实现接口的类用一条线段连接。

比如用户需要通过身份验证才能登录系统,这里的身份验证就是一个接口,来实现用户和系统相联系。

例如图书管理系统:

读者:

属性有读者姓名、学号、密码;动作是借书、还书和资料查询。

图书:

属性有图书编号、书名、作者、出版社、借阅标志(是否借出),无动作

工作人员:

属性有工作人员姓名、编号、密码;动作有图书资料查询和图书资源管理。

借书记录:

属性有读者学号、图书编号,无动作。

利用接口表示,读者和工作人员的都需要进行身份验证和图书资料查询的活动。

 

三、对象图ObjectDiagram

对象图描述的是参与交互的各个对象在交互过程中某一刻的状态。

对象图可以看做类图在某一刻的实例。

对象图和类图的比较

类图

对象图

类具有3个分栏:

名称、属性和操作

对象只有两个分栏:

对象和属性

在类的名称分栏中只有类名

对象的名称形式为“对象名:

类名”,匿名对象的名称形式为“:

类名”

类的属性分栏定义了所有属性的特征

对象则只定义了属性的当前值,以便于测试用例或例子中

类中列出了操作

对象图中不包含操作,因为对于属于同一个类的对象而言,其操作是相同的

类使用关联链接,关联使用名称、角色、多重性以及约束等特征定义。

类代表的是对对象的分类,所以必须说明可以参与关联的对象的数目

对象使用链链接,链拥有名称、角色,但是没有多重性。

对象代表的是单独的实体,所有的链都是一对一的,因此不涉及到多重性

包图PackageDiagram维护和控制系统总体结构,一般用于对复杂的系统进行分析建模。

四、状态图StateDiagram:

状态图通过建立类对象的生存周期模型来描述对象随时间变化的动态行为。

状态图由表示状态的节点和表示状态之间转换的带箭头的直线组成。

⑴状态:

由一个带圆角的矩形表示

⑵转换:

用带箭头的直线表示,一端连接源状态,即转出的状态,箭头一端连接目标状态,即转入的状态

⑶起始状态:

每个状态图都应该有一个起始状态,此状态代表状态图的起始位置。

起始状态在一个状态图中只允许有一个,用一个实心的圆表示

⑷终止状态:

模型元素的最后状态,是一个状态图的终止点。

终止状态在一个状态图中可以有多个,它用一个含有实心圆的空心圆表示

⑸判定:

工作流在此处按照条件的取值而发生分支,用空心小菱形表示

例如图书管理系统的状态图提供了读者状态图和工作人员状态图

读者状态图中:

实心黑圆圈表示进入系统的开始,菱形表示判断登录情况。

当为登录时,读者只能进行查询图书信息的活动;当登录后,读者可以同步进行借书、还书、查询借阅记录的行为,一直到退出系统。

工作人员状态图:

五、活动图ActivityDiagram:

活动图表现从一个活动到另一个活动的控制流,是内部处理驱动的流程。

⑴动作状态:

平滑的圆角矩形表示

⑵分支与合并:

用一个布尔表达式的真假来判定动作的流向,分支与合并用空心小菱形表示,分支包括一个入转换和两个带条件的出转换,合并包括两个带条件的如转换和一个出转换,如图:

利用还书过程进行说明,当读者还书时,需要判断是否超过了借阅期限,这时,如果超过了,则提示要交罚款;如果没有,则读者可以顺利还书,活动又合并成一起。

⑶分支汇合:

对并发的控制流的建模,分支用于将动作流分为两个或者多个并发运

行的分支,而汇合则用于同步这些并发分支,以达到共同完成一项事务的目的。

分支可以用来描述并发线程,每个分叉可以有一个输入转换和两个或者多个输出转换,每个转换都可以是独立的控制流。

汇合代表两个或者多个并发控制流同步发生,当所有的控制流都达到汇合点后,控制才能继续下去。

每个汇合可以有两个或者多个输入转换和一个输出转换。

分叉和汇合都使用加粗的水平线段表示,

如图:

利用读者进入系统的活动说明。

读者进入系统,可以同时查询资料和借书,这两种活动并不影响,最后,再退出系统。

⑷泳道:

在活动图中,泳道区分了负责活动的对象,它明确地表示了哪些活动是由哪些对象进行的。

在包含泳道的活动图中,每个活动只能明确地属于一个泳道。

泳道用垂直实线绘出,垂直线分割的区域就是泳道。

如图所示:

 

⑸对象流:

对象流是动作状态或者活动状态与对象之间的依赖关系,表示动作使用对象或动作对对象的影响。

对象流中的对象有以下特点:

(1)、一个对象可以由多个动作操作。

(2)、一个动作输出的对象可以作为另一个动作输入的对象。

(3)、在活动图中,同一个对象可以多次出现,它的每一次出现表面该对象正处于对象生存期的不同时间点。

状态图中的对象用矩形表示,矩形内是该对象的名称,名称下的方括号表明对象此时的状态。

如图:

当读者没有退出系统时,他的状态是未退出,退出后显示退出。

 

六、时序图SequenceDiagram:

时序图描述了对象之间传送消息的时间顺序,用来表示用例中的行为顺序。

⑴对象Object:

用矩形将对象名称包含起来。

并且对象名称下面有下划线,将对象置于时序图的顶部意味着在交互开始的时候对象就已经创建了,如果对象的位置不在顶部,那么表示对象是在交互中被创建的。

⑵生命线Lifeline:

每个对象底部中心位置都有一条垂直的虚线,叫生命线,生命线也叫时间线,对象的生命包含矩形的对象图标以及图标下面的生命线。

⑶消息Message:

定义对象之间的某种形式的通信,是两个对象之间的单路通信,从发送方到接收方的控制信息流。

消息使用箭头来表示

⑷激活Action:

表示对象被占用以完成某个任务,激活条发生在对象的时间线上

对象被激活

动作一、借还书过程:

读者要求进行登录,此时系统验证身份,通过后显示该读者的相关信息,读者可以进行借还书,系统修改借书记录后,读者借还书完成。

动作二、查询图书信息:

读者或者工作人员进入查询界面,输入查询信息,系统显示图书信息,返回查询结果。

动作三、查询读者借阅资料:

读者登录,系统验证身份,验证成功后,读者输入查询要求,系统返回查询结果

动作四、图书资料管理:

工作人员选择登录,通过身份验证后输入操作信息,添加、删除记录,完成操作。

七、通信图CollaborationDiagram:

通信图描述的是和对象结构相关的信息。

通信图的一个作用是表示类操作的实现。

⑴对象Object:

用矩形代表对象

⑵链link:

一条链接两个类角色的实现

⑶消息Message:

为了说明交互过程中的消息的时间顺序,需要给消息添加顺序号。

顺序号是消息的一个数字的前缀,由1开始,是一个整数,每个消息都必须有唯一的顺序号。

例如图书管理系统中:

读者服务:

读者可以借书还书查询记录,但是必须通过身份验证才能执行这些动作,读者可以查询图书资料,不需要登录。

工作人员服务:

工作人员添加新书记录和删除旧书记录也必须通过身份验证,但是查询图书资料不需要通过验证。

八、组件图ComponentDiagram:

组件图描述了软件的各种组件和它们之间的依赖关系。

⑴组件Component:

定义了良好接口的物理实现单元,是系统中可替换的物理部件。

组件可以是源代码组件、二进制组件或者一个可执行组件。

组件用一个左侧带有两个小突出的矩形来表示。

⑵接口Inerface:

接口和组件有两种关系,依赖关系和实现关系

⑶依赖关系Dependency:

表示各组件之间存在的关系类型,表示:

一个由客户指向提供者的虚箭头

举例如

说明了图书管理系统的功能,可以进行借还书处理、信息查询、图书资源管理、身份验证。

九、部署图DeploymentDiagram:

部署图描述了运行软件系统中硬件和软件的物理结构,即系统执行处理过程中系统资源元素的配置情况以及软件到这些资源元素的映射

⑴节点Node:

用一个立方体表示,是在运行时代表计算资源的物理元素,通常拥有一些内存,并具有处理能力。

⑵关联关系Association:

用一条实线表示各个节点之间的通信路径。

数据库服务器上载有图书信息和借阅信息;读者客户端可以进行借还书处理和借阅信息查询;工作人员客户端是进行图书资源管理,公共客户端进行图书资料的查询。

其中,数据库服务器是总服务端,读者客户端、工作人员客户端、公共客户端来实现系统的功能。

 

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

当前位置:首页 > 经管营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1