David在VV和一个过程上烹饪

||对话

埃米尔Vassev肖像David A. Cook博士是麻省理工学院计算机科学副教授奥斯汀州立大学,他在哪里软件工程,建模和仿真,以及企业安全。在此之前,他是高级研究科学家和技术人员的主要成员金宝博娱乐支持技术作为机载激光器的验证、验证和认证代理。Cook博士拥有超过40年的软件开发和管理经验。他是一名副教授兼系研究主任金宝博娱乐USAF学院和前副部门主管软件专业发展计划AFIT.他曾担任软件技术支持中心(Hill AFB, UT)的顾问19年。

库克博士拥有计算机科学博士学位德州农工大学的团队主席教唆美国前总统计算机仿真协会,国际,并担任ACM SIGADA.

路加福音Muehlhauser:在各种文章和谈判中(例如库克2006年),您已经讨论了软件验证,验证和认证(VV&A)进程。虽然广泛使用了一般过程,但是在讨论由此管理项目时经常使用VV和A术语国防部5000.61.你能解释一下DoD 5000.61适用于谁,以及它在实践中是如何使用的吗?


大卫一个厨师: DOD 5000.81适用于所有涉及建模和仿真的国防部活动。出于所有实际目的,它适用于国防部使用的所有模型和仿真。这意味着它也适用于国防部民用承包商创建的所有模型和仿真。

除了指定谁是谁是“认证机构”(稍后更多)之外的目的是需要对所有模型和仿真进行验证和验证,然后还要求每个模型和模拟通过认证的预期用途.这是关键部分,因为验证和验证几乎是国防部内软件开发的一部分。验证询问问题“我们是以质量方式建立系统吗?”或“我们正在建立系统吗?”金宝博官方验证,在模型中(以及提供模拟的模型的执行)进一步进一步 - 并询问问题“模型构建和模拟结果实际代表我们构建的系统的概念设计和规范?金宝博官方“不同之处在于,在模型和模拟中,您必须显示您设想的系统的设计和规范被正确翻译成代码,并且提供给代码的数据也匹配规范。金宝博官方

验证会问这样一个问题:“我们是否构建了一个满足用户实际需求的系统?”金宝博官方或者“我们是否在构建正确的系统?”金宝博官方同样,模型的验证和结果仿真比非m&s的“验证”要复杂一些。在建模和仿真中,验证必须表明模型和仿真都从预期用途的角度准确地表示“真实世界”。

当您为现实世界中可能不存在的概念系统构建模型和提供仿真结果时,这两个活动是极其困难的。金宝博官方例如,为载人火星任务提供V&V是很困难的,因为在现实世界中,还没有载人火星着陆器!因此,对于概念系统,V&V可能需要估算和猜测。金宝博官方然而,猜测和估计可能是你能做的最好的事情!

5000.61进一步要求存在一个终极权威,即“认证权威”,该权威愿意说“基于在此模型上执行的验证和验证,我证明其提供的答案对其预期用途是可接受的”。同样,如果您正在构建一个概念性的系统,这需要专家说:“这些是猜测,但它们是可金宝博官方用的最佳猜测,并且系统是尽可能接近真实世界的模型。”我们认可该系统提供的模拟结果是可接金宝博官方受的。”例如,如果一个经过认证的模拟显示,一架新飞机的有效载荷将达到10万磅,但最终的飞机,一旦建成,只能承载5000磅,认证机构肯定要为这个问题承担部分责任。

在实践中,有提供VV&A的过程。军用标准3022提供了一个记录VV&A活动的标准模板,许多国防部机构都有自己的VV&A仓库,用于保存通用模型和仿真VV&A工件(以及相关文档)。

有数百种方法可以验证和验证模型(及其相关的模拟执行)。V&V“代理”(他们被委派执行V&V)向认证机构提供建议,列出可接受的用途,以及模型和仿真的限制(关键部分)。例如,一个模型和模拟可能在白天提供激光光束(在高层大气中)传播的精确表示,但由于与温度有关的大气传播,不能在晚上提供有效的模拟。同样的模型和模拟可能是激光在“平面”上反弹的有效预测,但不是在不平坦的地形上反弹。


路加福音:此类项目大致有多少认证机构?认证机构是否倾向于专注于某些领域的v&v - 例如一些用于计算机软件,有些用于飞机等?国防部没有认识到“合法”是有认可权威机构吗?


大卫:认证机构只是组成部分的负责人,他们签署了一封信,上面写着“模型和仿真X被批准用于以下目的”。然后,信中说明了预期的用途,列出了任何特殊条件,并列出了模型和仿真的限制。认证机构更多的是一个职位而不是一个人。可以是一个人(通常是组织的领导),也可以是一个委员会。

每个国防部机构都对其开发或使用的模型和仿真负责——他们必须要么对自己的模型和仿真进行VV&A,要么使用执行了自己的VV&A的模型和仿真(来自可信来源)。但是请注意,每个国防部机构可能都有自己的数据——这些数据也必须经过认证。每个项目都有自己的M&S,可能有领域专家进行VV&A。每个项目可能都被授权执行自己的VV&A,而不是向上级申请认证。

不存在非合法的认证机构;认证机构的授权不是基于知识,而仅仅是基于职位。然而,假设每个M&S领域都有领域专家,这些专家在应用领域具有专业知识,可以执行可靠的VV&A。这些领域专家跨越许多地区——应用程序领域专家(例如,谁可能是一束激光专家),编码领域专家(可以是一个很好的验证代码表示的需求),数据领域专家(验证目标数据代表一个有效的目标),和许多其他人。通常,每个项目都有一个VV&A团队或“代理人”,他们执行V&V,并推荐认可(通常以正式信函的形式),重申预期的用途和限制。推荐包括所有相关工件,如测试结果、评审、个别验证和确认活动的报告。其他模型和模拟用于比较,现实生活数据(显示有效性),以及可能的许多其他项目。

如果一个特定的国防部机构在其演习中使用模型和模拟,它将负责自己的M&S的VV&A。另一方面,如果一个联合的代理正在使用一个包含来自另一个代理的工件的模型——外部代理负责确保模型、模拟和数据抑制它们是有效的。从本质上说,每个国防部机构都对其他国防部部门负责,以确保他们的部队和能力适当地代表给所有外部机构,利用模型和模拟涉及他们。


路加福音:是否有历史案例,其中模型或模拟完成了VV和一个过程,但是未能履行认证,然后举行认证机关才能偿还他们的失败?如果是这样,你能举个例子吗?(最好但不一定在软件中。)


大卫:因为我作为许多建模和仿真项目的顾问,我是在道德上阻止讨论我所知道的实际失败 - 主要是因为我工作的大多数项目都被分类,我签署了非披露协议。

但是,通过转移到假设的场景,有几个故事可以使用最佳说明这一点。一个是一个在许多模拟类中教授的故事 - 我只有二手了解它。另外两个是ancedotal - 但良好的课程!

在第一个例子中,一个模型被用来预测飞机的“安全跑道距离”。将重量、高度、温度和湿度输入模型,然后运行模拟来预测需要多少跑道。

不幸的是,在模型被使用的那天,飞机实际起飞花了好几个小时。它有更多的燃料估计-增加重量。起飞时,温度升高,轮胎和跑道变得更粘,空气密度降低(升力降低)。湿度也发生了变化,这也影响了升力特性。

该模型没有很大的误差容错(它试图给出一个相对精确的答案)——随着所有因素的变化,飞机在模拟运行后从“足够的跑道”到“边缘”。再加上一个相对缺乏经验的飞行员(他没有加快油门),飞机冲出了跑道的尽头。没有太多的伤害(除了自尊心受挫)-但是模拟-虽然准确,但没有被正确使用。

另外两个故事肯定是想象的 - 但在我们的领域中围绕着传说。在第一个故事中,在空中激光的早期,使用了一个非常简单的模型来预测激光传播。代码重复使用 - 基本上,导弹的代码,导弹的速度增加到光速。目标采集,目标识别等都是相似的,并且一旦被解雇,模拟将显示目标是否被击中。直到他们第一次运行它,半途而废,激光束“耗尽燃料”并落入海中。

第二个故事(当然是虚构的)涉及到为澳大利亚空军建模战斗场景——使用直升机。直升机着陆的一个问题是要确保有一个干净的着陆场地,而袋鼠是一个问题。所以,战斗模拟的开发人员,他们使用面向对象的开发,使用一些基本用于建模地面士兵的代码,并修改其行为,以“在直升机声中奔跑”。然后,他们在模拟中改变了它的外观,展示了一个袋鼠的小图像。当建模被执行时,模拟显示袋鼠从直升机上逃跑。直到它降落,然后袋鼠改变方向,用步枪攻击直升机!

好的 - 最后两个例子是可爱又有趣,但展示了无效假设和不完美的数据的问题。

我用我在M&S课堂上经常使用的一句话来回答这个问题:“所有的模型都是不准确的。”有些模型还是有用的。”完全在代码中模拟真实世界是极其困难的。我不在乎你在模拟中模拟一个热浴盆有多好——它不是一个真正的热浴盆。

您不会考虑的事情,并不完美的数据,或者你错过的约束。模型是一个最佳猜测近似值将在“DAL世界”发生什么 - 但它不是“现实世界”。所有型号都有局限性。尽管如此。生成的模型和模拟仍然提供有用的数据。认证机构只是确认模型和模拟是有用的“他们的预期用途”,并且“存在限制”。没有信誉良好的建模和仿真专家(也不是任何认证权限)信任单一模型及其产生的模拟,以产生在生命或死亡决策中使用的数据。需要多种有效性,使用多种独立开发的模型和模拟,并咨询域名专家,看看结果“感觉到”。必须始终给出宽容。在试图起飞时,飞机可能会遇到一锅水。 It might hit a bird. Both of these decrease speed, requiring longer takeoff distance. It’s hard to model unforeseen circumstances. If you include a “fudge factor” – how much “fudge factor” is correct? Before an accreditation authority accepts a model or simulation as reliable, many, many steps must be taken to make sure that it produces credible results, and equally as many steps must be taken to make sure that the limitations of the model and simulation are listed and observed before accepting the result of the simulation as valid.


路加福音:国防部的VV&A流程是如何发展的?什么时候发展起来的?大概它首先在一个或多个领域发展起来,然后传播成为一个更普遍的期望?


大卫:有趣的问题。在我们讨论VV和A之前,我们必须通过M&S的历史来逐步逐步。我需要将几个虽然的螺纹联系在一起。

VV&A当然与模型和模拟的使用有关。说实话,模型的VV&A可以追溯到内战时期(可能更早)——当时用数学模型来预测射击数据(给定理想的射程,这里是需要的火药量和高度)。显然,模型需要大量的V&V。然而,对于V&V模型来说,所有的一切都是装填大炮并发射它。这不是一个复杂的过程。认可部分是含蓄的——战争部长过去常常“授权”要打印的数据。然而,要真正需要VV&A,就需要复杂的仿真,而实现复杂的M&S需要计算能力。

多年来,建模变得越来越重要,因为模型和仿真被用来解决传统数学方法不容易解决的问题。引用从维基百科文章

在第二次世界大战曼哈顿计划(Manhattan Project)为模拟核爆炸过程而首次大规模部署计算机之后,计算机模拟技术与计算机的快速发展密不可分。这是用蒙特卡罗算法模拟12个硬球。计算机模拟经常被用作建模系统的辅助或替代,对于这些系统,简单的封闭形式的解析解是不可能的。金宝博官方有许多类型的计算机模拟;它们的共同特征是试图为一个模型生成一个有代表性的场景的样本,在这个样本中,模型的所有可能状态的完整枚举将是禁止的或不可能的。

在模型和仿真被计算机化之前,VV&A并没有真正成为一个严重的问题,计算机直到20世纪40年代后期才出现。从20世纪40年代末开始,数字计算机和模拟计算机都出现了。然而,几乎没有(如果有的话)工程师接受过如何使用这种新开发的计算能力的培训。有各种各样的故事如何建模与仿真成为一股强大的力量在国防部,但这个故事我个人知识是约翰·麦克劳德的故事——一个工程师工作的海军空中导弹试验中心在洛杉矶北部加州海岸。约翰是一个革新者,在20世纪50年代早期从事模拟计算机和模拟之后,他就是约翰·麦克劳德,他在1952年的某个时候交付了一台新的模拟计算机。约翰并不是南加州航空航天界唯一一个面临同样问题的工程师,他们中的一些人决定聚集在一起,作为一个非正式的用户小组来交流想法和经验。长话短说,约翰帮助建立了计算机模拟协会(SCS)。多年来,该组织的成员都是建模、仿真和VV&A领域的领导者和创新者。[注意,我有幸在2011 - 2012年成为SCS的总统,所以我有一点偏见]。到今天,SCS已经获得了McLeod奖,以纪念John McLeod在M&S舞台上取得的进步。 It is only awarded to those that have made significant contributions to the profession.

SCS公布了新闻稿。编制会议组织。该领域的领导人能够满足,发布和分享他们的专业知识。所有这些都有助于将M&S集成到越来越多的域名。由于该领域的领导者能够共享M&S信息,而且由于计算机运行M&S的需求和计算机的能力和可用性的巨大增加,因此对VV和A的需求也增加了。多年来,在国防部的许多域名中,建模和模拟变得越来越重要。它帮助开发战斗机(实际上,所有类型的飞机)。它帮助培训我们的宇航员在月球上降落。它建模了航天飞机。复杂的模型和模拟帮助我们模型弹道导弹防御,战斗战争游戏以最少的费用(并且没有生命丢失!),以及设计复杂的武器系统。金宝博官方 In fact, it’s hard to imagine any technologically sophisticated domain that does not use M&S to save money, save time, and ensure safety. But – these increasingly complex models needed verification and validation, and frequently accreditation,

所以 - 使用M&S的增殖导致对VV和A的需求增加。M&S变得如此复杂,VV和A无法完成,没有“领域专家” - 通常被称为“主题专家”(中小企业)来帮助。增加了M&S的复杂性导致VV&A的复杂性增加。国防部中的各种元素正在自己执行VV和A,几乎没有官方协调。为了利用各种国防部成分和多个域的经验,国防部认为需要单一的协调。因此,在20世纪90年代,国防部形成了防御建模和仿真办公室(DMSO)。DMSO作为国防部内的所有M&S(和VV&A)的单一协调点。最好的DMSO贡献之一是VV和推荐的实践指南(VV&A RPG) - 于1996年首次发布。该指南多年来已多次更新,反映了VV和国防部的损失重要性。2008年,DMSO重命名为建模和模拟协调办公室。可以在MSCO网站(以及最新版本的VV和推荐的实践指南)msco.mil

对于那些对M&S和VV&A感兴趣的同学,我推荐MSCO的资源。它不需要任何费用(甚至不包括电子邮件注册),并且包含了M&S和VV&A的大量信息。的RPG关键概念文档单独包含34页的关键“背景”信息,你应该在进一步阅读《VV&A》之前阅读这些信息。


路加福音: 在库克(2006)你写的是,V&V是如此困难的原因之一来自“必须”回溯“并在开发后填补空白。”这是什么意思?你能给个例子吗?


大卫:让我们想象你正在设计一个新的战斗机。它仍然在绘图板上,只有计划存在。

与其先花钱建造一个实际的原型机,不如开发数学模型来帮助验证性能特征。你可以做一个非常小的身体模型——也许是风洞实验的十分之一大小。

您还可以建立基于计算机的模型并执行它们来估计飞行特性。风洞经验(即使只有1/10大小的模型)将提供数据,可能使你修改或改变基于计算机的模型。该反馈回路由“建立模型-运行仿真-检查数据-调整模型”组成,并重复执行。

最终,你造出了一架可工作的飞机原型机。几乎可以肯定的是,实际的飞行特性将不会完全匹配基于计算机的模型。原型是“真实世界”,所以你必须重新调整基于计算机的模型。“真实世界”的原型只是一个原型——可能不用于高速战斗和转弯——但从原型飞行中收集的基本数据导致了基于计算机的模型的改变,这将用于预测更多的高速机动。

回到我在机载激光工作-我们有模型,预测激光性能之前,激光实际上是建造或发射!这些模型是基于数学原理,基于其他激光的数据,以及更简单、更早的正在改进的模型。一旦一个工作机载激光器被建造和发射-我们有“真实世界”的数据。毫不奇怪,激光光束的实际特性与模型的预测略有不同。首先,这些模型过于简单——不可能考虑到所有因素。结果是,我们采用了真实世界的数据,并修改了计算机模型,使其能够更好地预测未来的表现。

底线是模型是从来没有完成了。每当您从“现实世界”获得与模型预测不完全匹配的额外数据时,就应该检查模型,并根据需要对模型进行调整。

当谈到VV&A时,我喜欢用两个术语来描述模型——“锚定”和“基准”。如果我能得到另一个独立开发的模型来预测与我的模型相同的事件,我就有了验证的来源。我将此称为基准测试。主题专家、其他模拟、为您的模型提供可信度的类似事件——所有这些都提高了有效性,并提供了基准测试。另一方面,锚定是当我将我的模型直接绑定到真实世界的数据时。

只要模型被用来预测行为——如果可能的话,它需要不断地与现实世界的表现联系在一起。如果没有真实世界的数据,那么相似的模型、专家意见等也可以用来增加有效性。

最后一点。模型可以在思想中变得如此根深蒂固,以至于它们变得“真实”。例如,我记得最近的《星际迷航》电影(2009年版)上映时。我的一个朋友在看完电影后说,他在企业号的舰桥上遇到了麻烦。它“看起来不像真的”。我问什么是“真正的”,我的朋友回答说:“你知道,就像真正的企业号航空母舰,NCC 1701(指的是最初的系列)。想想看——所有这些都是假想的(抱歉,我的驴友们)——然而他认为其中一个是“真实的”,另一个是不准确的。模型——当没有真实世界的工件存在时——在你的头脑中有成为“真实”的潜力。值得记住的是,一个模型不是真实的,而只是一个人工制品,用来模拟或预测某一天可能(或可能不)成为现实的东西。


路加福音:你有一种感觉如何普通形式验证是用于国防部应用程序的软件?正式的验证是一种还是另一种要求对于某些类型的软件项目?(大概,国防部也使用许多不适合正式方法的软件。)


大卫:我还没有在任何使用正式V&V方法的项目上工作。

我曾经教过正式方法的基础知识(用“Z”——发音为Zed)——但这非常耗时,而且并不适合很多项目。

形式表示法从数学角度证明了算法的正确性。然而,对于建模和仿真,它们并不一定帮助您进行认证——因为正式的方法检查代码的正确性,而不一定检查cod八个真实世界数据的相关性。

我听说某些极其关键的应用程序(如反应堆代码和火星登陆器的代码)使用正式的方法来确保代码是正确的。然而,正式的方法需要大量的培训和教育才能正确使用,在实际使用中也需要花费大量的时间。正式的方法很少(从来没有?)加速过程——它们被严格地用于验证代码。

从我的经验来看,我没有从事过任何使用正式方法的项目——事实上,我也没有任何同事使用过正式方法。


路加福音:谢谢你,大卫!