DARTS实时软件分析设计方法.pptx
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,DARTS,实时软件开发设计方法,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,www.,DARTS,实时软件分析设计方法,DARTS,实时软件开发设计方法,1,、,DARTS,设计方法概述,2,、,DARTS,设计方法的设计步骤,3,、基于,DARTS,的洗衣机控制软件设计,4,、机器人控制器系统的设计,目录,DARTS,实时软件开发设计方法,1,、,DARTS,设计方法概述,通用软件开发的设计:,系统划分为各个功能子模块,再进一步细分为函数,采用自顶向下的设计方法,嵌入式应用软件的设计,通过并发的任务来运作的,应用软件开发的系统设计将系统划分为多个任务,各个任务允许并发执行,通过相互间通信建立联系。,DARTS,实时软件开发设计方法,1,、,DARTS,设计方法概述,DARTS(Design Approach for Real-Time Systems),,它是,SAISD(System Analysis System Design,结构化分析和设计,),方法在实时系统开发中的应用,按照软件生命周期进行软件开发。,DARTS,通过将系统分解成任务和定义任务接口的方法,来扩充结构化分析,/,设计的方法,使得实时应用系统具有并行处理的能力。该开发方法的关键是将一个系统分解为并行的任务,并定义任务间的接口。,DARTS,实时软件开发设计方法,1,、,DARTS,设计方法概述,2,、,DARTS,设计方法的设计步骤,3,、基于,DARTS,的洗衣机控制软件设计,4,、机器人控制器系统的设计,目录,DARTS,实时软件开发设计方法,2.1,嵌入式实时软件系统生命周期,需求分析,系统设计,DARTS,设计方法,数据流分析,划分任务,定义任务接口,任务设计,模块构筑,任务与系统集成,系统测试,DARTS,实时软件开发设计方法,2.2 DARTS-,数据流分析,在需求分析的基础上,以数据流图作为分析工具分析系统的数据流,从系统的功能需求开始分析系统的数据流,以确定主要的功能。,数据流图(,Data Flow Diagram,,,DFD,)也称为,Bubble Chart,或,Data Flow Graph,,它用来描绘系统的逻辑模型,从数据传递和加工的角度,以图形的方式描绘数据在系统中流动和处理的过程,反映系统必须完成的逻辑功能。,DARTS,实时软件开发设计方法,2.2 DARTS-,数据流分析,数据流图的基本图形符号,加工。输入数据在此进行变换产生输出数据,其中要标明加工的名字。,数据输入的源点或数据输出的终点。其中要标明源点或终点的名字。,数据流。被加工的数据与流向,箭头边应给出数据流名字,可用名词或名词性短语命名。,数据存储。必须加以命名,用名词或名词性短语命名。,DARTS,实时软件开发设计方法,2.2 DARTS-,数据流分析,数据流图示例,DARTS,实时软件开发设计方法,2.2 DARTS-,数据流分析,数据流与加工之间的关系,在数据流图中,如果有两个以上数据流指向一个加工,或者是从一个加工中引出两个以上的数据流,这些数据流之间往往存在一定关系。,DARTS,实时软件开发设计方法,2.2 DARTS-,数据流分析,DARTS,实时软件开发设计方法,2.2 DARTS-,数据流分析,数据流图的画法,识别系统的输入和输出,画出基本系统模型,把顶层图细化为系统的功能级数据模型,对功能级数据流图中描绘的主要功能进一步细化,DARTS,实时软件开发设计方法,2.3 DARTS-,划分任务,识别出系统的所有功能以及它们之间的数据流关系,得到完整的数据流图后,下一步是识别出可并行的功能。系统设计人员把可并行、相对独立的功能单元抽象成一个系统任务。,DARTS,设计方法提供了怎样在数据流图上确定并发任务的方法。,实时软件系统中并行任务的分解主要考虑系统内功能的异步性。,一个任务可对应一个变换,也可对应多个变换。,DARTS,实时软件开发设计方法,2.3 DARTS-,划分任务,划分任务的原则,:,I/O,依赖性,如果变换依赖于,I/O,,速度受限,I/O,,可独立成任务,在系统中创建与,I/O,设备数目相当,的,I/O,任务,I/O,任务只实现与设备相关的代码,I/O,任务的执行只受限于,I/O,设备的速度,而不是处理器,在任务中分离设备相关性,Device,I/O Task,App.Task,DARTS,实时软件开发设计方法,2.3 DARTS-,划分任务,功能的时间关键性,:,具有时间关键性的功能应当分离处理出来,成为一个独立的任务,并且赋予这些任务较高的优先级,以满足系统对时间的要求。,event 1,event 2,Task 1,Task 2,Task 3,Task 3,deadline 1,deadline 2,DARTS,实时软件开发设计方法,2.3 DARTS-,划分任务,计算需求,计算量大的功能在运行时势必会占用,CPU,很多时间,应当让它们单独成为一个任务。,为了保证其他费时少的任务得到优先运行,应该赋予计算量大的任务以较低优先级运行,这样允许它能被高优先级的任务抢占。,多个计算任务可安排成同优先级,按时间片循环轮转,DARTS,实时软件开发设计方法,2.3 DARTS-,划分任务,功能内聚,:,系统中各紧密相关的功能,不适合划分为独立的任务,应该把这些逻辑上或数据上紧密相关的功能合成一个任务,使各个功能共享资源或相同事件的驱动。,把每个变换都作为同一任务中一个个独立的模块,不仅保证了模块级的功能内聚,也保证了任务级的功能内聚,event 1,F1(x)+F3(x),event 2,F2(x),DARTS,实时软件开发设计方法,2.3 DARTS-,划分任务,时间内聚,:,将,同一时间内完成的各功能,形成一个任务,,,即使这些功能是不相关的,功能组的各功能是由相同的外部事件驱动的(如时钟等),这样每次任务接收到一个事件,它们都可以同时执行,由于减少了任务调度及切换的次数,减少了系统的开销,Clock Tick,event,F1(x)+F2(y)+F3(z),F4(x)+F5(y),DARTS,实时软件开发设计方法,2.3 DARTS-,划分任务,功能的周期执行,将在相同周期内执行的各个功能组成一个任务,使运行频率越高的任务赋予越高的优先级。,频率高的任务赋予高优先级,F1,F2,F1,10HZ,10HZ,15HZ,15HZ,F2,DARTS,实时软件开发设计方法,2.4 DARTS-,定义任务间的接口,在数据流图中,接口以数据流和数据存储区的形式存在。,在,DARTS,中有两类任务接口模块:,任务通信模块,TCM,(,Task Communication Module,),任务同步模块,TSM,(,Task Synchronization Module,),DARTS,实时软件开发设计方法,2.4 DARTS-,定义任务间的接口,任务通信模块,信息隐藏模块,数据,存储区,写数据,读数据,读数据,任务,A,任务,B,DARTS,实时软件开发设计方法,2.4 DARTS-,定义任务间的接口,消息通信模块,DARTS,实时软件开发设计方法,2.4 DARTS-,定义任务间的接口,任务同步模块,源,S,:发事件信号,(E),S,目标,D,:等待事件,(E),D,DARTS,实时软件开发设计方法,2.4 DARTS-,定义任务间的接口,表示任务之间的接口的符号,DARTS,实时软件开发设计方法,2.5 DARTS-,任务设计,有了划分好的任务以及定义好的任务间的接口后,接下来就可以开始任务的设计。,主要工作是确定每个任务的结构,画出每个任务的数据流图,使用结构化设计方法,从数据流图导出任务的模块结构图,并定义各模块的接口,之后,便可以进行任务的详细设计,给出每个模块的程序流程图及数据结构。,DARTS,实时软件开发设计方法,1,、,DARTS,设计方法概述,2,、,DARTS,设计方法的设计步骤,3,、基于,DARTS,的洗衣机控制软件设计,4,、机器人控制器系统的设计,目录,DARTS,实时软件开发设计方法,3.1,洗衣机控制软件需求分析与说明,功能需求定义和描述,默认状态下洗衣机处于关闭状态。,电源开关开启后,洗衣机默认的程序功能是洗衣、漂洗、脱水,默认水位时中等水位,运行状态是等待状态;,洗衣机有运行状态和等待状态;,当洗衣机处于运行状态时,用户的程序控制,即洗衣、漂洗、脱水按键和水位按键的输入无效;只有当洗衣机处于等待状态时其输入才有效;,程序控制的洗衣、漂洗、脱水这三个键可以按下一个、两个或者三个,洗衣机总是按洗衣,-,漂洗,-,脱水的顺序执行程序并且只执行用户选择的程序;,DARTS,实时软件开发设计方法,3.1,洗衣机控制软件需求分析与说明,水位按键每次只能选择高、中、低三种水位的一个值,;,洗衣机显示面板显示洗衣机的电源状态、暂停,启动状态、当前执行的程序以及即将执行的程序和水位状态,并且能根据用户输入以后及时改变显示信息。,DARTS,实时软件开发设计方法,3.1,洗衣机控制软件需求分析与说明,非功能需求定义和描述,洗衣机开关机的响应时间控制在,500ms,以内;,洗衣机在运行状态和等待状态之间的才换控制在,800ms,以内;,洗衣机功能和水位的输入控制在,600ms,以内;,洗衣机显示面板的响应控制在,1200ms,以内;,这里假设洗衣机洗衣用,600s,的时间,漂洗用,300s,的时间,脱水用,100s,的时间。,DARTS,实时软件开发设计方法,3.1,洗衣机控制软件需求分析与说明,外部接口描述,DARTS,实时软件开发设计方法,3.1,洗衣机控制软件需求分析与说明,系统状态变迁图,DARTS,实时软件开发设计方法,3.2,洗衣机控制软件系统设计以及数据流分析,说明,洗衣机程序状态信息是一组数据,包含四个项:电源状态、运行情况、程序状态和水位信息,与输入面板的相对应;,时钟中断的时间间隔是,20ms,,通过具有一定频率的时钟中断来查看当前洗衣机程序执行的执行情况、按键输入和面板输出,以提高效率、降低复杂性。,洗衣机状态、指令集是洗衣机在转变为相应状态的时候所需要运行的指令等,这些存储在快速读写存储器之中,读取这些数据的时间非常快,在,100ms,的量级。,DARTS,实时软件开发设计方法,3.3,洗衣机控制软件任务划分,洗衣机控制软件任务划分,(,在数据流图中被划入相同的任务的数据处理过程用相同颜色的虚线方框来表示,),按键输入任务:功能内聚原则;,中断定时任务:周期执行原则;,洗衣机状态信息处理任务:计算需求和功能内聚原则;,信号输出任务:,I/O,依赖性原则。,为了提高效率,将数据流图中的洗衣机状态信息和洗衣机状态指令集整合在一起作为洗衣机程序的信息存储,以便各个任务的访问能够有一个统一的入口。,DARTS,实时软件开发设计方法,3.3,洗衣机控制软件任务划分,洗衣机控制软件任务接口,DARTS,实时软件开发设计方法,3.4,任务模块设计,按键输入任务,数据流图,DARTS,实时软件开发设计方法,3.4,任务模块设计,模块结构图,DARTS,实时软件开发设计方法,3.4,任务模块设计,状态信息处理任务,数据流图,DARTS,实时软件开发设计方法,3.4,任务模块设计,模块结构,DARTS,实时软件开发设计方法,3.4,任务模块设计,中断定时任务,数据流图,DARTS,实时软件开发设计方法,3.4,任务模块设计,模块结构,DARTS,实时软件开发设计方法,3.4,任务模块设计,信号输出任务,数据流图,DARTS,实时软件开发设计方法,3.4,任务模块设计,模块结构,DARTS,实时软件开发设计方法,1,、,DARTS,设计方法概述,2,、,DARTS,设计方法的设计步骤,3,、基于,DARTS,的洗衣机控制软件设计,4,、机器人控制器系统的设计,目录,DARTS,实时软件开发设计方法,上电,手动,停止,结束,断电,运行,程序选择,控制面板,控制设备由内部控制器和外部控制面板组成,控制器控制六个转轴,并与数字,I/O,传感器交互作用。,转轴和,I/O,由程序控制,该程序由控制面板操作启动执行,4.1,需求分析与说明,DARTS,实时软件开发设计方法,控制执行过程,按下“上电”按钮,系统进入了上电状态。,上电成功后,系统进入了手动状态。此时,操作者可以通过程序选择开关选择程序,按下“运行”按钮,则选定的程序开始运行,系统转为运行态。,程序运行中如果按下“停止”键,程序被挂起。之后,操作者可以按下“运行”键,使程序恢复执行,也可按下“结束”键,结束程序。,按下“结束”键后,系统进入终止态。当程序最终终止执行时,系统返回手动状态。,4.1,需求分析与说明,DARTS,实时软件开发设计方法,断电态,通电态,手动态,运行态,终止态,挂起态,上电,上电 成功,断电,启动,程序,选择,程序 终止,结束,启动,停止,状态变迁图,4.1,需求分析与说明,DARTS,实时软件开发设计方法,4.2,数据流分析,程序,面板输入有效,性检查,解释程序,各语句,读传,感器,处理面板输入,处理,I/O,命令,处理动,作命令,向传感,器输出,输出动作,轴数据,接收,确认,输出到,面板,轴控制器,读面板,输入,按下,按钮,面板输入,有效的,面板输入,运行,开始 结束,动作,命令,动作,确认,I/O,命令,传感器值,输入,传感器输入,传感器,输出,输出,面板,输出,运行,停止,重启动,轴块,轴确认,轴输入,轴输出,动作块,4.2,数据流分析,DARTS,实时软件开发设计方法,4.3,任务划分,DARTS,实时软件开发设计方法,4.3,任务划分,DARTS,实时软件开发设计方法,4.4,任务模块设计,详细说明系统中各任务的设计考虑和执行流程,以利于程序员编制程序。,任务体系结构:详细定义任务包含的子模块和模块间的关系,任务执行流程:尽可能详细地描述任务的处理过程,任务内数据结构,任务内模块间接口,DARTS,实时软件开发设计方法,4.4,任务模块设计,DARTS,实时软件开发设计方法,4.4,任务模块设计,DARTS,实时软件开发设计方法,系统和任务设计完成后,进行每个模块的详细设计,直到每个具体的函数,在单元测试前不必编完模块全部程序,可以分阶段编码和测试,模块的详细设计应一气呵成,避免系统以非结构化方式形成,4.5,任务构筑,DARTS,实时软件开发设计方法,4.5,任务构筑,函数描述,给出对该函数的简要描述,说明设计目的、意义以及特点,功能,说明该函数应具有的功能,可采用,IPO,图(输入一处理一输出图)形式,性能,说明对该函数的性能要求,包括精度、灵活性和时间特性等,输入,定义每个输入项的特性,包括名称、标识、数据类型和格式、取值范围、输入方式、数据来源、保密方式等,输出,定义每个输入项的特性,特征同输入,DARTS,实时软件开发设计方法,4.5,任务构筑,算法,详细说明本函数所选用的算法,具体的计算公式和计算步骤,流程,用流程图辅以必要的说明来表示本函数的逻辑流程,接口,说明本函数与其他函数的调用关系,包括说明参数赋值和调用方式以及相关数据结构(如数据库、文件)。,存储分配,说明本函数的存储分配,限制条件,说明本函数运行所受限制,测试计划,说明对本函数的测试计划,包括技术要求、输入数据、预期结果、人员安排等,DARTS,实时软件开发设计方法,模块逐个连接、测试以构成任务,任务被逐个连接和测试形成最终系统,可分两步集成,在宿主机上模拟集成(软集成),在目标机上集成,4.6,任务与系统集成,