您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > DARTS实时软件分析设计方法
实时软件分析设计方法主讲:谢小云、DARTS设计方法概述2、DARTS设计方法的设计步骤3、基于DARTS的洗衣机控制软件设计4、机器人控制器系统的设计目录、DARTS设计方法概述通用软件开发的设计:系统划分为各个功能子模块,再进一步细分为函数,采用自顶向下的设计方法嵌入式应用软件的设计通过并发的任务来运作的,应用软件开发的系统设计将系统划分为多个任务,各个任务允许并发执行,通过相互间通信建立联系。、DARTS设计方法概述DARTS(DesignApproachforReal-TimeSystems),它是SAISD(SystemAnalysisSystemDesign结构化分析和设计)方法在实时系统开发中的应用,按照软件生命周期进行软件开发。DARTS通过将系统分解成任务和定义任务接口的方法,来扩充结构化分析/设计的方法,使得实时应用系统具有并行处理的能力。该开发方法的关键是将一个系统分解为并行的任务,并定义任务间的接口。、DARTS设计方法概述2、DARTS设计方法的设计步骤3、基于DARTS的洗衣机控制软件设计4、机器人控制器系统的设计目录嵌入式实时软件系统生命周期需求分析系统设计-DARTS设计方法数据流分析划分任务定义任务接口任务设计模块构筑任务与系统集成系统测试数据流分析在需求分析的基础上,以数据流图作为分析工具分析系统的数据流,从系统的功能需求开始分析系统的数据流,以确定主要的功能。数据流图(DataFlowDiagram,DFD)也称为BubbleChart或DataFlowGraph,它用来描绘系统的逻辑模型,从数据传递和加工的角度,以图形的方式描绘数据在系统中流动和处理的过程,反映系统必须完成的逻辑功能。数据流分析数据流图的基本图形符号加工。输入数据在此进行变换产生输出数据,其中要标明加工的名字。数据输入的源点或数据输出的终点。其中要标明源点或终点的名字。数据流。被加工的数据与流向,箭头边应给出数据流名字,可用名词或名词性短语命名。数据存储。必须加以命名,用名词或名词性短语命名。数据流分析数据流图示例数据流分析数据流与加工之间的关系在数据流图中,如果有两个以上数据流指向一个加工,或者是从一个加工中引出两个以上的数据流,这些数据流之间往往存在一定关系。TABC*由数据A和B共同变换成CTBCA*由数据A变换成数据B和C由数据A或B,或A和B共同变换成CTABC+由数据A变换为B或C,或同时变换为B和CTABC+由数据A或B其中之一变换成CTABC由数据A变换成B或C其中之一+数据流分析数据流图的画法识别系统的输入和输出,画出基本系统模型把顶层图细化为系统的功能级数据模型对功能级数据流图中描绘的主要功能进一步细化划分任务识别出系统的所有功能以及它们之间的数据流关系,得到完整的数据流图后,下一步是识别出可并行的功能。系统设计人员把可并行、相对独立的功能单元抽象成一个系统任务。DARTS设计方法提供了怎样在数据流图上确定并发任务的方法。实时软件系统中并行任务的分解主要考虑系统内功能的异步性。一个任务可对应一个变换,也可对应多个变换。划分任务划分任务的原则:I/O依赖性如果变换依赖于I/O,速度受限I/O,可独立成任务在系统中创建与I/O设备数目相当的I/O任务I/O任务只实现与设备相关的代码I/O任务的执行只受限于I/O设备的速度,而不是处理器在任务中分离设备相关性DeviceI/OTaskApp.Task划分任务功能的时间关键性:具有时间关键性的功能应当分离处理出来,成为一个独立的任务,并且赋予这些任务较高的优先级,以满足系统对时间的要求。event1event2Task1Task2Task3Task3deadline1deadline2划分任务计算需求计算量大的功能在运行时势必会占用CPU很多时间,应当让它们单独成为一个任务。为了保证其他费时少的任务得到优先运行,应该赋予计算量大的任务以较低优先级运行,这样允许它能被高优先级的任务抢占。多个计算任务可安排成同优先级,按时间片循环轮转划分任务功能内聚:系统中各紧密相关的功能,不适合划分为独立的任务,应该把这些逻辑上或数据上紧密相关的功能合成一个任务,使各个功能共享资源或相同事件的驱动。把每个变换都作为同一任务中一个个独立的模块,不仅保证了模块级的功能内聚,也保证了任务级的功能内聚event1F1(x)+F3(x)event2F2(x)划分任务时间内聚:将同一时间内完成的各功能形成一个任务,即使这些功能是不相关的功能组的各功能是由相同的外部事件驱动的(如时钟等),这样每次任务接收到一个事件,它们都可以同时执行由于减少了任务调度及切换的次数,减少了系统的开销ClockTickeventF1(x)+F2(y)+F3(z)F4(x)+F5(y)划分任务功能的周期执行将在相同周期内执行的各个功能组成一个任务,使运行频率越高的任务赋予越高的优先级。频率高的任务赋予高优先级F1F2F110HZ10HZ15HZ15HZF2定义任务间的接口在数据流图中,接口以数据流和数据存储区的形式存在。在DARTS中有两类任务接口模块:任务通信模块TCM(TaskCommunicationModule)任务同步模块TSM(TaskSynchronizationModule)定义任务间的接口任务通信模块信息隐藏模块数据存储区写数据读数据读数据任务A任务B定义任务间的接口消息通信模块定义任务间的接口任务同步模块源S:发事件信号(E)S目标D:等待事件(E)D定义任务间的接口表示任务之间的接口的符号任务信息隐藏模块松散耦合消息通信——消息队列无回复紧密耦合消息通信紧密耦合消息通信——消息/回复事件任务设计有了划分好的任务以及定义好的任务间的接口后,接下来就可以开始任务的设计。主要工作是确定每个任务的结构,画出每个任务的数据流图,使用结构化设计方法,从数据流图导出任务的模块结构图,并定义各模块的接口,之后,便可以进行任务的详细设计,给出每个模块的程序流程图及数据结构。、DARTS设计方法概述2、DARTS设计方法的设计步骤3、基于DARTS的洗衣机控制软件设计4、机器人控制器系统的设计目录洗衣机控制软件需求分析与说明功能需求定义和描述默认状态下洗衣机处于关闭状态。电源开关开启后,洗衣机默认的程序功能是洗衣、漂洗、脱水,默认水位时中等水位,运行状态是等待状态;洗衣机有运行状态和等待状态;当洗衣机处于运行状态时,用户的程序控制,即洗衣、漂洗、脱水按键和水位按键的输入无效;只有当洗衣机处于等待状态时其输入才有效;程序控制的洗衣、漂洗、脱水这三个键可以按下一个、两个或者三个,洗衣机总是按洗衣-漂洗-脱水的顺序执行程序并且只执行用户选择的程序;洗衣机控制软件需求分析与说明水位按键每次只能选择高、中、低三种水位的一个值;洗衣机显示面板显示洗衣机的电源状态、暂停\启动状态、当前执行的程序以及即将执行的程序和水位状态,并且能根据用户输入以后及时改变显示信息。洗衣机控制软件需求分析与说明非功能需求定义和描述洗衣机开关机的响应时间控制在500ms以内;洗衣机在运行状态和等待状态之间的才换控制在800ms以内;洗衣机功能和水位的输入控制在600ms以内;洗衣机显示面板的响应控制在1200ms以内;这里假设洗衣机洗衣用600s的时间,漂洗用300s的时间,脱水用100s的时间。洗衣机控制软件需求分析与说明外部接口描述电源暂停/启动漂洗甩干高水位中水位低水位洗涤洗衣机控制软件需求分析与说明系统状态变迁图断电态通电等待态通电执行态电源打开电源关闭程序\水位控制启动暂停电源关闭洗衣机控制软件系统设计以及数据流分析说明洗衣机程序状态信息是一组数据,包含四个项:电源状态、运行情况、程序状态和水位信息,与输入面板的相对应;时钟中断的时间间隔是20ms,通过具有一定频率的时钟中断来查看当前洗衣机程序执行的执行情况、按键输入和面板输出,以提高效率、降低复杂性。洗衣机状态、指令集是洗衣机在转变为相应状态的时候所需要运行的指令等,这些存储在快速读写存储器之中,读取这些数据的时间非常快,在100ms的量级。读取按键输入按下按键按键有效性检查按键输入按键输入处理按键有效无效处理按键无效洗衣机状态信息查看程序状态状态信息按键状态转换状态信息有效按键输入定时20个时钟中断触发信息状态判断器输入信息定时10个时钟中断面板输出触发信息状态信息改变显示管状态信息解释程序信息状态变化信息发动机机械、电信号信号响应动作输出定时15个时钟中断触发信息洗衣机状态、指令集指令信息洗衣机控制软件任务划分洗衣机控制软件任务划分(在数据流图中被划
本文标题:DARTS实时软件分析设计方法
链接地址:https://www.777doc.com/doc-4852333 .html