UML状态图 几种状态图

目录

1、状态图模型要素

2、 几种类型

2.1初态(start state)

2.2终态 (end state)

2.3 中间状态

2.4组合状态

2.5历史状态(History state)

3、状态图建模步骤

4、几种状态图举例


1、状态图模型要素

        状态图中最关键的模型元素是状态和转移。状态是指在对象的生命周期中满足某些条件、执行某些活动或等待某些事件的条件或状况。有两类特殊的状态:起始状态和终止状态。 一个对象从一个状态改变成另一个状态称为状态转移,在状态图中用带箭头的连线表示。利用工具条中的按钮可以为状态图添加相应的状态和状态转移。

2、 几种类型

2.1初态(start state)

显示状态图中状态机执行( execution )的开始
一个状态机 只能有一个 初态,因为每一个执行都是从相同的地方开始的。如果一个状态机用多张状态图描述,则多张图用一个初态, Rose 中只允许画一个初态,其它地方拖动使用
嵌套状态中可以使用新的初态

2.2终态 (end state

表示最后的或者终端状态;
终态 数目可以不确定,也可以没有。
电扇 坏了 / 没坏,但拆下闲置
音乐,刘德华 / 体育,姚明

2.3 中间状态

中间状态的组成 (除初态终态外,最常见的状态)
状态名( name
是可以把该状态和其他状态区分开的字符串 ; 状态也可能是匿名的,即没有名称。(状语 在上课 灯亮着 门关着)
入口 / 出口动作( entry/exit action
内部转换( internal transition
不导致状态改变的转换,不会执行 entry exit 动作
内部转换和自转换的区别:
前门-入口,后门-出口
不出去,只在内部发生的转换-内部转换
从后门出去,又从前门进来-自转换,自转换会引起 entry exit 动作的执行
子状态( substate
嵌套在另外一个状态中的状态
空调:停止、运行状态,运行状态中可嵌套制冷、制热、除湿等子状态
延迟事件( deferred event
是指在该状态下暂不处理,但将推迟到该对象的另一个状态下排队处理的事件

2.4组合状态

含有子状态的状态被称为组合或嵌套状态

两种表示方法

顺序子状态

如果一个组成状态的子状态对应的对象在其生命期内的任何时刻都只能处于一个子状态,即多个子状态之间是互斥的,不能同时存在,这种子状态称为顺序子状态。
并发子状态
有时组合状态有两个或者多个并发的子状态机,此时称组成状态的子状态为并发子状态。
顺序子状态与并发子状态的区别在于后者在同一层次给出两个或多个顺序子状态,对象处于同一层次中来自每个并发子状态的一个时序状态中。

2.5历史状态(History state)

使用历史状态,可以存储目前退出组合状态时所处的子状态,则返回组合状态时可以直接回到相应的子状态。

3、状态图建模步骤

寻找主要的状态
确定状态之间的转换
细化状态内的活动与转换
用组合 / 嵌套状态来展开细节

4、几种状态图举例

  1. 绘制黑白棋游戏状态图。游戏双方称为黑方和白方白方首先走第一步,然后黑白双方轮流走棋如果有一方不能继续走棋,则另一方获得胜利,游戏结束如果双方同意平局,则游戏结束

 

 

2.绘制进程状态图。操作系统-进程,就绪 运行 阻塞三个状态,初态就绪; 程序运行结束后终态,就绪态获得CPU时间片转为运行态;运行态时间片用完转为就绪态;运行态不满足所需资源转为阻塞态,阻塞态若资源满足则回到就绪态

 

 

3.对用户使用手机拨打电话的过程建立状态模型。手机开机时,处于空闲状态,当用户开始使用电话呼叫某人时,手机进入拨号状态。如果呼叫成功,即电话接通,手机就处于通话状态;如果呼叫不成功,如对方线路问题、关机、拒接等,这时手机停止呼叫,重新进入空闲状态。手机在空闲状态被呼叫。如果用户接听电话,用户处于通话状态;如果用户未做出任何反应,可能他没有听见铃声,手机一直处于空闲状态。

 

 4.绘制CD播放器的状态图。关闭,打开(选曲 播放 暂停 休眠),联机(充电 同步歌曲)

5.图书管理系统状态图的绘制。

6.航班座位预定状态图

 

 

 

<think>好的,用户想了解UML相关的项目或资源,特别是UML项目示例或工程实践。首先,我需要根据提供的引用材料来整理相关信息。 首先,查看用户提供的引用内容。引用[1]提到抖音的UML图描述,包括流程、类图实例分析和时序图介绍。引用[2]是关于UML类图的入门与实战,有类图关系和实际示例。引用[3]提到非正交的UML示例,如框内框的结构。这些引用资源可以作为推荐的基础。 接下来,用户可能需要具体的项目实例和资源链接。我需要确保每个推荐的资源都有对应的引用标识,比如[^1]、[^2]、[^3]。同时,用户可能对如何绘制UML图以及使用的工具感兴趣,比如PlantUML和IDEA插件,这在引用[4]和[5]中有提到。 然后,考虑到用户可能希望学习UML的不同方面,如类图、时序图、用例图等,需要分门别类地推荐资源。例如,抖音的UML流程适合流程分析,类图实例适合对象关系学习,时序图介绍帮助理解交互过程。 此外,工具使用也是一个重点,PlantUML的语法和IDEA插件的安装教程对实际工程实践有帮助,应该包含在内。同时,确保每个推荐的资源都有简要说明,让用户清楚其用途和价值。 最后,生成相关问题时要围绕UML的应用、工具、学习资源等方面提问,帮助用户深入探索。比如如何选择工具、学习路径、实际应用场景等。</think>### UML项目示例与工程实践指南 #### 一、典型项目案例分析 1. **抖音UML流程建模** 通过时序图展示短视频上传审核流程(客户端→服务端→AI审核→数据库),类图描述用户、视频、评论等核心对象关系。该案例完整演示了社交平台核心功能的模块化设计思路。 2. **电商系统类图设计** 包含商品类(SKU属性)、订单类(支付状态)、用户类(会员等级)的关联关系,使用组合关系表达「购物车-商品项」的包含结构。 3. **智能家居系统建模** 使用状态图描述空调运行模式切换(制冷/制热/待机),组件图展示中央控制器与传感器设备的通信接口。 #### 二、实用工具与资源 ```plantuml @startuml class 用户 { +String 姓名 +void 登录() } 用户 "1" -- "*" 订单 : 创建 @enduml ``` ▲ PlantUML代码生成的类图示例[^4] | 工具类型 | 推荐方案 | 特点 | |--------------|---------------------------|-------------------------------| | 桌面工具 | Enterprise Architect | 支持SysML和代码生成 | | 在线工具 | Draw.io | 免费协作,含UML模板库 | | IDE插件 | IDEA PlantUML Integration | 实时预览,支持Markdown嵌入[^5]| #### 三、学习路径建议 1. **基础语法**:掌握类图(继承▷▷、组合◆)、时序图(生命线││)等符号规范 2. **实战训练**:从单一功能模块(如登录系统)开始建模 3. **模式应用**:在领域模型中应用观察者模式(订阅通知)、工厂模式(对象创建)等
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值