首页 > 其他分享 >用例图

用例图

时间:2024-12-23 23:41:18浏览次数:8  
标签:关系 泛化 登录 系统 用例 参与者

对于用例图来说我们需要了解的是什么叫用例图,构成用例图的要素,用例图有哪些重要的元素,各个用例之间的关系。当然最重要的是如何根据需求创建用例图。具体的创建通过一个简单的学生管理的例子说明创建的过程和例子。
  我的所有例子都是是使用Rose这个软件来画的,现在虽然有新的UML模型画图软件,但是我比较喜欢用这个Rose,如果你还没有装这个软件需要先装一个,或者使用你比较喜欢的UML画图软件。下面我们直接进入正题吧,学习一下用例图的相关概念和具体的创建过程。

什么叫用例图
1. 用例图的含义
  由参与者(Actor)、用例(Use Case)以及它们之间的关系构成的用于描述系统功能的动态视图称为用例图。要在用例图上显示某个用例,可绘制一个椭圆,然后将用例的名称放在椭圆的中心或椭圆下面的中间位置。
  要在用例图上绘制一个参与者(表示一个系统用户),可绘制一个人形符号。参与者和用例之间的关系使用带箭头或者不带箭头的线段来描述,箭头表示在这一关系中哪一方是对话的主动发起者,箭头所指方是对话的被动接受者。

 

  在用例建模中,为了更加清楚的描述用例或者参与者,会使用到注释。

 

2. 用例图的作用

  用例图是需求分析中的产物,主要作用是描述参与者和用例之间的关系,帮助开发人员可视化的了解系统的功能。借助于用例图,系统用户、系统分析人员、系统设计人员、领域专家能够以可视化的方式对问题进行探讨,减少了大量交流上的障碍,便于对问题达成共识。
  用例图可视化地表达了系统的需求,具有直观、规范等优点,克服了纯文字性说明的不足。
  用例方法是完全从外部来定义系统功能,它把需求和设计完全的分离开来。我们不用关心系统内部是如何完成各种功能的,系统对于我们来说就是一个黑箱子。

用例图的构成要素
1. 参与者

  参与者(Actor)是指存在于系统外部并直接与系统进行交互的人、系统、子系统或类的外部实体的抽象。
每个参与者可以参与一个或多个用例,每个用例也可以有一个或多个参与者。
  在用例图中使用一个人形图标来表示参与者,参与者的名字写在人形图标下面。

 


2. 参与者间的的关系

  由于参与者实质上也是类,所以它拥有与类相同的关系描述,即参与者与参与者之间主要是泛化关系(或称为“继承”关系)。
泛化关系的含义是把某些参与者的共同行为提取出来表示成通用行为,并描述成超类。泛化关系表示的是参与者之间的一般/特殊关系,在UML图中,使用带空心三角箭头的实线表示泛化关系。

 


3. 系统边界

  在项目开发过程中,边界是一个非常重要的概念。这里说的系统边界是指系统与系统之间的界限。通常我们所说的系统可以认为是由一系列的相互作用的元素形成的具有特定功能的有机整体。
  系统同时又是相对的,一个系统本身又可以是另一个更大系统的组成部分,因此,系统与系统之间需要使用系统边界进行区分开来。我们把系统边界以外的同系统相关联的其他部分,称之为系统环境。

 


用例的重要元素
1. 如何识别用例

  任何用例都不能在缺少参与者的情况下独立存在。同样,任何参与者也必须要有与之关联的用例。所以识别用例的最好方法就是从分析系统参与者开始,在这个过程中往往会发现新的参与者。
  
可以通过以下问题来寻找用例:
   (1)参与者希望系统提供什么功能?
   (2)参与者是否会读取、创建、修改、删除、存储系统的某种信息?如果是的话,参与者又是如何完成这些操作的?
   (3)参与者是否会将外部的某些事件通知给系统?
   (4)系统中发生的事件是否通知参与者?
   (5)是否存在影响系统的外部事件。
  
2.用例的粒度

  用例的粒度指的是用例所包含的系统服务或功能单元的多少。用例的粒度越大,用例包含的功能越多,反之则包含的功能越少。
  如果用例的粒度很小,得到的用例数就会太多。反之,如果用例的粒度很大,那么得到的用例数就会很少。
  如果用例数目过多会造成用例模型过大和引入设计困难大大提高。 如果用例数目过少会造成用例的粒度太大,不便于进一步的充分分析。

  比如:网站后台管理系统中的会员信息维护用例,管理员需要进行添加会员信息、修改会员信息、删除会员信息等操作。

 

  我们还可以根据具体的操作把它抽象成3个用例,它展示的系统需求和单个用例是完全一样的。

 


3.用例规约

  对于每一个用例,我们还需要有详细的描述信息,以便让别人对于整个系统有一个更加详细的了解,这些信息包含在用例规约之中。
  
每一个用例的用例规约都应该包含以下内容:
   (1)简要说明:对用例作用和目的的简要描述。
  (2)事件流:事件流包括基本流和备选流。基本流描述的是用例的基本流程,是指用例“正常”运行时的场景。
   (3)用例场景:同一个用例在实际执行的时候会有很多不同的情况发生,称之为用例场景,也可以说用例场景就是用例的实例。
   (4)特殊需求: 特殊需求指的是一个用例的非功能性需求和设计约束。特殊需求通常是非功能性需求,包括可靠性、性能、可用性和可扩展性等。例如法律或法规方面的需求、应用程序标准和所构建系统的质量属性等。
   (5)前置条件: 执行用例之前系统必须所处的状态。例如,前置条件是要求用户有访问的权限或是要求某个用例必须已经执行完。
   (6)后置条件:用例执行完毕后系统可能处于的一组状态。例如,要求在某个用例执行完后,必须执行另一个用例。

用例之间的关系
1. 包含

  包含关系指用例可以简单地包含其他用例具有的行为,并把它所包含的用例行为作为自身行为的一部分。在UML中,包含关系是通过带箭头的虚线段加<>字样来表示,箭头由基础用例(Base)指向被包含用例(Inclusion)。

 

  在处理包含关系时,具体的做法就是把几个用例的公共部分单独的抽象出来成为一个新的用例。主要有两种情况需要用到包含关系:
  第一,多个用例用到同一段的行为,则可以把这段共同的行为单独抽 象成为一个用例,然后让其他用例来包含这一用例。
  第二,某一个用例的功能过多、事件流过于复杂时,我们也可以把某一段事件流抽象成为一个被包含的用例,以达到简化描述的目的。

 


  
2. 扩展

  在一定条件下,把新的行为加入到已有的用例中,获得的新用例叫做扩展用例(Extension),原有的用例叫做基础用例(Base),从扩展用例到基础用例的关系就是扩展关系。
  一个基础用例可以拥有一个或者多个扩展用例,这些扩展用例可以一起使用。

 


3.泛化

  用例的泛化指的是一个父用例可以被特化形成多个子用例,而父用例和子用例之间的关系就是泛化关系。
  在用例的泛化关系中,子用例继承了父用例所有的结构、行为和关系,子用例是父用例的一种特殊形式。
  子用例还可以添加、覆盖、改变继承的行为。在UML中,用例的泛化关系通过一个三角箭头从子用例指向父用例来表示。

 

  泛化的示例:银行存款有两种方式,一种是银行柜台存款,一种是ATM机存款。在这里,银行柜台存款和ATM机存款都是存款的一种特殊方式,因此“存款”为父用例,“银行柜台存款”和“ATM机存款”为子用例。

 


使用Rose创建用例的步骤说明
1. 需求分析

“学生信息管理系统”部分功能性需求包括以下内容:
   (1)系统管理员登录后可以对班级的基本信息进行增加、删除、修改、查询等操作。学校领导登录后可以对班级基本信息进行查询操作。
   (2)教师登录后可以对学生的考试成绩进行录入、删除、修改、查询等操作。学生登录后可以对考试成绩进行查询操作。
   (3)学生登录后可以了解所有选修课程的具体信息,可以根据自己的需要选择不同课程。系统管理员登录后可以增加、修改、查询、删除选修课程。
   (4)系统管理员可以对账号进行创建、设置、查看、删除等操作。
  
2.识别参与者
  对于一个学校来说,最重要的就是教育学生成才,所以我们首先要考虑到的参与者就是学生。
  要给学生上课,必然就需要教师。教师负责教育学生、并且在日常管理中可以查询学生的基本信息、查询学生的考试成绩。
  作为一个学校,除了教师和学生,还有不可或缺的就是校领导。为了便于校领导掌握学校的基本情况,加强对学校的管理导.
  不管什么系统,基本都会有比较专业的人员来负责管理系统,本系统也不例外。系统管理员除了负责维护系统的日常运行,还要进行录入学生基本信息、维护选课信息等工作。
  
3.构建用例模型

  系统管理员直接参与的用例为登录、找回密码、查看班级基本信息、删除班级基本信息、修改班级基本信息和录入班级基本信息。校领导直接参与用例登录、找回密码和查看班级基本信息。当登录过程中发生忘记密码的情况,就需要使用找回密码的功能来找回密码,而在正常情况下用不到找回密码这个功能所以用例找回密码”和用例登录之间是扩展关系。

 

  教师参与用例录入成绩、修改成绩、保存成绩、查询成绩、删除成绩和登录。学生参与用例登录和查询成绩。因为修改成绩和录入成绩的时候都要保存成绩,所以将保存成绩抽象出来作为单独的一个用例。用例录入成绩、修改成绩和用例保存成绩之间是包含关系,用例找回密码和用例登录之间是扩展关系。

 

  学生作为参与者直接参与用例查看课程信息、按课程编号查看、按课程名查看、选择课程、删除已选课程、登录和找回密码。系统管理员参与用例登录、找回密码和“维护课程信息”。其中查看课程信息有两种方式,一种是按照课程名查看,另一种是按照课程编号查看。所以查看课程信息是父用例,而按照课程名查看和按照课程编号查看是子用例,他们之间的关系是泛化关系。用例找回密码和用例登录之间是扩展关系。

 

  系统管理员参与用例创建新账号、设置账号、设置账号基本信息、设置账号权限、查看账号和删除账号。在设置帐号时,主要分为设置账号的基本信息和设置账号的权限,为了便于修改和维护,将这两个功能分别抽象为两个用例。所以用例设置账号基本信息、设置账号权限和用例设置账号之间是包含关系

 非原创!!!转载自:用例图详解与创建 (csdn.net)

标签:关系,泛化,登录,系统,用例,参与者
From: https://www.cnblogs.com/po3a/p/18625303

相关文章

  • 全民点评 测试用例Xmind
    项目简介:该项目是一款基于用户点评和校园商户信息为主的生活服务平台。项目利用Redis的特性解决不同业务场景中的问题,核心工作包括设计实现缓存更新策略,解决缓存相关问题、订单超卖的线程安全问题。技术架构:SpringBoot+Mybatis-Plus+MySQL+Redis功能测试:接口测试:......
  • 精确管理,完美测试:14款测试用例管理工具详解,优化测试流程
    在当今数字化时代,软件测试的高效性和准确性对于项目的成功交付起着至关重要的作用。而测试用例管理工具则是提升测试流程效率的得力助手。本文将为您详细介绍14款测试用例管理工具,帮助您优化测试流程,提升项目质量。一、引言在软件项目的开发进程中,测试环节犹如一座灯塔,指引着......
  • 洞察质量保障:14款测试用例管理工具深度评测,助力软件质量提升
    在当今数字化时代,软件的质量关乎着企业的成败。而测试用例管理工具作为保障软件质量的重要利器,其选择的正确与否直接影响到测试工作的效率与效果。在众多的测试用例管理工具中,究竟哪一款才最适合您的项目呢?本文将深入评测14款测试用例管理工具,为您在提升软件质量的道路上点亮一......
  • ChatGPT接口测试用例生成的流程
     通常,使用ChatGPT生成接口测试用例的流程可以分为以下关键步骤。收集接口信息收集接口的相关文档和信息,如接口名称、请求方法、请求参数、返回结果等。这些是ChatGPT生成测试用例需要的输入信息。这一步骤的重要性不可忽视,因为它为ChatGPT提供了上下文,使其能够......
  • ChatGPT生成接口测试用例(二)
    5.1.4自动生成测试数据       测试数据的生成通常是接口测试的一个烦琐任务。ChatGPT可以帮助测试团队生成测试数据,包括各种输入和它们的组合。测试人员可以描述他们需要的数据类型和范围,ChatGPT可以生成符合要求的测试数据,从而减轻测试人员的负担。对于一个在线预......
  • ChatGPT生成接口测试用例(一)
     接口测试在软件开发生命周期中扮演着至关重要的角色,有助于验证不同模块之间的交互是否正确。若协议消息被恶意修改,系统是否能够恰当处理,以确保系统的功能正常运行,不会出现宕机或者安全问题。5.1ChatGPT在接口测试中的角色接口测试是确保系统各个模块协同工作的关键......
  • 关于如何正确在测试用例中mock静态方法的问题
    文章目录情况一:希望在测试用例中直接执行静态方法的逻辑情况二:不希望在测试用例中执行静态方法的逻辑插桩方法坑1:报错SubclassByteBuddyMockMaker原因与解决方案坑2:报错theexistingstaticmockregistrationmustbederegistered原因与解决方案关于如何正确在......
  • 单元测试中设计测试用例的依据
    一、需求规格说明书功能需求描述需求规格说明书详细地阐述了软件系统应该具备的功能。例如,对于一个计算器软件的加法功能,说明书会明确指出用户输入两个数字后,系统能够正确计算它们的和并输出结果。测试人员就可以根据这个描述设计测试用例,如输入整数相加(如2+3)、小数相加(如2.......
  • ChatGPT生成测试用例的最佳实践(三)
        还记得在第1章,我们利用ChatGPT生成的业务用例吗?这种业务用例生成方式其实和场景法用例设计十分相似,我们是不是也可以直接将业务用例输入ChatGPT,让它输出测试用例呢?笔者输入相关提示词让其补充以需求规格说明书中的业务用例为依据的测试用例,ChatGPT输出如图3-5所示。......
  • 测试工程师要遵守的用例编写规范
    前言在软件开发的快速迭代和不断更新的背景下,测试用例规范的重要性愈发凸显。它不仅帮助测试人员明确测试的目标和方法,还确保测试过程的一致性和可重复性。通过遵循统一的规范,我们可以减少人为错误,提高测试覆盖率,从而确保软件的质量。01什么是测试用例测试用例是测试过程中......