1、p类图的结构由哪三个部分组成?类图的结构由哪三个部分组成?p类图之间有哪些关系?类图之间有哪些关系?13:051回顾回顾I.能够理解状态图对系统交互建模能够理解状态图对系统交互建模II.能够根据实体处于不同的状态建模能够根据实体处于不同的状态建模13:053能力目标能力目标13:054目录目录建立状态图的步骤4.状态图的组成3.实体的状态2.状态图概述1.13:055状态机状态机Statechart用于描述一个对象在其生存期间的用于描述一个对象在其生存期间的动态行为,表现对象响应事件所经动态行为,表现对象响应事件所经历的状态序列以及伴随的动作。历的状态序列以及伴随的动作。状态机是用于描述状态与
2、状态转换状态机是用于描述状态与状态转换的。的。13:0561 概述概述状态图主要用于描述一个对象在其生存期状态图主要用于描述一个对象在其生存期间的动态行为,表现一个对象所经历的状间的动态行为,表现一个对象所经历的状态序列,引起状态转移的事件态序列,引起状态转移的事件(event),以及因状态转移而伴随的动作以及因状态转移而伴随的动作(action)。一个状态机可以被一个状态图描述,对于一个状态机可以被一个状态图描述,对于一个比较复杂的状态机,也可用多张状态一个比较复杂的状态机,也可用多张状态图来表示。图来表示。状态图状态图(Statechart Diagram)13:057p先举个栗子:先举个
3、栗子:13:058p状态是指在对象的生命期中满足某些条件、执行某些活状态是指在对象的生命期中满足某些条件、执行某些活动或等待某些事件时的一个动或等待某些事件时的一个条件或状况条件或状况。n下面一些例子形象地说明了对象和状态。下面一些例子形象地说明了对象和状态。(1)支票(对象)已付(状态)。)支票(对象)已付(状态)。(2)汽车(对象)已启动(状态)。)汽车(对象)已启动(状态)。(3)小王(对象)睡着了(状态)。)小王(对象)睡着了(状态)。(4)小红(对象)未婚(状态)。)小红(对象)未婚(状态)。n对象在任何时候都会处于某种状态中,所有对象都有状态对象在任何时候都会处于某种状态中,所有对
4、象都有状态n对象所处的状态决定了它如何响应所检测到的事件或所接收的消息。对象所处的状态决定了它如何响应所检测到的事件或所接收的消息。清醒(被批清醒(被批评)生气评)生气 醉酒(被批评)无反应醉酒(被批评)无反应n通常,事件使对象从一个状态转向另一个状态(即状态的转换)通常,事件使对象从一个状态转向另一个状态(即状态的转换)13:0592 首先看看什么是状态?首先看看什么是状态?(1)状态)状态 state初态:是状态图的起始点,用实心圆表示,一个状态图只能初态:是状态图的起始点,用实心圆表示,一个状态图只能有一个初态。有一个初态。终态:是状态图的终点,用套有一个小实心圆的空心圆表示,终态:是状
5、态图的终点,用套有一个小实心圆的空心圆表示,一个状态图可以有多个终态,也可以没有终态。一个状态图可以有多个终态,也可以没有终态。中间态:是对象执行某个活动或等待某个事件时所处的具体中间态:是对象执行某个活动或等待某个事件时所处的具体形态,用形态,用3栏圆角矩形框表示,从上至下每一栏分别为栏圆角矩形框表示,从上至下每一栏分别为状态名状态名、状态变量状态变量和和活动活动。13:05103 状态图的组成状态图的组成p活动表示对象处于该状态时系统要执行的事件和动作,活动表示对象处于该状态时系统要执行的事件和动作,分为分为4种基本类型。种基本类型。nentry事件:指定对象进入该状态时发生的动作。事件:
6、指定对象进入该状态时发生的动作。ndo事件:指定对象处于该状态时发生的动作。事件:指定对象处于该状态时发生的动作。nevent事件:指定当特定事件产生时触发的动作。事件:指定当特定事件产生时触发的动作。nexit事件:指定对象退出该状态时发生的动作。事件:指定对象退出该状态时发生的动作。13:0511(2)状态转移)状态转移transition转移是两个状态间的一种关系,表示当一个特定转移是两个状态间的一种关系,表示当一个特定事件事件发生或者发生或者某些条件某些条件得到满足时,一个得到满足时,一个源状态源状态下的对象在完成一定的动作后将发生状态转变,下的对象在完成一定的动作后将发生状态转变,转
7、向另转向另目标状态目标状态。每个转移只允许有一个事件触发,一个事件只允许有一个动作。每个转移只允许有一个事件触发,一个事件只允许有一个动作。是由一种状态到另一种状态的迁移。这种转移由被建模实体内部事件或是由一种状态到另一种状态的迁移。这种转移由被建模实体内部事件或外部事件触发。对一个类来说,转移通常是调用了一个可以引起状态发外部事件触发。对一个类来说,转移通常是调用了一个可以引起状态发生重要变化的操作的结果。生重要变化的操作的结果。13:051213:0513p手机的状态手机的状态p事件是触发状态转移的条件或操作事件是触发状态转移的条件或操作UML中定义了中定义了4种主要种主要事件类型事件类型
8、n消息事件消息事件n调用事件调用事件n时间事件时间事件n变化事件变化事件13:0514(1)选择初始状态和终结状态。)选择初始状态和终结状态。(2)发现对象的各种中间状态。)发现对象的各种中间状态。(3)确定状态间的转移及引起状态转移的事件。)确定状态间的转移及引起状态转移的事件。(4)在各中间态上添加必要的活动。)在各中间态上添加必要的活动。(5)绘制状态图。)绘制状态图。完成教程案例完成教程案例3-4内容内容13:05154 建立状态图的步骤建立状态图的步骤p练习题练习题 1 p以以“学生信息管理系统学生信息管理系统”中的中的学生选课学生选课为例绘制状态图,为例绘制状态图,网上选网上选课模
9、块主要用于实现学生在网上了解并选择自己感兴趣的课程。课模块主要用于实现学生在网上了解并选择自己感兴趣的课程。学生登录后学生登录后可以可以选择不同课程选择不同课程,选课数目是有限的,如选择,选课数目是有限的,如选择6 6门门课程后将不能再选课。如果已选了课程后将不能再选课。如果已选了6 6门课程还要再选课,就必须门课程还要再选课,就必须删除已选的课程。直到这位同学毕业,将其账号删除,则进入终删除已选的课程。直到这位同学毕业,将其账号删除,则进入终止状态。止状态。13:0516p第一步,先标识实体的各种状态,如下所示第一步,先标识实体的各种状态,如下所示5种状态。种状态。n初始状态。初始状态。n终
10、止状态。终止状态。n可选课状态。可选课状态。n不可选课状态。不可选课状态。n账号被删除状态账号被删除状态。13:0517p第二步,标识相关事件并创建状态图,首先需要找出相关的事件第二步,标识相关事件并创建状态图,首先需要找出相关的事件和转换。和转换。n对于学生账号来说,当有新同学入学时,将给新同学创建一个新的账号,对于学生账号来说,当有新同学入学时,将给新同学创建一个新的账号,新同学可以用这个账号去选课。一般来说,选课数目是有限的,如选择新同学可以用这个账号去选课。一般来说,选课数目是有限的,如选择6 6门课程后将不能再选课。如果已选了门课程后将不能再选课。如果已选了6 6门课程还要再选课,就
11、必须删除已门课程还要再选课,就必须删除已选的课程。直到这位同学毕业,将其账号删除,则进入终止状态。这个选的课程。直到这位同学毕业,将其账号删除,则进入终止状态。这个过程中的主要事件有:选课、删除已选课程、删除账号等。过程中的主要事件有:选课、删除已选课程、删除账号等。13:051813:0519答案p练习题练习题 2 p图书馆管理系统中的还书业务的动态行为是由:空闲图书馆管理系统中的还书业务的动态行为是由:空闲(idleidle)、图书查找()、图书查找(findingfinding)、还书()、还书(reversionreversion)、)、失败(失败(FailureFailure)、归还成功()、归还成功(SuccessSuccess)5 5种状态及激活种状态及激活相互转换的事件。请根据分析运用相互转换的事件。请根据分析运用UMLUML绘制还书的状态图。绘制还书的状态图。13:052013:0521