UML系列——状态机图statechart diagram

原文地址: https://www.cnblogs.com/wolf-sun/p/3443964.html

系列文章

UML系列——用例图Use Case
UML系列——用例图中的各种关系(include、extend)
UML系列——类图Class
UML系列——类图class的关联关系(聚合、组合)
UML系列——类图class的依赖关系
UML系列——类图class的泛化关系
UML系列——类图class的实现关系Realization
UML系列——包图Package
UML系列——活动图activity diagram
UML系列——时序图(顺序图)sequence diagram
UML系列——协作图(通信图)collaboration diagram

引言

状态机图和顺序图、通信图有哪些区别?

1.png

顺序图、通信图:描述多个对象间的交互

状态机图:描述单个对象的状态及引起状态变化的原因

实例分析:大学生学籍管理系统

按国家招生规定录取的新生,持录取通知书,按学校有关要求和规定的期限到校办理入学手续。因故不能按期入学者,应当向学校请假,假期一般不得超过2周。未请假、请假未准或者请假逾期者,除因不可抗力等正当事由意外,视为放弃入学资格。

新生入学后,学校在三个月内按照国家招生规定对其进行复查。复查合格者予以注册,取得学籍。复查不合格者,学校区别情况予以处理,直至取消入学资格。

......

学生有如下情况之一者,应予休学:

(一)因伤病经学校指定医院诊断,须停课治疗、休养一学期1/3时间;
(二)一学期请假缺课超过该学期总学时的1/3;
(三)传染性肝炎、肺结核等传染性疾病;
(四)因某种特殊原因,学校认为必须休学。

.....

学生休学至少一学期,一般以一年为限。学生复学后,休学之前已记入成绩档案的考核成绩继续有效,并作为学籍处理依据.

学生复学按下列规定办理:
(一)学生因伤病休学申请复学时,须持有二级甲等以上医院诊断书,证明身体健康,并经学校指定医院复查合格,方可复学;
(二)学生休学期满后应于学期的注册期内持有关证明,经教务处核准后编入原专业相应班级选课学习;

........

学生有下列情况之一者,应予退学:
(一)学生在读期间,3次出现在一学期中取得的课程学分不足10学分(不含重修和补考学分;毕业学期除外;第一次提出警告,第二次提出退学警告,由教务处公布名单,院系负责通知学生家长);
(二)休学、保留学籍期满,在规定期限内不办理复学手续;
(三)休学累计满二年,经复查不合格;
(四)因伤病需要休学,经学校动员后仍不办理休学手续;
(五)经学校指定医院确诊患有疾病,或意外伤残无法继续在校学习;
(六)未请假离校连续2周末参加学校规定的教学活动;
(七) 超过学校规定期限未注册而又无正当事由;
(八)本人要求退学。

学生在规定的学习年限(4年制3~6年,5年制4~7年)内修完本专业培养计划规定的全部教学环节,取得注册专业规定的毕业学分,准予毕业,发给毕业证书。

用状态机图描述如下:

2.png

结论

部分对象的行为与其所处的状态相关。通过分析对象的状态及引起状态转变的原因,有利于寻找对象所处类的操作。

状态机图的作用:寻找类的操作。

状态机图的概念

一、状态机图的定义

状态机图描述了一个对象在生命周期内所经历的各种状态,以及引起状态变化的事件。

二、状态、事件、动作

3.png

1、状态

状态指对象的生命周期中满足某些条件、执行某些活动或等待某些事件时的状况或情况。

人:青年、中年、老年

电话机:通话、闲置

注意:状态本质上就是对象属性的值,状态的变化就是属性值的变化。

在由对象的全部属性值集合所构成的笛卡尔积中,尽管每一个元素均可广义地称为对象的一个状态,但软件开发者需要认识的是这个笛卡尔积上的每一个等价集合,即使对象的操作呈现相同行为规则的属性值的集合。把每一个等价集称为对象的一红状态。

2、事件

引起状态变化的事情。状态的转移是由事件触发的。

1.png

3、动作的概念

动作说明了当事件发生时发生了什么行为。动作可由对象的操作和属性构成。

2.png

状态机图的符号

一、状态

3.png

状态还可以添加活动。活动是在该状态时要执行的动作。

活动的格式如下:[Entry|exit|do]/动作

4.png

活动有三个标准事件:

entry事件:进入该状态时的特定动作(入口动作)。

exit事件:退出该状态时的特定动作(出口动作)。

二、转移

转移描述对象在两种状态间的转变。当某个特定事件发生并且满足特定的条件,对象操作特定的动作,进入另一个状态。

源状态
目标状态
触发事件

8.png

监护条件
动作

5.png

事件与动作

事件要求对象做某件事情,这个事情被称为动作。动作改变了对象属性的值,导致对象的状态发生变化。

事件与动作既可用于转移中,也可用于单独的状态中。

事件与动作出现的两个位置

6.png

一、事件

1、调用事件

调用事件代表对一个对象的操作的调用。


7.png

2、变化事件

变化事件是状态中一个变化或某些条件满足时的事件。使用when标识,其格式为:

when(逻辑表达式)/动作


8.png

3、时间事件

时间事件是经过一定的时间或者到达某个时间后发生的事件。时间事件使用after标识,其格式为:

after(时间表达式)/动作

at(时间表达式)/动作


9.png

事件实例:时间事件

1.png

状态机图
2.png

二、动作

1、动作的概念

动作说明了当事件发生时发生了什么行为。动作由对象的操作和属性组成。

3.png

2、基本动作类型

(1)entry(入口动作)

进入状态时最先执行的特定动作,不带条件与参数。格式为:entry/动作

(2)exit(出口动作)

退出该状态时最后执行的特定动作,不带条件与参数。格式为:exit/动作

公用电话的状态机图:

4.png

(3)do(内部活动)

用来指定处于某种状态时发生的动作。在入口事件之后,出口事件之前执行的特定动作。

格式为:do/动作

5.png

6.png

如果内部活动正在进行,有一个转移被触发,此时内部活动会被终止,然后执行活动的出口动作。入口动作和户口动作是不可终止的。

组成状态

7.png

8.png

简单状态:A
组成状态:B
子状态: C D


9.png

为什么会出现子状态?

1.png

对象a的全部状态由属性x、y的取值的排列组合形成。

但有时当x取一个值xk时,y的任何取值都没有意义。

2.png

3.png

一、顺序子状态

如果一个组成状态的子状态对应的对象在其生命周期内的任何时刻都只能处于一个子状态,也就是说子状态机图中多个状态是互斥的,不能同时存在,这种子状态被称为顺序子状态或叫互斥子状态。在顺序子状态中最多只能有一个初态和一个终态。

5.png

二、并发子状态

有时组成状态有两个或多个并发的子状态,此时称组成状态的子状态为并发子状态。并发子状态能说明很多事发生在同一个时刻,为了分离不同的活动,组成状态被分解成区域,每个区域都包含一个不同的状态机图,各个状态机图在同一时刻分别运行。


6.png

前进和低速 前进和高速

后退和低速 后退和高速

实例分析:主体工程施工和水电工程施工

7.png

三、历史状态

有时,当离开一个嵌套状态后,又需要重新进入该嵌套状态,但希望直接进入到上次离开嵌套状态时的最后一个子状态,而不想从该子状态机图的初始状态进入。

历史状态,是一种历史指示器,它允许组成状态记住从该组成状态发出的转移触发之前的最后一个子状态。

实例分析:播放器中“继续播放上次未完成的列表”功能

8.png

9.png

1.png

总结

UML中最常见的图就介绍到这里。通过本系列的学习,希望能帮到你。总之,分享是快乐的......

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容

  • 我们在进行项目的时候,通过使用 UML 的面向对象图的方式来更明确、清晰的表达项目中的架设思想、项目结构、执行顺序...
    充满活力的早晨阅读 4,894评论 2 34
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 10,857评论 6 13
  • 于丹老师用一句谚语来描述生活:山坡上开满了鲜花,在牛羊的眼中,它只是饲料。 有的时候我们能够看见鲜花,但是当一个人...
    心理咨询师丹华阅读 346评论 1 1
  • 半个月后,我和老孟互相以各自的新楼房做抵押担保,分别借到宝贵的十万元资金。这事我没有跟合伙人孙院长说,上一次因为理...
    斜哥观点阅读 292评论 0 1
  • 今天复查的血结果正常,算是个好消息吧!又平安度过一天,话说今天的天气也不错哦,比较凉快。旁床又换人了,引产的妹妹走...
    等等麻阅读 233评论 0 0