资源描述:
《嵌入式系统开发中的软件工程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、嵌入式系统开发中的软件工程——用VisualSTATE进行状态机建模博创科技陈友东教授2006年10月嵌入式开发中的软件工程IARSeminar,Beijing/Shanghai/Shenzhen,Oct,2006内容提要状态机介绍案例分析:车灯系统设计练习VisualSTATE介绍以及演示嵌入式开发中的软件工程IARSeminar,Beijing/Shanghai/Shenzhen,Oct,2006嵌入式系统最终追求什么?¾更节约的资源使用/内存消耗RAMROM¾系统质量/可靠性/鲁棒性¾确定的系统行为模式/可预
2、测性¾执行速度实时速度嵌入式开发中的软件工程IARSeminar,Beijing/Shanghai/Shenzhen,Oct,2006状态机什么是状态机?•具有基于状态的动态行为的机器/系统•一个动态系统,对由时间和状态产生的事件有所反应状态机模型描述了:•系统的“生命循环”•在所有情形下系统对事件如何反应/动作例如•手机•自动售货机/自动咖啡机/ATM•操作面板•调节器(温度、湿度、灯光...)•洗衣机嵌入式开发中的软件工程IARSeminar,Beijing/Shanghai/Shenzhen,Oct,2006
3、状态机四要素事件•事件是指影响状态机的”事情发生”•原则上,事件即可以同步也可以是异步产生状态•描述两个事件间系统所做的工作转移•描述当前状态和下一个状态之间的关系动作•描述系统如何与环境反应t•原则上一个动作是立刻反应的,而且不可中断嵌入式开发中的软件工程IARSeminar,Beijing/Shanghai/Shenzhen,Oct,2006在现实世界中...事件可能是中断、按键、超时、复位...状态表示产品正在做什么事情(加热、洗衣、转动、验证密码...)动作可能是对阀的控制、显示、CAN总线...变量用于表
4、示数据、温度、计数...嵌入式开发中的软件工程IARSeminar,Beijing/Shanghai/Shenzhen,Oct,2006实现状态机的传统方法•使用switch-case(手工编程)•使用状态表(手工编程)•使用状态类(手工编程)•继承和多态操作(C++/Java)switch(current_state){caseALARM:采用传统编程的方法,我们怎样才能处理继承、并发、同步if(event==ALARM_ACK){StopAlarm();current_state=NO_ALARM;等系统结构?
5、}break;case...:}嵌入式开发中的软件工程IARSeminar,Beijing/Shanghai/Shenzhen,Oct,2006统一建模语言(UML)统一建模语言是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置G.Booch,J.RumbaughandI.Jacobson开发1995年发布了第一个版本状态机理论是UML的一个子集,适用于嵌入式应用开发嵌入式开发中的软件工程IARSeminar,Beijing/Shanghai/
6、Shenzhen,Oct,2006UML状态图的一些基本结构层次结构并行结构事件动作变量进入/退出动作初始状态历史状态信号同步Join和forkJunction嵌入式开发中的软件工程IARSeminar,Beijing/Shanghai/Shenzhen,Oct,2006UMLVisualSTATE的规则和系统每时每刻处于且只处于一个状态.系统状态改变(转移)被且只被一个事件/事件组/信号触发.一旦接收到触发,所有状态组合被“冻结”,直到系统处理完所有转移.嵌入式开发中的软件工程IARSeminar,Beijing
7、/Shanghai/Shenzhen,Oct,2006案例分析《用UML状态机模型来描述“轿车车厢灯”系统》嵌入式开发中的软件工程IARSeminar,Beijing/Shanghai/Shenzhen,Oct,2006练习:设计一个轿车车厢灯系统设计任务说明设计一个控制软件,来控制轿车车厢灯。当开关开关和车门开关
时控制灯的开关系统功能要求•当一个或多个车门被打开时,车厢灯被点亮;•在车厢里有一个手动开关,可以选择如下三种灯的状态,•灯暗模式-甚至门开时,灯也不会被点亮.•门模式-由门的传感器决定灯是否亮
•灯亮
8、模式—灯被点亮•当车门从外面被锁上时,关灯;•控制系统对于不同的门对车灯的影响没有差别对待。嵌入式开发中的软件工程IARSeminar,Beijing/Shanghai/Shenzhen,Oct,2006轿车车厢灯系统嵌入式开发中的软件工程IARSeminar,Beijing/Shanghai/Shenzhen,Oct,2006“VisualSTATE”设计