SE生命周期的利益相关者 1已经使用模型和模拟一段时间,既用于检查他们自己的思考,也用于向他人传达他们的概念。这种做法的好处是双重的:
- 模型和模拟在实际系统开发之前确认了系统的需求和预期系统行为;
- 模型和模拟为那些将要开发、测试、部署和进化系统的人提供了一个清晰、连贯的设计,从而最大限度地提高生产力并最小化错误。
通过系统模型和模拟早期检测项目中的限制和不兼容性,有助于避免后期项目成本增加和进度超支,特别是在系统操作期间。建模和模拟的价值随着正在开发的系统或系统之系统(SoS)的大小(无论是物理还是复杂性)而增加。
在系统工程生命周期的早期,建模和仿真的目标是在投入大量资源进行设计、开发、建造、验证或操作之前获取有关系统的信息。为此,建模和仿真有助于以经济且及时的方式生成分析师或审阅者领域中的数据,这些数据无法从现有来源获得,以支持决策。一个充分、准确和及时的模型和仿真可以告知利益相关者其偏好的影响,提供评估替代方案的视角,并建立对系统将提供的能力的信心。它们还帮助开发、部署和运营人员理解设计要求,认识到技术强加的限制和管理,并确保足够的可持续性。最后,充分、准确和及时的模型和仿真有助于组织及其供应商 2提供实现系统所需的必要和充分的人员、方法、工具和基础设施。
建模和仿真的长期效益与问题的范围、多样性和模糊性与下游人员能力之间的差距成正比。一个相对简单的预期系统模型可能足以满足高度…
对于有能力的员工来说,简单的模拟可能就足够了,而对于能力较弱的员工,尤其是那些需要开发一个能够自主应对不可预测任务情况的新型、大规模系统的员工来说,可能需要更复杂的模拟。最终,建模和模拟的好处与利益相关者对模型或模拟的及时性、可信度以及易用性和维护性的感知成正比。因此,计划用于模型的开发、验证、确认、认证、操作和维护的资源必须与通过使用模型获得的信息的预期价值相一致。
1 模型与模拟
在讨论中,术语“模型”和“模拟”经常被错误地互换使用。每个术语都有其特定的含义。“模型”这个词有很多定义,但通常指的是一个系统、实体、现象或过程的抽象或表示(DoD5000.59,2007)。其他许多对模型的定义通常将其视为物理世界中某些实体的表示。这些表示旨在描述实体的选定方面,例如其几何形状、功能或性能。在系统工程的背景下,代表系统及其环境的模型对于必须分析、指定、设计和验证系统的系统工程师以及与其他利益相关者共享信息的系统工程师来说尤为重要。不同类型的模型用于代表系统以实现不同的建模目的。
术语“模拟”是指在一个特定环境中实现一个模型(或多个模型),允许该模型随时间执行(或使用)。一般来说,模拟提供了一种分析系统、软件、硬件、人员和物理现象的复杂动态行为的方法。
计算机模拟包括以可执行代码表示的分析模型、输入条件和其他输入数据,以及计算基础设施。计算基础设施包括执行模型所需的计算引擎以及输入和输出设备。从计算机模拟设计者必须做出的选择中可以看出,计算机模拟的方法种类繁多。
除了表示系统及其环境外,模拟还必须提供高效的计算。
解决方程的方法。模拟可能需要实时运行,特别是如果操作员在回路中。其他模拟可能需要比实时快得多地运行,并执行数千次模拟运行以提供统计上有效的模拟结果。
2 建模的目的
系统模型可以用于许多目的。建模的第一个原则之一是明确定义模型的目的。在整个系统生命周期中,模型可以服务于以下一些目的:
- 描述现有系统:许多现有系统文档记录不充分,对系统进行建模可以提供一种简洁的方式来捕捉现有系统的架构和设计。然后可以使用这些信息来促进系统的维护或评估系统以改进它。这类似于在升级旧建筑以符合抗震新标准之前,先创建一个带有电气、管道和结构覆盖层的建筑模型。
- 任务和系统概念的制定与评估:模型可以在系统生命周期的早期阶段应用,以综合和评估不同的任务和系统概念。这包括明确且无歧义地定义系统的任务以及它预期为其受益者提供的价值。模型可以用来探索一个交易空间,通过模拟不同的系统设计,并评估关键系统参数(如重量、速度、准确性、可靠性和成本)对整体性能指标的影响。除了限制系统设计参数外,模型还可以用于验证系统需求是否满足利益相关者的需求,然后再进行后期生命周期活动,如架构和设计。
- 系统架构设计和需求分解:模型可以用于支持系统解决方案的架构设计,以及将任务和系统需求分解到系统元素。可能需要不同的模型来解决系统设计的不同方面,并响应广泛的系统需求。这可能包括指定功能、接口、性能和…的模型。
物理要求,以及其他非功能性要求,如可靠性、可维护性、安全性 3和安全性。
- 支持系统集成和验证:模型可以用于支持硬件和软件元素集成到一个系统中,以及支持验证该系统是否满足其要求。这通常涉及将低级别的硬件和软件设计模型与系统级别的设计模型进行集成,以验证系统要求是否得到满足。系统集成和验证也可能包括用实际的硬件和软件产品替换选定的硬件和设计模型,以便逐步验证系统要求是否得到满足。这被称为硬件在环测试和软件在环测试。模型还可以用于定义测试用例和测试程序的其他方面,以协助测试计划和执行。
- 培训支持:模型可以用来模拟系统的各个方面,以帮助培训用户与系统进行交互。用户可能是操作员、维护人员或其他利益相关者。模型可以作为开发系统模拟器的基础,具有不同程度的保真度,以表示不同使用场景中的用户交互。
- 知识捕获和系统设计进化:模型可以提供一种有效的方法来捕获关于系统的知识,并将其作为组织知识的一部分保留下来。这种可以重复使用和进化的知识,为支持系统的进化提供了基础,例如在面对新兴的相关技术、新应用和新客户时改变系统需求。模型还可以实现产品系列的捕获。
模型代表了感兴趣系统(SOI)、系统运行的环境以及与支持和接口系统及操作员的交互的基本特征。模型和模拟可以在大多数系统生命周期过程中使用,例如:
- 业务或任务分析——问题情况的描述性模型确保正在解决正确的问题。
- 需求(利益相关者和系统)定义——使需求得到合理化,并避免过度/不足的规格说明。
- 架构定义——根据选择标准评估候选选项,并使主动代理能够发现最佳架构,包括与其他系统的集成。
设计定义——获取所需的设计数据,调整参数以进行优化,并在系统元素的实际数据可用时更新系统模型的保真度。
- 验证和确认——模拟系统的环境,评估验证和确认数据(模拟使用可观察 4的数据作为计算不可直接观察的关键参数的输入),并验证模拟的保真度(假阳性/假阴性)。
- 运营——模拟实际行为,并在执行前进行模拟操作,以进行规划、验证和操作员培训。
3 模型范围
模型必须有明确的范围以满足其预期目的。特别是,所选的模型类型和相关的建模语言必须支持要满足的具体需求。例如,假设构建模型是为了支持飞机的开发。系统架构模型可能描述飞机部件之间的互连,轨迹分析模型可能分析飞机的轨迹,故障树分析模型可能评估飞机故障的潜在原因。对于每种类型的模型,应确定适当的广度、深度和保真度,以满足模型的预期目的。
模型的广度反映了系统需求的覆盖范围,即模型必须满足的功能、接口、性能和物理要求以及其他非功能要求的程度。对于飞机功能模型,可能需要模型的广度来满足飞机启动、起飞、飞行、降落、关闭电源以及维护飞机环境的一些或全部功能要求。
模型的深度表示从系统上下文到系统元素的系统分解的覆盖范围。对于图中所示的空中运输SoS示例,
图2.2,一个模型的范围可能需要它定义系统上下文,从飞机、控制塔和物理环境到导航系统及其系统元素,如惯性测量单元,甚至可能到惯性测量单元的较低级别部分。
模型的保真度表示模型在任何给定部分必须表示的详细程度。例如,一个指定系统接口的模型可能相当抽象,仅表示逻辑信息内容,如飞机状态数据;或者它可能更详细地支持更高保真度的信息,如以位、字节和信号特征表示的消息编码。保真度也可以指计算模型的精度,例如模拟所需的时间步长。
4 模型和模拟的类型
有许多不同类型的模型和模拟,用于解决系统不同方面的问题和不同类型系统。在系统生命周期的某个阶段选择特定类型的模型或模拟取决于预期用途、感兴趣的系统特定特征以及所需的模型准确度,换句话说就是其“适用性”。通常,特定的模型或模拟会关注整个系统特征的某些子集,例如时间、过程行为或各种性能指标。
4.1 模型类型
“我们头脑中所携带的周围世界的形象,只是一个模型”(Forrester,1961)。大多数系统最初都是一个心理模型,经过几个阶段的详细阐述和翻译,形成最终的模型或模拟产品。一个模型可能是选定概念及其之间关系的心理图像,可以转化为草图、文本规范、图形/图像、模型、比例模型、原型或仿真。通常,为不同的观点准备单独的模型,如功能、性能、可靠性、生存能力、操作可用性和成本。
对模型进行分类有助于选择适合目的和范围的正确类型的模型。模型可以以多种方式分类。图9.1所示的模型分类法是一种这样的分类法,它为一个实例提供了一个有用的分类,但不一定提供一个详尽的模型类集合;可能存在其他类:
- 物理模型——代表实际系统的模型,如模型飞机或风洞模型,或者更抽象的表示,如通常使用计算机表示的模型。
- 抽象模型——一个抽象模型可以有多种不同的表达方式来表示一个系统、实体、现象或过程,这些表达方式在形式化程度上有所不同。因此,我们首先区分了非正式模型和正式模型,并将重点放在正式模型上。

- 非正式模型——可以使用简单的绘图工具或文字来表示一个系统。然而,除非对非正式表示中的术语有明确的共识,否则可能会缺乏精确性,并且在表示中可能存在歧义。虽然这种非正式表示可能有用,但要被视为在系统工程建模和仿真范围内,模型必须满足某些期望。
- 形式化模型——形式化模型可以进一步分为几何、定量(即数学)和/或逻辑模型。几何模型表示系统或实体的几何或空间关系。定量模型表示关于系统或实体的定量关系(例如,数学方程),产生数值结果。逻辑模型,也称为概念模型 5,表示关于系统的逻辑关系,如整体-部分关系、部分之间的相互连接关系或活动之间的优先关系等。逻辑模型通常以图形(节点和弧线)或表格的形式表示。
以下示例说明了上述分类。一架飞机可以用一个三维几何模型来表示,该模型详细描述了飞机的几何形状。飞机也可以用一个定量模型来表示,该模型根据其加速度、速度、位置和方向来表示其可能的飞行轨迹。飞机还可以用一个逻辑模型来表示,该模型描述了飞机上信号的来源和目的地,或者潜在的飞机故障原因,例如发动机故障如何导致动力损失并使飞机失去高度。显然,许多不同的模型可以用来表示一个SOI。
需要注意的是,上述每种形式模型的语义,包括几何、定量和逻辑模型,都可以使用数学形式主义来定义。
系统模型用于表示一个系统及其环境。系统模型可能包含系统的多个视图,以支持规划、需求、架构、设计、分析、验证和确认。系统模型可以包括几何、定量和逻辑模型的组合。它们通常跨越多个建模领域,如不同的系统。
(例如,热能、电力),不同的技术领域(例如,硬件、软件),以及不同的特性(例如,物理、性能)。这些模型必须集成在一起,以确保系统表示的一致性和连贯性。因此,系统模型必须能够表示通用的系统建模概念,如行为和结构,这些概念可以在不同的建模领域中共享。
A. Wayne Wymore 在《系统工程的数学理论:要素》(1967年)中,被公认为是最早使用数学框架正式定义系统模型的努力之一。Wymore 建立了一个基于模型的系统设计的严谨数学框架。
系统模型的一些例子可能包括以下内容(来自ISO/IEC/IEEE 15288):
- 一个功能模型,用于捕捉系统功能及其功能接口
- 一种能够捕捉系统功能整体行为的行为模型
- 一个捕捉架构中与时间相关方面的时态模型
- 一个结构模型,捕捉系统元素及其物理接口。
- 一个捕捉系统质量相关方面的质量模型
- 一种布局模型,用于捕捉系统元素的绝对和相对空间位置。
- 一个网络模型,用于捕捉适用系统功能或元素之间的资源流动。
4.2 模拟类型
模拟可以根据以下一种或多种类型进行描述:
- 物理模拟利用物理模型,旨在以高度准确性(保真度)复制相对较少的系统属性。通常,这种模拟需要具有相似保真度的特定环境属性的物理模型。这种模拟往往成本高昂,且有限数量的系统和环境属性限制了可以回答的问题范围。当更便宜的基于计算机的模拟无法构建来回答问题时,会使用这种模拟。物理模拟的例子包括风洞测试。
环境测试和阐明制造过程的模型。
基于计算机的模拟可以根据计算模型(MoC)分为子类型,例如离散事件、连续时间求解或有限元。每种都需要数学模型符合特定结构,有些可以组合创建混合MoC。当模拟随机过程或系统输入存在不确定性时,可以执行蒙特卡洛模拟以对许多模拟运行的输出进行统计分析。在模拟环境中有一种趋势是将执行架构(实际上实现了MoC算法)和感兴趣的系统的模型分开,后者以模块化形式实现。这样做有助于处理复杂模型,并提高了在不同模拟中重用模型的可能性。基于计算机的模拟可以覆盖广泛的系统属性,并且确实可以通过包括许多类型的系统以多种不同方式交互的模型而变得相当复杂。当复杂度达到需要为总体模拟的不同部分创建适合目的的模型的专业知识分布在许多主题专家之间时,构建这样的模拟本身成为SE的一个练习。
- 硬件和/或人机交互模拟在实时执行,并使用基于计算机的模型来关闭系统硬件和/或人类元素的输入和输出回路。这种模拟具有很高的保真度,但可能成本高昂,特别是如果需要物理刺激,例如运动或视觉场景生成。
在美国国防界,通常将模拟分为真实、虚拟或构造性,其中:
- 实时模拟是指实时操作员操作真实系统。
- 虚拟仿真指的是现场操作员操作模拟系统。
- 构造性仿真指的是模拟操作员使用模拟系统进行操作。
虚拟和构造模拟也可能包括实际系统硬件和软件的循环以及来自真实系统环境的刺激。
5 开发模型和模拟
完成的模型或模拟可以被视为一个系统或产品。因此,模型或模拟的开发和应用的一般步骤与本手册中描述的SE过程紧密相关。就像任何其他开发工作一样,模型需要进行规划和跟踪。
任何模型和模拟开发工作中的关键步骤是并行执行的验证、验证和认证(VV&A)过程,该过程证明模型或模拟可用于特定目的。鉴于使用从模型或模拟中获得的知识的后果,知识的使用者必须确信该知识具有足够的可信度(即“适合目的”)。这意味着在决策过程中使用模型或模拟的相关风险被最小化,以至于人们认为模型和模拟比不使用更有用(即不使用模型或模拟的风险大于使用模型或模拟的风险)。美国国防部建模与仿真协调办公室已投入大量资源,以提供关于VV&A的全面指导(M&SCO,2013年)。
6 模型与仿真集成
许多不同类型的模型和模拟可以作为基于模型的方法的一部分使用。一个关键的活动是促进跨多个领域和学科的模型和模拟的集成。例如,系统模型可用于指定系统的元素。系统的逻辑模型可用于识别和划分系统的元素,并定义它们之间的互连或其他关系。性能、物理和其他质量特征(如可靠性)的定量模型可用于确定特定元素属性所需的值以满足系统要求。表示系统元素交互的可执行系统模型可用于验证元素要求是否能够满足。
系统行为要求。上述模型各自代表了同一系统的不同方面。电气、机械和软件等不同工程学科各自创建自己的模型,代表同一系统的不同方面。不同的模型必须充分集成,以确保一个连贯的系统解决方案。
为了支持集成,模型和模拟必须建立语义互操作性,以确保一个模型中的构造与另一个模型中相应的构造具有相同的意义。一个简单的例子是特定元素的名称,它可能出现在更高层次的系统元素模型、可靠性模型和电气设计模型中。这些建模信息必须在建模工具之间进行交换,并在不同的模型中一致地表示。
实现语义互操作的一种方法是使用不同模型之间的模型转换。定义了转换,以建立一个模型中的概念与另一个模型中的概念之间的对应关系。除了建立对应关系外,工具还必须有一种交换模型数据和共享信息的手段。在工具之间交换数据有多种方式,包括文件交换、使用API和共享存储库。
使用建模标准进行建模语言、模型转换和数据交换是跨建模领域集成的重要推动因素。
7 模型管理
由于系统模型和模拟是SE工作的主要成果,因此它们的管理尤为重要。在整个系统生命周期中,对模型和模拟的管理包括与版本控制和变更控制相关的配置管理问题。这些过程本身就很复杂,特别是当分布式团队可能更新不同部分的不同方面时。可以采用分支和合并等变更管理技术以及其他集成方法。模型和模拟管理的另一个重要方面是持续验证。随着对模型和模拟的更改,团队需要确保它们仍然能够充分代表系统以达到预期目的。
8 建模标准
需要不同类型的模型来支持系统的分析、规范、设计和验证。建模标准在定义特定领域中可表示的系统建模概念方面发挥着重要作用,并且能够实现跨不同领域的不同类型模型的集成。
系统建模语言的标准可以实现跨学科、跨项目和跨组织的沟通。这种沟通有可能减少从业人员从一个项目过渡到另一个项目时的培训需求,并且能够在项目和组织内部及之间重用系统工件。与其他SE标准一样,标准建模语言也为推进SE实践提供了共同的基础。
建模标准包括建模语言的标准、模型之间的数据交换以及一个模型到另一个模型的转换,以实现语义互操作性。SEBoK(2014)的建模标准部分可以找到一些有代表性的建模标准的部分列表。
9 建模语言
建模语言通常旨在既可由人类解释,又可由计算机解释,并且在语法和语义方面都有规定。
抽象语法规定了模型的构造和从其构造中构建模型的规则。对于像英语这样的自然语言,构造可能包括动词、名词、形容词和介词等类型的单词,而规则则规定了这些单词如何组合在一起形成正确的句子。数学模型的抽象语法可能规定了定义数学函数、变量及其关系的构造。逻辑模型的抽象语法也可能规定了定义逻辑实体及其关系的构造,例如部分之间的互连关系或动作之间的优先级 6关系。一个格式良好的模型必须符合其规则,就像一个格式良好的句子必须符合自然语言的语法规则一样。
具体语法规定了用于表达模型构造的符号。自然语言,例如
像英语或德语一样,可以用文本或摩尔斯电码表达。一种建模语言可以使用图形符号和/或文本语句来表达。例如,功能流模型可以使用由图形节点和弧线组成的图形符号,并用文本注释来表达,而模拟建模语言则可以使用Fortran或C等编程语言的文本语法来表达。
一种语言的语义定义了其构造的意义。例如,一个英语单词在被定义之前并没有明确的意义。一个句子可以语法正确,但如果单词没有被定义,它仍然可能是胡言乱语,或者如果单词的意思在其使用上下文中是模糊的,可能会被误解。语言必须赋予动词或名词的概念以及特定的动词或名词的意义以意义。同样,用符号表示的建模构造,如流程图上的方框或箭头,在被定义之前是没有意义的。方框和箭头各自代表不同的概念。这些概念必须被定义,具体的方框和箭头也应该被定义。定义可以用自然语言或其他形式主义来表达。例如,符号sin(x)和cos(x)代表正弦和余弦函数,它们在数学中被精确地定义。如果摆的位置用sin(0)和cos(0)来定义,那么摆的位置的意义就可以通过这些形式主义来理解。

OMG的SysMLTM已成为系统建模的重要语言(OMG,2013b)。图9.2所示的SysML图类型的简要描述如下:
- 包图(pkg)用于将模型组织成包含其他模型元素的包。这有助于模型导航和重用,以及访问和变更控制。
- 需求图(req)捕获基于文本的需求。将需求纳入模型中,可以实现从需求到需求以及需求与模型中的设计、分析和验证元素之间的细粒度可追溯性。
- 系统结构使用方框图表示:
- 块定义图(bdd)描述了系统层次结构和系统元素的分类。 内部结构图(IBD)描述了系统内部结构,即其各个部分如何通过端口和连接器相互连接,说明了系统内部各部分之间的连接方式。
- 行为在用例、活动、序列和状态机图中被捕获:
- 用例图(uc)提供了系统功能的高级描述。 用户和外部系统如何使用该系统来实现他们的目标。
- 活动图(act)表示通过受控的一系列动作将输入转换为输出的过程。
- 序列图 7(SD)表示系统中协作部分之间按时间顺序交换消息的交互。
- 状态机图(STM)描述了系统或其部分的状态;状态之间的转换;在状态内或在转换、进入或退出时发生的动作;以及触发转换的事件。
- 参数图(par)表示系统属性值的约束,以支持详细的工程分析。这些约束可能包括性能、可靠性和质量属性 8等。SysMT™可以与其他工程分析模型和工具集成,以执行分析。
SysML 包含一种分配关系,用于表示功能到元素的分配、逻辑到物理元素的分配以及其他类型的分配。SysMT™ 是一种通用建模语言,旨在支持许多不同的基于模型的方法,如结构化分析方法和面向对象的方法。特定的方法可能只需要一部分图表。例如,简化的功能分析方法可能只需要活动图,辅以 bdds、ibds,以及可能的需求图。
有关SysMT™的一般信息,以及工具供应商、文章和书籍的链接,请访问OMG SysMT™官方网站:http://www.omgsysml.org。
10 建模与仿真工具
模型和模拟是由建模者使用建模和模拟工具创建的。对于物理模型(例如物理模型),建模工具可能包括钻头、车床和锤子。对于抽象模型,建模工具通常是运行在计算机上的软件程序。这些程序提供了使用特定建模语言表达建模构造的能力。文字处理器可以被视为一种用于使用自然语言构建文本描述的工具。类似地,建模工具用于构建模型。
使用一种建模语言。该工具通常提供一个工具调色板来选择符号,并提供一个内容区域,以便从图形符号或其他具体语法中构建模型。建模工具通常会检查模型,以评估其是否符合语言的规则,并强制执行这些规则,以帮助建模者创建一个格式良好的模型。这类似于文字处理器检查文本以确保其符合自然语言的语法规则的方式。
一些建模和仿真工具是商业可用的产品,而其他工具可能是创建或定制的,以提供独特的建模解决方案。建模和仿真工具通常作为更广泛的一套工程工具的一部分使用,这些工具构成了系统开发环境。对支持标准建模语言的工具的支持日益增加,这使得模型和建模信息能够在不同的工具之间进行交换。
11 模型质量指标
模型的质量不应与模型所代表的设计质量混淆。例如,一个人可能有一个高质量的、计算机辅助设计的椅子模型,准确地代表了椅子的设计,但设计本身可能存在缺陷,以至于当一个人坐在椅子上时,它会散架。一个高质量的模型应该提供足够的表示,以帮助设计团队评估设计的质量并发现设计问题。
模型质量通常通过模型对建模指南的遵守程度以及模型对其预期目的的满足程度来评估。典型的建模指南示例包括命名约定、适当应用模型注释、正确使用建模结构以及应用模型重用考虑因素。不同类型的模型具有不同的具体指南。例如,使用计算机辅助设计工具开发几何模型的指南可能包括定义坐标系、尺寸标注和公差的约定。
12 基于模型和模拟的度量
模型和模拟可以提供大量信息,这些信息可用于评估建模和模拟工作的技术和管理指标。
在许多情况下,整体的SE努力。不同类型的模型和模拟提供不同类型的信息。一般来说,模型和模拟提供的信息使人们能够:
- 评估进展
- 估算 9工作量和成本
- 评估技术质量和风险
- 评估模型质量
一个模型的进展可以通过相对于定义的模型范围的建模工作的完整性来评估。模型也可以用来评估设计在多大程度上满足了需求,或者通过测试验证的程度。当与生产率指标结合使用时,该模型可以用来估计交付系统所需的SE工作成本。
模型和模拟可以用来识别关键系统参数,并评估这些参数中的不确定性所带来的技术风险。模型和模拟还可以提供与其目的相关的额外指标。例如,当模型的目的是支持任务和系统概念的制定和评估时,一个关键指标可能是特定时间内探索的替代概念的数量。
本文同步发表在 软件需求探索的https://srs.pub/specification/modeling-and-simulation.html
作者: