Uml用例图总结

Uml用例图总结

用例图主要用来描述 用户、需求、系统功能单元 之间的关系。它展示了一个外部用户能够观察到的系统功能模型图。

【用途】:帮助开发团队以一种可视化的方式理解系统的功能需求。

用例图所包含的元素如下:

1.       参与者(Actor)

表示与您的应用程序或系统进行交互的用户、组织或外部系统。用一个小人表示。

Uml用例图总结

2.       用例(Use Case)

 用例就是外部可见的系统功能,对系统提供的服务进行描述。 用椭圆表示

Uml用例图总结

3.       子系统(Subsystem)

用来展示系统的一部分功能,这部分功能联系紧密。

Uml用例图总结

4.       关系

用例图中涉及的关系有:关联、泛化、包含、扩展;

如下表所示:

关系类型

说明

表示符号

关联

参与者与用例间的关系

Uml用例图总结

泛化

参与者之间或用例之间的关系

Uml用例图总结

包含

用例之间的关系

Uml用例图总结

扩展

用例之间的关系

Uml用例图总结

a.       关联(Association)

表示参与者与用例之间的通信,任何一方都可发送或接受消息。

【箭头指向】:指向消息接收方

 Uml用例图总结

b.      泛化(Inheritance)

就是通常理解的继承关系,子用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系。子用例可以使用父用例的一段行为,也可以重载它。父用例通常是抽象的。

【箭头指向】:指向父用例

Uml用例图总结

c.       包含(Include)

包含关系用来把一个较复杂用例所表示的功能分解成较小的步骤;

【箭头指向】:指向分解出来的功能用例

Uml用例图总结

d.      扩展(Extend)

    扩展关系是指 用例功能的延伸,相当于为基础用例提供一个附加功能。

   【箭头指向】:指向基础用例

Uml用例图总结

e.       依赖(Dependency)

以上4中关系,是UML定义的标准关系。 但VS2010的用例模型图中,添加了依赖关系,用带箭头的虚线表示

表示源用例依赖于目标用例;

【箭头指向】:指向被依赖项

Uml用例图总结

5.       项目(Artifact)

用例图虽然是用来帮助人们形象地理解功能需求,但却没多少人能够通看懂它。很多时候跟用户交流甚至用Excel都比用例图强,VS2010中引入了“项目”这样一个元素,以便让开发人员能够在用例图中链接一个普通文档。

用依赖关系把某个用例依赖到项目上

Uml用例图总结

然后把项目-》属性 的Hyperlink 设置到你的文档上

这样当你在用例图上 双击项目时,就会打开相关联的文档。

6.       注释(Comment)

Uml用例图总结

 

包含(include)、扩展(extend)、泛化(Inheritance的区别:

条件性:泛化中的子用例和include中的被包含的用例会无条件发生,而extend中的延伸用例的发生是有条件的;

直接性:泛化中的子用例和extend中的延伸用例为参与者提供直接服务,而include中被包含的用例为参与者提供间接服务。

对extend而言,延伸用例并不包含基础用例的内容,基础用例也不包含延伸用例的内容。

对Inheritance而言,子用例包含基础用例的所有内容及其和其他用例或参与者之间的关系;

一个用例图示例:

Uml用例图总结

牢骚:

感觉用例图还不成熟,并不能很好地表达系统的需求, 没有UML背景的用户几乎不知道画的些什么。

其次,包含关系、扩展关系 的箭头符号竟然是同样的箭头,仅靠上方写个文字来加以区别,翻译成其他语言的话,几乎就不知道代表什么意思。  扩展关系的箭头朝向也很难理解,为何要指向基用例,而不指向扩展用例

VS2010添加的“项目”元素,是个很好的创新,能够在用例图中关联word,excel这些文档。但为什么不把这些功能直接集成到用例里面,双击用例就弹出一份文档岂不更容易理解,非要画蛇添足地加一个元件,仅仅为了提供个链接功能。

用例描述表:

鉴于用列图并不能清楚地表达功能需求,开发中大家通常用描述表来补充某些不易表达的用例,下图的表给大家提供一个参考:

Uml用例图总结

转载于:https://my.oschina.net/u/2391658/blog/717689

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/108934.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Python2安装_python安装不了

    Python2安装_python安装不了py2exe相信大家都知道,一个能够打包Python程序变成可执行文件的Python库。用起来很简单,但是好像还是有限,像opencv这样的库还是没有办法打包等。我安装的时候遇到了一小点问题,分享给大家:Python3安装py2exe安装直接使用pipinstallpy2exePython2安装py2exepython2安装的时候无法直接使用pipinstallpy2exe,…

    2022年9月10日
    0
  • opencv 图像伽马校正

    opencv 图像伽马校正Referfromhttp://blog.csdn.net/xiaojidan2011/article/details/8027670伽马校正,最好的,最高效的方法是通过table来访问:核心函数LUT(TheCoreFunction)¶这是最被推荐的用于实现批量图像元素查找和更该操作图像方法。在图像处理中,对于一个给定的值,将其替换成其他的值是一个很常见的操作,Ope

    2022年9月24日
    0
  • Python元组

    在python中有六种内建的序列:列表、元祖、字符串、Unicode字符串、buffer对象hexrange对象。通用序列操作:1.索引(indexing)2.分片(slicing)3.

    2021年12月18日
    48
  • webgame开发中常用的一些类

    webgame开发中常用的一些类这个只是自己在开发游戏过程中所总结出来的,仅供参考。1、加载队列QueueLoader,游戏一定是有很多的资源需要加载,这个类可以让资源以顺序进行加载;2、ZIP解压工具类nochump类,这里有之前写过的例子–>使用as工具包解压zip文件。这里还有另外一个Zip处理类ZipArchive3、声音管理类SoundManager,游戏一般都有很多音乐需要管理:…

    2022年6月3日
    27
  • 常见的目标检测算法介绍[通俗易懂]

    常见的目标检测算法介绍[通俗易懂]2018-12-0521:12:15一、滑动窗口目标检测首先通过卷积神经网络训练一个分类器,然后使用不同尺度的窗口去裁剪输入图片进行分类。我们期望的结果是通过不同的窗口可以将需要检测的物体完全覆

    2022年8月6日
    3
  • mac如何查看已连接wifi的密码「建议收藏」

    mac如何查看已连接wifi的密码「建议收藏」可以通道mac自带的“钥匙串访问”功能查看。选择需要查询的wifi名称,右击选择“将密码拷贝到剪贴板”,输入管理员密码后,密码就拷贝好了。找个地方粘贴即可看到密码

    2022年8月4日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号