《RationalRose用例图及其应用.ppt》由会员分享,可在线阅读,更多相关《RationalRose用例图及其应用.ppt(52页珍藏版)》请在三一办公上搜索。
1、用例图及其应用,1,内 容,基本概念 关系及其应用 参与者规范及应用用例规范及应用 用例视图,2,画好用例图(Use Case Diagrams)是由软件需求到最终实现的第一步,在UML中用例图用于对系统、子系统或类的行为的可视化,以便使系统的用户更容易理解这些元素的用途,也便利了软件开发人员最终实现这些元素。用例是能够帮助分析员和用户确定系统使用情况的UML组件。一组用例就是从用户的角度出发对如何使用系统的描述。,一、用例图概述,3,UML中的用例图描述了一组用例、参与者以及它们之间的关系。用例图包括以下3方面内容。(1)用例(Use Case)(2)参与者(Actor)(3)依赖、泛化以及
2、关联关系,4,1 基本概念,1.1 参与者定义是直接与系统相互作用的系统、子系统或类的外部实体的抽象。它是用户所扮演的角色,是系统的用户。每个参与者定义了一个角色集合。通常,一个参与者可以代表一个人、一个计算机子系统、硬件设备或者时间等角色。典型的参与者如销售部经理、销售员和结帐系统。图形表示用小人图符表示,1 基本概念,5,1.1 参与者 参与者的识别谁将使用系统的主要功能?谁将需要系统的支持来完成他们的日常任务?谁必须维护、管理和确保系统正常工作?谁将给系统提供信息、使用信息和删除信息?系统需要处理哪些硬件设备?系统使用了外部资源吗?系统需要与其他什么系统交互吗?谁或者什么对系统产生的结果
3、感兴趣?一个人同时使用几种不同的规则吗?几个人使用相同的规则吗?系统使用遗留下来的应用吗?,1 基本概念,6,1 基本概念,1.2 用例定义对一组动作序列的描述,系统通过执行这一组动作序列为参与者产生一个可观察的结果用例特征说明了系统具有的一种行为模式 说明了一个参与者与系统执行的一个相关的事务序列提供了一种获取系统需求的方法 提供了一种与最终的用户和领域专家进行沟通的方法 提供了一种测试系统的方法图形表示用椭圆形表示,用例的名字显示在图标的下面,7,1.2 用例 用例识别 参与者要向系统请求什么功能?每个参与者的特定任务是什么?参与者需要读取、创建、撤消、修改、或存储系统的某些信息吗?是否任
4、何一个参与者都要向系统通知有关突发性的、外部的改变?或者必须通知参与者关于系统中的发生的事件?这些事件代表了哪些功能?系统需要哪些输入/输出?这些输入输出来自哪里或者到哪里去?哪些用例支持或维护系统?是否所有功能需求都被用例使用了?系统当前实现的主要问题是什么?,1 基本概念,8,1.3 事件流 事件流是用例完成需求行为的事件描述。事件流的目的是建立用例中逻辑流程的文档,详细描述系统用户的工作和系统本身的工作,既包括正常状态下系统完成需求行为的事件,也包括在其他状态下不能完成需求行为的事件。事件流通常包括:简要说明 前置条件 事件流 后置条件,1 基本概念,9,1.4 用例模型 一个用例模型由
5、一个或者多个用例图和所有的支持文件(诸如用例规范和参与者定义等)所构成。用例规范是大多数用例模型的产物,而用例图充当将需求模型综合在一起的粘胶剂。用例模型应当从项目投资者的角度进行开发,而不是从开发者的(通常是技术)观点去开发。,1 基本概念,10,关系反应了参与者和用例之间、用例和用例之间以及参与者和参与者之间的相互作用。在一个用例图中,可能会出现关联关系、依赖关系、泛化关系以及这三种关系的扩展形式:扩展关系、包含关系和精化关系。,2 关系及其应用,11,2.1 关联关系 关联关系表示一种通信路径,它存在于参与者和用例之间,提供用例和参与者之间的通信途径。建立通信之后,信息可以双向流动。关系
6、方向显示的不是信息的流动方向,而是谁启动信息。,2 关系及其应用,12,2 关系及其应用,2.1 关联关系表示工具箱中:一个直角直线模型图中:一条直线或者一条带箭头的直线关联命名一个动词或者一个动词短语,用于指明关系的类型或者目的。,关联关系表示通信途径,13,2.1 关联关系在用例图中,通常存在两种类型的关联:单向关联 双向关联 Actor1 与 UseCase1Actor2 与 UseCase1,2 关系及其应用,14,2.2 依赖关系定义存在于两个模型要素之间的一种关系,其中一个模型要素的改变将影响另一个模型要素 表示方法工具箱和模型图中均表示为一个带箭头的虚线 画图时,拖动鼠标从客户到
7、提供者画出关联关系,2 关系及其应用,15,2.3 泛化关系定义在一个更一般的模型要素和另一个较具体的模型要素之间存在的一种关系,通常用于表示类(包括用例、参与者等)之间的继承关系 表示方法工具箱中:模型图中:一条带空心三角形箭头的实线(箭头方向从具体用例指向一般用例),2 关系及其应用,16,2.3 泛化关系 用例之间的泛化关系 参与者之间的泛化关系,2 关系及其应用,17,泛化:在用例继承中,子用例可以从父用例继承行为和含义,还可以增加自己的行为。任何父用例出现的地方子用例也可以出现。,18,如果一台饮料销售机建模,这台销售机允许顾客选择买一罐饮料或者买一杯饮料。Buy Soda就是一个父
8、用例 Buy a can of Soda 和Buy a cup of Soda就是子用例。用例间的泛化关系和类间的泛化关系表示方法相同。,19,参与者之间也像用例一样可能存在泛化关系。供应代理(supplier agent)供货代表(Restocker)收款人(Collector),20,2 关系及其应用,2.4 关系的扩展1)扩展关系 扩展关系可以放置在所有的关系上,大多数扩展构造型都放置在依赖关系和关联关系上扩展关系用带箭头的虚线表示,沿线上加一个用双尖括号括起来的“extend”,21,2 关系及其应用,2.4 关系的扩展 包含关系是一种构造型关系,它将一个基用例连接到一个包含用例UML
9、1.1中为使用关系,在1.3中改为包含关系包含关系在一个用例中重用另一个用例中的步骤 包含关系用带箭头的虚线表示,沿线上加一个用双尖括号括起来的“include”,22,包含关系:用例间的包含关系使用虚线+箭头表示,并加入构造型include,23,2.4 关系的扩展 使用包含关系的三种情况:a.如果有多个用例,并且这些用例包含大量类似的行为,应该考虑将这些类似的行为通过包含关系包含到用例中 b.对两个或多个互相独立的用例建模时做了重复的工作,可以通过包含关系包含这些重复的工作 c.如果某个行为可能会引入冗余,或者,当行为发生变化时可能导致不一致性,这时,应该对这种行为进行孤立建模并将它包含到
10、用例中,2 关系及其应用,24,2.4 关系的扩展 包含关系举例,2 关系及其应用,25,26,2.4 关系的扩展 精化关系精化关系在不同的语义层或者开发阶段连接两个或者多个模型要素。它表示了某些在一个特定的细节层次上规定的东西的更加全面的规格说明。例如,一个设计类就是一个分析类的一种精化。在一个精化关系中,源模型要素是一般的,在定义上更加概括;而目标模型要素更加具体并得到了进一步的精化。,2 关系及其应用,27,28,总结:用例模型的表示法,用例是参与者发起的,参与者(也许是发起者,但不是必须的)能够从用例的执行中获得有价值的事物。用例分析的优点在于它能够展现出系统和外部世界之间的边界。参与
11、者是典型的系统外部实体,而用例是典型地属于系统内部。参与者,用例和互连线共同组成了用例模型(use case model),29,每个用例是一组场景的集合,而每个场景又是一个步骤序列。用例图的场景的文档,每个用例中的场景描述通常要描述下列的内容:发起用例的参与者,用例的假设条件,用例中的前置条件,场景中的步骤,场景完成后的后置条件,从用例中获益的参与者。,30,分组:在一些用例中,用例的数目可能非常多,这个就需要组织这些用例。这种情况在一个系统包含很多个子系统时就会出现。还可以把相关的用例放在一个包中,31,在建模参与者过程中,注意:,1、参与者对于系统而言总是外部的,因此它们在你的控制之外。
12、2、参与者直接同系统交互,这可以帮助定义系统边界3、参与者表示人和事物与系统发生交互时所扮演的角色,而不是特定的人或者特定的事物。4、一个人或者事物在与系统发生交互的时候,可以同时或者不同时扮演多个角色。5、每一个参与者需要有一个具有业务一样的名字。6、每个参与者必须有简短的描述,从业务角度描述参与者是什么。7、像类一样,参与者可以具有分栏,表示参与者属性和他可以接受的事件。,32,识别用例 识别用例最好的办法就是从分析系统的参与者开始,考虑每个参与者是怎样使用系统。使用这种策略的过程中可能会找出一个新的参与者,这对完善整个系统建模很有帮助。在识别用例的过程中,通过以下的几个问题可以帮助识别用
13、例:(1)特定参与者希望系统提供什么功能?(2)系统是否存储和检索信息?如果是,这个行为由哪个参与者触发?(3)当系统改变状态时,通知参与者吗?(4)存在影响系统的外部事件吗?(5)是哪个参与者通知系统这些事件?,33,用例与事件流 用例分析是处于系统的需求分析阶段,这个阶段应该尽量的避免去考虑系统实现的细节问题。也就是说,用例描述的是一个系统做什么,而不是怎么做。可以通过一个清晰的,易被用户理解的事件流来说明一个用例的行为。这个事件流包括用例何时开始和结束,用例何时和参与者交互,什么对象被交互以及该行为的基本流和可选流。,34,四、用例图建模技术,对语境建模 对系统语境建模可以参考如下方法。
14、(1)得出需要从系统中得到帮助的组;执行系统功能必须的组;与外界进行交互的组;执某些辅助功能的组,并由此来识别系统外部的参与者。(2)将类似的参与者组织成泛化的关系中。(3)如需加深理解,可以为参与者提供构造型。(4)说明用例图中参与者和用例间的通信路径。,35,对需求建模 软件需求就是根据用户对产品的功能的期望,提出产品外部功能的描述。需求分析师的工作是获取系统的需求,归纳系统所要实现的功能,使最终的软件产品最大限度的贴近用户的要求。对系统功能建模可以参考如下方法:(1)识别系统外部的参与者,从而建立系统的语境。(2)考虑每一个参与者期望的行为或需要系统提供的行为。(3)把公共行为命名为用例
15、。(4)确定供其他用例使用的用例和扩展其他用例的用例。(5)在用例图中对这些用例、参与者和它们间的关系建模。(6)用描述非功能需求的注释修饰用例图。,36,37,3.1 参与者规范 Rose在实现中对参与者和类使用相同的规范窗口,包括如下一些标签:General DetailOperationsAttributesRelationsComponentsNestedFiles,3 参与者规范及应用,38,3 参与者规范及应用,3.1 参与者规范 General标签NameStereotypeDocumentation,39,3 参与者规范及应用,3.1 参与者规范 Detail标签Multipl
16、icity(参与者基数)Abstract(抽象参与者),40,3 参与者规范及应用,3.1 参与者规范 Relations标签列出了参与者参与的所有关系。包括参与者与用例、参与者与其他参与者的一切关系,41,3.2 参与者的操作 1)增加参与者 2)删除参与者,3 参与者规范及应用,42,4.1 用例规范 General标签Diagrams标签Relations标签Files标签,4 用例规范及应用,43,4 用例规范及应用,4.1 用例规范General标签NamePackageStereotypeRankAbstractDocumentation,44,4.1 用例规范 Diagrams标
17、签用例所拥有的模型图的信息,其中第一列(没有标题)显示模型图的图标,第二列(Title)显示图的名称,4 用例规范及应用,45,4 用例规范及应用,4.1 用例规范 Relations标签用例与其他用例或参与者之间存在的所有关联关系,46,4 用例规范及应用,4.1 用例规范 Files标签,47,4.2 用例的操作 增加用例 将新的用例加入用例图 将现有的用例加入用例图 删除用例仅仅从一个用例图中删除一个用例 从整个模型中删除用例 添加文件和链接URL,4 用例规范及应用,48,5 用例视图,用例图包含的内容用例参与者用例与参与者之间的通信关系用例之间的包含和扩展关系参与者的泛化关系用例图用例实现顺序图协作图,49,5.1 用例图操作创建新的用例图打开已有的用例图删除用例图链接用例图重命名用例图,5 用例视图,50,5.1 用例图工作箱 常用工具10个按钮 定制工具箱,5 用例视图,51,练习与作业,练习:学习教材的实例作业:阅读教学管理系统的系统需求说明文档,然后绘制相关的Use case图提交:testing_,52,