`

解析UML用例图中include与extend的区别

    博客分类:
  • java
 
阅读更多

本文和大家重点讨论一下UML用例图中include与extend的区别,include是指用例中的包含关系,通常发生在多个用例中,有可以提取出来的公共部分,而extend则恰好相反。下面请看本文详细介绍。

UML用例图中include与extend的区别

最近上论坛,看到在争论UseCase中include与extend的区别。其实这两者是很容易区分的。

include是指用例中的包含关系,通常发生在多个用例中,有可以提取出来的公共部分(就象提取公因式一样),例如UseCaseA中包括了a和b两个流程,而UseCaseC中包含了c和b两个流程。为了提高复用性,可以把b提取出来,形成另一个用例UseCaseB,此时,UseCaseAincludeUseCaseB(表现为一条指向UseCaseB的虚线,箭头在UseCaseB侧),UseCaseC也includeUseCaseB。因而,当有include关系时,被include的用例通常会被两个以上的其他用例include(否则就不需要重用,也就不需要提取出来了),UML用例图如下:


在include关系中,“UseCaseA和UseCaseC知道UseCaseB的存在,而UseCaseB根本不知道有UseCaseA和UseCaseC);

extend则恰好相反。假设UseCaseA的功能描述为“发送一条通知”,可是,发送通知的方式可能有许多种,例如通过邮件发送、通过短信发送等。在需求分析阶段,可能无法明确到底有多少种方式,在用例分析阶段,UseCaseA需要留出扩展接口,然后把已知的发送方式作为扩展用例给出,例如UseCaseB是“通过短信发送”,而UseCaseC是“通过邮件发送”,此时,UseCaseB和UseCaseCextend了UseCaseA,表现为两根虚线,箭头指向UseCaseA,UML用例图如下:


在extend关系中,UseCaseA不知道UseCaseB和UseCaseC的存在,但UseCaseB和UseCaseC却是知道UseCaseA并且知道如何在UseCaseA中作扩展的。

另:在UML用例图中,有时会看到两个用例之间有依赖关系(表现为一条单向或双向的实线),这是错误的,说明用例没有提纯。
 


也许有人会问“如果两个用例之间,一个要调用另一个时,怎么办?”(有可能是混淆了用例和模块的关系),那么,首先要区分概念,用例就是用例,用例不是模块,也不是组件(虽然一个用例能发展成为“一个或多个”模块或组件);其次,从用例分析的角度来看,如果用例A确实要调用到用例B,那么,可以进一步分析:A是调用了B的所有流程呢,还是其中一部分流程?

(1)如果是调用了一部分,此时可以把B中的那部分流程提取出来,形成用例C,然后A和B都includeC;

(2)如果是调用了所有流程,那么,A直接includeB即可;

(3)如果A没有调用B中的任何流程……faint,那还画那条代表依赖的实线干嘛?
 

 

分享到:
评论

相关推荐

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

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

    解释UML用例图中包含,扩展、泛化的区别.doc

    在 UML 用例图中,包含、扩展和泛化是三种基本关系,它们之间的区别和联系对正确理解 UML 用例图至关重要。 包含关系(Include) 包含关系是一种基本关系,它允许将一个用例拆分为多个小的用例,以便重用和简化...

    【UML】用例图+活动图+include与extend的区别

    在这个主题中,我们将深入探讨三个核心概念:用例图、活动图以及在UML中的`include`和`extend`关系。** **1. 用例图(Use Case Diagram)** 用例图是UML中最基础的图之一,用于描绘系统与用户或外部实体之间的交互...

    uml用例图实例讲解

    《UML用例图实例讲解》 UML(统一建模语言)是软件开发中用于系统建模的重要工具,其中用例图是描述系统功能需求的关键图表。本章将深入探讨用例图的概念、建模技术和一个实际的图书馆管理系统用例图的案例。 5.1 ...

    UML用例图实例讲解

    在"uml用例图实例讲解.ppt"这个文件中,可能包含了各种用例图的例子,如银行系统的用例图,其中可能有"存款"、"取款"、"转账"等用例,以及"客户"、"ATM机"等参与者。通过这些例子,初学者可以更好地理解用例图的...

    UML 用例图的PPT

    UML(统一建模语言)是软件开发中用于可视化、构造和文档化的标准工具,其中用例图是一种重要的图表类型,它描绘了系统与外部用户,即活动者之间的交互。用例图提供了一个高层次的视角,展示了系统的核心功能及其与...

    uml用例图实例讲解ppt

    《UML用例图实例讲解》 UML(统一建模语言)是软件开发中用于可视化、构建和文档化系统模型的重要工具。其中,用例图(Use Case Diagram)是UML的一种静态视图,主要用于描绘系统的主要角色、用例以及它们之间的...

    UML用例图 相关内容

    ### UML用例图详解及应用场景 #### 一、引言 UML(Unified Modeling Language,统一建模语言)是一种广泛应用于软件工程领域的图形化语言,用于描述软件系统的架构、行为和实现细节。其中,**用例图**是UML中最直观...

    UML用例图的包含,扩展,泛化的详细阐述.doc

    在 UML 用例图中,包含、扩展和泛化是三种基本关系,它们之间的区别和应用场景是开发者需要掌握的重要知识。本文将对 UML 用例图的包含、扩展和泛化进行详细阐述,并探讨它们之间的区别和应用场景。 包含关系...

    如何画用例图?用例图解析

    用例图是统一建模语言(UML)中的一种图表,用于描绘系统中的参与者(Actor)与用例(Use Case)之间的关系,表达系统功能需求和参与者之间的交互。它并不是简单的功能或菜单项的列表,而是以故事的形式描述参与者...

    初学UML-用例图入门教程

    学习UML用例图,不仅能够帮助我们梳理需求,还能促进团队间的沟通,使得非技术人员也能理解复杂的系统设计。通过创建和分析用例图,我们可以发现潜在的问题,优化系统设计,确保最终产品的功能符合用户需求。 在...

    UML 用例图详解.docx

    用例图(Use Case Diagram)是统一建模语言(UML)中的一种图表,用于展现一个系统与它的主要交互者(参与者)之间的动态关系,以及系统提供的功能(用例)。用例图是描述系统功能需求和使用场景的有效工具,有助于...

    UML用例图解说,初学者了解用例

    ### UML用例图详解与初学者指南 #### 一、引言 统一建模语言(Unified Modeling Language,简称UML)是一种广泛应用于软件工程领域的标准化建模语言,旨在帮助软件开发人员更好地理解和构建复杂的软件系统。其中,...

    UML课程设计用例图.pdf

    在UML中,用例图(Use Case Diagram)是描述系统功能需求的一种图形表示,它展示了系统参与者(Actor)与系统提供的服务(Use Case)之间的关系。本文将深入探讨UML课程设计中的用例图及其关键元素。 1. **系统参与...

    机票预定系统用例图

    用例图是一种重要的需求分析工具,主要用于描述系统的外部可见行为以及不同角色与系统交互的方式。它能够清晰地展示系统的功能需求,帮助开发者理解用户的需求,并且便于进行后续的设计与实现。 #### 二、Rational ...

    Rational Rose 2003基础教程-用例图及其应用

    用例图(Use Case Diagram)是UML中的一种静态视图,用于描述系统或组件的外部行为,即系统如何与用户或其他外部系统交互。它通过图形化的方式展示了参与者(Actor)与用例(Use Case)之间的关系,帮助我们理解系统...

    UML用例等基本图形和学习书籍

    通过以上资源的学习,无论是初学者还是有经验的开发者,都能对UML用例图有深入的理解和掌握,从而更好地应用于实际项目中,提高系统设计的清晰度和可读性。在学习过程中,结合实践案例分析和绘制自己的用例图,能够...

Global site tag (gtag.js) - Google Analytics