《《软件设计方法》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《软件设计方法》PPT课件.ppt(61页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第4 4讲讲 实时软件设计方法实时软件设计方法主讲:黎忠文 内容提要内容提要 本讲首先讲述了本讲首先讲述了RSTADRSTAD的一些相关概念,并以行驶监控系的一些相关概念,并以行驶监控系统案例介绍了其应用步骤和方法。统案例介绍了其应用步骤和方法。介绍了介绍了DARTSDARTS的相关知识,并以行驶监控系统案例介绍其的相关知识,并以行驶监控系统案例介绍其使用步骤和方法。使用步骤和方法。对本讲中介绍的各种并发和实时软件设计方法进行比较。对本讲中介绍的各种并发和实时软件设计方法进行比较。最后概述了使用性能模型和应用实时调度理论进行软件设最后概述了使用性能模型和应用实时调度理论进行软件设计性能分析的
2、过程。计性能分析的过程。2023/1/212023/1/212 2目目 录录4.1 4.1 实时系统的结构化分析与设计实时系统的结构化分析与设计4.2 4.2 实时系统设计方法实时系统设计方法 4.3 4.3 并发和实时软件设计方法的比较并发和实时软件设计方法的比较 4.4 4.4 并发与实时系统软件设计性能分析并发与实时系统软件设计性能分析 2023/1/212023/1/213 3 转换转换转换转换可以是数据转换或控制转换。可以是数据转换或控制转换。在设计过程中,功能被映射为在设计过程中,功能被映射为模块模块模块模块。以状态转换图形时表示的以状态转换图形时表示的有限状态机有限状态机有限状态
3、机有限状态机用于定义系统的行为用于定义系统的行为特征。特征。控制转换控制转换控制转换控制转换表示的是状态转换图的执行过程。表示的是状态转换图的执行过程。实体关系(实体关系(实体关系(实体关系(ERERERER)模型模型模型模型用于显示系统中数据存储之间的关系用于显示系统中数据存储之间的关系模型。模型。模块内聚模块内聚模块内聚模块内聚在模块分解过程中作为一种标准来使用,用于确在模块分解过程中作为一种标准来使用,用于确定模块内部的强度或统一性。定模块内部的强度或统一性。模模模模块块块块耦耦耦耦合合合合在在模模块块分分解解过过程程中中作作为为一一种种标标准准来来使使用用,用用于于判判断模块间连接性的
4、程度。断模块间连接性的程度。4.1 4.1 实时系统的结构化分析与设计实时系统的结构化分析与设计4.1.1 4.1.1 基本概念基本概念2023/1/212023/1/214 4 4.1.2 4.1.2 表示法表示法 4.1 4.1 实时系统的结构化分析与设计实时系统的结构化分析与设计 实时结构化分析中使用了数据流数据流/控制流图控制流图。图图4-1中显示的是用于数据流/控制流图的Ward/Mellor表示法。状态转换图状态转换图是有限状态机的图形表示法。实体关系图实体关系图是E-R模型的图形表示法。结构图结构图用于显示程序分解为模块的方式,还用于显示模块间的接口。图图4-1 实时结构化分析表
5、示法实时结构化分析表示法2023/1/212023/1/215 54.1.3 4.1.3 使用方法的步骤使用方法的步骤 实时结构化分析实时结构化分析实时结构化分析实时结构化分析 在实时结构化分析阶段,将会发生以下活动在实时结构化分析阶段,将会发生以下活动:a)a)a)a)开发系统环境图。开发系统环境图。开发系统环境图。开发系统环境图。b)b)b)b)实实实实现现现现数数数数据据据据流流流流/控控控控制制制制流流流流的的的的分分分分解解解解系系统统要要分分解解为为多多个个功功能能并并且要以数据流或控制流的形式定义功能间的接口。且要以数据流或控制流的形式定义功能间的接口。c)c)c)c)开开开开
6、发发发发 控控控控 制制制制 转转转转 换换换换(Ward/MellorWard/MellorWard/MellorWard/Mellor)或或或或 控控控控 制制制制 规规规规 范范范范(Boeing/Boeing/Boeing/Boeing/HatleyHatleyHatleyHatley)对对结结构构化化分分析析主主要要的的实实时时扩扩展展是是引入了对控制问题的考虑,以定义系统的行为特征。引入了对控制问题的考虑,以定义系统的行为特征。d)d)d)d)定定定定义义义义小小小小说说说说明明明明(mini-specifications,mini-specifications,mini-spec
7、ifications,mini-specifications,或或或或过过过过程程程程规规规规范范范范)通常使用的是结构化的英语。通常使用的是结构化的英语。e)e)e)e)开开开开发发发发数数数数据据据据字字字字典典典典数数据据字字典典用用于于定定义义所所有有的的数数据据流流、事事件流、数据存储。件流、数据存储。4.1 4.1 实时系统的结构化分析与设计实时系统的结构化分析与设计2023/1/212023/1/216 6实时设计实时设计实时设计实时设计 在在RTSARTSA阶段之后,阶段之后,Boeing/Boeing/HatleyHatley方法使用了系统构架方法使用了系统构架图。图。War
8、d/MellorWard/Mellor方法则继续采用以下步骤:方法则继续采用以下步骤:f)f)f)f)将转换分配到各个处理器中将转换分配到各个处理器中将转换分配到各个处理器中将转换分配到各个处理器中。g)g)g)g)将转换分配到各个任务中将转换分配到各个任务中将转换分配到各个任务中将转换分配到各个任务中每个处理器的转换都被每个处理器的转换都被分配到并发任务中。分配到并发任务中。h)h)h)h)结构化设计结构化设计结构化设计结构化设计指定任务中的转换使用结构化设计分指定任务中的转换使用结构化设计分解为多个模块。解为多个模块。转换分析转换分析转换分析转换分析是用于将数据流图映射为结构图的一种策略,
9、是用于将数据流图映射为结构图的一种策略,其重要的流程是其重要的流程是输入输入输入输入-处理处理处理处理-输出流输出流输出流输出流。在模块分解过程中,功能内聚和信息内聚被认为是最强在模块分解过程中,功能内聚和信息内聚被认为是最强的内聚形式。数据耦合是耦合的最低形式。的内聚形式。数据耦合是耦合的最低形式。4.1 4.1 实时系统的结构化分析与设计实时系统的结构化分析与设计2023/1/212023/1/217 74.1.4 4.1.4 设计过程的成果设计过程的成果 实时结构化分析实时结构化分析实时结构化分析实时结构化分析应用应用RTSARTSA所产生的规范包括以下内所产生的规范包括以下内容:容:系
10、统环境图;系统环境图;数据流数据流/控制流图的层次集合;控制流图的层次集合;数据字典;数据字典;小说明。小说明。定义每种控制转换或控制规范的状态转换图。定义每种控制转换或控制规范的状态转换图。结构化设计结构化设计结构化设计结构化设计对于每个程序来说,都有一个结构图来对于每个程序来说,都有一个结构图来显示将其分解为模块的方式。显示将其分解为模块的方式。4.1 4.1 实时系统的结构化分析与设计实时系统的结构化分析与设计2023/1/212023/1/218 84.1.5 4.1.5 行驶监控系统案例研究行驶监控系统案例研究 实时结构化分析实时结构化分析实时结构化分析实时结构化分析 实时结构化分析
11、规范包括系统环境图、数据流实时结构化分析规范包括系统环境图、数据流/控制流控制流图的层次集合以及状态转换图。如图图的层次集合以及状态转换图。如图4-24-24-114-11所示。这所示。这个方案使用了个方案使用了Ward/MellorWard/Mellor表示法。表示法。开发系统环境图开发系统环境图开发系统环境图开发系统环境图 4.1 4.1 实时系统的结构化分析与设计实时系统的结构化分析与设计图4-2显示的是系统环境图,每个外部实体由一个终端表示。图图4-2 行使控制系统环境图行使控制系统环境图2023/1/212023/1/219 9分解系统环境图分解系统环境图分解系统环境图分解系统环境图
12、 图图4-34-3为为顶顶级级数数据据流流/控控制制流流图图,其其中中系系统统环环境境图图分分解解为两个主要功能为两个主要功能行驶控制功能和监视功能。行驶控制功能和监视功能。4.1 4.1 实时系统的结构化分析与设计实时系统的结构化分析与设计图图4-3 分解为子系统分解为子系统2023/1/212023/1/211010实现汽车行驶控制实现汽车行驶控制实现汽车行驶控制实现汽车行驶控制 实现汽车行驶控制(实现汽车行驶控制(图图4 4-3-3)分解为图)分解为图4-44-4所示的数据所示的数据流图。有流图。有3 3个数据转换在监视汽车的传感器。个数据转换在监视汽车的传感器。4.1 4.1 实时系统
13、的结构化分析与设计实时系统的结构化分析与设计图图4-4 实现汽车行驶控制实现汽车行驶控制2023/1/212023/1/211111行驶控制状态转换图行驶控制状态转换图行驶控制状态转换图行驶控制状态转换图 控制速度数据转换(控制速度数据转换(图图4-44-4)分解为数据流)分解为数据流/控制流图。控制流图。图图4 4-5-5中的行驶控制状态转换图由中的行驶控制状态转换图由图图4 4-6-6中的中的【行驶控制行驶控制】控制转换来执行。控制转换来执行。4.1 4.1 实时系统的结构化分析与设计实时系统的结构化分析与设计在使用图4-5中的实时 结构化分析约定时,其中的矩形表示状态状态,带有标签的箭头
14、表示状态转换状态转换。在直线的上方是可以引起状态转换的输入事件输入事件。在直线的下方是在发生转换时生成的输出事件输出事件。输出事件触发触发(T)、启动启动(E)或禁止禁止(D)数据转换,然后执行指定操作。图图4-5 行驶控制状态转换图行驶控制状态转换图2023/1/212023/1/211212 从行驶控制的角度来看,从行驶控制的角度来看,汽车的不同状态包括:汽车的不同状态包括:停机。停机。开始开始“非制动非制动”。开始开始“制动制动”。加速。加速。巡行。巡行。巡行关闭非制动。巡行关闭非制动。巡行关闭制动。巡行关闭制动。恢复巡行。恢复巡行。4.1 4.1 实时系统的结构化分析与设计实时系统的结
15、构化分析与设计输出事件如下所示:E1 启动“增加速度”D5 禁止“维持速度”D2 禁止“增加速度”E6 启动“恢复巡行速度”T3 触发“选择所需速度”D7 禁止“恢复巡行速度”E4 启动“维持速度”T8 触发“清除所需速度”2023/1/212023/1/211313 控制速度控制速度控制速度控制速度 经经触触发发的的转转换换是是一次性函数。一次性函数。在在整整个个状状态态的的过过程程中中启启动动的的转转换换很很可可能能是是可可以以循循环的。环的。4.1 4.1 实时系统的结构化分析与设计实时系统的结构化分析与设计在状态转换时,触发、启动或禁止控制速度(图4-6)过程中DFD上的数据转换。图图
16、4-6 控制速度控制速度2023/1/212023/1/211414 测量距离和速度测量距离和速度测量距离和速度测量距离和速度 图图4 4-4-4中的中的【测量距离和速度测量距离和速度】数据转换可以分解为图数据转换可以分解为图4-74-7中的数据流图。中的数据流图。4.1 4.1 实时系统的结构化分析与设计实时系统的结构化分析与设计图图4-7 测量距离和速度测量距离和速度2023/1/212023/1/2115154.1 4.1 实时系统的结构化分析与设计实时系统的结构化分析与设计【控制校准】是使用图4-8所示的状态转换图来定义的。图图4-8 控制校准状态转换图控制校准状态转换图2023/1/
17、212023/1/211616 实现汽车监视实现汽车监视实现汽车监视实现汽车监视 实现汽车监视(图实现汽车监视(图4-34-3)的过程在图)的过程在图4-94-9中进行了进一步分解中进行了进一步分解4.1 4.1 实时系统的结构化分析与设计实时系统的结构化分析与设计图图4-9 实现汽车监视实现汽车监视2023/1/212023/1/211717 监视并显示平均值监视并显示平均值监视并显示平均值监视并显示平均值 图图4-94-9中的中的【监视并显示平均值监视并显示平均值】数据转换分解为图数据转换分解为图4-104-10中所中所示的数据流图。示的数据流图。4.1 4.1 实时系统的结构化分析与设计
18、实时系统的结构化分析与设计它计算并显示了每加仑汽油可以行驶的平均英里数和每小时行驶的英里数。图图4-10 监视并显示平均值监视并显示平均值2023/1/212023/1/211818 检查维护需要检查维护需要检查维护需要检查维护需要 图图4-94-9中的中的【检查维护需要检查维护需要】数据转换分解为图数据转换分解为图4-114-11中所示的中所示的数据流图。数据流图。4.1 4.1 实时系统的结构化分析与设计实时系统的结构化分析与设计要定期进行3种维护服务:滤油器、空气过滤器和大修维护。每种服务的提供方式都是类似的。图图4-11 检查维护需要检查维护需要2023/1/212023/1/2119
19、19 结构化设计结构化设计结构化设计结构化设计 下一步下一步,RTSARTSA规范要映射到结构化设计中。如图规范要映射到结构化设计中。如图4-124-124-184-18所示。所示。4.1 4.1 实时系统的结构化分析与设计实时系统的结构化分析与设计结构图中的模块主要是功能模块功能模块,其中也有一些信息隐藏模块。主模块主模块行驶监控系统(图5-12)由一个环形循环,在这个循环中可以判断何时调用下级模块:实现汽车行驶控制和实现汽车监视。图图5-12 行驶监控系统结构图行驶监控系统结构图2023/1/212023/1/212020 实现汽车行驶控制实现汽车行驶控制实现汽车行驶控制实现汽车行驶控制
20、对应于其对应于其4 4个主要功能,实现汽车行驶控制有个主要功能,实现汽车行驶控制有4 4个下级个下级模块。在模块。在【获得行驶控制输入获得行驶控制输入】模块中,选择的是使用模块中,选择的是使用轮询轮询I/OI/O。4.1 4.1 实时系统的结构化分析与设计实时系统的结构化分析与设计图图4-13 获得行驶控制输入结构图获得行驶控制输入结构图2023/1/212023/1/212121 轴中断程序还要轴中断程序还要更新一个内部变量更新一个内部变量【轴转数轴转数】(ShaftRotation ShaftRotation CounterCounter),),然后然后【确定距离确定距离】模块模块(图(图
21、4-144-14)要访问)要访问这个变量来计算汽这个变量来计算汽车所经过的车所经过的【累积累积距离距离】。4.1 4.1 实时系统的结构化分析与设计实时系统的结构化分析与设计图图4-14 确定距离和速度结构图确定距离和速度结构图2023/1/212023/1/212222 无论何时出现新的行驶控制输入,无论何时出现新的行驶控制输入,【实现汽车行驶控实现汽车行驶控制制】模块都要调用模块都要调用【控制速度控制速度】模块(图模块(图4-154-15)4.1 4.1 实时系统的结构化分析与设计实时系统的结构化分析与设计图图4-15 控制速度的结构图控制速度的结构图2023/1/212023/1/212
22、323 时间问题时间问题时间问题时间问题 每次循环中,每次循环中,【实现汽车实现汽车行驶控制行驶控制】模块都会调用模块都会调用【获得行驶控制输入获得行驶控制输入】模模块判断是否有新的输入。块判断是否有新的输入。然后它会调用然后它会调用【确定距离确定距离和速度和速度】模块来更新累积模块来更新累积距离并计算当前速度。距离并计算当前速度。下一步就是调用下一步就是调用【控制速控制速度度】模块来处理下一次的模块来处理下一次的行驶控制事件和行驶控制事件和/或实现或实现任何状态依赖功能。任何状态依赖功能。最后,该模会会调用最后,该模会会调用【进进行校准行校准】(图(图4-164-16)来)来检查是否发生了校
23、准事件检查是否发生了校准事件4.1 4.1 实时系统的结构化分析与设计实时系统的结构化分析与设计图图4-16 实现校准结构化图实现校准结构化图2023/1/212023/1/212424 实现汽车监视实现汽车监视实现汽车监视实现汽车监视 【实现汽车监视】模块调用【获得复位输入】(图【实现汽车监视】模块调用【获得复位输入】(图4-124-12)模)模块,用于确定是否某个里程或维护复位按钮被按下。块,用于确定是否某个里程或维护复位按钮被按下。4.1 4.1 实时系统的结构化分析与设计实时系统的结构化分析与设计例如,如果按下了MPH复位按钮,【实现汽车监视】模块就会调用【监视并显示平均值】模块(图4
24、-17)。图图4-17 监视和显示平均值结构图监视和显示平均值结构图2023/1/212023/1/212525 如果按下了其中某个维护按钮,【实现汽车监视】模块就如果按下了其中某个维护按钮,【实现汽车监视】模块就会调用【检查维护需要】模块(图会调用【检查维护需要】模块(图4-184-18)。)。4.1 4.1 实时系统的结构化分析与设计实时系统的结构化分析与设计图图4-18 检查维护需要结构图检查维护需要结构图2023/1/212023/1/2126264.1.6 4.1.6 方法评估方法评估 优点包括:优点包括:结构化分析及其实时扩展在项目中得到了广泛应用。结构化分析及其实时扩展在项目中得
25、到了广泛应用。有大量的有大量的CASECASE工具可以支持工具可以支持RTSARTSA;使用数据流图和控制流图有助于对系统的理解和评审。使用数据流图和控制流图有助于对系统的理解和评审。强调了使用状态转换图强调了使用状态转换图/表的重要性。表的重要性。缺点包括:缺点包括:对于如何实现系统分解并没有提供足够的指导。对于如何实现系统分解并没有提供足够的指导。与与NRLNRL需求规范方法不同的是,需求规范方法不同的是,RTSARTSA并没有将系统作为并没有将系统作为黑盒来开发。这样就模糊了需求与设计之间的界限。黑盒来开发。这样就模糊了需求与设计之间的界限。结构化设计主要用于分解功能模块的程序设计方法,
26、而结构化设计主要用于分解功能模块的程序设计方法,而不能用于解决将系统分解为并发任务的问题。不能用于解决将系统分解为并发任务的问题。在信息隐藏的应用中,结构化设计方法落后于在信息隐藏的应用中,结构化设计方法落后于NRLNRL方法方法和面向对象的设计方法。和面向对象的设计方法。4.1 4.1 实时系统的结构化分析与设计实时系统的结构化分析与设计2023/1/212023/1/2127274.1.7 4.1.7 扩展与变化扩展与变化 ESMLESML(Extended System Modeling LanguageExtended System Modeling Language)是将是将Ward
27、/MellorWard/Mellor方法与方法与Boeing/HatleyBoeing/Hatley方法结合在一起用于方法结合在一起用于实时结构化分析的一种尝试。实时结构化分析的一种尝试。在开发状态转换图方面,在开发状态转换图方面,Ward/MellorWard/Mellor方法支持事件方法支持事件,但但不支持条件,而不支持条件,而Boeing/HatleyBoeing/Hatley方法支持条件却不支持事方法支持条件却不支持事件。件。在在ESMLESML和和COBRACOBRA中解决了所有这些限制中解决了所有这些限制,既支持事件又支持既支持事件又支持条件,这一点与条件,这一点与NRLNRL方法
28、和状态图表示法是相同的。方法和状态图表示法是相同的。4.1 4.1 实时系统的结构化分析与设计实时系统的结构化分析与设计2023/1/212023/1/2128284.2.1 4.2.1 4.2.1 4.2.1 基本概念基本概念基本概念基本概念 任务结构化标准任务结构化标准任务结构化标准任务结构化标准可以为设计人员将实时系统分解为并发任可以为设计人员将实时系统分解为并发任务的时候提供帮助。务的时候提供帮助。任务接口任务接口任务接口任务接口可以采用的形式有消息通信、事件同步或信息隐可以采用的形式有消息通信、事件同步或信息隐藏模块(藏模块(IHMIHM)。)。消息隐藏消息隐藏消息隐藏消息隐藏作为封
29、装数据存储的标准来使用。作为封装数据存储的标准来使用。采采用用状状态态转转换换图图形形式式的的有有有有限限限限状状状状态态态态机机机机用用于于定定义义系系统统的的行行为为特特征。征。使使使使用用用用事事事事件件件件顺顺顺顺序序序序识识识识别别别别系系系系统统统统子子子子集集集集,来来来来协协协协助助助助演演演演化化化化原原原原型型型型法法法法和和和和增增增增量量量量式式式式开开开开发发发发。这这些些图图确确定定了了用用于于处处理理外外部部事事件件的的任任务务和和模模块块的的执行顺序。执行顺序。4.2 4.2 实时系统设计方法实时系统设计方法2023/1/212023/1/2129294.2.2
30、 4.2.2 表示法表示法 在在RTSARTSA中中使使用用了了数数数数据据据据流流流流/控控控控制制制制流流流流图图图图。这这些些图图是是对对数数据据流流图图的的扩展,包括事件流和控制转换。扩展,包括事件流和控制转换。状状状状态态态态转转转转换换换换图图图图是是有有限限状状态态机机的的图图形形表表示示,其其中中的的节节点点代代表表状状态态,弧线代表状态转换。弧线代表状态转换。4.2 4.2 实时系统设计方法实时系统设计方法 DARTS设计方法使用任务构架图任务构架图来显示系统分解为并发任务的过程。如图4-19所示。起源于结构化设计的结构图结构图在DARTS中用于显示如何将一个任务分解为多个模
31、块。图图4-19 任务构架图表示法任务构架图表示法2023/1/212023/1/213030 4.2.3 4.2.3 使用方法的步骤使用方法的步骤 方法中所使用的步骤如下:方法中所使用的步骤如下:使用实时结构化分析方法开发系统规范。使用实时结构化分析方法开发系统规范。将系统划分为多个并发任务。将系统划分为多个并发任务。定义任务接口。定义任务接口。设计每个任务。设计每个任务。4.2.4 4.2.4 4.2.4 4.2.4 设计过程的成果设计过程的成果设计过程的成果设计过程的成果设计过程的设计过程的3 3个成果是:个成果是:RTSARTSA规范;规范;任务结构规范。任务结构规范。任务分解。任务分
32、解。4.2 4.2 实时系统设计方法实时系统设计方法2023/1/212023/1/2131314.2.5 4.2.5 行驶监控系统案例研究行驶监控系统案例研究 实时结构化分析实时结构化分析实时结构化分析实时结构化分析 应用应用DARTSDARTS的第一个步骤是开发的第一个步骤是开发RTSARTSA规范。规范。任务结构化任务结构化任务结构化任务结构化4.2 4.2 实时系统设计方法实时系统设计方法 在开发了RTSA规范之后,DARTS使用了任务结构化标准,用于确定系统中的并发任务。图4-20显示的是用于行驶监控子系统的任务构架图。图图4-20 行驶控制子系统的任务构架图行驶控制子系统的任务构架
33、图2023/1/212023/1/213232 图图4-214-21显示的是监视子系统任务构架图显示的是监视子系统任务构架图4.2 4.2 实时系统设计方法实时系统设计方法图图4-21监视子系统任务构架图监视子系统任务构架图2023/1/212023/1/213333 任务接口任务接口任务接口任务接口 这些任务通过消息或这些任务通过消息或IHMIHM进行通信。进行通信。由由多多个个任任务务访访问问的的数数据据存存储储要要映映射射到到IHMIHM中中。因因此此,在在行行驶驶控控制制子子系系统统中中,【当当前前速速度度】、【所所需需速速度度】、【累累积积距距离离】、【轴轴转转数数】和和【校校准准常
34、常数数】数数据据存存储储都都要要映映射射到到信信息息隐隐藏藏模模块块中中。在在监监视视子子系系统统中中,3 3个个任任务务之之间间的的接口要通过数据存储映射到接口要通过数据存储映射到IHMIHM中。中。到行驶控制任务的接口是松散耦合先进先出队列。到行驶控制任务的接口是松散耦合先进先出队列。4.2 4.2 实时系统设计方法实时系统设计方法2023/1/212023/1/213434 结构化设计结构化设计结构化设计结构化设计 一旦设计完任务并定义了任务间的接口之后,下一步就要通过一旦设计完任务并定义了任务间的接口之后,下一步就要通过使用结构化设计方法,将任务分解为多个模块。这些模块主使用结构化设计
35、方法,将任务分解为多个模块。这些模块主要是功能模块,有些是要是功能模块,有些是IHIH。4.2 4.2 实时系统设计方法实时系统设计方法 在结构化设计中,通常位于层次结构的最低层。图4-22显示了行驶控制任务的结构。图图4-22 行驶控制任务结构图行驶控制任务结构图2023/1/212023/1/213535 图图4-234-23显示的是【汽车速度控制】任务的结构。显示的是【汽车速度控制】任务的结构。4.2 4.2 实时系统设计方法实时系统设计方法 这个任务通过调用【接受速度命令】模块并等待消息来接收速度命令。【汽车速度控制】模块的设计是事务分析的一个例子。图图4-23 汽车速度控制任务结构图
36、汽车速度控制任务结构图2023/1/212023/1/213636 图图4-244-24所示为【实现校准】模块的结构图。该模块调用了所示为【实现校准】模块的结构图。该模块调用了【读取校准】输入模块来接收输入。【读取校准】输入模块来接收输入。4.2 4.2 实时系统设计方法实时系统设计方法图图4-24 实现校准任务结构图实现校准任务结构图2023/1/212023/1/2137374.2.6 4.2.6 方法评估方法评估 这种方法优点包括:将系统分解为多个并发任务,并提供了用于确定任务的标准。对于定义任务间接口的方式,该方法提供了详细的指导。主要使用了状态转换图,这在实时控制系统的设计中是非常重
37、要的。该方法提供了从RTSA规范到实施设计的转换。这种方法的缺点包括:虽然DARTS使用了信息隐藏技术来封装数据存储,但使用的广泛性并没有达到使用NRL和OOD方法的程度。使用DARTS的潜在问题是:如果RTSA阶段的工作完成得不好,那么任务的结构化工作就会更加困难。4.2 4.2 实时系统设计方法实时系统设计方法2023/1/212023/1/2138384.2.7 4.2.7 扩展与变化扩展与变化 将系统分解为子系统的方法之一是称为将系统分解为子系统的方法之一是称为DART/DADART/DA的方法,的方法,它是对它是对DARTSDARTS方法的扩展,可以支持分布式实时应用程序。方法的扩展
38、,可以支持分布式实时应用程序。DARTSDARTS在信息隐藏中的缺点通过在信息隐藏中的缺点通过ADARTSADARTS方法和方法和CODARTSCODARTS方法方法得到了解决。得到了解决。ADARTSADARTS和和CODARTSCODARTS的设计可以使用类似于的设计可以使用类似于BuhrBuhr图的图形化图的图形化表示法来描述。表示法来描述。在在CODARTSCODARTS方法中,使用方法中,使用RTSARTSA的潜在问题通过使用的潜在问题通过使用COBRACOBRA分分析和建模方法得到了解决,而并非使用析和建模方法得到了解决,而并非使用RTSARTSA方法。方法。4.2 4.2 实时系
39、统设计方法实时系统设计方法2023/1/212023/1/2139394.3.1 4.3.1 并发任务比较并发任务比较 虽虽然然所所有有的的方方法法都都在在某某种种程程度度上上解解决决了了并并发发的的问问题题,但但是是它它们们的的侧侧重重点点各各有有不不同同。对对DARTSDARTS和和JSDJSD这这两两种种方方法法来来说说,并并发发任任务务比比较较重重要要。NRLNRL方方法法和和OODOOD方方法法不不侧侧重重于于任任务务结结构化。构化。Ward/MellorWard/Mellor版本的版本的RTSADRTSAD方法,可以将系统分解为多个并方法,可以将系统分解为多个并发任务,但对此提供的
40、指导却很少。结构化设计(发任务,但对此提供的指导却很少。结构化设计(SDSD)是一种程序设计方法,而不能解决任务结构化的问题。是一种程序设计方法,而不能解决任务结构化的问题。而结构化设计可以用于设计单个任务,与使用而结构化设计可以用于设计单个任务,与使用DARTSDARTS方法方法的作用相同。的作用相同。在行驶控制问题中,结构化设计方案解决了一个内在的并在行驶控制问题中,结构化设计方案解决了一个内在的并发问题,并将其转换为顺序性方案。发问题,并将其转换为顺序性方案。DARTSDARTS在任务结构化领域解决了在任务结构化领域解决了RTSADRTSAD的缺点。的缺点。4.34.3并发和实时软件设计
41、方法的比较并发和实时软件设计方法的比较2023/1/212023/1/214040 与与SDSD方法不同,方法不同,DARTSDARTS方法并没有使用循环指令来控制整方法并没有使用循环指令来控制整个系统,而是更具有独立性。个系统,而是更具有独立性。JSDJSD模型任务类似于模型任务类似于DARTSDARTS中的控制任务。中的控制任务。在映射任务时和把功能分组的过程中,在映射任务时和把功能分组的过程中,NRLNRL方法没有使用方法没有使用DARTSDARTS方法中的任务内聚或方法中的任务内聚或JSDJSD方法中任务转换的概念。方法中任务转换的概念。与与DARTSDARTS方法和方法和NRLNRL
42、方法不同,方法不同,OODOOD方法认为可以使用相同方法认为可以使用相同的对象结构化标准来确定任务(主动对象)和信息隐藏的对象结构化标准来确定任务(主动对象)和信息隐藏模块(被动对象)。模块(被动对象)。面向对象的设计方法没有用于优化设计的策略,而面向对象的设计方法没有用于优化设计的策略,而DARTSDARTS提供了任务内聚标准,提供了任务内聚标准,JSDJSD提供了任务转换方法。提供了任务转换方法。4.3 4.3 并发和实时软件设计方法的比较并发和实时软件设计方法的比较2023/1/212023/1/2141414.3.2 4.3.2 信息隐藏和对象比较信息隐藏和对象比较 在在NRLNRL方
43、法和方法和OODOOD方法中,信息隐藏是非常重要的基本原则。方法中,信息隐藏是非常重要的基本原则。DARTSDARTS方法和方法和RTSADRTSAD方法也使用了这种概念,但是方法也使用了这种概念,但是JSDJSD方法没有方法没有使用。使用。NRLNRL方法和方法和OODOOD方法都侧重于将系统分解为信息隐藏模块(对方法都侧重于将系统分解为信息隐藏模块(对象)。象)。在在NRLNRL方法中有一类模块不能使用方法中有一类模块不能使用OODOOD方法直接确定。方法直接确定。与与NRLNRL方法相比,在方法相比,在OODOOD方法的对象结构化过程中,并没有限方法的对象结构化过程中,并没有限制让每个对
44、象制让每个对象/模块只能隐藏一个设计决策。模块只能隐藏一个设计决策。RTSADRTSAD方法在信息隐藏的领域并无长处可言。在这种方法的应方法在信息隐藏的领域并无长处可言。在这种方法的应用中,结构化设计方法要落后于用中,结构化设计方法要落后于NRLNRL方法和方法和OODOOD方法。方法。DARTSDARTS使用信息隐藏概念的程度比不上使用信息隐藏概念的程度比不上NRLNRL方法和方法和OODOOD方法。方法。4.3 4.3 并发和实时软件设计方法的比较并发和实时软件设计方法的比较2023/1/212023/1/2142424.3.3 4.3.3 有限状态机比较有限状态机比较 RTSADRTSA
45、D、DARTSDARTS、NRLNRL将有限状态机的使用作为主要问题来将有限状态机的使用作为主要问题来考虑考虑。在在OODOOD中它是一个次要问题。在中它是一个次要问题。在JSDJSD中采用的是使中采用的是使用实体结构图来描绘时间顺序的方法。用实体结构图来描绘时间顺序的方法。Ward/MellorWard/Mellor版本的版本的RTSARTSA方法只允许在状态转换中出现事方法只允许在状态转换中出现事件,而不允许出现条件。件,而不允许出现条件。Boeing/HatleyBoeing/Hatley方法允许出现条方法允许出现条件而不允许出现事件。件而不允许出现事件。NRLNRL方法既支持事件也支持
46、条件,方法既支持事件也支持条件,而且还可以使用更为简明的状态转换表。而且还可以使用更为简明的状态转换表。在结构化设计中没有很好解决的状态依赖问题在在结构化设计中没有很好解决的状态依赖问题在DARTSDARTS中中得到了解决。得到了解决。在在OODOOD方法中,可以通过封装在对象中的有限状态机来定方法中,可以通过封装在对象中的有限状态机来定义对象。义对象。在在JSDJSD方法中,所使用的常规表达式表示法在数学上等价方法中,所使用的常规表达式表示法在数学上等价于有限状态机表示法。于有限状态机表示法。4.3 4.3 并发和实时软件设计方法的比较并发和实时软件设计方法的比较2023/1/212023/
47、1/2143434.3.4 4.3.4 时间约束时间约束 这这里里介介绍绍的的每每种种方方法法都都在在一一定定程程度度上上解解决决了了时时间间约约束束的的问问题。题。RTSADRTSAD方法在分析和设计阶段解决了时间约束的问题。方法在分析和设计阶段解决了时间约束的问题。DARTSDARTS使用使用RTSARTSA时间规范将时间预算分配到每个任务上。时间规范将时间预算分配到每个任务上。在在NRLNRL方法中,要在需求阶段对那些生成系统输出的定期方法中,要在需求阶段对那些生成系统输出的定期功能和请求功能指定时间约束。功能和请求功能指定时间约束。在在JSDJSD方法中,使用网络图可以确定单个任务的时
48、间约束。方法中,使用网络图可以确定单个任务的时间约束。在在OODOOD方法中,时间图可以用于显示对象之间的时间依赖方法中,时间图可以用于显示对象之间的时间依赖关系。关系。总之,时间约束问题在实时系统中很重要,它是大多数用总之,时间约束问题在实时系统中很重要,它是大多数用于实时系统的软件设计方法的特征之一。于实时系统的软件设计方法的特征之一。4.3 4.3 并发和实时软件设计方法的比较并发和实时软件设计方法的比较2023/1/212023/1/2144444.4.1 性能模型性能模型4.4 4.4 并发与实时系统软件设计性能分析并发与实时系统软件设计性能分析 概念概念 计算机系统的性能模型是对真
49、实计算机系统行为的抽象。可以是数学模型或模拟模型。可以是静态的,也可是动态的。队列模型队列模型 是计算机系统的解析模型,用于分析系统中对有限资源的竞争和预测系统性能,是计算机系统性能的高级模型。模拟模型模拟模型 是确定设计是否完善且符合时间要求的有效方式。计算机系统建模中的问题计算机系统建模中的问题 开发模型时考虑的主要因素包括开发模型的开销、模型的详细程度、完成模型的速度及其精确度。本节概述了实用性能模型和应用实时调度理论进行软件设计性能分析的过程。4.4 4.4 并发与实时系统软件设计性能分析并发与实时系统软件设计性能分析4.4.2 4.4.2 PetriPetri网网网网 由于有限状态机
50、的严格顺序性,因此不能用于对平行关由于有限状态机的严格顺序性,因此不能用于对平行关系进行建模。系进行建模。PetriPetri网网网网可以直接对并发系统进行建模,是更为有利的工可以直接对并发系统进行建模,是更为有利的工具。有限状态机是其串行子集。具。有限状态机是其串行子集。PetriPetri网使用有向图表示,支持的两种节点称为库所。其网使用有向图表示,支持的两种节点称为库所。其执行由执行由令牌令牌令牌令牌来控制。来控制。PetriPetri网既可以作为分析工具也可以作为建模工具使用,网既可以作为分析工具也可以作为建模工具使用,功能非常强大。功能非常强大。2023/1/212023/1/214