`
michaeltangbin
  • 浏览: 271792 次
  • 性别: Icon_minigender_1
  • 来自: 黑龙江省
社区版块
存档分类
最新评论

用例之间的关系

    博客分类:
  • uml
 
阅读更多
用例间的三种关系:
(1)扩展(extends):用例B extends 用例A,表示用例B是用例A在某种特定情况下可能会出现的扩展用例。例如:老王进城办事,2小时就可以回去,在这2小时内内急时就会去上厕所。上厕所用例是进城用例的扩展,因为不上厕所老王进城办事也可完成。
(2)包含(includes):用例A includes 用例B,表示没有了用例B,用例A本身也就不完整了。例如:还是老王进城,他从海南来北京办事,3天才能回去,那么这种情况下进城用例与上厕所用例的关系就应该是包含关系了。
(3)泛化:泛化关系指的是同一业务目的的不同技术实现。例如:老王进城,他可以坐飞机,可以坐火车,还可以走路,那么进城用例就泛化为坐飞机、坐火车和走路三个用例了,它们之间存在层级关系。
总的来看,扩展可以“冻结”基本用例以保持稳定(因为扩展用例通常是不确定的);包含可以提供公共交互,提高“复用”;泛化是同一业务目的的不同技术实现。用例之间除了上述三种关系不再有其他关系,用例之间不能通讯。

======================================================

下面是另外一种解释,用例子来描述。

4.2 用例之间的关系

用例描述的是系统外部可见的行为,是系统为某一个或几个参与者提供的一段完整的服务。从原则上来讲,用例之间都是并列的,它们之间并不存在着包含从 属关系。但是从保证用例模型的可维护性和一致性角度来看,我们可以在用例之间抽象出包含(include)、扩展(extend)和泛化 (generalization)这几种关系。这几种关系都是从现有的用例中抽取出公共的那部分信息,然后通后过不同的方法来重用这部公共信息,以减少模 型维护的工作量。

4.2.1 包含(include)

包含关系是通过在关联关系上应用<<include>>构造型来表示的,如下图所示。它所表示的语义是指基础用例(Base)会用到被包含用例(Inclusion),具体地讲,就是将被包含用例的事件流插入到基础用例的事件流中。




包含关系是UML1.3中的表述,在UML1.1中,同等语义的关系被表述为使用(uses),如下图。




在ATM机中,如果查询、取现、转帐这三个用例都需要打印一个回执给客户,我们就可以把打印回执这一部分内容提取出来,抽象成为一个单独的用例"打 印回执",而原有的查询、取现、转帐三个例都会包含这个用例。每当以后要对打印回执部分的需求进行修改时,就只需要改动一个用例,而不用在每一个用例都作 相应修改,这样就提高了用例模型的可维护性。




在基础用例的事件流中,我们只需要引用被包含用例即可。

查询-基本事件流

1. 用户插入信用卡

2. 输入密码

3. 选择查询

4. 查看帐号余额

5. 包含用例"打印回执"

6. 退出系统,取回信用卡

在这个例子中,多个用例需要用到同一段行为,我们可以把这段共同的行为单独抽象成为一个用例,然后让其他的用例来包含这一用例。从而避免在多个用例 中重复性地描述同一段行为,也可以防止该段行为在多个用例中的描述出现不一致性。当需要修改这段公共的需求时,我们也只需要修改一个用例,避免同时修改多 个用例而产生的不一致性和重复性工作。

有时当某一个用例的事件流过于复杂时,为了简化用例的描述,我们也可以把某一段事件流抽象成为一个被包含的用例。这种情况类似于在过程设计语言中,将程序的某一段算法封装成一个子过程,然后再从主程序中调用这一子过程。

4.2.2 扩展(extend)

扩展(extend)关系如下图所示,基础用例(Base)中定义有一至多个已命名的扩展点,扩展关系是指将扩展用例(Extension)的事件 流在一定的条件下按照相应的扩展点插入到基础用例(Base)中。对于包含关系而言,子用例中的事件流是一定插入到基础用例中去的,并且插入点只有一个。 而扩展关系可以根据一定的条件来决定是否将扩展用例的事件流插入基础用例事件流,并且插入点可以有多个。




例如对于电话业务,可以在基本通话(Call)业务上扩展出一些增值业务如:呼叫等待(Call Waiting)和呼叫转移(Call Transfer)。我们可以用扩展关系将这些业务的用例模型描述如下。







在这个例子中,呼叫等待和呼叫转移都是对基本通话用例的扩展,但是这两个用例只有在一定的条件下(如应答方正忙或应答方无应答)才会将被扩展用例的事件流嵌入基本通话用例的扩展点,并重用基本通话用例中的事件流。

值得注意的是扩展用例的事件流往往可以也可抽象为基础用例的备选流,如上例中的呼叫等待和呼叫转移都可以作为基本通话用例的备选流而存在。但是基本 通话用例已经是一个很复杂的用例了,选用扩展关系将增值业务抽象成为单独的用例可以避免基础用例过于复杂,并且把一些可选的操作独立封装在另外的用例中。

4.2.3 泛化(generalization)

当多个用例共同拥有一种类似的结构和行为的时候,我们可以将它们的共性抽象成为父用例,其他的用例作为泛化关系中的子用例。在用例的泛化关系中,子 用例是父用例的一种特殊形式,子用例继承了父用例所有的结构、行为和关系。在实际应用中很少使用泛化关系,子用例中的特殊行为都可以作为父用例中的备选流 存在。




以下是一个用例泛化关系的例子,执行交易是一种交易抽象,执行房产交易和执行证券交易都是一种特殊的交易形式。

用例泛化关系中的事件流示例如下:



 

分享到:
评论

相关推荐

    用例之间的关系.pdf

    "用例之间的关系.pdf" 用例之间的关系是软件开发中一个重要的概念,在需求分析和设计阶段,正确地建立用例之间的关系对于软件系统的正确性和可维护性至关重要。本文将详细介绍用例之间的四种关系:泛化关系、包含...

    UML语言中用例关系描述(详细,有例子介绍)

    用例图是展示参与者和用例之间关系的重要图形。它包括参与者、用例、系统边界以及各种连接线,用于描述系统的功能需求及与外部参与者的交互方式。例如,在棋牌馆管理系统用例模型中,系统边界清晰地划分了系统内部与...

    UML用例图之泛化(generalization)、扩展(extend)和包含(include)关系

    在画用例图的时候,理清用例之间的关系是重点。用例的关系有泛化(generalization)、扩展(extend)和包含(include)。其中include和extend最易混淆。下面我们结合实例彻底理清三者的关系。基本概念用例图...

    UML用例的关系_UML用例图关系_源码

    关系则是连接参与者和用例,以及用例之间的一种纽带,它们帮助我们理解不同元素之间的相互作用。 1. **关联(Association)**:这是最基础的关系类型,表示一个用例如何依赖或使用另一个用例。例如,一个“登录”...

    软考高级系统架构设计师-精要速记.docx

    本文档对高级系统架构设计师的知识点进行了系统的总结,涵盖了计算机体系、软件工程建模方法、面向对象建模、开发模型、测试、体系结构文档化、系统维护、面向对象用例之间关系、类之间关系、设计模式等方面的知识点...

    UML用例样例PPT

    理解用例的概念,了解基于用例驱动的开发过程...掌握参与者与用例及用例与用例之间关系如何确定。 掌握如何阅读用例图。 掌握如何绘制用例图。 掌握如何将用例建模应用于软件系统开发实践。 培养理论与实践相联系的能力

    编写有效用例.pdf

    用例图是用例与执行者之间关系的图形化表示,它帮助项目相关人员和开发人员更好地理解系统的功能和用例之间的关系。 用例编写过程中,对执行者和项目相关人员的分析是必不可少的。项目相关人员即为那些会受到系统...

    系统用例及部署图

    - **关系**:参与者与用例之间、用例与用例之间通过关系线连接,用以表示它们之间的关联。 ##### 1.3 用例图的图形表示 - **系统边界**:通常用矩形框表示,用来界定系统的范围。 - **参与者**:用一个人形图标表示...

    银行用例及用例图PPT学习教案.pptx

    本资源是关于银行用例及用例图的PPT学习教案,共60页,涵盖了用例的概念、表示、特点、参与者、用例之间的关系、用例图等重要知识点。 用例的概念 用例(use case)表示参与者与系统的一次交互过程。用例用于描述...

    软件工程画图题目汇编.pdf

    用例图是一种描述系统中的用例之间关系的图形化表示方法。它可以帮助开发者了解系统中的用例之间的关系,包括用例的顺序、触发关系等。在软件工程中,用例图是描述系统中的用例关系的重要工具。 本资源汇编了软件...

    UML用例建模

    它以面向对象的方式描述系统的设计,提供了多种模型视图,其中包括用例图(Use Case Diagram),这是一种表示系统功能和外部交互者(即用户或其他系统)之间关系的模型。在面向对象建模和软件开发过程中,用例建模是...

    软件用例编写说明文档

    - **用例图(Use Case Diagram)**:用例图展示了参与者与用例之间的关系以及用例之间的关系。它使用图形符号来表示这些元素: - 参与者(Actor):通常是人或者外部系统。 - 用例(Use Case):椭圆形符号代表...

    系统分析与系统设计.pdf

    1. 用例图是UML中表达系统参与者与用例之间关系的关键工具。通过在Rational Rose中绘制参与者和用例,以及它们之间的关联(包括继承或实例关系),可以清晰地描绘出系统的基本功能需求。 2. 时序图则用于展示用例中...

    UML建模 用例说明及应用

    用例之间可能存在多种关系,包括扩展(Extension)、包含(Include)和泛化(Generalization)。这些关系有助于我们更有效地组织和理解用例,同时也使得用例图更加清晰。 - **扩展(Extension)**:表示一个基本...

    《编写有效用例》,《用例》

    作者提出通过“轮辐和轮轴”模型来展示需求如何与用例连接,并通过案例解释了需求和用例之间的关系。 项目相关人员与执行者是用例编写中的关键角色。项目相关人员是指对项目有直接利益关系的人或组织,而执行者则是...

    酒店管理系统集成测试用例

    测试用例是指对酒店管理系统中各个子系统之间的交互关系的测试用例设计,包括测试用例的设计、测试数据的准备、测试结果的评估等。 测试过程描述是指对酒店管理系统中各个子系统之间的测试过程的描述,包括测试用例...

    Java软件开发实战 Java基础与案例开发详解 7-2 对象模型建立 共19页.pdf

    - **定义**:展示系统参与者与用例之间关系的图,用于描述系统功能需求。 - **组成元素**: - 椭圆表示用例。 - 人形图标表示参与者。 - 箭头表示参与者与用例之间的关系。 - **示例**:图7.2展示了博客管理系统...

    UML中的用例建模.pdf

    4. **定义用例间关系**:对用例模型进行进一步的分解,确定用例之间的“使用”关系和“扩展”关系。 5. **完善模型**:重复上述步骤,逐步形成完整的用例模型。 **在建立用例模型时应注意的问题**: - **执行者的...

    SRA2021-G14-团购发起者测试用例文档 1

    顶层用例图可以帮助开发团队快速地了解测试用例之间的关系,从而更好地进行测试。 五、使用优团App用例图 使用优团App用例图是测试用例的一种图形表示,用于展示使用优团App的测试用例。使用优团App用例图可以帮助...

Global site tag (gtag.js) - Google Analytics