博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UML之用例图的学习笔记
阅读量:6483 次
发布时间:2019-06-23

本文共 1597 字,大约阅读时间需要 5 分钟。

hot3.png

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

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

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

1.       参与者(Actor)

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

2.       用例(Use Case)

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

3.       子系统(Subsystem)

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

4.       关系

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

如下表所示:

关系类型

说明

表示符号

关联

参与者与用例间的关系

泛化

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

包含

用例之间的关系

扩展

用例之间的关系

a.       关联(Association)

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

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

 

b.      泛化(Inheritance)

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

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

c.       包含(Include)

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

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

d.      扩展(Extend)

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

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

 

e.       依赖(Dependency)

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

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

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

5.       项目(Artifact)

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

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

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

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

 

6.       注释(Comment)

 

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

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

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

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

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

 

一个用例图示例:

 

牢骚:

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

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

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

用例描述表:

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

转载于:https://my.oschina.net/anomynous/blog/168743

你可能感兴趣的文章
ali-oss web + 微信小程序 使用
查看>>
setTimeOut与setInterval this总结
查看>>
明辰 : 数字货币主流币行情走势分析交易中最难克服的心理是什么?
查看>>
小镇青年王伟的小程序创业
查看>>
快应用快速入门教程
查看>>
开发者说:如何参与定义一款 IDE 插件
查看>>
前端安全类
查看>>
C:\Program 不是内部或外部命令,也不是可运行的程序
查看>>
码code | 关于小程序·云开发,你想知道的这里都有
查看>>
解决Centos7下安装vsftpd问题
查看>>
全面梳理 CSS3 动画
查看>>
golang命令学习笔记
查看>>
iOS做地图相关需要知道的Tips(一)——坐标系及相互转换方法
查看>>
LeetCode集锦(十九) - 第83题 Remove Duplicates from sorted list
查看>>
CSS基础
查看>>
如何在项目代码中注释
查看>>
SpringCloud 实战二:Client的创建和高可用
查看>>
面试题《二》
查看>>
Electron深入填坑之路
查看>>
SimpleCrop 媲美原生体验的Web图片裁剪组件
查看>>