UML学习---用例图

1、什么是用例图

 用例图源于Jacobson的OOSE方法,用例图是需求分析的产物,描述了系统的参与者与系统进行交互的功能,是参与者所能观察和使用到的系统功能的模型图。它的主要目的就是帮助开发团队以一种可视化的方式理解系统的功能需求,包括基于基本流程的“角色”关系以及系统各个功能之间的关系。它通过用例(Use Case)来捕获系统的需求,再结合参与者(Actor)进行系统功能需求的分析和设计。

2、用例图的组成

 用例图有四部分组成:用例(Use Case)、参与者(Actor)、系统边界、关联

2.1 参与者

在一个系统开发前,我们必定首先要确定系统的用户,系统的用户就是系统的参与者。除此以外,我们还会想打,我们开发的系统与其他的系统有什么关联?因此,系统的参与者可分为两类,一类是人,包括系统的使用者、维护者等,另外一类是其他系统。

2.2 用例

 用例(Use Case)是参与者(Actor)可以感受到的系统服务或功能单元。

  任何用例都不能在缺少参与者的情况下独立存在。同样,任何参与者也必须要有与之关联的用例,所以识别用例的最好方法就是从分析系统参与者开始,在这个过程中往往会发现新的参与者。

  用例是有粒度的,用例的粒度指的是用例所包含的系统服务或功能单元的多少。用例的粒度越大,用例包含的功能越多,反之则包含的功能越少。

2.3 系统边界

所谓系统边界是指系统与系统之间的界限。把系统边界以外的同系统相关联的其他部分称之为系统环境。

2.4 关联

  为了减少模型维护的工作量、保证用例模型的可维护性和一致性,可以在用例之间抽象出包含(Include)、扩展(Extend)和泛化(Generalization)这几种关系

包含关系是指用例可以简单地包含其他用例具有的行为,并把它所包含的用例行为作为自身行为的一部分。

扩展关系是指在一定条件下,把新的行为加入到已有的用例中,获得的新用例称为扩展用例(Extension),原有的用例称为基础用例(Base)。

泛化关系是指一个父用例可以被特化形成多个子用例,而父用例和子用例之间的关系就是泛化关系。

3、简单登录注册系统用例图

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏哲学驱动设计

UML 图使用心得

在软件开发中,从需求工程到代码工程,都离不开 UML 图的绘制。今天简要总结一下我以往使用 UML 图的一些体会。 很多图,都是由原始需求到代码的一种转换,只是...

1916
来自专栏GreenLeaves

Builder生成器(创建型模式)

一、使用场景: 1、假设要创建一个House设施,该设施的创建由若干个部分组成,而且这若干个部分经常变化。 如果用最直观的设计方式,每一个房屋部分的变化,都将导...

1886
来自专栏程序猿DD

领域驱动设计

关于领域驱动设计 这篇文章参考了Eric Evans《领域驱动设计》一书以及Jimmy Nilsson《以C# .NET为例运用领域驱动设计和模式》,二者详细描...

4079
来自专栏程序员的SOD蜜

由微服务,领域事件,分布式事件谈“业务分析三维度理论”的实践

今天读了在微服务中使用领域事件 这篇文章,通过分布式,订单系统直接将事件推送给订阅此事件的账户系统,然后账户系统再处理,整个系统设计很好。 ? 不过,我觉得所...

21910
来自专栏数据科学与人工智能

【Python环境】Python 开发者节省时间的 10 个方法

Python 是一个美丽的语言,可以激发用户对它的爱。所以如果你试图加入程序员行列,或者你有点厌倦C++,Perl,Java 和其他语言,我推荐你尝试Pytho...

2417
来自专栏PPV课数据科学社区

【工具】深入对比数据科学工具箱:Python和R之争

文章目录 概述 应用场景对比 应用Python的场景 应用R的场景 数据流编程对比 参数传递 数据传输与解析 基本数据结构 MapReduce 矩阵操作 数据框...

3534
来自专栏挖掘大数据

如何成为一名10x的数据分析师?

不知道大家以前听没听说过“10x Developer”这个词,如果你连听都还没听说过,那可真是时候考虑放弃自己的程序猿事业了。就像传说一样,一些程序猿的战斗力能...

2348
来自专栏峰会SaaS大佬云集

更新c++学习笔记 第一章

参加了几次笔试,发现有很多c++方面的问题被卡了。从现在开始进攻c++。之后会陆续更新c++学习笔记。

311
来自专栏AI科技大本营的专栏

经验 | 如何成为一名顶级战斗力的数据分析师?

翻译 | AI科技大本营(rgznai100) 参与 | reason_W 不知道大家以前听没听说过“10x Developer”这个词,如果你连听都还没听说过...

2937
来自专栏FreeBuf

厉害吧!Python都能做指纹识别播报了

指纹识别技术是目前最成熟且价格便宜的生物特征识别技术。目前来说指纹识别的技术应用最为广泛,我们不仅在门禁、考勤系统中可以看到指纹识别技术的身影,市场上有了更多指...

1773

扫码关注云+社区