目录

  • 1 教学内容
    • 1.1 导言
    • 1.2 用例图
    • 1.3 对象图
    • 1.4 顺序图
    • 1.5 通讯图
    • 1.6 类图
    • 1.7 状态图
    • 1.8 活动图
    • 1.9 包图
    • 1.10 构件图
    • 1.11 部署图
    • 1.12 面向对象分析的uml模型
    • 1.13 面向对象设计的uml模型
  • 2 教学视频
    • 2.1 OOAD详解
    • 2.2 UML简介
    • 2.3 用例图
    • 2.4 类图1
    • 2.5 类图2
    • 2.6 类图3
    • 2.7 对象图
    • 2.8 组件图
    • 2.9 部署图
    • 2.10 时序图
    • 2.11 协作图
    • 2.12 状态图
    • 2.13 包
    • 2.14 使用UML分析十种设计模式
  • 3 软件设计师考试教程教学视频2
    • 3.1 UML建模前言
    • 3.2 UML图(用例图)
    • 3.3 UML图(类图)
    • 3.4 UML图(顺序图)
    • 3.5 UML图(活动图)
    • 3.6 UML图(状态图)
    • 3.7 UML图(通信图)
    • 3.8 UML案例分析
  • 4 实验
    • 4.1 实验一:用例图设计
    • 4.2 实验二:类图设计
    • 4.3 实验三:活动图设计
    • 4.4 实验四:顺序图设计
    • 4.5 实验五:协作图设计
    • 4.6 实验六:状态图设计
    • 4.7 实验七:物理图设计
  • 5 期末考核
    • 5.1 期末考试要求
  • 6 软件
    • 6.1 startuml
    • 6.2 rose
  • 7 课件
    • 7.1 第一章 导言
    • 7.2 第二章 用例图
    • 7.3 第三章 对象图
    • 7.4 第四章 顺序图
    • 7.5 第五章 通讯图
    • 7.6 第六章 类图
    • 7.7 第七章 状态图
    • 7.8 第八章 活动图
    • 7.9 第九章 包图
    • 7.10 第十章  构件图
    • 7.11 第十一章 部署图
状态图

7.   1    基千状态的对象行为建模

    PPS项目,创建生产划单,计员将根据预可用库存定下的操作如果库存小于最低库存域创建零配件采;否则 ,采购设定计交日期选择都是由库存的状定的再考PPS项目的订单,只审核过才能列入生产计划订单两个状态未审核和已审核订单是否将列入将由其状态决定象既行为又有状,对象的行其状态决定其状态的不同而产生同的行为为了描述对象在状态转变过程中将产生什么行为,需要捕获对象所有可能发生的状态

      仅依靠顺序图或通信图来建立对象的行为模型还不够,还需要全面地分析该对象      所有可能的状态以及从个状态过渡到另个状态的条件UML的状态图 ( State Diagram ) 特别适合为那些行为由其状态决定的对象建模,它 描 述 了 个对象可能处于的各种不同状态以及这些状态之间的转移因此U M L的状态图是有效的基于对象状态的行为建模

 

7.2    状  态  图

 

状态图由状态( S ta te) 和迁移( T ra ns it io n) 组成它的表达方式为

7.3      状态图的表示方法        


   先用个简单的例子说明状态图的关键元素。图 7-1  展示了为 PPS  系统创建用户申请的 状 态图在申请的过 程 中,账 户可能出现 种 状态: 悬而未决状态( pend in g ) 如果账户申请被接受,则 会 处 于接受状态( appro ved ) 如果账户申请被拒绝,则 处千拒绝状态( reje ct ed ) 但是,不 论 此次申请被拒绝或接受,账 户的申请都将完成,处 于完成状态(f i na l izi ng ) 4 种状态最终通过它之间的迁移连接起来

7.3.1          状态

 

状态是对象在它的生命周期中的某一时刻,对象   不仅在这一时刻具有某些特殊条件下产生的状况值 ,而且具有该状态决定的相应的动作或活动UML    用圆角矩形来示状态,其 中 包 含可选的名称,如图 7- 1所示的状态有 pendingapprovedrejected finalizing需 要注意的是 ,在定义状态时只关 注与状态值相关的对象属性,基 于状态建模的目标是将该属性所有可能发的状态和状态之间转换的链接组合在起,    以便 展现对象在该属性不同状态下的行为全貌

 

1.          状态的 种类

    根据状态发生的时间状态组成的复杂性,可简单地对状态进行分类表  7- 1    是状态图中常用的几种状态类型及它们的描述和表示符号

        


        图 7- 2和图 7- 3是两个复合状态的例子7- 2  Check ing  状态有组子状态图,则 Checking 状态图内包含另个状态图;图  7-  3   表示 Checking   状 态有多个子状态图,则用 虚线将 Checking状态图分开


2.    状态内部的活

 

状态的内部活动(InternalActivity) 表示在特定状态下对象可执行的功能个状态可以有若干相关活动,这些活动可以是由状态内部的事件触发的内部活动,也可   能是由迁移的开始或结束自动触发的活动。无论是内部还是外部活动,只有当状态处  千激活时活动才被触发。这些活动可以是操作、属性或者任何触发事件的参数它可能 是产生诸如发送信号或调用某个操作,包括 给另一个对象发送消息、创建和销毁对象等。

       应用标签表示状态的内部活动,个 活动可以采用下面的形式描述,并 放 置在表示状态的圆角矩形中

UML 提供了种标签来表示下列活动开始进入状态时自动触发的活动、内部件触发的活动和状态结束时自动触发的活动分别用下面的标签表示

(1)    entry当进入个状态的时候被自动触发,该活动在状态中其他任何活动之前被自动触发

(2)     do : 当状态处于激活时执行 do活动do活动在进入活动之后执行,并且 运行到它本身完成为止。 

(3)     exit:当 离 个状态的时候被自动触发,该活动在该状态结束之前、所有其他活动都完成后被触发


    图7-4.给出了个带有活动的状态的例子


7.3.1      迁移

 

迁移指从个状态到另个状态的瞬间变化过程。从源状态到目标状态发生 化,就称发生了迁移UM  L 用从源状态到目标状态的带开放式箭头的实线表示迁移,箭头指向目标状态,如图 7-1中各状态间带箭头的线

 

1.引发迁移的事件

 

迁移的发生可能被来自对象内部或外部的各种事件所引发如果某事件的发生引起了对象状态的变,即称 对 象 的 状 态发生了迁移这些可能引发迁移的事件可以进步划分为信 号 事件、变化事件、调用事件、时间事件等

l ) 信号事件

信号事件( S ig na l E ve n t ) 指在实时( R ea l- t i m e ) 系统运行中,对象 接收到个系统外界的信号从而使对象的状态发生迁移的事件例如打开灯时把系统外界压力信号通过开关传入系统,同时系统状态发生由熄灯到亮灯的状态迁移

  1. 2) 变化事件

变化事件( C ha ng e E ve nt ) 指对象的内部或外部条件发生变化而引起的对象状态发生变的事件例如,对象 在实行某个行为时,当 某个条件t r ue ,则 必 须 改变其自身或所关联对象的状态这个布尔条件就是变条件

  1. 3) 时间事件

时间( T  im  e   E  ve nt ) 指对象的状态在绝对时间上或某个时间段内自动发生迁时间事件经常由系统外界设定的时间或系统内部设定的时间段产生,其时间表的    运行可能来源千操作系统,或者是系统应用中的自身  运算例如,个在校学生的有效学生身份状态可能由于学校管理系统的日期变自动变成非学状态

  1. 4) 调用事件

调用( Ca ll E ve nt ) 是指系统之外的其系统通过接口和某种协议直接执行该系统内部的对象行为 从而引 发对象状态的迁移例如,用 办 公 室计算机远程遥控家里的各种电器使电器发状态迁移

 

2.   迁移的 文字标签

 

    为了使迁移线有明确的意义 ,UML       提供了由部分组成的文字标签来解释该迁移的发生事件部分是发、警戒条件和行为文字标签的语法可以 表示为

下面给出标签上各个元素的解释

  1. 1)      tngger

 

trig g e r 表示触发,指明何种条件可以导致迁移发生如图7-5 中的 k e ys t ro k e 就是一个触发

  1. 2)     g uard

g  ua  rd     表示警戒条件指为了让警戒发生而必须为真的布尔表达式。当事件发生,警戒 条 件 就会触发。警戒条件只在事件发生的时候检查一次 条件为真时迁移才触发表达的语义是 如“当… … 的时候事件,如果……(条件),那么 … …(个状态值 得 注意的是,警 戒 条件要么不写如果写,则 只 有条件为真时才会被触发如图7-2 中的 i n put = r eq uired_ l e ng th 表示的就是个警戒条件

注意警戒条件与变事件的区。警戒条件只是在引起转换的触发器件触发时和事件接收者对事件进行处理时被赋值如果它为假那么转换将不会被触,条件 也 不 会被再赋值。而变事件被多次赋值直到条件为真这时转换也会被触发

  1. 2)     behavior

be  ha vio r   指为响应事件而执行的行为,迁移行为指当迁移发生时所执行的个不可中断的活动( A ct i vit y ) 。 如图 7-5 中的 s u bm it inpu t 表示的是个行为

 

7.         4    案 例 分 析

 

下面举一些例子说明状态图的应用

经常用堆栈这数据结构存储对象,图 7- 6 展示了个堆栈类的类图,称 它 为S ta ck

St ac k  类具有的性质包括:它 当前只能检索到最后存储的对象(后进先出),这个过程称为出栈( P opped ) 可以说 S tack  类为空,表示 S tack  类还没有任何对象;它  有个最大值,表 示它最多能存储的对象的个数;它 有个栈顶( T o p) ,用 于 表示下个将被添加的元素的位置。与它对应的状态图如图 7- 7 所示。

 

 7.5  总结

    

      现在应该对状态图的应用目的和描述方法有了了解,状态图最重要的两个元素是   状态和迁移如果需要更深入地研究个对象或系统的状态时无非是在这两个重要 元素的基础上更深入地分解细化状态和迁移事件

  通常状态图用于个对象的多种状态在所有可能的 迁移下的相互转换状态图是把对象的某个属性的状态从 复杂的对象行为中分离出来进行独的考状态图虽然精确地描述了对象在不同状态下的复杂行为但是它仅仅是描述对象的多种状态,这使得在理解对象的所有行为时造成局限性,所以,要确定对象的整体行为必须同时结合顺序图和通信图建模也就是说,状态图更适用于描述一个横跨多个用例对象的行为,而不适千描述包括多个对象间协作的行为。不要试图为系统中  个对象绘制状态图,只些具有复杂状态的对象建立状态图就足够了,它将 助于理解什么正在进行着