用例图的简单描述
- 格式:doc
- 大小:29.50 KB
- 文档页数:1
UML之⽤例图⽤例图⽤例图是⽤来描述系统功能的技术,表⽰⼀个系统中⽤例与参与者及其关系的图,主要⽤于需求分析阶段。
⽤例图的基本组成元素:参与者、⽤例、元素之间的关系。
⽤例图使⽤范围:需求分析1.捕获需求。
描述功能需求、⾏为需求(系统要完成什么任务)2.分析需求。
明确类和对象,建⽴之间的关系⽤例图的基本概念1、⽤例图是表⽰⼀个系统中⽤例与参与者关系之间的图。
它描述了系统中相关的⽤户和系统对不同⽤户提供的功能和服务。
2、⽤例图相当于从⽤户的视⾓来描述和建模整个系统,分析系统的功能与⾏为。
3、⽤例图中的主要元素包括参与者、⽤例以及元素之间的关系。
此外,⽤例图还可以包括注解和约束,也可以使⽤包将图中的元素组合成模块。
如:参与者的概念1、参与者是与系统主体交互的外部实体的类元,描述了⼀个或⼀组与系统产⽣交互的外部⽤户或外部事物。
2、参与者位于系统边界之外,⽽不是系统的⼀部分。
3、参与者是从现实世界中抽象出来的⼀种形式,却不⼀定确切对应的现实中的某个特定对象。
符号:如何确定参与者?通过对参与者进⾏关注和分析,我们可以把重点放在如何与系统交互这⼀问题上,便于进⼀步确定系统的边界。
另外,参与者也决定了系统需求的完整性。
确定参与者可以从以下⼏个⾓度来考虑:1)为系统提供输⼊的⼈或事物2)接收系统输出的⼈或事物3)需要接⼊的第三⽅系统或设备4)时间是否会触发某些事件5)负责⽀持或维护系统中信息的⼈系统中的参与者⼀般可以分为四类:主要业务参与者:主要从⽤例的执⾏中获得好处的关联⼈员。
主要系统参与者:直接同系统交互以发起或触发业务或系统事件的关联⼈员。
外部服务参与者:响应来⾃⽤例的请求的关联⼈员。
外部接收参与者:从⽤例中接收某些价值或输出的⾮主要的关联⼈员。
参与者的泛化关系当系统中的⼏个参与者既扮演⾃⾝的⾓⾊,同时也有更⼀般化的⾓⾊时,可以通过建⽴泛化关系来进⾏描述。
与类相似,⽗参与者可以是抽象的,即不能创建⼀个⽗参与者的直接实例,这就要求属于抽象⽗参与者的外部对象⼀定能够属于其⼦参与者之⼀。
用例图百科名片用例图就是由主角、用例以及它们之间的关系构成的图。
该图说明了用例模型中的关系。
简介用例图(User Case)是被称为参与者的外部用户所能观察到的系统功能的模型图,呈现了一些参与者和一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模。
用例图展示了用例之间以及同用例参与者之间是怎样相互联系的。
用例图用于对系统、子系统或类的行为进行可视化,使用户能够理解如何使用这些元素,并使开发者能够实现这些元素。
将每个系统中的用户分出工作状态的属性和工作内容,方便建模,防止功能重复和多余的类。
用例图定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现。
ps: 提取出“名词”,画用例图构成用例图由参与者(Actor)、用例(Use Case)、系统边界、箭头组成,用画图的方法来完成。
参与者参与者不是特指人,是指系统以外的,在使用系统或与系统交互中所扮演的角色。
因此参与者可以是人,可以是事物,也可以是时间或其他系统等等。
还有一点要注意的是,参与者不是指人或事物本身,而是表示人或事物当时所扮演的角色。
比如小明是图书馆的管理员,他参与图书馆管理系统的交互,这时他既可以作为管理员这个角色参与管理,也可以作为借书者向图书馆借书,在这里小明扮演了两个角色,是两个不同的参与者。
参与者在画图中用简笔人物画来表示,人物下面附上参与者的名称。
用例用例是对包括变量在内的一组动作序列的描述,系统执行这些动作,并产生传递特定参与者的价值的可观察结果。
这是UML对用例的正式定义,对我们初学者可能有点难懂。
我们可以这样去理解,用例是参与者想要系统做的事情。
对于对用例的命名,我们可以给用例取一个简单、描述性的名称,一般为带有动作性的词。
用例在画图中用椭圆来表示,椭圆下面附上用例的名称。
系统边界系统边界是用来表示正在建模系统的边界。
边界内表示系统的组成部分,边界外表示系统外部。
系统边界在画图中方框来表示,同时附上系统的名称,参与者画在边界的外面,用例画在边界里面。
Use Case View Summary这段文字是翻译自Mark Priestley《Practical Object-Oriented Design with UML》的,算是对用例图作个总结,增加我自己的理解和记忆,也希望对大家有所帮助。
●用例视图(use case view)包括actors 和用例(use cases)。
Actors描述了用户在和系统交互的过程中可以扮演的角色。
用例描述了系统提供给actors的功能。
●用例定义了用户和系统之间的某种特定类型事务。
某个特定类型的交互,或者说用例的实例可以在场景(scenarios)中描述。
UML并没有给出用例和场景的正式定义。
●场景可以被定义为陈述了用例所描述的基本的事件发生过程,并且陈述了可能发生的异常情况。
●用例图(use case diagram)画出了参与在系统中的actors和用况。
一个actor和一个用况之间存在关联说明这个actor参与这个用况其中。
●用例和用例之间, actor和actor之间可以存在一般化关系(类似于类class之间的超类、继承),就是说某个用例或actor是另外一个的特殊情况。
●用例之间还存在这“包含(include)”关系,就是说一个用例可以包含另外一个。
类似于函数调用,这为用例的重用提供了一种机制。
●用例之间的另外一种关系“扩展(extend)”运行一个用例提供可选的功能。
通过定义扩展点和何时执行何种功能来定义这种关系。
这些信息在用例图中是可选的。
●一个用例或者场景的实现描述了足够实现这个用例(或场景)功能的,可交互对象的结构。
●序列图(sequence diagram)和协作图(collaboration diagram)画出参与在一个交互中的对象和他们之间互相发送的消息,可以描述一个用例的实现。
译文就到此为止了,我想大概的就我的理解说明一下,以防止大家看的摸不着北。
Use case view是由需求到最终实现的第一步,目标系统需要有那些潜在或者明显的功能,有那些目标用户,这些东西画出来后use case这一步还远没有完成,接下来应该对要实现的功能进一步分析,那些用例其实是一种,用例之间有那些关系,如上面列出的一般化关系,扩展关系等等。
用例图(Use Case Diagram)是由软件需求分析到最终实现的第一步,它描述人们如何使用一个系统。
用例视图显示谁是相关的用户、用户希望系统提供什么样的服务,以及用户需要为系统提供的服务,以便使系统的用户更容易理解这些元素的用途,也便于软件开发人员最终实现这些元素。
用例图在各种开发活动中被广泛的应用,但是它最常用来描述系统及子系统。
当用例视图在外部用户出现以前出现时,它捕获到系统、子系统或类的行为。
它将系统功能划分成对参与者(即系统的理想用户)有用的需求。
而交互部分被称作用例。
用例使用系统与一个或者多个参与者之间的一系列消息来描述系统中的交互。
用例图包含六个元素,分别是:参与者(Actor)、用例(Use Case)、关联关系(Association)、包含关系(Include)、扩展关系(Extend)以及泛化关系(Generalization)。
用例图可一个包含注释和约束,还可一个包含包,用于将模型中的元素组合成更大的模块。
有时,可以将用例的实例引入到图中。
用例图模型如下所示,参与者用人形图标来标识,用例用椭圆来表示,连线表示它们之间的关系。
一.参与者(Actor)1.参与者的概念参与者是系统外部的一个实体,它以某种方式参与用例的执行过程。
参与者通过向系统输入或请求系统输入某些事件来触发系统的执行。
参与着由参与用例时所担当的角色来表示。
在UML中,参与者用名字写在下面的人形图标表示。
每个参与者可以参与一个或多个用例。
它通过交换信息与用例发生交互(因此也与用例所在的系统或类发生了交互),而参与者的内部实现与用例是不相关的,可以用一组定义其状态的属性充分的描述参与者。
参与者有三大类:系统用户、与所建造的系统交互的其它系统和一些可以运行的进程。
第一类参与者是真实的人,即用户,是最常见的参与者,几乎存在于每个系统中。
命名这类参与者时,应当按照业务而不是位置命名,因为一个人可能有很多业务。
第二类参与者是其它的系统。
瑞天图书管理系统用例描述-、图书借阅该用例提供了用户借阅图书时管理员更新图书信息以及日志、记 录借阅信息、创建和修改借阅者账户以及信息等 1、用例图如下:2、用例描述: 用例名称:图书借阅简要说明:图书管理员输入读者编号和图书编号来完成图书借阅。
参与者:图书管理员前置条件:读者出示的借阅证必须是有效的借阅证(from 图书管理系统参与创建新的借阅者帐户其他用户修改借阅者的帐户信息管理员已还书)(from 图书管理系统参与记录图书数量与价格学生(from 图书管理系统参与后置条件:显示读者的全部借阅信息假设条件:图书管理员已经成功登录图书管理系统基本操作流程:(1)图书管理员输入借阅证信息(2)系统检查读者是否有超期的借阅信息和读者的借书数量是否已经达到借书限额(4)图书管理员输入要借阅的图书信息(5)系统将读者的借阅信息保存到数据库中可选操作流程:读者有超期的借阅信息,或者读者的借书数量已经达到借书限额,系统显示不能借阅图书的信息,图书管理员进行超期处理。
二、归还图书1、用例图如下:2、用例描述: 用例名称:归还图书简要说明:图书管理员收到要归还的图书,进行还书操作。
参与者:图书管理员、学生、其他用户前置条件:无后置条件:显示读者的全部借阅信息假设条件:图书管理员已经成功登录图书管理系统 基本操作流程:(1) 图书管理员输入读者要归还的图书信息 (2) 系统检索与该图书相关的借阅者信息 (3) 系统检查该借阅者是否有超期的借阅信息 (4) 系统将借阅者的还书信息保存到数据库中(from))登录(5)系统将该图书的状态改变为可借阅状态可选操作流程:读者归还图书,图书管理员查看是否超出期限,并进行相应处罚,并且图书管理员将借阅信息删除。
三、图书查询1、用例图如下:输入书籍信息2、用例描述:用例名称:图书查询简要说明:用户登录网站进行查询参与者:用户前置条件:必须有登录账户后置条件:显示要借图书的全部信息假设条件:用户已经成功登录图书管理系统3、操作流程:(1)用户输入登录信息(2)系统检查读者是否有账号(3)用户输入要查询的图书信息(4)系统检查读者的借书信息是否存在可选操作流程:读者有超期的借阅信息,图书管理员进行超期处理; 读者的借书数量已经达到借书限额,系统显示不能借阅图书的信息。
uml用例描述使用UML用例描述的标题:在线购物系统在今天的数字化时代,越来越多的人选择在网上购物,这就使得在线购物系统变得非常重要。
在线购物系统是一种以网络为平台,为用户提供商品浏览、购买、支付、物流等服务的系统。
本文将使用UML用例图描述在线购物系统的功能和交互。
1. 用例图介绍在线购物系统的用例图主要包括以下几个角色和用例:- 用户:可以注册、登录、浏览商品、添加商品到购物车、下订单、支付订单、查看订单、取消订单等。
- 商家:可以登录、发布商品、管理商品、管理订单等。
- 系统管理员:可以管理用户、管理商家、管理商品等。
- 物流公司:可以接收订单、安排物流、更新物流状态等。
2. 用户用例2.1 注册用户在使用在线购物系统之前,需要先进行注册。
用户填写个人信息,包括用户名、密码、手机号码等,然后点击注册按钮完成注册。
2.2 登录已注册的用户可以使用用户名和密码进行登录,登录成功后可以进入系统的主界面。
2.3 浏览商品用户登录后可以浏览系统中的商品,可以按照分类、关键词等进行搜索。
用户可以查看商品的详细信息,包括价格、库存、评价等。
2.4 添加商品到购物车用户可以将感兴趣的商品添加到购物车中,方便后续统一结算。
用户可以在购物车中修改商品数量或删除商品。
2.5 下订单用户在购物车中选择要购买的商品,填写收货地址和支付方式等信息,然后点击下订单按钮生成订单。
2.6 支付订单用户选择支付方式,如支付宝、微信支付等,然后输入支付密码进行支付。
2.7 查看订单用户可以查看已下的订单,包括订单的详细信息、支付状态、物流状态等。
2.8 取消订单用户可以取消未支付或未发货的订单,取消后商品库存会相应增加。
3. 商家用例3.1 登录商家使用用户名和密码登录系统,登录成功后可以进入商家管理界面。
3.2 发布商品商家可以发布新的商品,填写商品信息,包括名称、价格、库存、描述等。
3.3 管理商品商家可以管理已发布的商品,包括修改商品信息、下架商品、查看商品销售情况等。
用例图(User Case)用例图是用来描述什么角色通过某某系统能做什么事情的图,用例图关系的是系统的外在表现,系统与人的交互,系统与其它系统的交互。
下面逐一说明用例图中各种符号的意义:小人:对使用某系统的用户进行分类后,可以总结出使用本系统有哪些角色,不同的角色的工作责任不太一样,他们需要用到的系统的功能也会不太一样。
小人就是角色,它给了我们一个启示,我们思考某系统的需求时,可从不同角色的角度来思考。
例如:我们要做一个考勤系统,你会怎样思考呢?会一下子列出很多功能?比较好的方式,应该是先思考什么人会用这个系统,我们大概可以估计一般员工、高层领导、前台、财务等都会用这个系统,对于一般员工来说除了打卡,他还关注什么?对于前台,她是不是要做一些考勤的统计?而财务是不是要根据考勤情况来调整员工的薪金?这样的思考方式,会让我们更容易全面发掘系统的需求。
还需要特别说明的是:角色可能是人,也可能不是人,而是另外的一个系统,本系统与另外一个系统交互的话,可以将另外一个系统画成某某角色。
圈圈:圈圈里面会有一段动宾结构的文字,也就是“动词+名词”这样的方式,这个圈圈+圈圈里面的文字,就是用例,这些用例表明了系统能做什么事情。
以考勤系统为例:有两个用例叫“打卡”、“查看自己的考勤情况”,这个两个圈圈分别用一条线连到了“一般员工”这个角色,我们可以按这样的顺序来读这个图:先读出角色的名字,然后读出用例中的文字。
按着这样的读法,我们可以得到两句完整的句子:“一般员工打卡”“一般员工查看自己的考勤情况”大家可以用这样的方式来检查自己用例图是否画得合适。
某用例不一定是只属于某个角色的,有不少用例是多个角色“共享”的。
大框框:在所有用例的外面,有一个方框,这个方框只框住了用例,没有框住角色,这个东西就叫做系统边界,框框的上部会注明本系统的名字。
我们所做的系统,是不可能包括角色的,系统要发挥各种作用,要靠各角色“穿越”系统边界来使用本系统的用例。
UML用例图用例描述详解描述用例规约应该避免这样一种误解――认为由参与者和用例构成的用例图就是用例模型,用例图只是在总体上大致描述了系统所能提供的各种服务,让我们对于系统的功能有一个总体的认识。
除此之外,我们还需要描述每一个有例的详细信息,这些信息包含在用例规约中,用例模型是由用例图和每一个用例的详细描述――用例规约所组成的。
RUP中提供了用例规约的模板,每一个用例的用例规约都应该包含以下内容:•简要说明(Brief Description)简要介绍该用例的作用和目的。
•事件流(Flow of Event)包括基本流和备选流,事件流应该表示出所有的场景。
•用例场景(Use-Case Scenario)包括成功场景和失败场景,场景主要是由基本流和备选流组合而成的。
•特殊需求(Special Requirement)描述与该用例相关的非功能性需求(包括性能、可靠性、可用性和可扩展性等)和设计约束(所使用的操作系统、开发工具等)。
•前置条件(Pre-Condition)执行用例之前系统必须所处的状态。
•后置条件(Post-Condition)用例执行完毕后系统可能处于的一组状态。
用例规约基本上是用文本方式来表述的,为了更加清晰地描述事件流,也可以选择使用状态图、活动图或序列图来辅助说明。
只要有助于表达的简洁明了,就可以在用例中任意粘贴用户界面和流程的图形化显示方式,或是其他图形。
如活动图有助于描述复杂的决策流程,状态转移图有助于描述与状态相关的系统行为,序列图适合于描述基于时间顺序的消息传递。
基本流基本流描述的是该用例最正常的一种场景,在基本流中系统执行一系列活动步骤来响应参与者提出的服务请求。
我们建议用以下格式来描述基本流:1) 每一个步骤都需要用数字编号以清楚地标明步骤的先后顺序。
2) 用一句简短的标题来概括每一步骤的主要内容,这样阅读者可以通过浏览标题来快速地了解用例的主要步骤。
在用例建模的早期,我们也只需要描述到事件流步骤标题这一层,以免过早地陷入到用例描述的细节中去。
用例图设计:根据需求,绘制用例图,明确系统功能和模块一、引言随着信息技术的快速发展,软件系统在各个领域得到广泛应用。
而在软件系统开发的过程中,需求分析是至关重要的一环。
其中,用例图作为一种常用的需求分析工具,能够帮助开发团队理解系统功能并明确系统模块。
本文将介绍用例图设计的基本概念和步骤,并结合一个实际案例进行说明。
二、用例图设计概述1. 用例图的定义用例图是一种描述系统功能和角色之间交互关系的图形化工具。
它能够帮助开发团队和用户理解系统的功能,并明确各个模块的职责和关系。
2. 用例图的组成元素用例图由用例、参与者和关系三个主要元素组成。
- 用例(Use Case):用例是指系统提供给用户的功能需求,用一个椭圆形图标表示。
每个用例都有一个唯一的名称,用以描述其功能和目的。
- 参与者(Actor):参与者是指与系统交互的用户、其他系统或外部设备,用一个小人形图标表示。
每个参与者都有一个唯一的名称,用以描述其角色和功能。
- 关系(Relationship):关系是指用例与参与者之间或用例之间的交互关系,用实线、虚线或箭头表示。
常见的关系有包含关系、扩展关系和泛化关系。
三、用例图设计步骤用例图设计的步骤主要包括需求收集、用例识别、参与者识别、用例编写和关系建立。
1. 需求收集需求收集是用例图设计的第一步,开发团队需要与用户进行充分的沟通和交流,了解系统的功能需求和用户的期望。
通过与用户积极互动,收集尽可能多的信息,以便后续的用例识别和设计。
2. 用例识别用例识别是根据需求收集的结果,将系统的功能需求划分为不同的用例。
每个用例都应该描述一个具体的功能,并具有明确的输入和输出。
3. 参与者识别参与者识别是根据需求收集的结果,将与系统交互的用户、其他系统或外部设备识别出来,并为每个参与者定义明确的角色和功能。
4. 用例编写用例编写是将识别出来的用例进行详细描述。
每个用例应包含用例名称、前置条件、正常流程、异常流程和后置条件等内容。
UML用例图介绍目录1、UML用例图概述 (1)2、用例图怎么使用? (1)3、UML用例图的目的 (2)4、如何画用例图? (3)1、UML用例图概述用例图捕捉了模拟系统中的动态行为,并且描述了用户、需求以及系统功能单元之间的关系。
用例图展示了一个外部用户能够观察到的系统功能模型图。
用例图由主角,用例和它们之间的关系组成。
2、用例图怎么使用?要了解一个系统的动态,我们需要使用不同类型的图表。
用例图就是其中之一,其具体目的是收集系统的的需求和参与者。
用例图指定系统的事件和他们的流向。
但从未用例图描述了他们是如何实现的。
可以被想象成一个黑盒子,只有输入,输出和黑盒子的功能被称为用例图。
在这些图中使用的设计在一个非常高的水平。
那么这种高层次的设计高雅,一遍又一遍完善使系统得到一个完整实用的图片。
一个结构良好的用例,还介绍了前置条件,后置条件和例外。
而这些多余的元素在执行测试时被用来制造测试的情况下。
用例都不是正向和反向工程,但他们仍然使用略有不同的方式。
同样是真实的逆向工程。
仍用例图的使用方式不同,使其逆向工程的一个候选。
在正向工程用例图是用来做测试案例和逆向工程中的使用情况下是用来准备从现有的应用程序的需求细节。
所以下面的地方使用用例图:2.1.需求分析和高水平的设计。
2.2.模拟系统的上下文。
2.3.逆向工程。
2.4.Forward engineering.3、UML用例图的目的用例图的目的是捕捉到一个系统的动态方面。
用例图是用来收集系统的要求,包括内部和外部的影响。
这些要求大多是设计要求。
所以,分析一个系统时要收集其功能用例和确定参与者。
简单来说,用例图的目的如下:3.1.用例图用来收集系统的要求。
3.2.用例图用于获取系统的外观图。
3.3.用例图识别外部和内部因素影响系统。
3.4.用例图显示要求之间的相互作用是参与者。
4、如何画用例图?用例图被认为是高层次的需求分析系统。
因此,当系统的要求,分析被捕获在用例的功能。
用例图(User Case)用例图是用来描述什么角色通过某某系统能做什么事情的图,用例图关系的是系统的外在表现,系统与人的交互,系统与其它系统的交互。
下面逐一说明用例图中各种符号的意义:小人:对使用某系统的用户进行分类后,可以总结出使用本系统有哪些角色,不同的角色的工作责任不太一样,他们需要用到的系统的功能也会不太一样。
小人就是角色,它给了我们一个启示,我们思考某系统的需求时,可从不同角色的角度来思考。
例如:我们要做一个考勤系统,你会怎样思考呢?会一下子列出很多功能?比较好的方式,应该是先思考什么人会用这个系统,我们大概可以估计一般员工、高层领导、前台、财务等都会用这个系统,对于一般员工来说除了打卡,他还关注什么?对于前台,她是不是要做一些考勤的统计?而财务是不是要根据考勤情况来调整员工的薪金?这样的思考方式,会让我们更容易全面发掘系统的需求。
还需要特别说明的是:角色可能是人,也可能不是人,而是另外的一个系统,本系统与另外一个系统交互的话,可以将另外一个系统画成某某角色。
圈圈:圈圈里面会有一段动宾结构的文字,也就是“动词+名词”这样的方式,这个圈圈+圈圈里面的文字,就是用例,这些用例表明了系统能做什么事情。
以考勤系统为例:有两个用例叫“打卡”、“查看自己的考勤情况”,这个两个圈圈分别用一条线连到了“一般员工”这个角色,我们可以按这样的顺序来读这个图:先读出角色的名字,然后读出用例中的文字。
按着这样的读法,我们可以得到两句完整的句子:“一般员工打卡”“一般员工查看自己的考勤情况”大家可以用这样的方式来检查自己用例图是否画得合适。
某用例不一定是只属于某个角色的,有不少用例是多个角色“共享”的。
大框框:在所有用例的外面,有一个方框,这个方框只框住了用例,没有框住角色,这个东西就叫做系统边界,框框的上部会注明本系统的名字。
我们所做的系统,是不可能包括角色的,系统要发挥各种作用,要靠各角色“穿越”系统边界来使用本系统的用例。
uml用例描述在软件开发过程中,用例是一种用来描述系统功能和用户需求的工具。
UML(Unified Modeling Language)是一种常用的建模语言,其中用例图是用来描述系统功能和行为的图形表示方法。
本文将使用UML用例图的描述方式,来介绍一个名为“在线购物系统”的软件系统。
1. 引言在线购物系统是一个电子商务平台,为用户提供了在线购买商品的功能。
本系统的主要参与者包括注册用户、游客和管理员。
注册用户可以浏览商品、添加商品到购物车、下单购买商品等;游客可以浏览商品,但无法添加商品到购物车或下单购买;管理员负责管理商品信息和用户信息。
2. 用例图下面是“在线购物系统”的用例图:- 注册用户用例:注册用户可以执行的操作包括浏览商品、搜索商品、添加商品到购物车、下单购买商品、查看订单状态和评价商品。
- 游客用例:游客可以执行的操作包括浏览商品、搜索商品和查看商品详情。
- 管理员用例:管理员可以执行的操作包括添加商品、编辑商品信息、删除商品、管理用户信息和查看订单信息。
3. 详细描述3.1 注册用户用例- 浏览商品:注册用户可以浏览系统中的商品列表,查看商品的基本信息和价格。
- 搜索商品:注册用户可以根据关键词搜索系统中的商品,系统会返回符合条件的商品列表。
- 添加商品到购物车:注册用户可以将感兴趣的商品添加到购物车中,以便稍后进行结算。
- 下单购买商品:注册用户可以选择购物车中的商品,生成订单并进行支付。
- 查看订单状态:注册用户可以查看自己的订单状态,包括待支付、待发货、已发货等。
- 评价商品:注册用户可以给已购买的商品进行评价,以供其他用户参考。
3.2 游客用例- 浏览商品:游客可以浏览系统中的商品列表,查看商品的基本信息和价格。
- 搜索商品:游客可以根据关键词搜索系统中的商品,系统会返回符合条件的商品列表。
- 查看商品详情:游客可以查看具体商品的详细信息,包括商品介绍、规格、用户评价等。
UML建模——⽤例图(UseCaseDiagram)⽤例图主要⽤来描述⾓⾊以及⾓⾊与⽤例之间的连接关系。
说明的是谁要使⽤系统,以及他们使⽤该系统可以做些什么。
⼀个⽤例图包含了多个模型元素,如系统、参与者和⽤例,并且显⽰这些元素之间的各种关系,如泛化、关联和依赖。
它展⽰了⼀个外部⽤户能够观察到的系统功能模型图。
【⽤途】:帮助开发团队以⼀种可视化的⽅式理解系统的功能需求。
⼀、⽤例图所包含的的元素1. 参与者(Actor)——与应⽤程序或系统进⾏交互的⽤户、组织或外部系统。
⽤⼀个⼩⼈表⽰。
2. ⽤例(Use Case)——⽤例就是外部可见的系统功能,对系统提供的服务进⾏描述。
⽤椭圆表⽰。
3. ⼦系统(Subsystem)——⽤来展⽰系统的⼀部分功能,这部分功能联系紧密。
⼆、⽤例图所包含的的关系 ⽤例图中涉及的关系有:关联、泛化、包含、扩展。
如下表所⽰: a. 关联(Association) 表⽰参与者与⽤例之间的通信,任何⼀⽅都可发送或接受消息。
【箭头指向】:⽆箭头,将参与者与⽤例相连接,指向消息接收⽅ b. 泛化(Inheritance) 就是通常理解的继承关系,⼦⽤例和⽗⽤例相似,但表现出更特别的⾏为;⼦⽤例将继承⽗⽤例的所有结构、⾏为和关系。
⼦⽤例可以使⽤⽗⽤例的⼀段⾏为,也可以重载它。
⽗⽤例通常是抽象的。
在实际应⽤中很少使⽤泛化关系,⼦⽤例中的特殊⾏为都可以作为⽗⽤例中的备选流存在。
【箭头指向】:指向⽗⽤例 c. 包含(Include) 包含关系⽤来把⼀个较复杂⽤例所表⽰的功能分解成较⼩的步骤。
包含关系对典型的应⽤就是复⽤,也就是定义中说的情景。
但是有时当某⽤例的事件流过于复杂时,为了简化⽤例的描述,我们也可以把某⼀段事件流抽象成为⼀个被包含的⽤例;相反,⽤例划分太细时,也可以抽象出⼀个基⽤例,来包含这些细颗粒的⽤例。
这种情况类似于在过程设计语⾔中,将程序的某⼀段算法封装成⼀个⼦过程,然后再从主程序中调⽤这⼀⼦过程。
图描述之:⽤例图总结
⼀、什么是⽤例图
第⼀次见到⽤例图印象最深的就是那个⽤户⼩⼈,因为在之前,从来没有见过哪个图描述中会出现这样的图元。
能够得到的⽐较官⽅的描述是:由参与者,⽤例,以及他们之间的关系构成的⽤于描述系统功能的视图。
⽽那个⼩⼈正是作为参与者的⾝份出现在⽤例图当中。
⼆、能描述什么
从构成⽤例图的图元种类来看,这⾥有四种图元,分别是:参与者,⽤例,系统边界,箭头
参与者:不仅局限于⼈,也可以是实物,只要是存在于系统之外但⼜使⽤到了系统的功能的事物均可。
⽤例:⽤例⼆字我觉得在这⾥描述的并不是⼀个实际的物体,⽽是⼀些实际的动作的集合,来作为各个⽤例
系统边界:⽤来划分系统的内部和外部,但是多被省略,画图中也很少体现出来
箭头:⽤来表现⼀系列调⽤关系
三、我画过的⽤例图
在这张图中,⽤例之间的关系包括了《include》,《extend》即包含和扩展。
由于系统⽐较简单,所以在⽤例图中没有泛化的关系。
Use Case View Summary
这段文字是翻译自Mark Priestley《Practical Object-Oriented Design with UML》的,算是对用例图作个总结,增加我自己的理解和记忆,也希望对大家有所帮助。
●用例视图(use case view)包括actors 和用例(use cases)。
Actors描
述了用户在和系统交互的过程中可以扮演的角色。
用例描述了系统提供
给actors的功能。
●用例定义了用户和系统之间的某种特定类型事务。
某个特定类型的交互,
或者说用例的实例可以在场景(scenarios)中描述。
UML并没有给出用例
和场景的正式定义。
●场景可以被定义为陈述了用例所描述的基本的事件发生过程,并且陈述了
可能发生的异常情况。
●用例图(use case diagram)画出了参与在系统中的actors和用况。
一个
actor和一个用况之间存在关联说明这个actor参与这个用况其中。
●用例和用例之间, actor和actor之间可以存在一般化关系(类似于类
class之间的超类、继承),就是说某个用例或actor是另外一个的特殊
情况。
●用例之间还存在这“包含(include)”关系,就是说一个用例可以包含另
外一个。
类似于函数调用,这为用例的重用提供了一种机制。
●用例之间的另外一种关系“扩展(extend)”运行一个用例提供可选的功能。
通过定义扩展点和何时执行何种功能来定义这种关系。
这些信息在用例
图中是可选的。
●一个用例或者场景的实现描述了足够实现这个用例(或场景)功能的,可
交互对象的结构。
●序列图(sequence diagram)和协作图(collaboration diagram)画出参
与在一个交互中的对象和他们之间互相发送的消息,可以描述一个用例
的实现。
译文就到此为止了,我想大概的就我的理解说明一下,以防止大家看的摸不着北。
Use case view是由需求到最终实现的第一步,目标系统需要有那些潜在或者明显的功能,有那些目标用户,这些东西画出来后use case这一步还远没有完成,接下来应该对要实现的功能进一步分析,那些用例其实是一种,用例之间有那些关系,如上面列出的一般化关系,扩展关系等等。
当然这对actor也适用。
单单用例图有时候太简单,不足以描述某个用例的详细情况,这是场景就必不可少了,用文字来描述这个用例的情况,正常流程,以及可能发生的异常情况,非常有用。
当然也可以做进一步的分析,开始画每一个用例的序列图和协作图。
本文来自:/doc/15354.htm。