深入理解用例建模
- 格式:doc
- 大小:88.50 KB
- 文档页数:6
UML(Unified Modeling Language)统一建模语言是一种用于对软件密集系统进行可视化建模的标准化建模语言。
用例模型是UML中的一个重要概念,主要用于描述系统的功能需求和行为。
用例模型主要由三个部分组成:参与者(Actor)、用例(Use Case)和它们之间的关系。
参与者(Actor):参与者是与系统进行交互的用户或其他系统,可以是外部实体或内部实体。
用例(Use Case):用例描述了系统执行的功能,即参与者与系统之间的交互行为。
一个用例通常描述了一个单一的功能或业务过程。
关系:关系描述了参与者与用例之间的交互,包括关联(Association)、泛化(Generalization)和依赖(Dependency)等。
在构建用例模型时,通常首先识别参与者,然后确定系统的功能需求,为每个功能需求创建一个用例。
接着,通过添加关系来描述参与者与用例之间的交互。
用例模型的主要目的是帮助开发人员理解系统的功能需求和行为,以便更好地设计和实现系统。
通过用例模型,开发人员可以更好地理解系统的边界、参与者与系统的交互以及系统的功能需求,从而更好地进行系统设计和开发。
软件工程之用例模型总结一、用例模型1.用例概念用例:使用系统时发现的功能性需求,不应过于复杂,简单的来说就是你希望系统能够有什么功能,能够增加系统的价值。
用例模型包括用例描述和用例图,我们主要把中心放在用例描述上。
用例模型包含参与者和场景,场景包括成功场景和失败场景。
因此用例模型中有多个场景;每个场景是一个用例。
用例必须注重为用户提供可观察的返回值,就是系统触发了一个用例之后能够给用户带来什么。
一般用例都是黑盒用例,即不考虑如何实现。
e Case Description每个用例都有一个描述。
怎样确定用例?(1)确定一个功能;(2)写一个用例;(1)主要参与者:调用系统服务完成目标的人。
(2)次要参与者:为系统提供服务的人。
(3)写出每个项目相关人员的理想需求,从中分析功能。
(4)PreCondition:执行到这个用例之前必须为真的情况,比如必须已成功登录或通过验证。
(5)PostCondition:成功执行完此用例后的情况,比如登录用例的后置条件是成功登录(不考虑其他失败情况)。
(6)main flow:将最理想的步骤列出。
一般main flow步骤如下:(1)参与者发生动作。
(2)系统验证。
(3)返回结果。
(7)extension flow:扩展步骤,通常格式为:(1)系统检测到**有问题;在main flow中的第一步扩展,则用1a,1b,1c;3.如何确保正确的用例EBP原则:一般用例都需要遵守这个规则,即确定主要用例。
用例中的主要用例是一些重复做但是有意义的事,比如收银员收钱,重复多次是有意义的,因为钱收得多了;但是像登录系统,这种做100次却没有意义的用例,不能被称为主要用例;(1)EBP(基本业务过程)原则的用例写入;(2)如果要写编辑A,删除A,添加A,可以合并成“管理A”;4.用例图每个用例描述都是一个用例,左边是主要参与者(希望系统为他提供服务)和次要参与者(提供给系统服务的人);在次要参与者中不能有数据库,因为在用户角度看是不知道系统有数据库的;关系:(1)泛化关系,在参与者和用例中都能泛化。
uml用例需求模型的基本概念、主要内容、设计
UML用例需求模型是软件开发过程中的一种重要工具,它主要用于描述系统的功能需求和用户与系统之间的交互关系。
该模型包含了多个不同的元素,包括用例、参与者、关系、扩展点等,这些元素共同构成了一个完整的需求模型。
在UML用例需求模型中,用例是最基本的元素,用于描述系统的功能需求。
每个用例都由一个或多个参与者触发,并且完成一定的工作。
参与者是系统的外部用户或其他系统,用于触发系统中的用例。
关系描述了参与者和用例之间的交互关系,包括关联、泛化、包含和扩展等。
扩展点用于描述用例的可扩展性,允许系统在未来的发展中增加新的功能需求。
在进行UML用例需求模型的设计时,需要遵循一些基本原则,包括用例应该具有可测性、粒度应该适当、应该避免用例之间的重复等。
此外,还需要注意用例的关注点应该集中在用户需求上,而不是系统实现细节上。
总的来说,UML用例需求模型是软件开发过程中非常重要的一部分,它可以帮助开发人员更好地理解用户需求,从而更加准确地设计和实现系统功能。
- 1 -。
用例模型知识点总结一、概述用例模型(Use Case Model)是一种对系统需求的抽象描述,用来捕获系统和外部实体之间的交互。
用例模型是软件开发过程中的重要工具,能够帮助团队理解系统需求,设计系统架构,定义测试用例等。
本文将对用例模型的基本概念、构建过程和应用场景进行总结,以帮助读者更好地理解和应用用例模型。
二、基本概念1. 用例(Use Case):用例是用例模型的基本要素,它描述了系统和外部实体之间的交互。
用例通常由一个或多个参与者(Actor)和一个或多个动作(Action)组成,描述了系统如何响应外部事件。
例如,“用户登录”、“用户发表文章”等都可以作为一个用例。
2. 参与者(Actor):参与者是与系统交互的外部实体,可以是人、其他系统或设备等。
在用例模型中,每个参与者都有一个或多个关联的用例,用例描述了参与者与系统的交互过程。
3. 执行路径(Flow of Events):执行路径描述了在一个特定情景下,系统和参与者之间的交互过程。
它包括了用例的基本流程(Main Flow of Events)和一些可选的或替代的流程(Alternative Flow of Events)。
4. 扩展点(Extension Point):扩展点是用例模型中的一个重要概念,用于描述用例的可扩展性。
通过定义扩展点,系统可以在特定条件下触发额外的行为,从而实现用例的扩展。
5. 系统边界(System Boundary):系统边界是用例模型的一个重要概念,用于描述系统和外部实体之间的边界。
在系统边界之内的交互被视为系统行为,而在系统边界之外的交互被视为外部事件。
三、构建过程构建用例模型的过程通常包括以下几个步骤:1. 确定参与者:首先,团队需要确定系统的参与者,包括主要参与者和次要参与者。
主要参与者通常是系统的最终用户或主要功能模块,而次要参与者通常是其他系统或设备。
2. 确定用例:然后,团队需要确定系统的用例,包括主要用例和次要用例。
业务建模及用例建模1. 业务建模业务建模是指通过对企业业务流程的描述和分析,来描绘企业的运营过程和业务逻辑关系。
它可以帮助企业理清业务流程,优化业务流程,并对业务进行管理和改进。
在软件开发过程中,业务建模也起到了重要的作用。
1.1 业务建模的目的和意义业务建模的目的是帮助企业更好地了解自己的业务流程,找出其中的问题和瓶颈,提出解决方案,并设计出更加高效的业务流程。
通过业务建模,企业可以减少资源浪费,提高业务效率,提升客户满意度。
1.2 业务建模的方法和工具在进行业务建模时,可以采用多种方法和工具,常用的有以下几种:•流程图:用于描述业务流程中的各个步骤和流程之间的关系。
可以直观地展示业务流程,帮助人们理清业务逻辑。
•EPC图:由由事件、功能和控制流组成的图形结构,用于描述业务流程中的各个步骤和流程之间的依赖关系。
•UML:包括用例图、活动图、类图等多种图表,用于描述软件系统的需求和设计。
1.3 业务建模的实施步骤进行业务建模时,可以按照以下步骤来进行:1.确定建模范围:明确需要建模的业务过程范围,确定建模的目标和侧重点。
2.收集业务信息:收集相关业务信息,包括业务流程、业务规则等。
3.描述业务流程:使用合适的建模工具,如流程图、EPC图等,描述业务流程中的各个步骤和流程之间的关系。
4.分析业务流程:对业务流程进行分析,找出问题和瓶颈,并提出改进建议。
5.优化业务流程:根据分析结果,对业务流程进行优化,设计更加高效的业务流程。
6.审核和验证:对优化后的业务流程进行审核和验证,确保其符合实际需求。
7.实施和改进:根据实际情况,将优化后的业务流程付诸实施,并不断进行改进和优化。
2. 用例建模用例建模是指通过对系统的功能需求进行描述和分析,确定系统与用户之间的交互行为和功能。
它可以帮助开发人员更好地理解用户需求,设计出更符合用户期望的系统。
2.1 用例建模的目的和意义用例建模的主要目的是用于系统需求分析和系统设计。
本节和大家一起学习一下UML用例建模的一些基本知识,主要包括基本文档,用例模型,用例规约和补充规约等内容,相信通过本节的学习你对UML用例建模一定会有所了解。
下面就让我们一起来看一下详细介绍吧。
UML用例建模基本知识基本文档:用例模型:记录功能性需求用例图:描述参与者和用例之间的关系用例规约:描述每一个用例的细节信息补充规约:记录一些全局性的功能需求、非功能性需求和设计约束等词汇表:记录一些系统需求相关的术语------------------------------用例模型:用例图比较简单,主要有参与者和用例组成;参与者之间可以有泛化(Generalization)关系用例之间有包含(include)、扩展(extend)和泛化(generalization)关系。
包含是子函数,扩展是备选流泛化比较少用,也是备选流;UML用例建模中用例规约:简要说明(BriefDescription)简要介绍该用例的作用和目的。
事件流(FlowofEvent)包括基本流和备选流,事件流应该表示出所有的场景。
用例场景(Use-CaseScenario)包括成功场景和失败场景,场景主要是由基本流和备选流组合而成的。
特殊需求(SpecialRequirement)描述与该用例相关的非功能性需求(包括性能、可靠性、可用性和可扩展性等)和设计约束(所使用的操作系统、开发工具等)。
前置条件(Pre-Condition)执行用例之前系统必须所处的状态。
后置条件(Post-Condition)用例执行完毕后系统可能处于的一组状态。
UML用例建模的补充规约补充规约记录那些在用例模型中不易表述的系统需求,主要包括以下内容。
功能性功能性需求主要在用例模型中刻画,但是也有部分需求不适合在用例中表述。
有些功能性需求是全局性的,适用于所有的用例,如出错处理、I18N支持等,我们不需要在所有的用例中描述这些功能性需求,只需要在补充规约中统一描述就可以了。
第四章用例建模什么是需求?需求包括哪几个方面?需求:客户可接受的、系统必须满足的条件或具备的能力需求包括:功能性、使用性、可靠性、性能、可支持性五大方面。
2、什么是需求分析?需求分析有何重要意思?需求分析可以分为哪几个步骤?答:"需求分析",是指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输“做什么”。
意义:需求分析是一个重要的一个阶段。
软件需求分析的质量对软件开发的影响是深远的、全局性的,质量需求对软件开发往往起到事半功倍的效果,所谓“磨刀不误砍柴功。
在后续阶段改正需求分析阶段产生的错误将付出高昂的代价需求分析大致可分为以下步骤:绘制关联图:绘制系统关联图是用于定义系统与系统外部实体间的界限和接口的简单模型。
同时它也明确了通过接口的信息流和物质流。
2)创建开发原型:创建用户接口原型。
当开发人员或用户不能确定需求时,开发一个用户接口原型,这样使得许多概念和可能发生的事更为直观明了。
用户通过评价原型将使项目参与者能更好地相互理解所要解决的问题。
注意要找出需求文档与原型之间所有的冲突之处。
3)分析可行性:分析需求可行性。
在允许的成本、性能要求下,分析每项需求实施的可行性,明确与每项需求实现相联系的风险,包括与其它需求的冲突,对外界因素的依赖和技术障碍。
4)确定需求优先级:确定软件工程需求的优先级别。
应用分析方法来确定使用实例、产品特性或单项需求实现的优先级别。
以优先级为基础确定产品版本将包括哪些特性或哪类需求。
当允许需求变更时,在特定的版本中加入每一项变更,并在那个版本计划中作出需要的变更。
5)为需求建立模型:为需求建立模型。
需求的图形分析模型是软件需求规格说明极好的补充说明。
它们能提供不同的信息与关系以有助于找到不正确的、不一致的、遗漏的和冗余的需求。
这样的模型包括数据流图、实体关系图、状态变换图、对话框图、对象类及交互作用图。
6)编写数据字典:创建数据字典。
用例图和用例模型用例图用来描述用户的需求,它从用户的角度描述系统的功能,并指出各功能的执行者,强调谁在使用系统,系统为执行者完成哪些功能。
用例图概述UML用例图是软件产品外部特性描述的视图,它从用户的角度而不是开发者的角度来描述软件产品的需求,分析软件产品所需的功能和行为。
用例图主要描述了系统需要实现的功能,而忽略系统是如何实现这些功能的。
用例模型由用例图组成,它是系统用例图的集合,是对系统从宏观角度的确定描述。
用例模型主要用于需求分析阶段,该模型是系统开发者和系统使用者反复讨论的结果,表明了系统开发者和系统使用者对需求规格达成的共识。
首先,用例模型描述了待开发系统的功能需求;其次,用例模型将系统看作黑盒,仅从外部执行者的角度来理解系统;再次,用例模型驱动了需求分析之后各阶段的开发工作,影响到开发工作的各个阶段和UML的各个模型。
一、用例图元素用例图主要用于定义系统的功能需求,它描述了系统的参与者与系统提供的用例之间的关系。
用例图由以下几种元素组成:执行者、用例、关系、用例描述(1)执行者执行者(Actor)是系统的外部用户,它是与系统相关联的人或其它系统,可以是普通用户、外部硬件、其他系统。
在进行用例图绘制时,首先要找出系统的执行者。
一般可以从以下几个方面来考虑怎样找到系统的执行者:????????????谁使用系统的功能。
?????????谁向系统提供必要的信息。
?????????谁从系统获取信息。
?????????谁维护、管理系统工作。
?????????系统需要使用哪些外部资源。
?????????需要与系统交互的其它系统有哪些。
?????????其他对系统产生的结果感兴趣的人或事物。
(2)用例用例是指系统中的一个功能单元,也可以将用例理解为系统功能的分解。
用例的表示方法如下:(3)关系(1)关联????在用例图中,用例和执行者之间的关系用一条连接二者带箭头的连线表示,如图所示,该连线称为关联。
第五章用例建模5.1 用例的基本概念⒈什么是用例用例(use case)是一种建模技术,用于描述新系统应该具备的功能,或者描述一个已有系统已经具备的功能。
用例规定了一个动作序列(可以有多种实现),系统可以执行这些动作并产生出一个对于特定活动者有价值的可见结果。
⒉为什么使用用例①用例提供了一种捕获功能需求的系统而且直觉的方法。
②用例驱动整个开发过程。
5.2 用例中的有关概念用例模型的主要组件:用例、参与者以及被建模的系统。
创建用例模型的过程:①定义系统;②发现参与者和用例;③描述用例;④定义用例之间的关系;⑤对模型进行确认操作。
5.2.1 系统与系统边界系统边界是一个系统所包含的所有成分与系统以外的各种事物的分界线。
这里所说的系统是指被开发的计算机软硬件系统。
Insurance Business图5.1 在用例模型中的系统5.2.2 参与者⒈参与者的概念参与者(Actor)是与该系统打交道的人或者其他系统。
⒉参与者的分类主要参与者(Primary actor):使用该系统基本功能的参与者。
次要参与者(Secondary actor):使用该系统次要功能的参与者。
主动参与者(Active actor):该参与者负责初始启动用例。
被动参与者(Passive actor):该参与者永远不会初始启动用例,而只是参与系统中的一个或多个用例而已。
⒊发现参与者·谁将使用该系统的主要功能(主要参与者)?·谁将需要该系统的支持以完成他们的日常工作?· 谁将需要维护、管理该系统,以及保持系统处于工作状态(次要参与者)?· 系统需要处理哪些硬件设备? · 系统需要与哪些其他系统打交道? ·谁或什么系统对本系统产生的结果感兴趣?⒋ UML 中的参与者图5.2 参与者的表示方法⒌ 参与者之间的关系泛化关系Insurance Agent(a )(b)图5.3 参与者之间的泛化关系Supplier ’s AgentRestockerCollectorCustomerPersonal Visit CustomerTelephone Customer5.2.3 用例⒈用例的定义UML中的用例定义是:系统执行的一组动作序列,这些动作可以产生一个特定参与者可观察的数值结果。
用例模型用例模型描述的是新系统规划的功能。
它表示用户(人或机器)和系统之间交互的离散单元。
该交互是一个有意义的独立单元,如:创建账户,浏览帐户信息。
每一个用例描述建立在规划系统中的功能,它可以包含另一个用例功能或用自己的行为扩展另一个用例。
一个用例描述通常包括:∙描述用例的常规注释和说明∙需求- 用例必须提供给最终用户正式的需求。
如:<ability toupdate order>"能更新订单"。
它们都对应构造方法中建立的功能规范,并建立用例执行动作和给系统提供值的约定。
∙约束- 用例运行所遵循的正式规则和限制,它们定义了什么能做,什么不能做。
包括:o预置条件是用例运行以前就已经发生了。
如:"创建订单" <create order>必须发生在"修改订单"<modifyorder>之前。
o后置条件是用例完成后必须为真,如:"订单修改和一致性检查"。
o常量在用例的整个运行过程中始终为真,如:一个订单一直有客户号。
∙情形–用例执行时各步骤正式有序的描述,或用例实例化过程中事件发生的流程。
它包含多种情形来应付特殊环境和可选择的处理方式。
它们通常由文本建立和对应于顺序图的文本表达。
∙情形图- 描绘工作流的顺序图;类似于情形,但是图形化描述。
∙附加属性,如实施阶段,版本号,复杂性程度,构造型和状态。
执行者用例通常与执行者关联,执行者可以是人或机器实体,用于系统交互来执行有意义的工作从而帮助他们完成目标。
执行者参与的用例定义了它们在系统中总体的作用和动作的范围。
包含和扩展用例间的关系一个用例可以包含另一个用例功能做为它自身正常运行的一部分。
通常假设在用例运行时被包括的用例每次都会被调用。
例如:在修改选定订单前,列出一份客户订单表,每次<modify order>"修改订单"用例执行时,<list orders>"列出订单"用例被调用执行。
软件需求分析中的用例模型软件开发是现代科技的重要表现形式,而软件需求分析是软件开发的第一环节。
软件需求分析的主要任务是将用户需求转化为软件所需功能的详细规格说明,这些规格说明成为软件开发中的基准标准,同时也是软件测试的基础。
需求分析有很多方法,用例分析是常用的一种。
用例是针对某一特定场景下的系统行为、功能、性能等的具体描述,它从用户的角度出发,描述了用户与系统之间的交互过程。
本文主要介绍在软件需求分析过程中的用例模型。
一、用例的定义用例主要是用来描述软件的功能以及用户与软件的互动过程。
用例模型是一种面向对象的需求分析方法,它把用户使用系统的一组典型路径描述清楚,并通过文档的形式来呈现这些标准路径,让开发人员和客户都能够理解。
用例模型的主要作用在于记录与评审需求、澄清需求和确认需求。
二、用例模型构建过程用例模型的构建过程可以分为以下几个步骤:1、识别参与角色:用例模型最基本的概念就是参与角色,用户就是用例模型中的参与角色之一,系统管理员、客户或其他用户等也是用例模型的参与角色。
用例模型的构建需要准确地识别并区分参与角色。
2、确定用例:用例是由一系列的动作和反应组成的流程,需要通过观察用户与系统的交互,并记录下来,以便将来进行分析。
在用例构建过程中需要考虑应用场景、功能需求以及业务规则等因素。
3、撰写用例:用例的撰写需要遵循一定的规范,一般情况下用例会包括一个简要的描述、用例步骤和用例结束时需要达到的状态等信息。
撰写好的用例需要经过严格的问题验证与测试操作,以保证其描述的准确性。
三、用例模型的应用用例模型不仅可以用于需求分析,还可以用于测试与开发过程中,如下图所示:图1 用例模型在需求分析、测试与开发中的应用在需求分析中,用例模型可以协助开发人员更好地了解用户需求,并且设计满足用户需求的软件系统。
在开发过程中,通过回顾用例模型可以评估软件的质量和性能,找出潜在的问题并进行修正。
而在测试过程中,用例模型可以作为测试计划的一部分,并且可以作为测试人员在测试过程中的参考依据。
用例建模法用例建模法是一种常用的需求分析方法,通过描述系统与外部参与者之间的交互,帮助我们理解系统功能与行为。
在这种方法中,我们考虑系统能够提供给参与者的不同用例或场景,并描述了参与者与系统之间的交互。
以下是用例建模法的相关参考内容。
1. 用例建模的基本概念:用例:用例是一个有序的事件序列,用于描述参与者与系统之间的交互。
参与者:参与者是与系统进行交互的外部实体。
它可以是一个人、一个组织或另一个系统。
系统边界:系统边界是用于定义系统与外部参与者之间的界限。
主要成功场景:主要成功场景是该用例的典型执行路径,描述了系统如何响应参与者的请求并达到预期结果。
2. 用例建模的过程:(1) 识别参与者:确定系统的外部参与者,并理解他们对系统的期望。
(2) 确定用例:识别系统能够为参与者提供的用例或场景,并描述其目标和预期结果。
(3) 建立参与者与用例之间的关系:描述参与者与用例之间的交互方式和角色。
(4) 确定用例间的关系:通过识别用例间的相互作用和依赖关系来整理用例。
3. 用例建模的优点:(1) 用例建模通过描述用例和参与者之间的交互,帮助人们理解系统的需求和功能。
(2) 用例建模提供了一种可视化表示方法,使得分析和理解需求更容易。
(3) 用例建模强调用户的角色,有助于设计出更加用户友好的系统。
(4) 用例建模可以帮助团队成员进行有效的沟通和协作。
4. 用例建模的步骤:(1) 确定系统的边界:定义系统与外部参与者之间的边界。
(2) 识别参与者:确定与系统进行交互的外部参与者,并描述他们的期望和角色。
(3) 识别用例:确定系统需要提供的用例或场景,并描述它们的目标和预期结果。
(4) 建立参与者与用例之间的关系:描述参与者与用例之间的交互方式和角色。
(5) 确定用例间的关系:识别用例之间的相互作用和依赖关系。
以上是用例建模法的相关参考内容。
用例建模是一种常用的需求分析方法,通过描述系统与外部参与者之间的交互,帮助我们理解系统功能与行为。
⽤例模型(Use-CaseModel)⽤例模型(Use-Case Model)⒈内容概述⽤例模型是以专门术语描述实际系统功能需求的原型。
在⽤例模型中,⼀个实际系统功能需求被表⽰为⼀个到多个系统⾏为(System Behavior)。
为便于描述系统⾏为的动态过程,在⽤例模型中还使⽤活动图(Activity Diagram)来描述系统内部状态的变化过程(还配套状态图和事件流图)。
激发⼀个系统⾏为的第⼀信息来源和⽬标被称为⾓⾊(Actor),⽽当系统⾏为发⽣后会对第⼀信息来源产⽣反应。
⾓⾊只能在系统边界以外,⽤例模型实际上表现了系统内外的作⽤与反作⽤的信息交流过程。
UML中的⽤例模型分别⽤表⽰实际系统功能和与其相关的环境的图形符号体系所构成。
⾓⾊是与系统信息交互的源点与终点。
⽤例是系统与⾓⾊交互的⼀个系统⾏为的总和,与其他系统⾏为不同的是⽤例要特别描述出与其相关的⾓⾊、作⽤约束、响应性能等重要的系统数据。
在⽤例模型中⽤带有简要⽂字说明的箭头将⽤例和⾓⾊连接到⼀起。
可视化建模语⾔UML由五类模型视图和九种图所组成。
⒉步骤转DEV475_02_Requirements.PDF⽂档。
⒊问题的陈述①陈述的主要内容·问题的范围;·分别陈述要求解的必须部分的问题内容和可选择部分的问题内容;·叙述应⽤的背景情况;要注意下述问题:–不要涉及系统内部的内容;–阐明系统应⽤背景的各种假设前提;–阐明系统应⽤的性能要求;②设计与实现⽂档的编制规范·总体叙述;·算法;·数据结构;·系统体系结构;·系统优化设想;③归纳出需求由于问题的陈述不⼀定能反映⽤户的真实需求或者陈述所反映出的⽤户需求可能是不现实的、甚⾄是相互⽭盾的,因此必须对陈述所反映出的⽤户需求进⾏归纳。
在归纳的过程中不要遗失任何信息。
要有需求就是挑战的观念。
Rumbaugh曾经说过:“即便你把⽤户所提出的问题总结的再好,但设计出来的结果却不能满⾜⽤户的实际需要,你如何⾯对你的客户”。
用例建模目标
用例建模的目标是描述系统的功能需求,通过使用用例图、用例描述和用例之间的关系来定义系统的行为和功能。
具体来说,用例建模的目的是:
1. 确定系统的功能需求:通过分析业务场景和角色与系统的交互,识别系统的功能需求。
2. 描述系统的行为:用例描述了系统在特定场景下的行为,包括前置条件、后置条件和系统与角色的交互等。
3. 定义系统边界:用例建模可以帮助确定系统的边界,明确系统与外部实体(如用户、其他系统等)的交互。
4. 建立需求基线:通过用例建模,可以建立一个清晰的需求基线,为后续的开发和测试提供依据。
5. 沟通工具:用例建模使用图形化的方式描述系统功能,便于开发人员、测试人员和业务分析师等不同角色之间的沟通。
6. 评估和验证:通过评估用例的完整性、正确性和可行性,确保系统功能需求的准确性和完整性。
7. 驱动开发:用例可以作为开发过程中的重要输入,指导开发人员实现系统的功能。
8. 测试依据:测试人员可以根据用例编写测试用例,确保系统功能的正确性和可靠性。
总之,用例建模是一种有效的需求工程方法,可以帮助团队更好地理解和管理系统需求,确保开发出符合业务需求的软件产品。
UML用例建模解析刘伟UML(统一建模语言)是当前软件开发中使用最为广泛的建模技术之一,通过使用UML 可以构造软件系统的需求模型(用例模型)、静态模型、动态模型和架构模型。
UML通过图形和文字符号来描述一个系统,它是绘制软件蓝图的标准语言。
熟练掌握UML建模技术是一个优秀的软件从业人员所必备的基本技能之一,越来越多的软件企业在招聘中也需要应聘者具备一定的UML知识基础和实践经验。
作为UML的初学者,很多人也在尝试使用UML中的图形来描述一个软件系统,构造一个软件系统的蓝图。
然而,在使用UML的过程中,一部分人并没有深入理解这些图的作用,以及这些图在绘制过程中的一些技巧。
我将陆续通过几篇文章来帮助大家更快更好地学习UML,在软件项目中合理使用UML来提高软件开发效率并规范软件开发流程。
在本文中我将结合库存管理系统来深入浅出地讲述UML建模中的第一个模型——需求模型的构造,即用例建模,包括如何绘制规范的用例图、如何编写简洁而又清晰的用例文档、以及怎样通过用例图和用例文档来构造软件系统的需求模型。
在UML中,需求模型又称为用例模型,它主要用于描述系统的功能性需求,即软件可以实现的功能,如登录、注册、入库、出库、查看库存报表、增加员工信息等。
常规的用例建模一般包括两个组成部分:绘制用例图和编写用例文档。
1. 绘制用例图用例图是UML中比较简单的一种图形,它包含两个主要组成元素,分别是执行者(Actor)和用例(Use Case)。
执行者又称为参与者或角色,用例又称为用况或案例。
在用例图中,执行者用一个“小人”符号表示,用例用一个“椭圆”符号表示,因此用例图又有一个名字为“小人椭圆图”。
最简单的用例图如下:入库仓库管理员在该用例图中,“仓库管理员”表示执行者,“入库”表示一个用例,即系统的一个功能。
执行者是指直接和系统交互的一类事物,执行者主要有如下三类:(1) 直接使用系统的人,如使用一个库存管理系统的仓库管理员、仓储部经理等用户,仓库管理员可以通过系统进行入库和出库操作,仓储部经理可以通过系统查看各种报表,如库存报表、财务报表等;(2) 与该系统相关的其他系统,如在库存管理系统中如果涉及到付款操作,需要使用另一个软件——支付系统,此时支付系统就是库存管理的执行者之一;(3) 自动发生的事件,如时间、温度等自动事件,如果库存管理系统要求每晚零点执行一个数据汇总操作,此时时间就成为该操作的执行者。
识别一个系统的执行者是用例建模的第一步,在识别出一个系统的执行者后,需要寻找系统的用例,即功能需求。
用例是执行者对系统操作的一个动作序列,每一个用例对应执行者对系统的一个完整操作流程。
如库存管理系统中,仓库管理员可以登录系统,可以进行入库、出库等操作,在这里登录、入库、出库都是用例,它们都对应系统所提供的一个功能。
执行者通过执行用例来完成相应的工作。
用例体现了执行者和软件系统的交互过程,因此只用一个简单的“椭圆”来表示用例太过简单,对于每一个用例,需要编写一个详细的用例文档,在下一节将介绍如何编写用例文档。
在找出执行者和用例之后,下一步就是用例图的绘制了,这个过程看似简单,实际上要绘制出一个规范、标准、可读性强的用例图并不是件很容易的事情。
绘制用例图的关键在于理清各种图符之间的关系,包括执行者与用例之间的关系、执行者之间的关系以及用例之间的关系。
(1) 关联关系关联关系是指执行者与用例之间的关系,又称为通信关系,如果某个执行者可以对某个用例进行操作,它们之间就具有关联关系,如下图所示,“经理”有一个功能为“查看库存报表”,因此可以在执行者“经理”和用例“查看库存报表”之间建立一个关联关系,关联关系用实线表示。
查看库存报表经理(2) 泛化关系执行者之间的关系只有一种,即泛化关系,用一个带有空心三角形的实线表示,如下图所示,在该图中,仓库管理员、系统管理员、经理都是员工的一种,因此员工拥有的功能这三者都拥有,如登录、修改个人信息等,为了减少用例的个数并且使系统更加符合面向对象设计规范,可以对执行者进行泛化,将各类执行者都具有相同的功能移至父执行者,而将每类执行者特有的功能保留在子执行者中。
修改个人信息登录入库增加员工信息查看库存报表常见的用例之间的关系有两种,分别是包含关系和扩展关系,下面介绍这两种关系的含义以及在用例图中如何表示。
(3) 包含关系如果多个用例都具有一部分相同的行为,可以将这部分相同的行为作为一个单独的用例抽取出来,与原来的用例形成一个包含关系。
如仓库管理员在进行入库、出库等操作之前需要先登录,登录是入库、出库流程的基本组成部分,因此用例“入库”和“出库”包含用例“登录”。
为了更加清晰地描述多个用例的相同行为,在用例图中提供了用例与用例之间的包含关系。
在UML中,包含关系用依赖线(虚线)加一个<<include>>表示,由原始用例指向包含用例,如下图所示:<<include>><<include>>仓库管理员入库出库登录(4) 扩展关系扩展关系又称为延伸关系,如果一个用例在执行时可能会使用到另一个用例,或者使用一个新的用例对原有用例的行为进行扩展时可以使用扩展关系,如仓库管理员在入库时发现某种商品在系统中暂不存在,则可以增加新的商品信息;如果入库商品均已存在,则无需增加商品信息,此时用例“增加商品信息”可以作为用例“入库”的扩展用例。
在需要扩展的用例(原始用例)中需指定一个扩展点(即需扩展的位置),在下一节编写用例文档中将学习如何设置扩展点。
在UML 中,包含关系用依赖线(虚线)加一个<<extend>>表示,由扩展用例指向原始用例,如下图所示:<<extend>>入库增加商品信息关于包含关系和扩展关系箭头的指向,可以记住两句口诀:包含进来,箭头向外;扩展出去,箭头向里。
除了上述的包含关系和扩展关系外,用例之间还存在一种与执行者泛化类似的泛化关系,但不太常见,在这里不予以详细介绍。
2. 编写用例文档绘制用例图只是完成了用例建模最基本也是最简单的一步,用例建模的核心在于编写用例文档,用例文档又称为用例规约或用例描述。
顾名思义,用例文档是用于描述用例的文档,每一个用例对应于一个用例文档,在用例文档中需要用文字的方式描述用例的执行过程,即执行者与系统的交互过程。
用例文档需要通俗易懂,不仅项目的开发人员能够理解,系统的用户以及客户也能够看懂用例文档。
一个完整的用例文档包括用例编号、用例名、执行者、前置条件、后置条件、涉众利益、基本路径、扩展路径、字段列表、业务规则、非功能需求和设计约束等组成部分。
一般在系统中需要给所有的用例一个统一规范的编号,如库存管理系统,可以使用StockUC001、StockUC002等来对用例进行编号。
每一个用例都需要提供一个清晰易懂的用例名,一般使用“动词+名词”的形式,如“查看库存报表”、“增加员工信息”、“增加商品信息”等,对于一些俗语可以使用简写,如“登录”、“注册”、“入库”、“出库”等。
前置条件是用例执行之前系统所处的状态,它必须是软件系统可以识别到的状态,如用例“入库”的前置条件是“仓库管理员已成功登录”,而不能是“仓库管理员已打开电脑”,因为是否“打开电脑”库存管理系统不能识别到;后置条件是用例执行之后系统应该具备的状态,它也必须是系统能够识别到的,如用例“入库”的后置条件是“系统保存入库信息,更新相关商品的库存量”,而不能是“用户退出系统”,因为“用户退出系统”不是“入库”操作所达到的系统状态。
涉众利益是对用例执行过程和结果很关心但不直接操作用例的人,如仓库管理员在入库和出库时,虽然经理不直接入库,但是他们对这个过程和结果很关心;如在火车站买票时,直接使用售票系统的是售票员,但是乘客很关心用例的执行结果,担心是否会弄错时间和车次,因此乘客是涉众。
执行者是直接执行用例的人,他们通过用例来直接执行系统提供的功能;涉众是执行者操作用例时的观众,他们对用例的执行过程和结果很关心,因为涉及到他们的利益。
路径又称为“流程”,是指执行者和系统交互的过程。
用例文档中最关键的部分是基本路径,基本路径又称为“正常路径”或者“开心路径”,它是用户最想看到、也最关心的路径,是用例建模核心中的核心。
在路径中包含若干步骤,这些步骤构成了一个完整的交互过程,在描述基本路径时,每一个步骤一般以执行者或者系统作为主语,如“仓库管理员输入待入库商品信息”,“系统验证该商品库存是否达到上限”等。
在编写路径时需要注意以下几个问题:(1) 需要对步骤进行编号,一般用阿拉伯数字1、2、3、…进行编号,表示步骤的先后次序。
(2) 不能出现专业术语,因为用例文档需要系统的客户和用户都能够看懂,因此不能出现诸如“JDBC”、“SQL”这样的专业术语。
(3) 尽量使用主动语句,每一个步骤均以执行者或系统作为主语。
(4) 不要涉及到界面细节,如不能出现“仓库管理员在文本框中输入帐号”、“仓库管理员在密码框中输入密码”等句子,应该使用“仓库管理员输入帐号和密码”来代替。
(5) 如果出现大量数据输入或处理,需要将数据放入“字段列表”中,如系统管理员在增加员工信息时,需要增加员工帐号、员工密码、员工所在部门、员工电话、员工邮箱等信息,可以在用例文档中使用“系统管理员输入员工信息”来代替,而对于“员工信息”的详细描述可以放在用例文档的“字段列表”中进行详细说明。
(6) 注意分支和循环的处理,在用例文档中,分支可放在接下来要介绍的扩展流程中;而循环可以直接放在步骤描述中,如在入库时可以一次入库多个商品的资料,中间某些步骤如下:“2. 仓库管理员输入待入库商品信息;3. 系统验证该商品库存是否达到上限;4. 系统提示该商品入库信息增加成功;”,如果需要重复这几步,可以在基本路径中用如下语句描述:“如果还有商品需要入库,重复第2-4步”。
基本路径是用例文档的核心,通过路径可以清楚了解执行者如何通过用例来实现相应的功能,因此,在编写用例文档时,需要认真细致编写基本路径,确保非专业人员都能够在读完基本路径后理解执行者和系统的交互过程。
除了基本路径之外,很多用例都存在一些替换路径和异常路径,通常可以将替换路径和异常路径统称为扩展路径。
识别出一个用例的基本路径并不难,但是要找到所有的扩展路径是件很辛苦的工作。
一个优秀的系统分析人员应该认真分析业务流程,试图寻找出在基本路径中每一个步骤可能存在的扩展方式,寻找出所有可能的扩展路径。
如仓库管理员在入库时可能会发生一些异常情况,如“供应商不存在”、“待入库商品不存在”、“入库时商品超过库存上限”等,需要使用扩展路径对这些情况进行清晰的描述,如“供应商不存在”,则需要设置一个扩展点,先执行“增加供应商信息”用例,再选择供应商编号,在扩展流程中可以这样表示:“1a. 供应商不存在 1. 扩展点1:执行用例——StockUC003增加供应商信息;2. 仓库管理员选择供应商编号。