首页 > 其他分享 >UML之发现用例

UML之发现用例

时间:2025-01-05 10:11:31浏览次数:1  
标签:发现 ATM 系统 用例 客户 UML 参与者

用例是最简单的UML元素,用例图是最简单的UML图,但它也可能是UML中最有用的元素之一。尽管我们用包将工作分解为工作包、团队任务或单项任务,也就是说包是组织UML中的各种图及元素的工具。但是用例图可以帮助我们确定任务,以及应当如何将它们分组并确定工作范围。
每个用例都代表用户希望系统帮助实现的一个目的或目标。例如,对于银行ATM机,客户希望使用它来取款、存款、转账或者修改密码等,而银行则希望使用它可以获得存取款明细等。
要使系统具有实用性,它就必须为用户带来价值。例如银行ATM机,对于客户而言,可以省去或节约人工柜台排队等候的时间,对于银行而言可以降低人力资源成本。在用例的术语中,对于所有与系统产生交互的对象我们统称为“参与者(Actor)”。参与者涵盖了所有与系统产生交互的用户,例如客户、工作人员、管理人员、维护人员等。任何可以使用系统(主动或者被动)的人都可以被视为参与者。
对于图书馆系统,参与者包括读者、图书管理员、编目人员、出入库人员等;对于打车APP,参与者包含乘客、司机、管理人员、客服等;对于银行ATM,参与者包含客户、款箱管理员、运维人员等。
此外,与当前系统相关联的其他系统、设备、传感器等都可以视为参与者。
回到用例本身,用例必须为参与者提供价值。许多程序员对“用例为参与者提供价值”感到困惑,经常与函数或子程序返回一个值混淆。所谓提供价值意味着实现了某种期望的结果,它是比函数或子程序返回值更高层次的结果。例如对于银行ATM,“取款”是一个用例,它的价值在于实现了客户获得现金的目标,而为了实现这个目标,银行ATM识别卡片、客户输入密码及ATM判断密码是否正确等只是“取款”这个用例实现的步骤,它们都有返回值,但是这些并非客户的目标,它没有为客户带来价值或让客户受益,因此它们不是用例。
用例是行为模型的一部分。一个业务用例通常描述一个完整的业务,一个系统用例通常描述一个完整的系统功能。一个用例描述一个场景,它也可以表示一组具有相似目标的相关场景。通常使用结构化文本(用例规约)、故事板、序列图、状态机或活动图来详细描述这些场景。
在UML中使用椭圆表示用例,用例的名称写在椭圆内部,如下图所示。用例的名称表示参与者的目标。通常,用例名称应当使用“动宾”结构,例如存款、取款、修改密码等,而这个动宾结构的主语就是对应的参与者,即客户存款、客户取款、客户修改密码等。

关于用例命名,有一个简单实用的技巧,即在参与者目标前加上“系统,请帮我……”或类似的变体。例如:

  • 系统,请帮我取款。
  • 系统,请帮我修改密码。
  • ……

遵循上述形式获得的用例名称通常是正确的,并且很容易理解。然而有些特殊的用例不适用这种命名的方法。例如,在系统或参与者具备自主能力的场景下,一个机器人系统会自行进入休眠状态,一个时钟会自动计时,此时没有具有传统目标的传统参与者。
用例图简单易懂,几乎不需要经过专业训练就可以阅读和开发,而用例图又是描述需求的手段,故而通常它由需求分析人员与参与者的代表共同开发,或者由需求分析人员开发后,与参与者讨论修改而成。最终形成的用例图还须交给各参与者代表进行审查。参与者代表审查用例图非常有必要且有价值,因为参与者可以明确知道用例图是否包含了他们自己所有的目标,或者是否存在跟他们不相关的目标。也正是基于此,在为用例命名时应当使用参与者的术语,而避免使用IT术语或者实现时的概念,同时力求简单、明确,确保每个人都能理解。
系统开发人员倾向于围绕用例来组织项目,因为这样可以使项目更易于相关各方理解。通常一个项目应当生成需求或设计文档,可以考虑先按参与者再按用例来组织文档结构(如下图所示),同时也可以通过创建相关用例的包来构建包结构。

本文简单讨论了用例的概念及如何发现用例,关于用例与参与者更深入的概念与知识,请参阅博客下UML合集中的其他相关文章。

标签:发现,ATM,系统,用例,客户,UML,参与者
From: https://www.cnblogs.com/gtyan/p/18653108

相关文章

  • AI 智能体如何赋能生物医学发现
    近年来,人工智能(AI)的迅猛发展为各行各业带来了颠覆性的变革,生物医学领域也不例外。哈佛医学院MarinkaZitnik团队在《Cell》杂志发表的一篇论文中,提出了一种极具前瞻性的构想——“AI科学家”。该构想将AI智能体定义为能够进行批判性学习和推理的系统,通过整合AI模型......
  • 【linux合集】新开终端发现所有命令都无法执行。。。
    场景描述:在登录到机器的时候发现出现大量的commandnotfound的情况,几乎无法执行除了exportcd以外的所有命令,几乎无法执行所有命令的情况很无奈,然后发现可以执行history查看历史命令,随后通过history了解在此之前有操作过环境变量,这时候就在考虑是不是环境变量的情况导致当前的情......
  • 又发现一个分析网站的工具:SEOWAVE
    SEOWAVE使用方法:访问网站seowave.org,输入要分析的网站的域名,比如:CheckNumber.AI,再点击按钮“REVIEW”,如下图所示:接下来会跳转到分析页面:https://www.seowave.org/domain/checknumber.ai/zklw67764ea90e277进度条开始显示网站的分析进度(不过我感觉他这个进度数字是假的,一......
  • pytest处理yml用例嵌套参数关联
    在YAML用例中,可以使用占位符来关联嵌套参数。这种方式可以让你在一个地方定义某个参数,然后在其他地方引用它。这在处理复杂的嵌套结构时尤其有用。以下是如何在YAML文件中实现嵌套参数的关联的示例。1.更新YAML文件这里我们将定义一个用户的详细信息,并在多个地方......
  • 9.14UML与面向对象程序设计原则
     实验1:UML与面向对象程序设计原则本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、掌握面向对象程序设计中类与类之间的关系以及对应的UML类图;2、理解面向对象程序设计原则。    [实验任务一]:UML复习阅读教材第一章复习UML,回答下述问题:面向对......
  • plantuml---可编程实现的画图工具(让图看上去很专业)
     经常看到有的ppt中有非常专业的图,非常整齐、简洁、清晰,于是经过一番查找和交流得知,有一款开源工具plantuml,能够实现此类效果。特记录之。个人感觉这个软件的2大优势是:可代码编程,可版本管理(因为是代码实现的)1、plantuml的官网:https://plantuml.com2、通过在VSCode......
  • 【音乐探索新技能】用Python爬虫豆瓣音乐排行榜,发现你的下一首心头好!
    Hey,亲爱的音乐控们!你是否还在为找不到心仪的好音乐而头疼?是否还在为错过那些小众但超有味道的歌曲而遗憾?别急,今天我要给你们带来一个超级实用的小技巧——用Python爬虫豆瓣音乐排行榜,让你轻松成为音乐界的“先知”!步骤一:环境准备首先,你得有个Python环境。推荐使用Anacond......
  • 2000 多位开发者测评通义灵码后,我们发现了大家「去班味」的原因
    通义灵码的惊喜体验@皆允:我是一位H5前端开发学者,在学习教程的过程中使用通义灵码@workspace,快速省去了敲代码的重复的时间,对比之前没有灵码,现在提效了一倍有余。在设置css样式添加注释后,会自动根据上下文样式推荐一个非常匹配网页内容的样式:通义灵码会自动帮你结合项目里面......
  • 2000 多位开发者测评通义灵码后,我们发现了大家「去班味」的原因
    通义灵码的惊喜体验@皆允:我是一位H5前端开发学者,在学习教程的过程中使用通义灵码@workspace,快速省去了敲代码的重复的时间,对比之前没有灵码,现在提效了一倍有余。在设置css样式添加注释后,会自动根据上下文样式推荐一个非常匹配网页内容的样式:通义灵码会自动帮你结合项目里面......
  • 宠物照料模块项目UML图
    ......