第8章 飞行模拟:构架可集成性案例分析

 
今天的飞行模拟系统是现在最为复杂的软件系统之-。飞行模拟系统具有很强的分布 性,有严格的时间要求,而且还必须能够经常更新,以保持与所模拟的不断变化的飞行器 及环境的逼真性。在对如下几个方面进行设计时.这些大型软件系统的创建和维护对软件 开发提出了巨大的挑战:
 
•严格的实时性能。
 
•可修改性,以适应需求的变化以及所模拟的飞行器和其环境。
 
•功能的可扩充性,这是-种可修改性。可扩充性是对这些系统进行扩展.以使它 们能够模拟更多的真实环境,并进一步提高模拟的逼真度。
 
但是,正如本章的标题所表述的那样,我们首要关注的是可集成性的设汁——第4章 并没有阐述此系统质量属性,但在大型系统中(尤其是那些由分敗的小组和单独的组织所 开发的系统),可集成性通常是作为-个驱动因素出现的。可集成性指的是使申单独开发的 元素协同工作,以实现软件的需求。与其他质量厲性-样,可以通过采用构架战术实现可 集成性(-些可集成性的目的也是可修改性)。这些战术包括使接口较小、简单、稳定: 遵守已定义的协议:松耦合或使元素间的依赖最小:使用组件框架:并使用已有版本的接口 (它们可以在允许现有元素工作在原有约束下的同时进行扩展)。
 
本章讨论了关于飞行模拟的一些具有挑战性的问题,并为解决这些问题引入了 一种新 构架模式。该模式称为结构化模型,它突出强调如下这些方面:
 
•系统子结构的简单性和相似性
 
•将数据和控制信息的传递策略与运算分离开
 
•模块类型数量最少
 
•较少的系统级协调策略
 
•设计的透明性
 
我们将会看到,在这些原则的指引下,得出的构架模式不仅具有较高的可集成性,而 且能满足飞行模拟软件所必须具备的其他质量属性。该模式是由多个简单模式组成的。
 
8.1与构架商业周期的关系
 
本章所要研究的是构架商业周期中将构架与所期望的质最厲性相联系的部分。图8.1给出了基于结构化模型的飞行模拟系统的构架商业周期。飞行模拟系统的客户是美国空 军,最终用户是所模拟飞机的飞行员和其他机组人员。飞行模拟系统用于对<行员操纵飞 机、机组人员操纵各种机载武器系统、针对某项任务对飞机的操纵等各项训练。有些飞行 模拟系统更倾向于单独的用途,但越来越多的此类系统需要为完成协同任务而同时训练多 个机组人员。
飞行模拟系统是由中标的签约商负责开发的。飞行模拟系统的规模大(-•些系统的源 代码长达150万行)、寿命长(所模拟的飞机的寿命通常为40年或更长).而且在实时性、 逼真性等方面都有着苛刻的要求(该模拟系统所模拟的飞机必须与各种真实情况下的飞机 完全相同,如i正常飞行、紧急任务和设备故障)。
 
结构化模型设计始于1987年。当时.美国空军正在调查面向对象设计技术的应用情 况。电子飞行模拟系统则早在20世纪60年代就己经出现了.对新的设计技术的考察是由
与已有设计相关的问题引发的。在当时的飞行模拟系统中既有构造问题(随着系统规模和 复杂性的增加,开发的集成阶段的复杂性呈指数增加),也有致命问题(有些修改的代价 接超过了最初系统的总开发费用)。
 
我们将会看到,结构化模型模式能够克服这些问题。在B-2武器训练系统、C-17交勤 训练系统和特种兵系列训练系统等多种系统的幵发中都运用了结构化模型。
 
8.2需求与质量
飞行训练模拟系统有3种作用。第一个作用是训练飞行员和机组人员。受训人员來在 某个可运动的舱内,周围都是为保证与真实飞机坐舱环境相同而设置的各种仪器和开关, 参训人员也能看到与在真实飞行时完全相仿的外部景色。我们对该模拟舱的运动情况和外 部景色的显示生成器不做过多的介绍。它们都是由专用处理器实现的,不属于我们所耍讲 的软件构架的范畴。飞行模拟系统的目的是要教戈行员和机组人员学会如何操纵某种飞 机、如何完成诸如空中加油之类的任务以及在受到攻击时该如何做出反应等。模拟的退真 I性是这种训练能否成功的重要因素。例如,通过该模拟系统必须要能够体验到做某个具体操作时实施控制的感觉。否则,飞行员和机组人员就无法受到正确的训练,而且训练的效 果可能适得其反。
 
飞行横拟系统的第二个作用是对环境的模拟。-般地,虽然在多机训练中该环境可包括其他参训人员,但这一环境通常是个计算机模型。这.环境包括空气、各种威胁、武器和其他飞机。例如,如果训练的目的是要练习空中加油,(所模拟的)加油机就耍在这 环境的空气中产生湍流。
 
飞行模拟系统的第三个作用是对教练的模拟。通常每次训练都有非常明确的目的。而且在训练过程中也会出现各种情况。在训练中,教练负责对飞行员及机组人员的表现进行监控。并负责启动各种训练环境。有时会提前下发关于这些训练环境的文字材料,有时则是由教练在训练时设置这样的环境。比较典型的情况有设备故障(如在着陆时起落架没有 |正确打开)、敌方对飞机的攻击、til暴风雨导致的湍流之类的大气环境等。教练员有独立 |的控制台,可用以监视受训人员的操作、设置飞机故障并控制训练环境。图8.2给出了几套具有代表性的现代飞行模拟设备。
 
8.2.1模型的使用
我们儿乎能够把在飞机和环境屮使用的模型模拟到任意遇真度。作为逼真度范围的一个示例,考虑-下影响飞机的空气压力的建模问题。一个简单的模型就是空气压力仅受飞机高度的影响。一个稍微复杂点的模型就是空气压力受高度和当地大气模式的影响。要对 本地天气模式进行建模需要更强大的计算能力,但允许考虑上升气流和强烈的向下气流。 考虑了其他计算需求的更为复杂的模型是.空气压力受高度、当地天气模式和附近飞机活 动的影响。当某架飞机通过所模拟飞机的空域时就会产生湍流。
 
将飞机或环境模拟到高逼真度的能力的结果是,过去的培训模拟系统总体受制于汁算 能力的限制(可能将来也一直会是这样)。因为机组人员模拟系统训练是整个飞行训练中 很重要的一部分,因此.对于稍微高一点的逼真性是否提高培训的效果并因此提萵受训人 员的技能,•直存有争议•因此,对于飞行模拟系统来说,性能是一个很重要的质量属性需求。
 
8.2.2运行状态
飞行模拟系统的运行涉及多种状态.其中包括:
 
•运行状态。运行状态对应于模拟系统作为训练工具的正常操作状态。
 
•配置状态。配置状态对应于必须要对当前的训练期进行更改的情况。例如,假设机组人员正接受单机训练,而教练员希望改为空中加油训练。那么,就要使模拟系统进入配置状态。
 
•停止状态。指停止当前的模拟。
 
•重放状态。重放状态就是在没有机组人员干预情况下播放某次飞行換拟。重放功能与其他功能相结合,可用以向参训的机组人员演示他们所做的操作。在训练过程 中,机姐人员可能忙于对飞机进行操作,没有更多地考虑自己的做法是否恰当。第5章曾记录/回放确定为用于测试的构架战术。在这里我们也发现它用于训练的过程中。
 
本章讨论的模拟系统具有如下4大特征:
 
(1)实时性能要求。为保证逼真性,飞行模拟系统的执行必须保持非常高的帧频。对于不了解帧频的人来说,我们可以用电影进行--下类比。每个帧就是拍下的一个快照。当 在一定的时间间隔内按顺序拍下了足够数量的帧时,用户就能看到或感觉到连续的动作。不同的检测需要用不同的帧频,常见的模拟程序帧频为30HZ或60HZ-秒的1/30或1/60。在每个帧频内,所有计算的运行都必须完成。    
飞行模拟系统各部分的运行速度都与基频的某个整数因子相吻合。如果基频是60HZ,比较慢的部分就可以以30HZ、20HZ、15HZ、12HZ等频率运行,而不能以 某个非整数因子的频率(如25HZ)频率运行,做出这-限制的原因之一是飞行模拟系统为参训人员所提供的传感输入必须是严格地相协调的。如果使用该模拟系统的飞行员在做转弯操作的时候不能看到不同的景象或根本没有这种转弯的感觉(即使是在很短的时间内,如1/10秒内),该系统也是不符合要求的。即使是对那些持续时间短暂、让人难以觉察到的小小的延迟,如果不考虑相互协调也会出现一些问题。这种延迟可能会引发一种所谓的模拟厌倦症-一种由于传感输入协调性不好而导致的心理反应。
 
(2)连续的开发和修改。采用飞行模拟系统是为了在用实际的飞机训练代价昂贵或非危险时,用飞行模拟系统提供等效的训练环境。为了让受训人员能够有类似于真实体验的体验。模拟系统所提供的环境必须要和实际飞机的环境完全相冏-但无论是民用飞机还是军用飞机,它们都在修改、更新。所以,对飞行模拟系统软件也耍不断地进行修改和更新,以保证模拟系统的逼真性。而且,采用模拟系统來进行的训练也是不断扩展的。以便能够包括与所模拟的飞机和新的环境情况相关的新问题(故障),如在城市中使用的军用直升机。
 
(3)规模大、复杂程度高飞行模拟软件.般要用几万行代码才能实现对最简单的训练环境的模拟,要实现复杂的、多人同时训练的环境,就得用上百万行代码。而且,与其30年的飞行历史相对照,飞行模拟系统的复杂性已表现出了呈指数增长的态势。
 
(4)在分散的地理位置上开发。军用飞行模拟系统股是以分布式的方式开发的.这主要有两个原因,一个是技术方面的,个是政治方面的。从技术上禮,这种模拟系统的
不同部分的开发需要不同的专业知识,所以签约商把该系统的某些部分转由其他专业组 织开发的情况是比较常见的。从政治上看,像飞行模拟系统这样的高科技开发是各种政治 势力争夺的对象,各个派别都想分管•部分。不管从哪个方面看,由于通信链路的加长, 飞行模拟系统的可集成性——本来就因为代码又长又复杂而不易实现——的实现难度都 更大了。
 
此外,飞行模拟系统中所存在的两个问题导致美国空军开始研究新的模拟系统设计方案。
 
(1)调试、测试和修改代价很高。飞行模拟系统极高的复杂性、严格的实时性要求和 需要经常修改都使该系统的测试、集成和修改代价超过幵发成本。因此,复杂性(及其相 关成本)的不断增加使美国空军幵始强调构架的可集成性和可修改性。
 
(2)软件结构和飞机结构的对应关系不明确。飞行模拟系统的开发传统上都足把运行 时效率作为首要质量目标„考虑到对这种系统的性能要求、逼真性耍求以及最初的飞行模 拟系统是在(以今天的标准来看)内存和处理能力极其有限的平台上幵发完成的种种因素, 出现这种情况是不足为奇的。飞行模拟系统的传统设计方法是以后面提到的控制循环为基 础的。这些控制循环又是由激活这种循环的任务而引发的。例如,假设飞行员要做左转弯 操作。如果是在实际的飞机上,飞行员操纵方向舵和副翼,这将改变控制表面,而控制表 面影响着空气动力特性.实现了飞机转弯。在飞行模拟系统中,采用了一个反映控制部件、 控制表面、空气动力特性和飞机飞行方向之间的关系的模型。在最初的飞行模拟系统所采 用的构架中,这模型是在一个称作“转向”的模块中的。对水平飞行、起飞和着陆等也 可以有类似的模块。这种基本的分解策略是建立在对飞行员和机组人员所做操作进行考 察。把实际执行这些任务的组件模型化,使所有的运算都尽可能在本地完成这一思想基础 之上的。
 
采用这种策略可将任务在某一个(或少数几个)组件中模型化地实现,从而最大限度 地降低了为执行这些运算所需要的数据通信,所以可最大限度地提商性能。这一构架的问 题是耍在多个模型中表示相同的物理部件.即同一物理部件出现在模拟系统的多个模块 中。而这些模块之间广泛的交互作用又会导致可修改性和可集成性方面的问题。如果控制 转向的模块与控制水平飞行的模块集成在了一起,可是发现提供给转向模块的数据有问 题.而同样的数据可能也由水平飞行模块使用.所以在集成和维护过程中黹耍考虑很多耦 合因素。
 
本章余下部分将讨论(被称为结构化建模)重新分析飞行模拟系统屮的问题后所得到 的构架模式。简而言之,该模式包括面向对象的设计方案.以对子系统和飞行器的控制器子模块建模。它将实时调度与该面向对象的设计方案紧密结合在一起。作为控制模拟子系 统执行顺序的一种手段,以使它能够保证逼真性。
 
8.3构架解决方案
阁8.3给出了飞行模拟系统的参考模型。图中给出了前面己经确定的3个角色(飞行 器、环境和教练员),展示了与机组人员和各种提示系统的交互。通常情况下.教练员并 不与受训的机组人员坐在同一坐舱中。环境模型可能是在另外一套设备中,也可能就在教 练员所用的设备中。
 
教练台和興他两部分的逻辑划分是很明显的。教练台支持教练员控制和监视机组人员 的操作。其他两部分执行模拟。飞行器和环境之间的划分就没有这么明显了。例如考虑飞 机投弹的情况。在炸弹被投出之前,应该是飞机的一部分,炸弹被投出就又成为环境的一部分了。但在刚投出时.炸弹的空气动力特征就与投弹时飞机的特征很相似,,所以,空气 动力特征的建模.至少在刚投出时,是与飞机模型有着密切联系的。如果总是把炸弹看作 是环境的一部分,则对炸弹的建模就要求飞机与环境要紧密协调。如果在投弹前将炸弹看 作是見机的-部分,一H投出则看作是环境的一部分,则对炸弹的控制就涉及从种调度 方式到另-种调度方式的转换。
 
8.3.1飞行模拟系统中时间的处理
 
第5章曾经讲过,资源管理是一种实现性能目标的战术。在实时模拟系统中,需要管理的最重要的资源就是时间。飞行模拟系统应该反映真实愤况,它是通过创建基于时间的现实世界行为来对真实情况进行模拟的。所以,当坐在模拟喵舱里的飞行员按下飞行按钮 时,飞行模拟系统必须像真实的飞机那样在真实的时间内做出相应的反成。这里所说的 “真实的时间”是指这时间既不能过长,也不能过短。反应过快或过慢都会给模拟的效 采带来不以影响。
 
在飞行模拟系统中,有两种根本不同的时间管理方法,分别是周期式的和基于事件的。 这两种方法都得到了采用。周期性时间管理用在必须维持实时性能的部分(如飞行器), 基于事件的时间管理用在实时性能并不是很关键的地方(如教练台)。
 
1.周期性时间管理
 
周期性时间管理有一个基于帧频的固定的(模拟的)时间量子,它是系统进程调度的 基础。它一般使用-个非抢先式的循环调度策略。调度程序重复执行如下循环步骤:
 
•设置初始模拟时问。
 
•重复以下两步,直至该会话期结束
 
•    按固定(真实)时间量子调用各个进程。调用的每个进程都根据当前的模拟 时间计算自己的内部状态,并在下一个模拟时间到来时报告自己的内部状态. 调用的每个进程都保证在实时时间量子内结束自己的运算。
 
•    把当前模拟时间与时间量子相加。
 
只耍各个进程能够在所分配的时间最子内将自己的状态准格好并提交给下一个周期. 基于周期时间管理的模拟就能够保持模拟时间和真实时间的同步。
 
通常.这足通过调粮各个进程的任务来实现的。要保诎各个进程的任务足够小,能够 在所分配的时间批子内完成。设计人员需耍提供所需要的处理器的数量。以确保提供足够 高的计算能力,保证所有的进程都能够得到所需的计箅能力„
 
2.基于事件的时间管理
 
基于事件的时间管理策略类似于许多操作系统屮采用的基于中断的调度策略。在这种 方式下,通过反复执行如下的循环步骤实现调度:
 
•向事件队列中添加模拟事件。
 
•如果事件队列中有事件:
 
•    选样事件队列中模拟时间最少(即执行最快)的事件.
 
•    将当前模拟时间设置为所选定事件的时间。
 
•     为选择的事件调用一个进程。该进程可以向事件队列中添加事件
 
这里,模拟时间会随所调用的进程把事件放入事件队列中而推进,由调度程序选择下 -个要处理的事件。在纯粹的基于事件的模拟中,所模拟的时间可能会比实际时间进展的 更快(在战争游戏模拟中)或更慢(在工程设计模拟中)。
 
3.混合时间系统
 
现在我们讨论一下飞行模拟系统3部分的调度问题,教练台一般是在时间的基础上进 行调度的——那些来自教练员的交互的事件——飞行器模型足在周期性的基础上进行调 .度的。可以使用任何一种方式来调度环境模型。因此,飞行器和环境之间的耦合可能涉及不同的时间管理方式之间的匹配。
 
飞行横拟系统必须要把周期时间模拟(如在飞行器模型中)和基于事件的模拟(如在 某些环境模型中)以及其他-些不可预测的基于事件的活动(如与教练台的交互或飞行员设置某个开关)结合起来。在这一结合中.可以采用许多调度策略.
 
在周期性调度的处理器屮,管理事件的一种简单的做法是在同步之后马上进行周期处理。并在任何非周期处理开始之前完成。非周期处理在有限时间段内完成,在这一期间尽 可能多地检索和处理消息。没有在给定时间内处理的消息必须要推迟到下一个周期中,并要求同-来源的所有消息都按照接收顺序进行处理。
 
如上所述,基于事件进行管理的系统的各部分与使用周期调度管理的系统的各部分间 通信表现为非周期的。
 
在理解了飞行模拟系统中的时间管理机制之后,下面我们讨论一下处理这一复杂性的 构架模式,该模式用于飞行器.因此,对时间管理的讨论是从飞行器的角度进行的。
 
8J.2结构化模型的构架模式
 
正如在2.3节中已经定义的那样,结构化模型就是构架模式。也就足说,结构化模型 包括一组元素和对元素在运行时的协作配置。本节将给出结构化模型模式,并讨论产生这一模式的原因。应该注意的是飞行器结构化模型本身可能就耍用多个处理器运行。所以, 飞行器结构化模型的各个部分必须荽相互协调,同时也要与环境模型及所模拟的教练台 (可能在小同的处埋器上运行)部分进行通信。
 
■可以在粗粒度级别把结构化模型构架样式分为两大部分,即管理部分和应用部分。
 
•管理部分处理协调问题:子系统的实时调度、处理器间的同步、从教练台上对事 件进行管理、数据共享、数据完整性等。
 
•应用部分处理飞行模拟系统的运算:对飞行器建模。应用部分的功能是由各个子系统及其组件完成的。
 
我们首先详细时论飞行模拟器的管理部分,然后再讨论其应用模块部分。
 
8.1.3飞行模拟器的模型管理部分的模块
阁8.4是洋细给出了管理部分组件构成的飞行器结构化模型。管理部分中的模块有时 间同步器、周期时序器、亊件处理器、模拟系统其他部分的代理等。
 
 
4.代理
 
代埋负资完成飞行器模型和环境模型或教练台模型之间的系统级的通信,它是“使用仲裁者”战术的种应用。代理了解与之通信的系统的物理细节,负贵解决诸如表示、通 信协议之类的问题。
 
例如.教练台监视着来自飞行器模型的状态数据.并将相关数据显示给教练员。代理 在获得对处理器的控制时收集所需的数据.并将这些数据发送给教练台。另•方面.教练 可能希遒为机组人员设1:特定的训练状态。代理负责接收这样的事件,并将其发送给刺牛 处理器.以分发到相关的子系统。
 
I代理的r作方式意味着周期调度程序和事件处理器都"]•以不考璁教练台或运行环境 棋银的平台的具体细节。所有与具体系统相关的细节都内嵌在代理中。对这些平台的修改 只需耍通知飞行器模甩系统中的代理就可以了,不需要进一步传播这样的信息。
 
8J.4飞行模拟器模型应用模块
 
阁8.5给出了 t行器结构模撖应用部分的模块类型•只有两大部分•即子系统控制器
和组件。各个r系统控制器之间可以相互传递数据,但只能向苒子组件传递数据。组件只 能与其父绀件传递数椐,不能向任何其他组件传递数据。组件只能接收来向父组件的控制, 也只能向父组件反馈控制信息。对数据和控制信息传递做出这些限制"了以避免出现组件将 数椐或控制倍息传递给同级组件的情况。这些限制的基本思想是要通过消除组件实例之间 除父子关系之外的所有耦合情况,来简化集成和维护工作。维护或集成所带来的影响由上一级子系统控制器来调解。这是使用“限制通信”战术的.个示例„
8.4小 结
在本章中.我们描述了飞行模拟系统的构架,在设计该系统时要实现性能、可集成性 和可修改性.项目能够在节约成本的悄况下实现这些质最厲性。例如,现场安装小组的人 数只有以前所要求的一半,因为他们能够更容易地查找和纠正错误。设计方案通过以下方 式实现了这些质量属性:限制结构化模型构架模式中的模块类型配置的数量、限制模块类 型之间的通信、根据飞机中的预期变更分解功能。
 
这些模拟系统的改进主要得益于更好地理解并进守经过了仔细分析,且文档完备的软 件构架。Chastek和Brownsword对采用这•构架模式所取得的结果进行了介绍[Chas丨ek 96, 28]:
 
在以前对同类型飞机(B-52 )的数据驱动模拟系统中,在厂方验收测试中确定了 2 000-3 000个测试描述(即测试问题).而采用结构化建模开发方法后,只有600 - 700个测试 描述.开发人员发现,采用这种方法更易于纠正问题,这些问题中有许多是由于对文档的 理解有误而造成的......开发人员一般能够将所报告的问題离线保存而不必访问网站......
 
与以前的数据驱动模拟系统相比,采用结构化建糢后,项目开发的缺陷率减少了一半.
 
:在本章的开始,我们确定了结构化建模的3个质摄目标:性能、可集成性和可修改性。
 
:在这里,我们总结•下该模式如何实现这些目标。表8.1对该信息进行了总结
 
8.4.1性能
实时性能是结构化建模的个关键质量目标。该目标主要通过执行管理程序和采用周 期性调度策略来实现。管理程序所调用的每个子系统都冇运行时间限制。而且,还确定了 模拟系统的硬件规模,以保证能够容许子系统的这种时间要求。有时这需要用单处理器来 实现,有时则又耍用多处理器来实现。考虑到调度策略,实时性能是通过要求控制循环中 分配给子系统的时间少于模拟系统的一个操作周期来实现的。所以,实时性能是通过给构 架模式(管理模块的配置)和功能分解(如何调用实例)结合起来保证的。
 
8.4.2可集成性
 
在结构化模型中,两个子系统之间的数据连接和控制连接都被我们有意地减到最少。 首先,在子系统中,同级组件之间既不能直接传递控制信息,也不能直接传递数据。任何 数据或控制倍息的传递都是通过子系统控制器完成的。所以,耍把另外一个组件集成到子 系统中就得保证子系统控制器中的数据在其内部是一致的,而且要保证在子系统控制器和 组件之间传递的数据是正确的。这一过程要比新组件直接与其他组件进行通信简单得多, 因为集成过程要涉及到所有这些组件。也就是说,集成问题的规模不再与组件数量成指数 关系,而是降低为线性关系。
 
在集成两个子系统时,各子系统的组件都不直接进行交互,所以问题又简化了,只耍 保证两个了系统之间的数据传递一致就可以了。添加新的子系统可能会影响到其他几个子 系统,但由于子系统的数量要比组件的数量少得多,所以这一问题的复杂性也不会太高。
 
所以,在结构化模型中,通过有意识地限制可能连接的数量.可集成性问题得到了简化。这种限制的代价是子系统控制器经常成为各个组件共用的纯粹的数据通道,而这将提 高复杂性和性能幵销。但在实践中这一方法的收益远远超出了其成本。这些收益包括创建
一个能够进行增量式开发和更轻松集成的骨架系统。在采用结构化模型进行幵发的项目 中,集成阶段的工作都比较容易,没有出现大的困难。
 
8.4.3可修改性
 
当设计人员和维护人员只需理解少数几个基本组件配置,并且由于功能局部化使得某 次修改仅涉及到少数儿个子系统控制器或组件时.可修改性就得到了简化。n2图的使用是 以连接数量的减少为前提的。
 
而且.对于基于实际物理部件的子系统来说,分解与部件的物理结构相对应,修改也与物理结构相对应。不是基于物理部件的子系统(如运动方程)则不大可能需要修改。使 用过结构化建模的开发组织都说在修改中很少遇到什么副作用。
 
8.5可进一步参阅的文献
关于对以往涉及飞行模拟系统开发的计算问题和工程问题的介绍,请参见[Fogarty 67]、[Marsman 85]和[Perry 66上
 
结构化建模是从1987年发展起来的”关于该模式的•些较早的文献请参看[Lee 88]、 [Rissman 90]和[Abowd93b]。查看使用该模式的结果谐参阅[Chastek96]。
 
对飞行模拟系统中用到的功能分解的细节感兴趣的读者可参阅[ASCYW94]。
 
8.6讨论题
 (1)所要模拟的系统的结构和模拟软件的结构之间的密切关系是使结构化模型模式对 被模拟系统的修改、扩展或收缩表现出极大灵活性的重要原因之一。假设应用领域不再是模拟系统,则采用结构化模型模式是否仍然合适?请说明原因。在什么情况下可行、什么 倩况下不可行呢?
 
 (2)对子系统控制器和组件的数据及控制流的限制是非常苛刻的,作为组件设计人员和实现者。你是喜欢这种限制还是认为限制得过死?
 
 (3)骨架系统的使用对设计人员造成了什么样的限制?请分別阐述其有害性和益处。

 

猜你喜欢

转载自www.cnblogs.com/mongotea/p/11985984.html