用例图及用例描述

article/2025/9/12 15:18:57

一.UML简介

UML(统一建模语言,Unified Modeling Language)是一种定义良好、易于表达、功能强大且普遍适用的可视化建模语言。它融入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支 持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。在系统分析阶段,我们一般用UML来画很多图,主要包括用例图、状态图、类图、活动 图、序列图、协作图、构建图、配置图等等,要画哪些图要根据具体情况而定。其实简单的理解,也是个人的理解,UML的作用就是用很多图从静态和动态方面来 全面描述我们将要开发的系统。

二.用例建模简介

用例建模是UML建模的一部分,它也是UML里最基础的部分。用例建模的最主要功能就是用来表达系统的功能性需求或行为。依我的理解用例建模可分为 用例图和用例描述。用例图由参与者(Actor)、用例(Use Case)、系统边界、箭头组成,用画图的方法来完成。用例描述用来详细描述用例图中每个用例,用文本文档来完成。

1. 用例图

参与者不是特指人,是指系统以外的,在使用系 统或与系统交互中所扮演的角色。因此参与者可以是人,可以是事物,也可以是时间或其他系统等等。还有一点要注意的是,参与者不是指人或事物本身,而是表示 人或事物当时所扮演的角色。比如小明是图书馆的管理员,他参与图书馆管理系统的交互,这时他既可以作为管理员这个角色参与管理,也可以作为借书者向图书馆 借书,在这里小明扮演了两个角色,是两个不同的参与者。参与者在画图中用简笔人物画来表示,人物下面附上参与者的名称。

用例是对包括变量在内的一组动作序列的描述,系统执行这些动作,并产生传递特定参与者的价值的可观察结果。这是 UML对用例的正式定义,对我们初学者可能有点难懂。我们可以这样去理解,用例是参与者想要系统做的事情。对于对用例的命名,我们可以给用例取一个简单、 描述性的名称,一般为带有动作性的词。用例在画图中用椭圆来表示,椭圆下面附上用例的名称。

系统边界是用来表示正在建模系统的边界。边界内表示系统的组成部分,边界外表示系统外部。系统边界在画图中方框来表示,同时附上系统的名称,参与者画在边界的外面,用例画在边界里面。因为系统边界的作用有时候不是很明显,所以我个人理解,在画图时可省略。

箭头用来表示参与者和系统通过相互发送信号或消息进行交互的关联关系。箭头尾部用来表示启动交互的一方,箭头头部用来表示被启动的一方,其中用例总是要由参与者来启动。

2. 用例描述

用例图只是简单地用图描述了一下系统,但对于每个用例,我们还需要有详细的说明,这样就可以让别人对这个系统有一个更加详细的了解,这时我们就需要写用例描述。

对于用例描述的内容,一般没有硬性规定的格式,但一些必须或者重要的内容还是必须要写进用例描述里面的。用例描述一般包括:简要描述(说明)、前置(前提)条件、基本事件流、其他事件流、异常事件流、后置(事后)条件等等。下面说说各个部分的意思:

简要描述:对用例的角色、目的的简要描述;

前置条件:执行用例之前系统必须要处于的状态,或者要满足的条件;

基本事件流:描述该用例的基本流程,指每个流程都“正常”运作时所发生的事情,没有任何备选流和异常流,而只有最有可能发生的事件流;

其他事件流:表示这个行为或流程是可选的或备选的,并不是总要总要执行它们;

异常事件流:表示发生了某些非正常的事情所要执行的流程;

后置条件:用例一旦执行后系统所处的状态;

三. 用例图和用例描述设计实例

这里用我开发的一个家教网站来简单的分析用例图的画法和用例描述的写法。这个网站我用UML完整的分析一下,以下我提取了用例图和用例描述的部分。这个家教网站分为前台客户系统和后台管理系统。

前台客户系统的用例图如下:


后台管理系统用例图如下:


对于用例描述,篇幅有限,我在这里只列了后台管理系统中的网站公告发布这个用例的描述。如下:

用例名称:网站公告发布
用例标识号:202
参与者:负责人
简要说明

负责人用来填写和修改家教网站首页的公告,公告最终显示在家教网站的首页上。
前置条件:

负责人已经登陆家教网站管理系统
基本事件流:

1.负责人鼠标点击“修改公告”按钮

2.系统出现一个文本框,显示着原来的公告内容

3.负责人可以在文本框上修改公告,也可以完全删除,重新写新的公告

4.负责人编辑完文本框,按“提交”按钮,首页公告就被修改

5.用例终止
其他事件流A1

在按“提交”按钮之前,负责人随时可以按“返回”按钮,文本框的任何修改内容都不会影响网站首页的公告
异常事件流

1.提示错误信息,负责人确认

2.返回到管理系统主页面
后置条件

网站首页的公告信息被修改
注释:无
四. 总结

其实用例建模并不是这么简单,它涉及到的知识还有很多,这里只是简单的介绍一下。

感谢:http://www.51cto.com 2006-01-13 10:10 出处:51CTO.com整理




补充:

用例之间也可以存在包含、扩展和泛化等关系:

  (1)包含关系:用例可以简单地包含其他用例具有的行为,并把它所包含的用例行为做为自身行为的一部分,这被称作包含关系。

  (2)扩展关系:扩展关系是从扩展用例到基本用例的关系,它说明为扩展用例定义的行为如何插入到为基本用例定义的行为中。它是以隐含形式插入的,也就是说,扩展用例并不在基本用例中显示。在以下几种情况下,可使用扩展用例:

  a.表明用例的某一部分是可选的系统行为(这样,您就可以将模型中的可选行为和必选行为分开);

  b.表明只在特定条件(如例外条件)下才执行的分支流;

  c.表明可能有一组行为段,其中的一个或多个段可以在基本用例中的扩展点处插入。所插入的行为段和插入的顺序取决于在执行基本用例时与主角进行的交互。

  图2.3给出了一个扩展关系的例子,在还书的过程中,只有在例外条件(读者遗失书籍)的情况下,才会执行赔偿遗失书籍的分支流。


(3)泛化关系:用例可以被特别列举为一个或多个子用例,这被称做用例泛化。当父用例能够被使用时,任何子用例也可以被使用。如在图2.4中,订票是电话订票和网上订票的抽象。


------------------------------------------------------------

泛化、包含和扩展

泛化(Generalization)在面向对象的技术中无处不在,它的另一个名字也许更为著名,就是“继承”。下图给出了一个使用泛化的用例图:


可知,在用例图中,角色和用例都能够泛化。角色的泛化/继承很容易理解,因为角色本来就是类(Class),它是一种版型(stereotype)为Actor的类,所以角色的继承直观而自然。但是用例的继承实际上分为两种情况,并不是简单的使用泛化,而是使用扩展(extended)和包含(include)两种泛化的特例。

扩展用于子用例的动作步骤基本上和父用例的动作步骤相同,只是增加了另外的一些步骤的情况下。包含用于子用例包含了所有父用例的动作,它将父用例作为了自己的一个大步骤,子用例常常包含一个以上的父用例。如下图:

 

http://chatgpt.dhexx.cn/article/NF97lKRG.shtml

相关文章

用例图——如何描述用例

一 用例图 1 用例间的关系 包含、扩展、泛化。 三者都属于依赖关系。 2 箭头方向 (1) 包含关系,基用例依赖它所包含的用例,箭头指向包含用例。 (2) 扩展关系:扩展用例依赖基用例,它由基用例触发出来的,箭头指向基用…

用例描述

用例图只是简单地用图描述了一下系统,但对于每个用例,我们还需要有详细的说明,这样就可以让别人对这个系统有一个更加详细的了解,这时我们就需要写用例描述。对于用例描述的内容,一般没有硬性规定的格式,但…

用例图与用例描述

用例图 用例图包含三部分:用例use case 、参与者actor和关系relationship 用例图是被称为参与者的外部用户所能观察到的系统功能的模型图 用例图列出系统中的用例和系统外的参与者,并显示哪个参与者参与了哪个用例的执行 用例图多用于静态建模阶段(主…

实训—用例图的建模与用例描述的写作

📚文章目录 🔬实训名称: 🔬实验目的: 🔬实验原理: 🔬实验步骤 🔬实训名称: 用例图的建模与用例描述的写作 🔬实验目的: 1. 能够准确识别出参与者。 2.能够准确识别参与者之间…

html元素隐藏与显示

首先先解释一下两种不显示元素的基础知识,然后在给出一个例子及其实现的代码。先展示一下例子想要的效果。 如下图,这个表格最后两列正常情况下是没有显示的。 当鼠标移动该行时,该行的最后两列显示出来,如下图红框内显示。 接下…

html中怎么隐藏一下div,HTML怎么隐藏div

回答: div的visibility可以控制div的显示和隐藏,但是隐藏后页面显示空白: 1 2 3 style"visibility:none;" document,getElementById("typediv1"),style,visibility"hIDden";//隐藏 docu…

html的隐藏标签的显示不出来,css如何让隐藏的元素显示出来

在css中,可以使用display属性让隐藏的元素显示出来,只需要给被隐藏的元素添加“display:block”样式即可。display属性规定元素应该生成的类型,当值为block时,表示将隐藏的元素显示出来。 本教程操作环境:windows7系统…

html中占位隐藏,css样式占位和不占位隐藏元素的方法

css样式常用display: none;与visibility: hidden;方法设置元素隐藏,其中display:none方法隐藏元素不占位,visibility: hidden;方法隐藏元素占位。下面我们来看一下这两种方法如何使用。 display属性介绍: display:none可以隐藏某个…

selenium定位隐藏元素

面试官:“你是怎么使用selenium定位隐藏元素?”。 我相信这是很多小伙伴在面试web自动化的时候经常遇到的问题。但是我想说,这个问题着实很无聊。为什么我会这么说呢 ? 做web自动化测试,首先就是模拟用户做一些回归测…

html标签隐藏占位,css怎么不占位隐藏元素

css不占位隐藏元素的方法:1、使用display属性,给元素添加“display:none;”样式即可。2、使用position绝对定位,给元素添加“position:absolute;top:-9999px;”样式即可。 本教程操作环境:windows7系统、CSS3&&HTML5版、D…

python获取页面隐藏元素_python之selenium操作隐藏元素

一、html显示与隐藏元素的几种方法 1、display none:隐藏元素 block:显示为块级元素 B元素 display: none 隐藏自身元素以及它的所有后代元素 ,隐藏后的元素不占据任何空间,不影响页面布局。 2、visibility hidden:隐藏 visible:显示 B元素 visibility: hidden 隐…

html如何隐藏标签?,css如何隐藏元素?

用 CSS 隐藏页面元素有许多种方法。你可以将opacity设为0、将visibility设为hidden、将display设为none或者将position设为absolute然后将位置设到不可见区域。 css隐藏元素: Opacity opacity 属性的意思是设置一个元素的透明度。它不是为改变元素的边界框(bounding…

html 隐藏元素点击事件,css隐藏元素的几种方法中可以触发点击事件的是?

css隐藏元素的几种方法中可以触发点击事件的是 是opacity设置为0的方法。 css隐藏元素的方式: 1、display:none;.box{ display: none; } 最简单也最粗暴的方法就是设置元素的display属性为none。 设置为display:none;的元素将不会再占用页面空间,其占用的…

html隐藏怎么出来,html怎么让元素隐藏

html让元素隐藏的方法:1、通过“display:none;”隐藏;2、通过“overflow:hidden;”隐藏;3、设置元素的宽高等盒子模型的属性值为0;4、利用定位隐藏;5、设置元素透明度为0;6、通过visibility隐藏。 本文操作…

html怎么隐藏一个元素,html怎么隐藏div元素

html隐藏div元素的方法:1、在div标签中使用hidden属性,添加“hidden"hidden"”语句即可。2、在div标签中使用style属性,添加“display: none;”样式即可。 本教程操作环境:windows7系统、CSS3&&HTML5版、Dell G…

HTML和CSS隐藏元素的四种方法

第一种&#xff1a;display&#xff1a;none 特点&#xff1a;不占据屏幕空间 显示&#xff1a;display&#xff1a;block <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible…

Matlab画图技巧

二维图像&#xff1a; 设置图片位置和大小&#xff1a; set (gcf,Position, [a,b,c,d])[a,b,c,d]分布代表图片的起始点位置&#xff0c;图片的长和高。在绘制一些较大的图片的时候&#xff0c;可先将图片调整好大小&#xff0c;拖拽到合适的位置&#xff1b;然后在工具栏编辑中…

MATLAB自定义函数并绘制

MATLAB在学习生活中应用非常广&#xff0c;简单总结一点MATLAB的使用小技巧&#xff0c;在脚本中自定义函数表达式并进行绘制 主要包括&#xff1a; 线性&#xff1a; f(x)axb二次&#xff1a;f(x)ax^2bxc高斯函数&#xff1a; 广义高斯函数: 对数正态函数: 代码实现的主要思…

MATLAB画图函数plot简单用法

用法一 用法二 plot(X, Y, LineSpec); 其中LineSpec是字符串&#xff0c;表示图形设置&#xff1a;线条样式(line style)、每个点的样式(marker)、颜色&#xff08;color&#xff09; 线条样式 点的样式 颜色 LineSpec就是用来描述这三个属性的&#xff0c;也可以只描述其中…

matlab损耗函数曲线,MATLAB 损失函数画图

损失函数画图 Hinge loss function: \[H(z) = max(0,1-z)\] $\psi$-learning loss function: \[{\phi _s}(z) = \left\{ {\begin{array}{*{20}{c}} s&{z < 0}\\ 0&{z \ge 0} \end{array}} \right.\] Normalized Sigmoid loss: \[{P_t}(z) = 1 - \tanh (tz)\] Ramp …