RSS
热门关键字:
当前位置 : 主页>编程开发>软件工程>列表

统一建模语言UML轻松入门之用例

来源:我要研发网 作者: 时间:1970-01-01 点击:



目前,在内地版《神雕侠侣》中,杨过和小龙女有一份不为人知默契与浪漫,那就是他们所绘制并肩小人图。这样小人图,是UML用例图一部分,被称为参与者。
字串7

  2.1 用例与用例图 字串3

  用例是需求分析中最重要概念,需求表征了一个系统设计特性、特征和行为,描述一个系统需求意味着描述了建立在该系统外部事物与系统之间契约,契约上声明了期望系统做什么。 字串2

  需求获取(Requirement Elicitation) 是需求工程主体,其主要工作是建立待开发系统模型,而用例就是用于建立这种模型方法。用例最初由Ivar Jackboson博士提出,后被综合到UML规范之中,成为需求表述标准化体系。前文已经提到,整个RUP流程都是"用例驱动",各种类型开发活动包括项目管理、分析、设计、测试、实现等以用例为主要输入工件,用例模型奠定了整个系统软件开发基础,用例被认作第二代面向对象技术标志,可见其重要性非同一般。 字串2

  我们先来给出一个具体而简单用例图,即"图书管理系统"用例图,如图2.1。在用例图中主要涉及到参与者(又称角色、执行者)、用例以及二者之间通讯关联。

字串4

  图2.1 图书管理系统用例图 字串5

  参与者

字串2

  参与者是与系统、子系统或类发生交互外部用户、进程或其他系统。参与者可以是人、另一个计算机系统或一些可运行进程。在图2.1中,"读者"和"管理员"即为参与者。 字串2

  参与者之间可以存在泛化关系,例如,在图2.1所示图书馆管理系统用例图中,可以认为"读者"是"学生读者"和"教师读者"泛化,而"学生读者"还可以具体化为"本科生读者"和"研究生读者";同样,"图书管理人员"也是"采购员"、"编目员"及"借阅人员"泛化。图2.2表示出了参与者之间泛化关系。 字串2


字串2

  图2.2 参与者泛化关系

字串9

  用例

字串6

  用例是外部可见一个系统功能,这些功能由系统所提供,并通过与参与者之间消息交换来表达。用例用途是在不揭示系统内部构造情况下定义行为序列,它把系统当作一个黑箱,表达整个系统对外部用户可见行为。 字串4

  鉴于用例特点,用例一般被命名为一个能够说明目标动名词组。如图2.1中"借书"、"还书"和"管理图书"皆为动名词组。

字串2

  用例之间也可以存在包含、扩展和泛化等关系:

字串2

  (1)包含关系:用例可以简单地包含其他用例具有行为,并把它所包含用例行为做为自身行为一部分,这被称作包含关系。

字串6

  (2)扩展关系:扩展关系是从扩展用例到基本用例关系,它说明为扩展用例定义行为如何插入到为基本用例定义行为中。它是以隐含形式插入,也就是说,扩展用例并不在基本用例中显示。在以下几种情况下,可使用扩展用例:

字串5

  a.表明用例某一部分是可选系统行为(这样,您就可以将模型中可选行为和必选行为分开);

字串1

  b.表明只在特定条件(如例外条件)下才执行分支流; 字串3

  c.表明可能有一组行为段,其中一个或多个段可以在基本用例中扩展点处插入。所插入行为段和插入顺序取决于在执行基本用例时与主角进行交互。 字串4

  图2.3给出了一个扩展关系例子,在还书过程中,只有在例外条件(读者遗失书籍)情况下,才会执行赔偿遗失书籍分支流。

字串3

  图2.3用例扩展关系

字串5


字串1

  (3)泛化关系:用例可以被特别列举为一个或多个子用例,这被称做用例泛化。当父用例能够被使用时,任何子用例也可以被使用。如在图2.4中,订票是电话订票和网上订票抽象。 字串4

  图2.4用例泛化关系 字串3

  通讯关联 字串6

  通讯关联用于表示参与者和用例之间对应关系,它表示参与者使用了系统中哪些用例(或者说系统所提供用例被哪些参与者使用)。 字串1

  通讯关联以箭头或实线表示。若使用箭头,箭头所指方将是对话被动接受者;如果不强调对话中主动与被动关系,则可以使用不带箭头关联实线。 字串4

  2.2建立用例模型

字串4

  知道了用例与用例图概念,我们还需要懂得怎样建立用例模型,即怎样找出参与者、用例以及定义用例过程。一般来说,建立用例模型步骤为: 字串2

  (1)确定谁会直接使用该系统,即参与者(Actor),为了发现参与者,我们可以尝试问如下问题:

字串2

  a. 谁/什么使用系统?

字串5

  b. 谁/什么从系统获得信息?

字串6

  c. 谁/什么向系统提供信息? 字串6

  d. 谁/什么支持、维护系统?

字串4

  e. 哪些其它系统使用此系统? 字串9

  f. 公司哪个部门使用系统? 字串6

  … 字串9

  (2)选取其中一个参与者; 字串1

  (3)定义该参与者希望系统做什么,参与者希望系统做每件事成为一个用例,为了发现用例,我们可以尝试问如下问题: 字串9

  a. 为什么该参与者想要使用此系统? 字串5

  b. 该参与者是否要创建、保存、更改、移动或读取系统数据?如果是,为什么?

字串9

  c. 该参与者是否要通知系统外部事件或变化?

字串6

  d. 该参与者是否需要知道系统内部特定事件? 字串2

  …

字串9

  (4)对每件事来说,何时参与者会使用系统,通常会发生什么,这就是用例基本过程; 字串3

  (5)描述该用例基本过程; 字串5

  (6)考虑一些可变情况,把他们创建为扩展用例; 字串5

  (7)复审不同用例描述,找出其中相同点,抽出相同点作为共同用例;

字串8


字串2

  (8)重复步骤2-7找出每一个用例。 字串5

  参与者检查参考标准如下:

字串7

  (1)是否您已找到所有参与者?也就是说,是否您已经对系统环境中所有参与者都进行了说明和建模? 字串4

  (2)每个参与者是否至少涉及到一个用例?

字串6

  (3)您能否列出至少两名可以作为特定参与者人员?

字串8

  (4)是否有参与者担任与系统相关相似参与者?如果有,您应该将他们合并到一个参与者中。 字串1

  用例检查参考标准如下:

字串7

  (1)用例模型简介部分简明清晰地概述此系统和功能;

字串5

  (2)所有用例已确定,这些用例共同说明所有必要行为;

字串7

  (3)所有功能性需求都至少映射到一个用例; 字串4

  (4)该用例模型不包含多余行为,所有用例都可回溯到某个功能性需求来证明其合理性。 字串2

  用例图从总体上大致描述了系统所能提供各种服务,让我们对于系统功能有一个总体认识,仅此还是不够,我们还需要描述每一个用例详细信息,即用例规约。用例模型正是由用例图和每一个用例详细描述――用例规约所组成。RUP中提供了用例规约模板,包含以下内容: 字串3

  (1)简要说明 (Brief Description):简要介绍该用例作用和目字串5

  (2)事件流 (Flow of Event):包括基本流和备选流,事件流应该表示出所有场景; 字串7

  (3)用例场景 (Use-Case Scenario) :包括成功场景和失败场景,场景主要是由基本流和备选流组合而成

字串7

  (4)特殊需求 (Special Requirement)

最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
相关文章