再学UML-UML用例建模解析(三)

2. 编写用例文档

  绘制用例图只是完成了用例建模最基本也是最简单的一步,用例建模的核心在于编写用例文档,用例文档又称为用例规约或用例描述。顾名思义,用例文档是用于描述用例的文档,每一个用例对应于一个用例文档,在用例文档中需要用文字的方式描述用例的执行过程,即执行者与系统的交互过程。

  用例文档需要通俗易懂,不仅项目的开发人员能够理解,系统的用户以及客户也能够看懂用例文档。一个完整的用例文档包括用例编号、用例名、执行者、前置条件、后置条件、涉众利益、基本路径、扩展路径、字段列表、业务规则、非功能需求和设计约束等组成部分。

  一般在系统中需要给所有的用例一个统一规范的编号,如库存管理系统,可以使用StockUC001、StockUC002等来对用例进行编号。每一个用例都需要提供一个清晰易懂的用例名,一般使用“动词+名词”的形式,如“查看库存报表”、“增加员工信息”、“增加商品信息”等,对于一些俗语可以使用简写,如“登录”、“注册”、“入库”、“出库”等。

  前置条件是用例执行之前系统所处的状态,它必须是软件系统可以识别到的状态,如用例“入库”的前置条件是“仓库管理员已成功登录”,而不能是“仓库管理员已打开电脑”,因为是否“打开电脑”库存管理系统不能识别到;后置条件是用例执行之后系统应该具备的状态,它也必须是系统能够识别到的,如用例“入库”的后置条件是“系统保存入库信息,更新相关商品的库存量”,而不能是“用户退出系统”,因为“用户退出系统”不是“入库”操作所达到的系统状态。

  涉众利益是对用例执行过程和结果很关心但不直接操作用例的人,如仓库管理员在入库和出库时,虽然经理不直接入库,但是他们对这个过程和结果很关心;如在火车站买票时,直接使用售票系统的是售票员,但是乘客很关心用例的执行结果,担心是否会弄错时间和车次,因此乘客是涉众。执行者是直接执行用例的人,他们通过用例来直接执行系统提供的功能;涉众是执行者操作用例时的观众,他们对用例的执行过程和结果很关心,因为涉及到他们的利益。

  路径又称为“流程”,是指执行者和系统交互的过程。用例文档中最关键的部分是基本路径,基本路径又称为“正常路径”或者“开心路径”,它是用户最想看到、也最关心的路径,是用例建模核心中的核心。在路径中包含若干步骤,这些步骤构成了一个完整的交互过程,在描述基本路径时,每一个步骤一般以执行者或者系统作为主语,如“仓库管理员输入待入库商品信息”,“系统验证该商品库存是否达到上限”等。在编写路径时需要注意以下几个问题:

  (1) 需要对步骤进行编号,一般用阿拉伯数字1、2、3、…进行编号,表示步骤的先后次序。

  (2) 不能出现专业术语,因为用例文档需要系统的客户和用户都能够看懂,因此不能出现诸如“JDBC”、“SQL”这样的专业术语。

  (3) 尽量使用主动语句,每一个步骤均以执行者或系统作为主语。

  (4) 不要涉及到界面细节,如不能出现“仓库管理员在文本框中输入帐号”、“仓库管理员在密码框中输入密码”等句子,应该使用“仓库管理员输入帐号和密码”来代替。

  (5) 如果出现大量数据输入或处理,需要将数据放入“字段列表”中,如系统管理员在增加员工信息时,需要增加员工帐号、员工密码、员工所在部门、员工电话、员工邮箱等信息,可以在用例文档中使用“系统管理员输入员工信息”来代替,而对于“员工信息”的详细描述可以放在用例文档的“字段列表”中进行详细说明。

  (6) 注意分支和循环的处理,在用例文档中,分支可放在接下来要介绍的扩展流程中;而循环可以直接放在步骤描述中,如在入库时可以一次入库多个商品的资料,中间某些步骤如下:“2. 仓库管理员输入待入库商品信息;3. 系统验证该商品库存是否达到上限;4. 系统提示该商品入库信息增加成功;”,如果需要重复这几步,可以在基本路径中用如下语句描述:“如果还有商品需要入库,重复第2-4步”。

   基本路径是用例文档的核心,通过路径可以清楚了解执行者如何通过用例来实现相应的功能,因此,在编写用例文档时,需要认真细致编写基本路径,确保非专业人员都能够在读完基本路径后理解执行者和系统的交互过程。

  除了基本路径之外,很多用例都存在一些替换路径和异常路径,通常可以将替换路径和异常路径统称为扩展路径。识别出一个用例的基本路径并不难,但是要找到所有的扩展路径是件很辛苦的工作。一个优秀的系统分析人员应该认真分析业务流程,试图寻找出在基本路径中每一个步骤可能存在的扩展方式,寻找出所有可能的扩展路径。如仓库管理员在入库时可能会发生一些异常情况,如“供应商不存在”、“待入库商品不存在”、“入库时商品超过库存上限”等,需要使用扩展路径对这些情况进行清晰的描述,如“供应商不存在”,则需要设置一个扩展点,先执行“增加供应商信息”用例,再选择供应商编号,在扩展流程中可以这样表示:“1a. 供应商不存在  1. 扩展点1:执行用例——StockUC003增加供应商信息;2. 仓库管理员选择供应商编号。”。在这里需要注意扩展路径的编号,如果是基本路径中步骤1的扩展路径,可以使用1a、1b、1c等方式表示,然后对于扩展出来的子路径再用1、2、3、…进行编号,其中在该子路径的第1步指明这是一个扩展点,该扩展点名为“扩展点1”,在此时需要执行另一个用例StockUC003“增加供应商信息”,则用例“入库”和用例“增加供应商信息”之间是扩展关系,“增加供应商信息”是对“入库”操作的扩展。如果没有扩展点则直接书写步骤,与基本路径步骤写法一致。

  字段列表、业务规则、非功能需求和设计约束是对用例的补充描述,字段列表中包含某些步骤所涉及到的一些数据字段,如在“增加商品信息”用例中可以在其“字段列表”中详细列出商品信息的内容,如“商品信息包括:商品编号,商品名称,商品型号,商品类别,商品单价,商品数量,库存上限,库存下限”,“字段列表”为后续的数据库设计工作提供了极大的帮助;业务规则用于描述在步骤中执行者或系统在执行某些操作时需要满足的条件,如在“增加商品信息”用例中,其“业务规则”包括“商品编号不能为空,商品数量必须是大于等于0的整数,库存下限必须低于库存上限”等;非功能需求用于描述用例在可靠性、安全性、可用性、移植性等方面的一些要求,如“系统响应时间不能超过30秒”、“可以支持同时100个用户在线访问”等;设计约束是指设计过程中存在的一些待解决的问题,如“商品编号的编码问题”、“如何快速输入商品编号”等。

  在实际软件开发过程中,用例编号、用例名、执行者、前置条件、后置条件和基本路径是一个用例必不可少的组成部分,其他部分可根据实际情况确定,可有可无。下面提供库存管理系统中“入库”用例的用例文档,以供参考:


用例名称


入库


用例编号


StockUC006


执行者


仓库管理员


涉众利益


经理:了解各种商品的库存信息和每次入库信息。

系统管理员:了解入库操作是否能够正常执行,系统是否正确记录入库信息并更新商品库存。


前置条件


仓库管理员已成功登录。


后置条件


系统保存入库信息,更新相关商品的库存量。


基本路径


1. 仓库管理员选择供应商编号;

2. 仓库管理员输入入库商品信息;

3. 系统验证该商品库存是否达到上限;

4. 系统提示该商品入库信息增加成功;

如果还有商品需要入库,重复第2-4步

5. 仓库管理员提交入库信息;

6. 系统提示入库成功。


扩展路径


1a. 供应商不存在

1. 扩展点1:执行用例——StockUC003增加供应商信息;

2. 仓库管理员选择供应商编号。

2a. 待入库商品不存在

1. 扩展点2:执行用例——StockUC005增加商品信息;

2. 仓库管理员输入入库商品信息。

4a. 增加失败

1. 系统提示商品增加失败,超过库存上限;

2. 仓库管理员重新输入商品数量;

3. 系统再次验证该商品库存是否达到上限,直至该商品入库信息增加成功。


字段列表


入库商品信息包括:商品编号、入库数量、商品折扣。


业务规则


供应商编号不能为空;

商品编号不能为空;

入库数量必须为正整数,且不能为空;

商品折扣为0-1之间的小数(可包含0和1),且不能为空。


非功能需求


系统响应时间不能超过30秒。


设计约束


如何快速输入商品编号?

  总之,用例建模包括用例图的绘制和用例文档的编写,其核心在于编写用例文档。用例建模是软件需求分析到最终实现的第一步,它从用户的角度来描述软件系统的功能,描述人们如何使用软件系统。构造意义明确、格式规范的用例模型是软件成功的第一步,希望大家在每个软件项目的开发过程中都能够认真、细致地进行用例建模,为顺利完成项目开发任务奠定坚实的基础。

文章出处:http://blog.csdn.net/lovelion/article/details/6226377

时间: 2024-11-10 06:54:55

再学UML-UML用例建模解析(三)的相关文章

Uml学习-用例建模简介

用例建模简介  用例建模是UML建模的一部分,它也是UML里最基础的部分.用例建模的最主要功能就是用来表达系统的功能性需求或行为.用例图重点描述用户需求. 它描述需求.用户和主要组件之间的关系. 它不会详细描述用户需求:在可链接到每个用例的其他关系图或文档中可详细描述这些需求.用例图是UML的九个图中较为重要和常用的一种图.常常用于软件开发的需求分析阶段,也能用于软件的系统测试阶段.简单的来说,用例图是描述系统的外部视图,为了搞清某个项目的大概需求,我们往往要问两个问题, 1.  这个系统有什么

再学UML-Bug管理系统UML2.0建模实例(一)

1.项目概述       随着软件项目规模和复杂性的增大,有效跟踪和管理项目中存在的缺陷Bug变得越来越重要.每一个软件企业都需要妥善处理软件中的缺陷,这将直接关系到软件过程质量与软件产品质量,但并非所有的软件组织都知道如何有效地管理自己软件中的缺陷.在软件缺陷管理(Software Defect Management)中,软件缺陷的分类和管理非常重要,因此软件缺陷管理工具的开发和使用将在现代软件开发中发挥重要作用.本系列文章将使用UML2.0对Bug管理系统进行全程建模,该系统名为缺陷管理系统

UML用例建模解析(二)---------用例执行者之间关系

(1) 关联关系 关联关系是指执行者与用例之间的关系,又称为通信关系,如果某个执行者可以对某个用例进行操作,它们之间就具有关联关系,如下图所示,"经理"有一个功能为"查看库存报表",因此可以在执行者"经理"和用例"查看库存报表"之间建立一个关联关系,关联关系用实线表示. (2) 泛化关系 执行者之间的关系只有一种,即泛化关系,用一个带有空心三角形的实线表示,如下图所示,在该图中,仓库管理员.系统管理员.经理都是员工的一种,因此

再学UML-Bug管理系统UML2.0建模实例(二)

2.3 BMS顺序图(需求模型)       在UML中,我们将顺序图分为两类,一类用于描述系统需求,构造系统的需求模型(分析模型):另一类用于指导设计与实现,构造系统的实现模型(设计模型).       在系统分析时,可以通过顺序图来对执行者和系统的交互过程进行建模,方便用户更好地理解系统的工作流程.对于需求模型顺序图,一般使用用户熟悉的业务语言来进行系统描述,不涉及到实现细节,一方面方便用户理解,另一方面可以指导后续类图的设计.顺序图可显示不同的业务对象如何交互,对于交流当前业务如何进行很有

再学UML-深入浅出UML类图(一)

在UML 2.0的13种图形中,类图是使用频率最高的UML图之一.Martin Fowler在其著作<UML Distilled: A Brief Guide to the Standard Object Modeling Language, Third Edition>(<UML精粹:标准对象建模语言简明指南(第3版)>)中有这么一段:"If someone were to come up to you in a dark alley and say, 'Psst, w

【转】UML的9种图例解析

UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现 类与类图 1) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性.操作.关系的对象集合的总称. 2) 在系统中,每个类具有一定的职责,职责指的是类所担任的任务,即类要完成什么样的功能,要承担什么样的义务.一个类可以有多种职责,设计得好的类一般只有一种职责,在定义类的时候,将类的职责分解成为类的属性和操作(即方法). 3) 类的属性即类的数据职责,类的操作即类的行为职责 一.依赖关系(Dependence) 依

第三项任务——用例建模

SRS文档——用例建模 一.spec概念 Specification, 又叫spec, 有两种: a) functional spec, 软件功能说明书, 主要用来说明软件的外部功能, 和用户的交互情况 (把软件当作一个黑盒子). b) technical spec, 软件技术说明书, 又叫 design doc, 设计文档, 主要用来说明软件内部的设计 (把软件当作一个透明的箱子). 二.用例建模 用例建模(Use Case Modeling)是使用用例的方法来描述系统的功能需求的过程,用例模

采用[ICONIX] 方法实践分析和设计之二 [用例建模](转)

在上一篇文章中我们了解并进行了域建模,换言之我们有了一个好的开始,起码开发人员对自己要开发的软件已有了初步的认识,且也得到了进行交流时可以使用的术语表. 本章将会在前一篇的基本上进一步阐述使用ICONIX方法实践用例建模,同样在文章的最后还会有在这个阶段最容易犯的10个错误,以给大家提醒或在分析过程中进行参照.     本文在ICONIX方法中所处的位置如下图(红圈标记的地方)     在开始进行用例建模之前,我们需要对这一过程有一些粗线条的认识,如果您以前做过或学习过这方面的知识,可以把下面的

用例建模指南

用例建模指南 用例(Use Case)是一种描述系统需求的方法,使用用例的方法来描述系统需求的过程就是用例建模.用例方法最早是由Iva Jackboson博士提出的,后来被综合到UML规范之中,成为一种标准化的需求表述体系.用例的使用在RUP中被推崇备至,整个RUP流程都被称作是"用例驱动"(Use-Case Driven)的,各种类型的开发活动包括项目管理.分析设计.测试.实现等都是以系统用例为主要输入工件,用例模型奠定了整个系统软件开发的基础. 1. 什么是用例? 在介始用例方法之