吉林大学UML学习思维笔记第五章Use-Case Modeling

吉林大学UML学习思维笔记

Use-Case Modeling

  1. Objectives
    描述系统行为,并展示如何在模型中捕获它。
    演示如何阅读和解释:
    用例图
    活动图
  2. What Is System Behavior?
    系统行为是系统的行为和反应方式。
    它包括系统的动作和活动。
    在用例中捕获系统行为。
    用例描述了系统与其环境(部分)之间的交互。
  3. What Is a Use-Case Model?
    根据用例描述系统功能需求的模型。
    系统预期功能(用例)及其环境(参与者)的模型。
  4. What Are the Benefits of a Use-Case Model?
    通信
    标识
    验证
  5. Major Concepts in Use-Case Modeling
    参与者表示与系统交互的任何事物。
    用例描述了由系统执行的一系列事件,这些事件对特定参与者产生了可观察的有价值的结果。
  6. What Is an Actor?
    参与者代表系统用户可以扮演的角色。
    它们可以代表人、机器或其他系统。
    他们可以主动与系统交换信息。
    他们可以提供信息。
    他们可能是信息的被动接受者。
    演员不是系统的一部分。
    演员是外部的。
  7. What Is a Use Case?
    定义一组用例实例,其中每个实例都是系统执行的一系列操作,这些操作会为特定参与者产生可观察的结果。
    用例为一个或多个参与者与系统之间的对话建模用例描述了系统为向参与者提供有价值的东西而采取的行动
  8. Use Cases and Actors
    用例为参与者和系统之间的对话建模。
    用例由参与者发起以调用系统中的特定功能。
  9. 简介
    Use Case图主要用于描述系统和外部环境的关系。
    Use Case:对系统提供的功能的一种描述。(A use case describes behavior that the system exhibits to benefit one or more actors.)
    Actor:是可能使用这些Use Case的人或外部系统。(Actors are roles adopted by things that interact directly with system. A role is like a hat that something wears in a particular context.)
    系统边界:Use Case在内,Actor在外;
    用例之间的关系:《extend》《include》Generalization
  10. 示例
    Actor与Use Case间的连线称为通信关联,表示Actor与相应Use Case的交互。
    无论有无箭头,通信关联都表示双向会话,箭头表示Actor触发Use Case。
  11. Use case specification
    确定用例规范的标准用结构化
    英语编写用例
    主要参与者触发用例
    第二参与者不触发用例
    前提条件在用例开始之前约束系统状态
    后条件在用例执行之后约束系统状态
    主流描述用例中的“完美世界”步骤
  12. Modeling the alternative flows
    每个用例都有一个主流,可能有许多备选流。
    替代流通常不会返回到用例主流。
  13. Modeling the alternative flows
    可通过三种不同方式触发备选流程:
    1.可以触发替代流而不是主流。
    2.替代流程可以在主流程中的特定步骤之后被触发。(1.替代流程在主流程的步骤X之后开始。)
    3.替代流程可以在主流程期间的任何时间触发。(1.替代流程随时开始。)如果您希望替代流程返回主流,可以如下表示:
    N、 替代流程返回到主流程的步骤M。
  14. 《extend》Vs. 《Include》
    《extend》的有趣之处在于,基本用例对扩展用例一无所知。它只是为它们提供钩子。事实上,基本用例在没有扩展的情况下是完全完整的。这与《include》非常不同,其中基本用例在没有包含用例的情况下是不完整的。
  15. 作业1:用例建模-题目要求
    完成“旅店管理系统”的系统用例图,注意用例的命名和用例间的关系的使用(10分)
    标识每个参与者和用例(可以考虑以词汇表的形式提供,至少包括名称以及描述)(5分)
    选择一个体现系统核心功能的用例,完成用例规约,如果该用例有“扩展”、“包含”或“泛化”的子用例,则至少还需要写出一个子用例的规约(5分)
  16. 扩展关系的使用
    使用扩展的一个潜在问题是创建过深的扩展依赖层次
    Jacobson博士建议永远不要扩展一个扩展
    对于在描述用例的时候,什么时候用扩展,什么时候用可选路径,Jacobson建议:
    只有当扩展用例与被扩展用例完全分离(即它本身是一个独立的具体用例或者是其他用例需要的一个小片段)时,才使用扩展关系
    基用例自身必须是完整的,它的正确执行不需要扩展。否则,就应该用可选路径来描述附加行为
  17. 包含关系的使用
    包含关系使用不当容易诱使人们进行功能分解,从而导致对用例的误用
    Jacobson说,“事实上,今天一些人误用了用例,把它们用来描述功能(注:指功能分解式的分析)而不是对象,反过来又指责用例概念存在问题”
  18. What Is an Activity Diagram?
    用例模型中的活动图可用于捕获用例中执行的活动和动作。
    它本质上是一个流程图,显示了从一个活动或动作到另一个活动的控制流程。

事件流此用例在注册器请求系统关闭注册时开始。
1.系统检查是否正在注册。如果是,则向注册器显示一条消息,用例终止。如果正在进行注册,则无法执行“关闭注册”处理。
2.对于每一门课程,系统都会检查教授是否已报名授课,并且至少有三名学生注册。如果是,系统将为包含它的每个时间表提交课程。

  1. What Is an Activity?
    一种行为规范,通过下级单元的顺序表示为执行流程。
    下属单位包括嵌套的活动和最终的单独行动。
    调用或退出活动时可能包含布尔表达式约束

活动被标记为活动图。活动定义显示为一个大的圆形边框,其中包含节点符号和表示活动分解为其组成部分的流程箭头的图形。活动前提条件和后置条件分别使用带有关键字<>和<>的注释符号。
动作是一种原始活动,它是可以表达的最小计算。动作是对系统状态进行某些操作或从中提取信息的活动。动作绘制为圆角矩形。操作前提条件和后置条件分别使用带有关键字<>和<>的注释符号。

  1. Activity Diagram
    活动图可能包括以下元素:
    活动/操作表示工作流中某个步骤的性能。
    转换显示随后的活动/操作。
    决策评估由防护条件定义的条件。这些保护条件决定了将进行哪些替代转换,从而决定了执行哪些活动。您还可以使用决策图标显示线程再次合并的位置。决策和保护条件允许您在用例工作流中显示备选线程。
    同步条显示并行子流。它们允许您在用例的工作流中显示并发线程。
  2. 概述
    活动图是UML用于对系统的动态行为建模的另一种常用工具。在UML里,活动图本质上就是流程图,他描述系统活动的顺序,展现从一个活动到另一个活动的控制流。
    活动是某件事情正在进行的状态,既可以是现实生活中正在进行的某一项工作,也可以是软件系统某个类对象的一个操作。
    活动在状态机中表现为一个由一系列动作组成的非原子的执行过程。
    活动图可用于对系统的业务需求、工作流建模,也可以对用例实现甚至是程序实现来建模。
    活动图与状态图都是状态机的表现形式。
  3. 活动图与状态图的区别
    活动图着重表现从一个活动到另一个活动的控制流,是内部处理驱动的流程。
    状态图着重描述从一个状态到另一个状态的流程,主要有外部事件的参与。
  4. 图形表示
    活动节点:是活动图中最主要的元素之一,它用来表示一个活动。在UML中,活动表示成圆角矩形,内部文字说明采取的动作。

转换:当一个活动结束时,控制流就会马上传递给下一个活动节点,在活动图中称之为“转换”,用一条带箭头的直线来表示 。
活动图也有起点和终点,表示法和状态图中相同。用一个实心圆表示初始节点,用一个圆圈内加一个实心圆来表示活动终点。
活动图中还包括分支与合并、分叉与汇合等模型元素

  1. 活动图和流程图的区别
    流程图着重描述处理过程,而活动图着重表现的是系统的行为及活动的顺序关系,而非系统的处理过程。
    活动图能够表示并发活动的情形,而流程图做不到。
    活动图是面向对象的,而流程图是面向过程的。
  2. 活动图的组成元素
    动作状态(Action State)
    活动状态(Activity State)
    动作流(Action Flow)
    分支(Branch)与合并(Merge)
    分叉(Fork)与汇合(Join)
    泳道(Swimlane)
    对象流(Object Flow)
  3. 动作状态
  4. 作状态是指执行原子的、不可中断的动作,并在此动作完成后通过完成转换转向另一个状态的状态。
    动作状态使用圆角矩形表示,动作状态所表示的动作写在圆角矩形内部。

动作状态是原子的,它是构造活动图的最小单位,已经无法分解为更小的部分。
动作状态是不可中断的状态,它一旦开始运行就不能中断,一直运行到结束。
动作状态是瞬时的行为,它所占用的处理时间极短,有时甚至可以忽略。
动作状态可以有入转换,入转换既可以是动作流,也可以是对象流。动作状态至少有一条出转换,这条转换以内部动作的完成为起点,与外部事件无关。
动作状态和状态图中的状态不同,它不能有入口动作和出口动作,更不能有内部转移。
在一张活动图中,动作状态允许多处出现。

  1. 活动状态(Activity State)
    活动状态用于表达状态机中的一个非原子的运行。
    活动状态也使用圆角矩形表示,并可以在图标中给出入口动作和出口动作等信息。

活动状态可以分解成其他子活动或动作状态,由于它可能是一组不可中断的动作或操作的组合,所以可以被中断。
活动状态的内部活动可以用另一个活动图来表示。
和动作状态不同,活动状态可以有入口动作和出口动作,也可以有内部转移。
动作状态是活动状态的一个特例,如果某个活动状态只包括一个动作,那么它就是一个动作状态。

  1. 动作流(Action Flow)
    所有动作状态之间的转换流称之为动作流。
    与状态图的转换相同,活动图的“转换”也用带箭头的直线表示。
    与状态图的转换不同,活动图的“转换”一般都不需要特定事件的触发。一个动作状态执行完本状态需要完成的动作就会自发转换到下一个动作状态。

  2. 分支(Branch)与合并(Merge)
    动作流的条件行为用分支与合并表示。在活动图中分支与合并用空心小菱形表示。
    一个分支有一个入转换和两个带监护条件的出转换,出转换的监护条件应当是互斥的,这样可以保证只有一条出转换能够被触发。
    一个合并有两个入转换和一个出转换,合并表示从对应的分支开始的条件行为的结束。

  3. 分叉(Fork)与汇合(Join)
    在活动图在用分叉和汇合来表达并发和同步行为。
    分叉用于将控制流分为两个或者多个并发运行的分支,而汇合则用于同步这些并发分支,以达到共同完成一项事务的目的。
    分叉可以用来描述并发线程,每个分叉可以有一个输入转换和两个或多个输出转换,每个转换都可以是独立的控制流。
    汇合代表两个或多个并发控制流同步发生,当所有的控制流都达到汇合点后,控制才能继续往下进行。每个汇合可以有两个或多个输入转换和一个输出转换。
    分叉和汇合都使用加粗的水平线段或垂直线段表示,称为同步棒。

  4. 泳道(Swimlane)
    活动图告诉你发生了什么,但没有告诉你该项活动由谁来完成。在程序设计中,这意味着活动图没有描述出各个活动由哪个类来完成。泳道解决了这一问题。
    泳道:用矩形框来表示,属于某个泳道的活动放在该矩形框内,将对象名放在矩形框的顶部,表示泳道中的活动由该对象负责。
    每个活动只能明确地属于一个泳道。
    泳道没有顺序,不同泳道中的活动既可以顺序进行也可以并发进行,动作流和对象流允许穿越分隔线。
    泳道可以提高活动图的可读性,可用于建模某些复杂的活动图。

  5. 对象流(Object Flow)
    对象流是动作状态或者活动状态与对象之间的依赖关系,表示动作使用对象或者动作对对象的影响。
    对象流中的对象特点:
    一个对象可以由多个动作操纵。
    一个动作输出的对象可以作为另一个动作输入的对象。
    在活动图中,同一个对象可以多次出现,它的每一次出现表明该对象正处于对象生存期的不同时间点。

对象流用带有箭头的虚线表示。如果箭头从动作状态出发指向对象,则表示动作对对象施加了一定的影响。施加的影响包括创建、修改和撤销等,该对象是动作的输出。如果箭头从对象指向动作状态,则表示该动作使用对象流所指向的对象,该对象是动作的输入。
活动图中对象用矩形表示,矩形内是该对象的名称,名称下的方括号表示对象此时的状态。

  1. 活动的分解
    一个活动可以分为若干个动作或子活动,这些动作和子活动本身可以组成一个活动图。
    一个包含子活动的活动和嵌套了子状态的组合状态类似,概念上也相对统一。
    一个不含内嵌活动或动作的活动称之为简单活动;一个嵌套了若干活动或动作的活动称之为组合活动,组合活动有自己的名字和相应的子活动图。
  2. 活动图的用途
    活动图用于对系统的动态行为建模。活动图描述了从活动到活动的流。在对一个系统建模时,通常有以下使用活动图的方式:
    (1)分析用例,即用图形化的方式描述用例的事件流;
    (2)为工作流建模
    活动图对理解业务处理过程很有用。可以画出描述业务工作流的活动图与领域专家进行交流,明确业务处理操作是如何进行的,将会有怎样的变化。这些工作甚至在分析用例之前都可以进行。
    (3)为对象的操作建模
    活动图本质上就是流程图,他描述系统的活动、判定点、分支等部分。因此,在UML中,可以把活动图作为流程图来使用,用于对系统的操作建模。
    (4)处理多线程应用。

drawbacks:
活动图的一个主要缺点是动作与对象之间的连接关系不够清晰。
如果表现对象之间的协作关系、理解对象在生命周期的行为时不应使用活动图。

  1. 绘制活动图
    “活动图” 比较直观易懂;与传统的流程图十分的相近,只要能够读懂活动图,就不难画出活动图
    绘制时首先决定是否采用泳道:主要根据活动图中是否要体现出活动的不同实施者
    然后尽量使用分支、分叉和汇合等基本的建模元素来描述活动控制流程
    如果需要,加入对象流以及对象的状态变化。
    活动图的建模关键是表示出控制流,其它的建模元素都是围绕这一宗旨所进行的补充

  2. Review
    什么是系统行为?
    什么是用例模型?它有什么好处?
    什么是演员?用例?
    什么是活动图

你可能感兴趣的:(uml,ppt翻译笔记,uml,学习)