文档章节

UML静态建模之用例图

双木公子
 双木公子
发布于 2016/10/11 20:56
字数 974
阅读 36
收藏 0

  用例图(use case diagram)主要用来描述“用户、需求、系统功能单元”之间的关系。它展示了一个外部用户能够观察到的系统功能模型图。它主要用来图示化系统的主事件流程,从而描述客户的需求。设计人员根据客户的需求来创建和解释用例图,并用来描述软件应具备哪些功能模块以及这些模块之间的调用关系,用例图包含了用例和参与者,用例之间用关联来连接以求把系统的整个结构和功能反映给非技术人员(通常是软件的用户),对应的是软件的结构和功能分解,因此,设计用例图也是设计系统分析阶段的起点。

 

  用例图(use case diagram)所包含的元素如下:

  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而言,子用例包含基础用例的所有内容及其和其他用例或参与者之间的关系;

 一个用例图示例:

                                                   

                                          


   

 

 

 

 

 

© 著作权归作者所有

双木公子
粉丝 2
博文 2
码字总数 1628
作品 0
武汉
程序员
私信 提问
系统架构师-基础到企业应用架构-系统建模[上篇]

一、摘要 本文主要从系统架构中的建模开始讲解,本文讲述的内容主要是我在工作和学习过程中的总结和经验,不足之处还请大家多多批评指出,有更好的建议也可以留言 说明。本意主旨是为不熟悉系...

wbf961127
2017/11/12
0
0
软考之UML图深入学习(2)

前言 经历过软考之后的UML图学习,对于九种图有了更加深入的认识,上一篇文章《软考之UML图深入学习(1)》中,介绍了UML建模工具是什么? 这篇文章继前文,进一步深入,从小编思考的UML图进...

m18633778874
2017/11/12
0
0
软件设计之UML—UML的构成[上]

UML是一种通用的建模语言,其表达能力相当的强,不仅可以用于软件系统的建模,而且可用于业务建模以及其它非软件系统建模。UML综合了各种面向对象方法与表示法的优点,至提出之日起就受到了广...

ibm_hoojo
2013/08/30
0
0
统一建模语言-UML

伪cs专业,也是无语,还要经常作图。 貌似计算机期刊文章,系统设计需要它。 什么是UML? 百度百科 Unified Modeling Language (UML)又称统一建模语言或标准建模语言,是始于1997年一个OMG标准...

东风冷雪
2018/01/12
0
0
UML用例建模的慨念和应用

【IT168 技术文章】 一、UML简介 UML(统一建模语言,Unified Modeling Language)是一种定义良好、易于表达、功能强大且普遍适用的可视化建模语言。它融入了软件工程领域的新思想、新方法和...

李倩
2009/07/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Raspberry Pi 树莓派 搭建java8环境

更新软件源 apt-get upgradeapt-get update 移除自带的openjdk(如果有的话) apt-get remove openjdk* 安装oracle jdk,地址: https://www.oracle.com/technetwork/java/javase/downl......

ChangeZ
今天
79
0
树莓派3b 安装openwrt

https://downloads.openwrt.org/releases/19.07.0/targets/brcm2708/bcm2710/openwrt-19.07.0-brcm2708-bcm2710-rpi-3-squashfs-factory.img.gz 插入并启动树莓派3B+,顺便接上键盘和显示器,......

FalconChen
今天
71
0
OSChina 周一乱弹 —— 有些运动也常用到膝盖

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @薛定谔的兄弟 :分享洛神有语创建的歌单「我喜欢的音乐」: 《火宵の月・テーマ~ピアノソロ》- 中村由利子 手机党少年们想听歌,请使劲儿戳(...

小小编辑
今天
109
1
Redis持久化机制

RDB存储 RDB方式的持久化是通过快照完成的,当符合一定条件时Redis会自动将内存中的所有数据生成一份副本并存储在硬盘上。 Redis会在一下集中情况下对数据进行快照: 根据配置规则进行快照;...

XuePeng77
今天
81
0
float精度计算测试

package mainimport ("fmt""github.com/go-ozzo/ozzo-dbx"_ "github.com/go-sql-driver/mysql")type DecimalDemo struct {Id intAmount float64}func main() {db, _......

醉人的笑容你有没有
今天
127
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部