UML系统分析与设计教程(第2版) 课件 第15章 嵌入式系统设计_第1页
UML系统分析与设计教程(第2版) 课件 第15章 嵌入式系统设计_第2页
UML系统分析与设计教程(第2版) 课件 第15章 嵌入式系统设计_第3页
UML系统分析与设计教程(第2版) 课件 第15章 嵌入式系统设计_第4页
UML系统分析与设计教程(第2版) 课件 第15章 嵌入式系统设计_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

UML系统分析与设计SystemAnalysis&Design冀振燕北京交通大学

第十五章嵌入式系统设计系统需求需求分析静态结构模型动态行为模型物理模型UML系统分析与设计第2版ZhenyanJi2系统需求便携式心电记录仪是一种消费电子仪器,用来实时记录心脏病人的心电波形,心电记录仪的显示器还可以回放所记录的心电波形。心电数据由心电记录仪的传感器采集后,转变为数字信号,然后存储在记录仪的存储器中。用户可以通过心电记录仪的显示器,在任何时候快速回放所存储的任何一个时间段的心电波形。心电记录仪应该具有体积小、重量轻、易使用、可省电(可以由电池提供电源)等特点。UML系统分析与设计第2版ZhenyanJi3系统需求按钮“记录”用来启动心电信号记录;按钮“回放”用来回放所记录的心电信号;按钮“停止”用来停止系统的记录或回放活动;按钮“删除”用来删除所记录的心电信号;按钮“菜单”用来激活系统菜单,按钮“上”、“下”、“左”、“右”用来选择菜单项,按钮“OK”用来确定选项。UML系统分析与设计第2版ZhenyanJi4系统需求主要功能可以存储20个心电波(ECGWave),每个心电波的长度由内存的大小来决定。具有屏幕菜单,使用方便可以设置闹铃,提示用户时间到。具有LCD显示器可以显示心电波形、心电波形的记录时间和记录日期、当前时间和当前日期。当前的时间和日期总是出现在显示器上。显示器还显示电池使用情况指标。当电池电量不足时,系统发出蜂鸣声提醒用户。具有待用模式(Stand-byMode),这样可以节省能量。当不用时,系统关闭外设;当用户随便按一个按钮时,系统激活,返回正常工作状态。UML系统分析与设计第2版ZhenyanJi5需求分析识别参与者系统的参与者只有一个,即User(用户)。UML系统分析与设计第2版ZhenyanJi6参与者“User”的描述需求分析识别用例记录心电信号(RecordECG)。当用户按下“记录”按钮,记录仪开始记录心电信号;用户按下“停止”按钮或者内存用完时,记录仪停止记录心电信号。回放心电信号(PlaybackECG)。用户可以从目录表中选择所要回放的心电信号,按下“回放”按钮,心电信号片段开始在显示器上回放,直到结束(或者当用户按下“停止”按钮时,回放停止)。UML系统分析与设计第2版ZhenyanJi7识别用例删除心电信号(DeleteECG)。用户可以从目录表中选择某个心电信号片段,然后按下“删除”按钮,则该心电信号片段从内存中被删除,其所占用的内存空间被释放。设置闹铃时间(SetAlarmTime)。用户可以打开或关闭闹铃,并设置闹铃的时间。打开或关闭闹铃以及设置闹铃的时间是通过选择系统菜单的不同选项进行的。UML系统分析与设计第2版ZhenyanJi8需求分析识别用例设置时钟时间(SetClockTime)。用户可以设置时钟时间,或者调整时钟的时间。显示时间(DisplayTime)。系统在开机状态下应该一直在显示器上显示当前的时间和日期,用户可以查看当前时间和日期。显示电池状态(DisplayBatteryStatus)。系统在开机状态下应该一直在显示器上显示电池状态。当电量不足时,系统发出蜂鸣声,电池状态则显示为警告状态。UML系统分析与设计第2版ZhenyanJi9需求分析系统的用例图UML系统分析与设计第2版ZhenyanJi10需求分析回放心电信号当用户User按下“回放”按钮,即发送消息“PlayECG”(回放心电信号)给系统时,系统System发送消息“StartplayingECG”(开始回放心电信号)给显示器,系统通过显示器回放心电信号,同时显示回放进度给用户(Showprogressindicator)。一秒过后(Nextsecond),系统更新显示时间(Shownewtime),并继续显示回放进度(Showprogressindicator)。当用户按下“停止”按钮,即发送消息“Stop”(停止)给系统时,显示器停止回放心电信号(StopplayingECG)。图中的注释说明了响应时间的限制(响应时间的限制最好用两个消息间的约束来描述,但由于本人所采用的UML建模软件不支持消息间的约束,所以就用注释来描述了),第一个“0.5s”表示按下“回放”按钮和系统开始回放心电信号的间隔不超过0.5s;第二个“0.5s”表示按下“停止”按钮和系统停止回放心电信号的间隔不超过0.5s。UML系统分析与设计第2版ZhenyanJi11“回放心电信号”顺序图UML系统分析与设计第2版ZhenyanJi12需求分析进入待用模式和从待用模式苏醒系统如果在2min内没有任何活动,系统就关闭显示器和扬声器(Switchoff),从而进入待用模式。当有警报发生时(Alarm),系统就打开显示器和扬声器(Switchon),即系统从待用模式恢复,然后通过扬声器报警(Playalarm)。1s过后(Nextsecond)或电池没电(Nopower)时,系统停止通过扬声器报警(Stopplayingalarm),系统重新关闭显示器和扬声器(Switchoff)。UML系统分析与设计第2版ZhenyanJi13“进入待用模式和从待用模式苏醒”顺序图UML系统分析与设计第2版ZhenyanJi14需求分析产生警报用户发送消息“PlayECG”(回放心电信号)给系统System,系统发送“StartplayingECG”(开始回放心电信号)的消息给显示器,系统通过显示器回放心电信号,同时显示回放进度给用户(Showprogressindicator)。1s过后(Nextsecond),系统更新显示时间(Shownewtime),并继续显示回放进度(Showprogressindicator)。这时有警报产生(Alarm),系统通过扬声器报警(Playalarm),并显示报警信号(Showalarmindicator),其中显示报警信号和报警产生之间的间隔不超过0.5s。然后,用户按下按钮“停止”,即发送消息“Stop”(停止)给系统,显示器停止回放心电信号(StopplayingECG),并停止报警(Stopplayingalarm)。UML系统分析与设计第2版ZhenyanJi15“产生警报”顺序图UML系统分析与设计第2版ZhenyanJi16静态结构模型识别出类可以从系统中抽象出以下主要的类,包括类Battery、类Alarmclock、类Keyboard、类Display、类GUI、类Controller、类ECGOutput、类ECGMemory、类ECGSegment、类ECGInput、类Sensor。UML系统分析与设计第2版ZhenyanJi17系统类图UML系统分析与设计第2版ZhenyanJi18系统包图UML系统分析与设计第2版ZhenyanJi19静态结构模型下面分别对每个子系统进行详细的介绍。(1)ECG子系统。由于每个心电波是由多个心电信号片段组成,因此在类ECGWave和类ECGSegment之间存在聚合关系,即ECGSegment是ECGWave的一部分,1个ECGWave可以由0个或多个ECGSegment组成,而1个ECGSegment只属于1个ECGWave。另外,每个心电信号片段又由多个心电周期样本组成,所以,类ECGSample与类ECGSegment之间存在聚合关系,ECGSample是ECGSegment的一部分,1个ECGSegment可以由0个或多个ECGSample组成,而1个ECGSample只属于1个ECGSegment。为了节省内存空间,采集到的心电数据需要压缩后存储,压缩后的心电周期抽象为类CompressedECGBlock,类CompressedECGBlock是类ECGSegment的子类。UML系统分析与设计第2版ZhenyanJi20ECG子系统的类图UML系统分析与设计第2版ZhenyanJi21静态结构模型顺序图描述了回放心电信号过程中对象之间的交互作用。GUI的对象发送消息playECGWave()给Controller对象,Controller对象发送消息getECGSegment()给ECGWave的对象,ECGWave返回压缩后的心电信号给Controller,然后Controller发送消息playCompressed-ECGSegment()给ECGOutput对象。ECGOutput对象发送消息playSample()给显示器Display,心电数据开始回放,心电片段由n个心电周期样本组成,第一个片段回放后,对于Controller重复获取心电片段并回放的行为,直到心电片段播放完毕或者用户按“停止”按钮时为止。UML系统分析与设计第2版ZhenyanJi22UML系统分析与设计第2版ZhenyanJi23静态结构模型(2)Memory子系统。类ECGMemory管理心电记录仪的存储空间,它保存了所记录的所有心电波数据,并分配空间给新的心电波数据,还可以删除某个心电波数据。Memory子系统的类图如图15.11所示。类ECGMemory是类Controller的一部分,它们之间存在着聚合关系,每个Controller对象有1个ECGMemory对象,每个ECGMemory只属于1个Controller对象。类ECGSegment与类ECGMemory之间存在着关联关系,每个ECGMemory可以存储0个或n个ECGSegment,每个ECGSegment只属于1个ECGMemory。类ECGWave与类ECGSegment之间也存在着聚合关系,每个ECGSegment只属于1个ECGWave,1个ECGWave由0个或n个ECGSegment组成。类ECGWave与类ECGMemory之间也存在着关联关系,每个ECGMemory最多可以存储20个ECGWave,每个ECGWave只属于1个ECGMemory。UML系统分析与设计第2版ZhenyanJi24Memory子系统的类图UML系统分析与设计第2版ZhenyanJi25静态结构模型类GUI可以通过类ECGMemory来获取所记录的心电波列表,但类GUI不能修改它,只有类Controller可以通过类ECGMemory来修改所记录的心电波。如果类GUI想删除心电波,它需要调用类Controller的方法delECGWave(),而不是直接访问对象ECGMemory。这样做是为了防止在控制器回放或记录心电波时,用户界面删除该心电波。UML系统分析与设计第2版ZhenyanJi26UML系统分析与设计第2版ZhenyanJi27静态结构模型(3)Alarm_Clock子系统。类AlarmClock可以提供系统当前的时间、日期和闹铃定时时间。类AlarmClock通过计时器Timer来计时,每过去1s,就使用方法nextSecond()更新一次时间的内部表示。当24h过去时,使用类Date的nextDay()方法更新日期。UML系统分析与设计第2版ZhenyanJi28Alarm_Clock子系统类图UML系统分析与设计第2版ZhenyanJi29静态结构模型(4)UserInterface子系统。类GUI管理用户与系统的交互。它接受用户的键盘输入,并通过显示器反馈给用户。类Keyboard是硬件键盘的软件接口,类Display是硬件显示器的软件接口。在类GUI与类Keyboard之间存在关联关系。类GraphicContext提供了图形上下文,可以在显示器上显示点、线、字符串,以及各种图形,每个图形上下文都代表了显示器的矩形区域。类GraphicContext与类Display之间也存在关联关系。类View调用GraphicContext的方法,在显示器上显示时间、菜单等,类View和类GraphicContext是关联关系。类View有3个子类,即类ClockView、类TaskView和类MenuView。类View又是类GUI的一部分,即在类View和类GUI之间存在着聚合关系,每个View都属于1个GUI,每个GUI都可以有1个或多个View。UML系统分析与设计第2版ZhenyanJi30UserInterface子系统类图UML系统分析与设计第2版ZhenyanJi31动态行为模型状态机图(1)Controller(控制器)对象。Controller对象可以用来记录心电信号、播放心电信号或报警。Controller对象有4个状态。通常,Controller对象处于“Idle”(空闲)状态,如果“记录”按钮被按下,则事件“record”(记录)发生,对象进入“Recording”状态,当事件“stop”(停止)发生,系统停止记录,对象返回“Idle”状态;如果“回放”按钮被按下,事件“playback”(回放)发生,对象进入“Playing”(播放)状态,当事件“stop”(停止)发生时,系统停止回放,对象返回“Idle”状态;如果警报发生,即事件“alarm”(警报)发生时,对象进入“Alarming”状态,当事件“stop”(停止)发生时,系统停止回放,对象返回“Idle”状态。UML系统分析与设计第2版ZhenyanJi32动态行为模型Controller对象的状态机图UML系统分析与设计第2版ZhenyanJi33动态行为模型(2)ECGInput(心电输入)对象。ECGInput对象控制心电输入通道,该对象通过Sensor(传感器)对象来记录心电数据。值得注意的是,采样得到的心电数据要经过压缩再存储。ECGInput对象有3个状态。通常,ECGInput对象处于“Idle”(空闲)状态,如果事件“recordCompressedECGSegment(ecg:ECGSegment)”(获取压缩心电数据)发生,对象进入“Record”状态,开始记录心电数据,在进入该状态时,需执行入口动作“StartDMA”(启动DMA)协助记录。当事件“DMAEndOfTransfer”(数据传输结束)发生时,对象进入“Compress”状态,压缩心电数据,压缩完成后,ECGInput对象返回“Idle”状态。UML系统分析与设计第2版ZhenyanJi34动态行为模型ECGInput对象的状态机图UML系统分析与设计第2版ZhenyanJi35动态行为模型(3)ECGOutput(心电输出)对象。ECGOutput对象控制心电输出通道,它可以通过显示器来回放心电数据。ECGOutput对象有3个状态,通常ECGOutput对象处于“Idle”(空闲)状态,如果事件“PlayCompressedECGSegment(ecg:ECGSegment)”(回放压缩的心电数据)发生,对象进入“Expand”(展开)状态,开始对心电数据解压缩,在进入该状态时,需执行入口动作“StartDMA”(启动DMA)协助回放。解压缩完成后,ECGOutput对象进入“Play”(回放)状态,回放心电数据,回放结束后,ECGOutput对象返回“Idle”状态。如果在ECGOutput对象处于“Idle”状态时,事件“PlayECGSegment(ecg:ECGSegment)”(回放心电数据)发生,则ECGOutput对象直接进入“Play”状态,回放心电数据,回放结束后,ECGOutput对象返回“Idle”状态。UML系统分析与设计第2版ZhenyanJi36动态行为模型

ECGOutput对象的状态机图UML系统分析与设计第2版ZhenyanJi37动态行为模型(4)Sensor(传感器)对象。Sensor对象是物理传感器的接口。传感器可以采集数据。当SwichOn发生(打开电源)后,Sensor对象进入“Idle”(空闲)状态,如果事件“startsampling”(开始采样)发生,对象进入“Sampling”(采样)状态,对心电数据进行采样,事件“intervalpassed”(采样间隔时间过去)引起的跃迁是自跃迁,在事件发生时,执行动作getSample()进行采样。如果事件“stopsampling”(停止采样)发生,对象返回“Idle”状态。UML系统分析与设计第2版ZhenyanJi38动态行为模型Sensor对象的状态机图UML系统分析与设计第2版ZhenyanJi39动态行为模型(5)Display(显示器)对象。Display对象是物理显示器的软件接口。当SwichOn发生(电源开通)后,Display对象进入“Idle”(空闲)状态,如果事件“PlayECG”(播放心电图)发生,对象进入“PlayingECGWave”状态,显示器播放心电图。如果事件“StopPlay”(停止播放)发生,对象返回“Idle”状态。UML系统分析与设计第2版ZhenyanJi40动态行为模型Display对象的状态机图UML系统分析与设计第2版ZhenyanJi41动态行为模型(6)Speaker(扬声器)对象。Speaker对象是物理扬声器的软件接口。当SwichOn发生(电源开通)后,Speaker对象进入“Idle”(空闲)状态,如果事件“AlarmHappen”(警报发生)发生,对象进入“PlayingAlarm”(播放警报)状态,扬声器播放警报。如果事件“AlarmIsOver”(警报结束或停止)发生,对象返回“Idle”状态。UML系统分析与设计第2版ZhenyanJi42动态行为模型Speaker对象的状态机图UML系统分析与设计第2版ZhenyanJi43动态行为模型(7)Timer(计时器)对象。Timer对象是物理计时器的软件接口。Timer对象只有1个状态“Timing”(计时状态),事件“HardwareTimerInterrupt”(硬件时钟中断)引起的跃迁是自跃迁。UML系统分析与设计第2版ZhenyanJi44动态行为模型(8)用户界面。MenuUserMode(菜单用户模式)对象。MenuUserMode是用户界面的主要用户模式。用户可以通过“上”、“下”、“左”、“右”4个按钮来遍历菜单项,以选择所想要的选项。“上”、“下”按钮可以用来选择上一个菜单选项或下一个菜单选项,“OK”按钮用来选中所需要的选项,而“左”、“右”按钮用来选中前一个菜单或下一个菜单。UML系统分析与设计第2版ZhenyanJi45MenuUserMode对象的状态机图UML系统分析与设计第2版ZhenyanJi46动态行为模型SettingTimeUserMode(设置时钟用户模式)对象。设置时钟用户模式用于改变当前时间或闹铃时间。其中,“左”、“右”按钮用来切换激活代表秒、分钟和小时的域,“上”、“下”按钮用来修改激活域的值。UML系统分析与设计第2版ZhenyanJi47SettingTimeUserMode对象状态机图UML系统分析与设计第2版ZhenyanJi48动态行为模型SettingDateUserMode(设置日期用户模式)对象。设置日期用户模式用于改变当前的日期。其中,“左”、“右”按钮用来切换激活代表日、月、年的域,“上”、“下”按钮用来修改激活域的值。SettingDateUserMode对象的状态机图如图15.25所示。首先,SettingDateUserMode对象处于“Idle”(空闲)状态,当日期用户模式被激活时,对象进入“ActiveSettingDateUserMode”状态,即日期用户模式激活状态。SettingDateUserMode对象的“ActiveSettingDateUserMode”状态是一个组合状态,它含有3个子状态。对象开始进入“ModifyDay”(修改日期)状态,即“日期”域激活。当对象SettingDateUserMode处于“ModifyDay”状态时,单击“上”按钮时,即事件“press(Up)”发生,日期增加,该事件每发生1次,日期增加1天;单击“下”按钮时,即事件“press(Down)”发生,日期减少,该事件每发生1次,日期减少1天;单击“右”按钮时,即事件“press(Right)”发生,对象进入“ModifyMonth”(修改月份)状态,即激活域切换到“月”域。UML系统分析与设计第2版ZhenyanJi49SettingDateUserMode对象状态机图UML系统分析与设计第2版ZhenyanJi50动态行为模型通信图如下页图所示通信图描述了Scheduler对象与它的客户之间的协作。Scheduler对象为依赖于时间的对象(例如,对象AlarmClock)提供了准确的计时和调度。对象AlarmClock“预订”了对象Scheduler的事件,即时间每过去一秒,对象Scheduler都会通知对象AlarmClock一秒钟过去了。UML系统分析与设计第2版ZhenyanJi51定期唤醒对象的通信图UML系统分析与设计第2版ZhenyanJi52动态行为模型幻灯片54页图所示的通信图描述了SettingTimeUserMode对象、AlarmClock对象、Keyboard对象、ClockView对象等之间的协作,该协作用来设置便携式心电记录仪的时间。幻灯片55页图所示的通信图描述了GUI对象、Controller对象、ECGOutput对象、ECGWave对象等之间的协作,该协作用来描述回放心电波的过程。幻灯片56

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论