第8章状态图和活动图面向对象分析与设计&UML28.1什么是状态图状态定义为对象行为在某一个时刻的快照或者转折点。例如,计算机的状态可以定义为开机、启动、工作中、空闲、关机和离线等。UML中的状态图(Statechartdiagram)用于描述一个对象在其生存周期间的动态行为,表现一个对象所经历的状态序列,引起状态转移的事件(event),以及因状态转移而伴随的动作(action).状态图在检查、调试和描述类的动态行为时非常有用.面向对象分析与设计&UML38.1什么是状态图状态图除了可以用于描述对象接收事件触发时的行为状态外,它还可以用于许多其他情况。例如,状态图可以用来说明基于用户输入的屏幕状态改变,也可以用来说明复杂用例的状态进展情况。可建模状态图的对象有:•类•用例•子系统•整个系统面向对象分析与设计&UML48.1什么是状态图起始状态终止状态状态事件在状态图中,动作可以与状态有关,也可以与转移有关.-->与状态有关时,对象进行某状态时触发某一动作.-->与转移有关时,对象在不同状态间转移时,触发相应动作.面向对象分析与设计&UML58.1什么是状态图在一般系统中,不需对每个类创建状态图。当一个类实例(对象)有多种状态,每种状态中的行为表现又不相同,则可创建状态图。例如,银行帐户可以有几种不同的状态,可以打开、关闭或透支。在这些不同状态下,帐户的处理功能是不同的。面向对象分析与设计&UML68.1什么是状态图属性拥有较少的可能取值属性在这些值之间的转移有一定的限制状态图描述的对象往往有多个属性,应该在具有如下特性的属性上建模:如:类SellableItem中有2个属性:salePrice和status,其中:salePrice类型为Money,取值范围为正实数;status类型为枚举(Received,InInspection,Accepted,Rejected)则应根据属性status建立状态图.面向对象分析与设计&UML78.2.1状态送货处理状态图面向对象分析与设计&UML88.2状态图的基本概念状态,state组合状态,compositestate子状态,substate历史状态,historystate转移,transition事件,event动作,action面向对象分析与设计&UML98.2.1状态状态是在对象的生命期中的某外条件或状况,在此期间对象将满足某些条件、执行某些活动或等待某些事件.状态的组成部分:状态名、进入/退出动作、内部转移、子状态、延迟事件.状态的类型:初态、终态、中间状态、组合状态、历史状态等.初态终态中间状态面向对象分析与设计&UML108.2.1状态状态名入口动作,进入该状态时执行该动作.动作,处于该状态时执行...