统一建模语言UML轻松入门之用例.doc_第1页
统一建模语言UML轻松入门之用例.doc_第2页
统一建模语言UML轻松入门之用例.doc_第3页
统一建模语言UML轻松入门之用例.doc_第4页
统一建模语言UML轻松入门之用例.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

统一建模语言UML轻松入门之用例作者:宋宝华 出处:天极开发目前,在的内地版神雕侠侣中,杨过和小龙女有一份不为人知的默契与浪漫,那就是他们所绘制的并肩小人图。这样的小人图,是UML用例图的一部分,被称为参与者。 2.1 用例与用例图用例是需求分析中最重要的概念,需求表征了一个系统的设计特性、特征和行为,描述一个系统的需求意味着描述了建立在该系统外部的事物与系统之间的契约,契约上声明了期望系统做什么。需求获取(Requirement Elicitation) 是需求工程的主体,其主要工作是建立待开发系统的模型,而用例就是用于建立这种模型的良好方法。用例最初由Ivar Jackboson博士提出,后被综合到UML规范之中,成为需求表述的标准化体系。前文已经提到,整个RUP流程都是用例驱动的,各种类型的开发活动包括项目管理、分析、设计、测试、实现等以用例为主要输入工件,用例模型奠定了整个系统软件开发的基础,用例被认作第二代面向对象技术的标志,可见其重要性非同一般。我们先来给出一个具体而简单的用例图,即图书管理系统用例图,如图2.1。在用例图中主要涉及到参与者(又称角色、执行者)、用例以及二者之间的通讯关联。 图2.1 图书管理系统用例图 参与者参与者是与系统、子系统或类发生交互的外部用户、进程或其他系统。参与者可以是人、另一个计算机系统或一些可运行的进程。在图2.1中,读者和管理员即为参与者。参与者之间可以存在泛化关系,例如,在图2.1所示图书馆管理系统用例图中,可以认为读者是学生读者和教师读者的泛化,而学生读者还可以具体化为本科生读者和研究生读者;同样,图书管理人员也是采购员、编目员及借阅人员的泛化。图2.2表示出了参与者之间的泛化关系。 图2.2 参与者泛化关系 用例用例是外部可见的一个系统功能,这些功能由系统所提供,并通过与参与者之间消息的交换来表达。用例的用途是在不揭示系统内部构造的情况下定义行为序列,它把系统当作一个黑箱,表达整个系统对外部用户可见的行为。 鉴于用例的特点,用例一般被命名为一个能够说明目标的动名词组。如图2.1中的借书、还书和管理图书皆为动名词组。用例之间也可以存在包含、扩展和泛化等关系:(1)包含关系:用例可以简单地包含其他用例具有的行为,并把它所包含的用例行为做为自身行为的一部分,这被称作包含关系。(2)扩展关系:扩展关系是从扩展用例到基本用例的关系,它说明为扩展用例定义的行为如何插入到为基本用例定义的行为中。它是以隐含形式插入的,也就是说,扩展用例并不在基本用例中显示。在以下几种情况下,可使用扩展用例:a.表明用例的某一部分是可选的系统行为(这样,您就可以将模型中的可选行为和必选行为分开);b.表明只在特定条件(如例外条件)下才执行的分支流; c.表明可能有一组行为段,其中的一个或多个段可以在基本用例中的扩展点处插入。所插入的行为段和插入的顺序取决于在执行基本用例时与主角进行的交互。图2.3给出了一个扩展关系的例子,在还书的过程中,只有在例外条件(读者遗失书籍)的情况下,才会执行赔偿遗失书籍的分支流。图2.3用例扩展关系 (3)泛化关系:用例可以被特别列举为一个或多个子用例,这被称做用例泛化。当父用例能够被使用时,任何子用例也可以被使用。如在图2.4中,订票是电话订票和网上订票的抽象。图2.4用例泛化关系通讯关联通讯关联用于表示参与者和用例之间的对应关系,它表示参与者使用了系统中的哪些用例(或者说系统所提供的用例被哪些参与者使用)。通讯关联以箭头或实线表示。若使用箭头,箭头所指方将是对话的被动接受者;如果不强调对话中的主动与被动关系,则可以使用不带箭头的关联实线。2.2建立用例模型知道了用例与用例图的概念,我们还需要懂得怎样建立用例模型,即怎样找出参与者、用例以及定义用例的过程。一般来说,建立用例模型的步骤为: (1)确定谁会直接使用该系统,即参与者(Actor),为了发现参与者,我们可以尝试问如下问题:a. 谁/什么使用系统?b. 谁/什么从系统获得信息?c. 谁/什么向系统提供信息?d. 谁/什么支持、维护系统?e. 哪些其它系统使用此系统?f. 公司的哪个部门使用系统?(2)选取其中一个参与者;(3)定义该参与者希望系统做什么,参与者希望系统做的每件事成为一个用例,为了发现用例,我们可以尝试问如下问题:a. 为什么该参与者想要使用此系统?b. 该参与者是否要创建、保存、更改、移动或读取系统的数据?如果是,为什么?c. 该参与者是否要通知系统外部事件或变化?d. 该参与者是否需要知道系统内部的特定事件?(4)对每件事来说,何时参与者会使用系统,通常会发生什么,这就是用例的基本过程;(5)描述该用例的基本过程;(6)考虑一些可变情况,把他们创建为扩展用例;(7)复审不同用例的描述,找出其中的相同点,抽出相同点作为共同的用例;(8)重复步骤2-7找出每一个用例。参与者检查的参考标准如下:(1)是否您已找到所有的参与者?也就是说,是否您已经对系统环境中的所有参与者都进行了说明和建模? (2)每个参与者是否至少涉及到一个用例?(3)您能否列出至少两名可以作为特定参与者的人员?(4)是否有参与者担任与系统相关的相似参与者?如果有,您应该将他们合并到一个参与者中。用例检查的参考标准如下:(1)用例模型的简介部分简明清晰地概述此系统的目的和功能;(2)所有的用例已确定,这些用例共同说明所有的必要行为;(3)所有的功能性需求都至少映射到一个用例;(4)该用例模型不包含多余的行为,所有的用例都可回溯到某个功能性需求来证明其合理性。用例图从总体上大致描述了系统所能提供的各种服务,让我们对于系统的功能有一个总体的认识,仅此还是不够的,我们还需要描述每一个用例的详细信息,即用例规约。用例模型正是由用例图和每一个用例的详细描述用例规约所组成的。RUP中提供了用例规约的模板,包含以下内容:(1)简要说明 (Brief Description):简要介绍该用例的作用和目的;(2)事件流 (Flow of Event):包括基本流和备选流,事件流应该表示出所有的场景;(3)用例场景 (Use-Case Scenario) :包括成功场景和失败场景,场景主要是由基本流和备选流组合而成的;(4)特殊需求 (Special Requirement):描述与该用例相关的非功能性需求(包括性能、可靠性、可用性和可扩展性等)和设计约束(所使用的操作系统、开发工具等);(5)前置条件 (Pre-Condition):执行用例之前系统必须所处的状态;(6)后置条件 (Post-Condition):用例执行完毕后系统可能处于的一组状态。 用例规约基本上是用文本方式来表述的,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论