Use Case (使用案例):在一般的UML建模过程中,分为以下几个阶段:业务、需求、分析和设计,其中设计可分为结构分析和行为分析。业务是对商业模型的深刻理解,从商业模型里面提取出业务需求,然后把需求分解成一系列的用例。分析和设计是在用例的基础上,对商业模型的结构和行为进行详细具体的描述。结构分析一般是用类图、,类图又可以按照MVC模型分为数据类、界面类和控制类。行为分析是描述三种类之间的流程操作关系,一般是用时序图或者状态图来表示。
Use Case不是一个功能,而是一个操作,传统的软件模型设计常将需求分析把业务分解成功能模块,这样容易混淆需求和设计的界限,因为过年模块的划分牵涉到系统的概要设计。在RUP中提倡用Use case来代替功能模块的划分。与功能模块不同的是,用例不是站在开发者的角度而是站在用户的角度来分解系统,因为用户并不想了解系统内部结构和设计,他们关心的是系统的服务,即系统如何去操作的,这就是用例的基本思想。
用例模型主要由以下元素组成:
参与者(Actor)
参与者是指存在于被定义系统外部并与该系统发生交互的人或者其他系统,他们代表的是系统的使用者或使用环境
用例(Use Case)
用例用于表示系统所提供的服务,它定义了系统是如何被参与者所使用的,它描述的是参与者为了使用系统所提供的某一完整功能而与系统之间发生的一段对话。
通讯关联(Communication Association)
通讯关联用于表示参与者和用例之间的对应关系,它表示参与者使用了系统中的哪些服务(用例),或者说系统所提供的服务(用例)是被哪些参与者所使用的。
Actor可以是用户,也可以是系统,它的选择取决于用例的边界范围,即用例是由谁来触发的,是用户?还是系统?如果是用户触发的,那么它称为业务用例,如果是系统触发的,它称为系统用例。用例的内容包括机构操作场景,其中最主要的一个场景称为基本流,它代表用例的主要流程。但是一个用例里面的流程可能包括一些意外情况或者失败场景,那么这些场景称为备选流。例如,在电话通讯系统里面,通话过程是基本流,而占线或者挂断就是备选流。
描述用例除了用例图,还有用例规约,或者是用例文档。在RUP中提供的用例规约包括这些内容:
简要说明(Brief Description)
简要介绍该用例的作用和目的
事件流(Flow of Event)
包括基本流和备选流,事件流应该表示出所有的场景
用例场景(Use—Case Scenario)
包括成功场景和失败场景,场景主要是由基本流和备选流组合而成的。
特殊需求(Special Requirememt)
描述与该用例相关的非功能性需求(包括性能、可靠性、可用性、可扩展性等)和设计约束(所使用的操作系统、开发工具)
前置条件(Pre_Condition)
执行用例之前系统必须所处的状态
后置条件(Post-Condition)
用例执行完毕后系统可能处于的一组状态。
基本流的描述一般按照这样的格式:1.每个步骤都有数字编号来表明它的先后顺序;2.每个步骤都有简短的标题来概括它的内容;3.每个步骤要详细描述参与者跟系统之间的交互,一般按照正反两个方面来描述:(1)参与者向系统提交了什么信息;(2)系统作出了什么反应。
备选流除了包括基本流类似的描述外,还包括:
(1) 起点:备选流从事件流的哪一步开始;
(2) 条件:在什么条件下触发;
(3) 动作:备选流下系统采取了哪些操作;
(4) 恢复:备选流结束后,用例如何继续。
有时候为了体现用例之间的业务关系,提高系统的可维护度和一致性,用例之间可以抽象出包含(include)、扩展(extend)和泛化(generalization)这几种关系。
包含:在一些模型中,很多用例都会包括一些相同的行为,而我们就可以把这些相同的行为单独抽象成一个用例,然后用其他的用例来包含这个用例。从而避免在多个用例里面重复设计一个操作,也避免同一个操作在不同的用例里面的描述出现不一致。需要修改的时候,也只需要一个用例,避免修改多个用例出现的不一致和重复工作。
例如,一个ATM系统里面,如果银行客户的查询、提款和转帐操作都需要打印回执,那么我们就可以把打印回执这个操作提取出来称为一个用例,而原有的查询、提款和转帐操作都可以包含这个用例,提高系统的可维护性。
扩展:扩展是将事件流程里面一些相对独立并且可选的动作扩展为新的用例,并且在基用例的扩展点进行扩展。它与包含的区别是,包含的事件是必须存在的动作,而扩展是提供一些备选的动作。扩展也可以抽象为基用例的备选流,扩展出来的用例可以让基用例变得更加简练。
例如,在电话业务里面,在基本通话业务的基础上可以扩展一些增值业务,比如语音信箱、呼叫转移和呼叫等待等。
泛化:泛化也叫继承,如果多个用例之间有同样的 结构、行为的时候,我们可以把它们的共性抽象为父用例,其他用例作为泛化关系中的子用例。
例如,用户执行上传操作,他有可能上传文档,也有可能上传图片,或者上传视频,但是它们都可以抽象成为上传功能。
分享到:
相关推荐
《UseCase2.0:用例驱动开发的深化与扩展》 在软件工程领域,用例(Use Case)自提出以来便成为了系统分析、设计和测试的重要工具,它有效地沟通了系统应该实现的功能,将需求置于特定用户目标的上下文中,并作为...
标题“software testing use case”指代的是一篇关于软件测试中使用用例方法的文章。用例(Use Case)是软件工程中一种描述软件需求的方法,用于详细说明系统如何响应外部的交互来达到特定的业务目标。在软件测试...
在"UseCase Diagram.rar"中,我们可以看到不同用例的表示方式,每个用例通常由一个椭圆形表示,描绘了系统的一个功能或操作。用例图中还包括参与者(Actor),他们通常是系统外的实体,如用户、硬件设备等,由一根...
尽管缺乏具体内容,我可以详细说明几个关键知识点,这些是学习USE CASE时可能会遇到的: 1. 用例图:这是UML中的一种图,用于展示系统的功能和用户(即参与者)如何与这些功能进行交互。用例图通常包括用例(椭圆形...
每种视图都有其特定的图形化表示,例如Use Case视图包含Actors、Use Cases和它们之间的关系;逻辑视图展示类、状态和关系;组件视图关注物理部署的组件和依赖;而拓扑视图则展现了系统的节点和连接。 用户界面可以...
4. **用例图(Use-Case Diagram)**:用图形方式展示了参与者和用例之间的关系,提供了一个高层次的系统功能概览。 5. **类图(Class Diagram)**:这是面向对象设计的一部分,表示了系统中不同类之间的结构关系,...
综上所述,《Writing Effective Use Cases》这本书不仅适合软件开发人员阅读学习,也适用于项目经理、产品经理以及其他需要理解用例概念的人群。通过阅读本书,可以系统地了解用例的重要性、组成要素以及如何高效地...
"UCM.rar_UCM_use case"这个压缩包文件包含了对用例模型的深入探讨,被誉为"very good use case model",显然它提供了丰富的实践指导和理论知识。其中的文档"UCM.doc"很可能是详细阐述这一主题的资料。 UCM,全称...
### 使用案例(Use Case)概览 #### 一、引言 使用案例(Use Case)是一种重要的系统分析与设计工具,它在软件工程领域扮演着关键角色。通过使用案例,可以有效地捕获用户的需求,并清晰地定义系统的边界及功能。本...
通过对《Use Case Driven Object Modeling with UML》的学习,读者不仅可以深入理解UML,还能掌握如何将用例驱动的方法应用到实际项目中,提升软件开发的效率和质量。这本书对于软件开发者、系统分析师以及希望提升...
### 有效撰写Use Case 的关键方法与实践 #### 标题理解:《撰写有效的Use Case》 本书聚焦于如何高效地编写Use Case文档,旨在帮助读者掌握正确的编写技巧,从而更好地捕捉、分析并表述系统需求。 #### 描述解读...
通过将理论知识与实际案例相结合,这本书不仅提供了一个用例驱动设计的实用框架,还提供了一个有效学习的路径,使得读者可以在理论与实践中不断进步。 总的来说,这本书为希望深入了解和掌握用例驱动对象建模技术的...
对于"Target_UseCase",我们可能会学习如何定义和实现这样的用例,包括以下关键知识点: 1. **类与对象**:Java中的核心概念,用例通常是通过类来定义的,类是对象的蓝图,而对象则是类的实例。 2. **接口**:Java...
用例分解(Use Case Decomposition)是一种方法,通过将大用例拆分为更小、更具体的子用例,以提高其可管理性和理解性。 通过深入学习《编写有效用例》这本书,你将掌握如何编写清晰、全面且实用的用例,从而提升...
《2024年手把手带你学UML建模用例图(Use Case Diagram)详解》是一篇面向初学者的全面指南,以易懂的语言介绍了用例图的基础知识。文章从UML的基本概念讲起,逐步引导读者学习用例图的基本元素(如参与者、用例、关系...
用例(Use Case)作为一种有效的需求表达方式,能够清晰地描绘出系统与用户之间的交互行为。在这个过程中,Papyrus工具以其开源、功能丰富的特性,成为众多开发者首选的用例设计工具。本文将深入探讨Papyrus的使用...
《编写有效用例》是IT领域中一本非常重要的著作,由著名软件开发专家Alistair Cockburn撰写。...通过学习和应用书中的方法,我们可以更有效地捕获需求,降低沟通成本,提升软件产品的质量和用户体验。
首先,该书详细阐述了用例驱动开发(Use Case Driven Development,UCDD)的基本原理,强调从用户需求出发的重要性,并以此为基础,捕捉系统的用例。用例作为一种描述用户如何与系统交互的场景,不仅帮助开发者理解...
在进行用例分析时,如何避免陷入常见的陷阱是软件开发中的关键问题。用例作为一种记录系统和软件需求的流行技术,其简洁的图形表示和...通过不断地学习和实践,您可以进一步完善用例方法,使之成为项目成功的关键工具。
在本资源中,我们关注的是一个名为"【RPA之家转载视频教程7】Use Case 0021 - Weekly Monthly Yearly Reports Splitting.rar"的压缩包文件,它包含了一个视频教程,着重讲解如何利用RPA(Robotic Process Automation...