从“基于模型”到“基于模型和仿真”的系统架构设计建模——通过仿真实现高质量系统定义
摘要
系统架构设计是影响整个系统工程的关键活动。因此,确保构建高质量的系统架构至关重要。通过MBSE方法,并用仿真技术进行补充,将成为一种新的有效方法。通过仿真实现高质量的系统定义,在确保系统工程时间的同时提出创新解决方案。
系统架构(System Architecture)是系统工程中的一个关键工程工件(Artifact)。它的作用包括:
- 使工程师和客户对期望达成共同理解;
- 协调子系统和组件的设计以达到系统目的;
- 比较备选方案,提出最符合利益相关者期望的解决方案,并确保工程结果符合这些解决方案。
系统架构作为输入,其中包含的信息将直接影响大部分其他工程活动及其相关结果。因此,确保良好的架构质量有助于确保进一步的工程活动。
基于模型的系统工程(MBSE)方法已被证明在提高系统架构质量方面具有价值。正确设置后,MBSE方法和工具可以支持架构师,并引导他们通过系统的工作流程,减少设计不准确、不一致和不完整的风险。
然而经验表明,在某些情况下,当前的MBSE能力不足以完全按要求降低这些风险。尤其是在系统越来越复杂,以及工作流和组织越来越复杂的情况下。
与此同时,越来越多的系统工程实践者发现,仿真技术可以与MBSE方法相结合,以填补当前MBSE方法在架构设计方面的空白。
1 系统架构设计
1.1 基于模型的系统架构设计&Arcadia方法
系统架构被定义为系统在其环境中的基本概念或特性,体现在其元素、关系以及其设计和发展原则中。ISO/IEC/IEEE 42010标准规定了系统架构的组织和表达方式。
图1 ISO/IEC/IEEE 42010
架构是针对一组利益相关者(Stakeholders)定义的,这些利益相关者是对系统感兴趣的个人、团队、组织或任何其他类型的实体。
“基于模型的系统工程(MBSE)是建模的正规化应用,以支持系统需求、设计、分析、验证和确认活动,从概念设计阶段开始,一直持续到整个开发和后期生命周期阶段。”
除了在这些工程活动中提供更严格的要求外,以模型为中心的方法的一个基本目标是提供可与所有利益相关者共享的权威真理源。
目前已有规范方法支持系统架构建模。Arcadia(Architecture Analysis & Design Integrated Approach,架构分析和设计综合方法)是主流方法之一,它是一种基于模型的方法,专门用于系统、软件和硬件架构设计。Arcadia描述了详细的推理,以理解和捕获客户需求,在所有工程利益相关者之间定义和共享产品架构,并在早期验证和证明设计。Arcadia可应用于复杂系统、设备、软件或硬件架构设计,尤其是需要协调的强约束,如成本、性能、安全、安保、重用、资源消耗、质量等。它在被系统/产品/软件/硬件定义中的大多数利益相关者作为通用工程参考。十多年来,已在各种工程环境中得到应用。
受ISO/IEC/IEEE 42010的启发,Arcadia方法定义了系统架构师在设计架构时可以采用的一组视图,分为运行分析(OA)、系统分析(SA)、逻辑架构(LA)、物理架构(PA)四个层级。Arcadia将系统上下文和需求的捕获和分析(运行分析和系统需求分析)与解决方案的设计(逻辑和物理架构)明确分开。
图2 Arcadia系统架构设计方法的四个层级
遵循Arcadia方法,在定义系统架构的过程中需要考虑几个主要方面:
- 目的(Purpose)——实体存在的原因,包括系统:它在不同的使用环境中提供的服务,以满足利益相关者的期望,并为他们提供有价值的解决方案。
- 形式(Form)——在系统的不同使用环境中考虑的实体,包括系统的组成部分;这里可以考虑架构的结构及其组成部分之间的接口。
- 行为(Behavior)——实体在使用环境中的预期行为,包括系统及其组成部分的预期行为;功能分析产生的功能,以及组成部分的模式和状态。
1.2 仿真在架构设计中的作用
一些研究将仿真定义为预测效果的认知过程,包括基于模型的任何形式的思考,而不仅仅是通过计算机执行模型运行。这使我们能够将仿真视为控制机制的一部分,从而成为实现满足系统目标和利益相关者期望的系统架构设计的一种有效方法。图3说明了仿真在控制回路中架构设计过程中的作用。
图3 仿真在架构设计中的作用
通过将仿真视为工程控制回路的一部分,我们可以确定仿真在架构设计过程中的作用,无论是在达到系统的目标质量,还是在达到该目标所需的时间。
经验表明,在系统开发生命周期中,50%到70%的设计错误是在实施阶段之前引入的,主要是在起始和设计阶段。这意味着,我们预计在初步设计审查(Preliminary design review, PDR)时,至少一半的设计错误已经存在。根据航空航天公司提供的与源代码行(SLOC)数量相关的嵌入式软件复杂性增长指标,我们可以预计错误数量将随着系统复杂性的增加而增加。
同时,仿真有助于更快地达到目标质量,降低设计误差成本。据统计,设计错误修正成本随着项目阶段呈指数增长:如果在需求阶段发现的修正需求错误的成本被定义为1个单位,则在设计阶段发现的修复该错误的成本增加到3-8个单位;在制造/构建阶段,修复错误的成本为7-16个单位;在集成和测试阶段,修复错误的成本为21-78个单位;在运营阶段,修复需求误差的成本为29-1500个单位以上。
2 架构设计的目标、当前状态和限制
2.1 架构设计的目标
由于架构设计影响大量工程活动,系统架构工件的质量和架构设计活动的效率都是工程组织的关键优化杠杆。
架构的用途是多种多样的。经验表明,架构设计的目标包括:
- 共享——改善沟通,减少歧义,尽快达成对系统目的、形式和行为的共同理解。例如,使用基于模型的架构视图来支持与客户的讨论。
- 安全——保证工程数据的质量。例如,使用架构模型作为获取文本需求、分析文档的主干。
- 自动化——通过从架构模型自动生成工程工件,以及自动化架构任务,自动化工程过程的执行,以提高其效率。例如,从模型生成文档交付物,从架构模型生成软件模块,自动探索解决方案空间。
2.2 当前状态和限制
架构设计描述,例如可以使用Arcadia方法及相关MBSE工具(例如System Modeling Workbench, SMW/Capella)来描述。然而,从实施MBSE的经验中发现了当前工具的局限性,包括:
- 不足以充分描述系统的预期行为;
- 对集成、验证和确认(IVV)策略的支持有待完善;
- 权衡和优化仍非常依赖于工程师非正规化的个人分析能力;
- 架构模型仍不足以向客户展示系统在运行中的预期行为。
3 通过仿真填补空白
上述限制的一个主要根源是,当今的架构模型大多是描述性的,预测能力有限。描述性模型在本质上不同于预测模型,它们保留了模糊的“灰色区域”,不像预测模型那样精确地执行。
为了克服这些限制,仿真使工程师能够访问正在设计的解决方案的行为/功能。仿真提供可执行的虚拟对象,利用该虚拟对象增强所有利益相关者之间的沟通,进一步评估和分析解决方案,并扩展和自动探索解决方案空间。
图4 仿真在概念阶段的支持
3.1 通过仿真改进沟通
描述性模型通常用于说明系统的行为,无论是模式和状态机,还是场景和功能链。然后,通过一组这样的视图捕获系统的整体行为,每个视图都侧重于描述独特情况下的行为。此外,对于这些类型的视图,在行为描述的完整性(完整性=明确+场景的完全覆盖)和易读性之间不得不折衷。
信息在视图之间的传播以及缺乏可读性或明确性,很难确保利益相关者之间对系统行为的共同理解。此外,读者实际上在心里进行了模型执行,以理解所描述的行为是什么。在这种情况下,执行引擎(即人脑)在不同的读者之间是不同的,因此导致了不同的结果且不可重复,这显著增加了利益相关者之间解释分歧的风险。
图5 系统模型/架构包含的视图
而仿真能提供明确的方法来计算系统行为,如时间相关曲线、2D和3D渲染、基于仿真输出后处理的定量结果。
除了仿真结果本身,交互式仿真还可以让利益相关者(工程师、最终用户、客户、经理等)亲自体验未来系统,确认或完善预期行为,或更好地了解系统行为以进行详细设计。使用仿真来改善沟通主要是通过“仿真即服务”功能来实现的,因为它提供了对仿真手段(执行和可视化)的方便访问,同时符合安全约束。
对于负责详细设计的工程师来说,可执行规范通过确保对预期行为的理解提供了其他好处。仿真环境提供了与软件IDE提供的功能类似的功能,例如带有暂停条件的断点、向前和向后移动、带有高亮显示或着色的模型动画、切换数据等等。这组调试特性有助于理解系统行为产生的内部机制和功能之间的交互。
另一个好处是加强了并行工程和协作。对于系统工程师来说,能够很早与其他工程专业共享系统的可执行规范是一种强大的手段,使其他专业能够更早和同时开始活动,尽早快速迭代系统定义。如果不使用仿真,这些活动将在很久之后或以不太完整或不够详细的方式进行。
图6 概念阶段中的仿真工作流
3.2 通过仿真确保设计质量
在工程设计过程中利用仿真,使工程项目团队能够早期、持续地集成、验证和确认(IVV)设计中的解决方案。具有随时模拟设计中项目的能力,使工程师能够在每个小设计步骤后执行单元测试和集成测试,以验证和确认设计中的项目。这带来了两大好处:
- 大大降低了总体解决方案成本,减少了引入设计错误和发现错误之间的时间。在整个开发过程中的任何时候都可以访问虚拟测试,包括虚拟被测项目和虚拟测试台,这是将错误成本降至最低的有效方法。
- 允许更广泛的解决方案空间探索和备选方案比较。仿真减少了评估设计和确定哪一个比其他设计更好所需的时间,减轻项目压力,从而使设计空间探索和备选方案探索更有效。为了进一步加快探索,可以将仿真模型参数化并集成到优化迭代中,自动探索并收敛到最佳解决方案。
可见,仿真不仅有助于通过早期和持续的IVVQ确保设计质量,还允许IVVQ工程团队在设计活动的同时确保测试活动的安全。这开辟了可应用于复杂系统工程(如测试或行为驱动开发)的新方法,前提是IVVQ团队可以为系统工程团队的预期解决方案提供全面的虚拟测试手段。
图7 将仿真集成到架构设计进行概念设计验证
3.3 使用仿真模型使任务自动化
使用模型,无论是描述性的还是可执行的,都意味着使用数字化的数据和工件。因此,可以使用编程语言自动访问和转换这些数据。MBSE工具通常提供任务自动化,例如文档生成、代码生成(主要用于软件组件接口)或描述性模型生成(系统到子系统的转换)。我们可以根据仿真模型扩展任务范围并丰富任务。而更有价值的功能是设计空间探索自动化、设计优化自动化、早期测试执行自动化和模型覆盖率分析自动化,以实现高质量的系统定义。
基于仿真模型,我们还可以通过仿真模型或仿真结果来丰富文档生成,以更好地表达期望的行为。由于仿真模型是可执行的,我们可以生成详细的组件接口以及组件的内部行为。
图8 基于AI自动探索设计空间的创成式方法
4 最佳实践建议
如上所述,我们希望在概念阶段引入仿真的原因有很多。因此,采用基于仿真的工程过程,使用仿真来支持整个产品生命周期中的所有工程活动,需要创建大量仿真。对于任何工程活动,保持所有工程工件的连贯性和一致性都是一项挑战。为了克服这一挑战,有一些来自最佳实践的建议。
- 分别用系统架构和和仿真反映不同方面。将描述性架构模型和仿真结合在一起的一体化模型可被视为对连贯性和一致性需求的响应。但我们鼓励分离这两者的关注点,以保持架构定义和仿真作为不同、可区分但仍然一致的对象。这是为了避免架构模型信息过载。实际上,系统架构师通常需要一个简单的模型来支持设计思维过程。在某种程度上,单个模型中的信息过载会对实现系统架构目标产生反作用。这种选择类似于硬件工程中存在的一种选择,其中建模和仿真之间有明确的分离,分别称为计算机辅助设计(CAD)和计算机辅助工程(CAE)。
图9 逻辑架构中系统架构与仿真架构的映射
——SMW到Simcenter Studio
图10 物理架构中系统架构与仿真架构的映射
——SMW到Simcenter System Architect
- 基于MBSE方法搭建仿真框架。为了支持仿真并保持与其他工程工件的连贯性和一致性,仿真模型应有助于实现MBSE目标。例如,如果在系统架构设计的不同层级构建仿真,则该仿真必须有助于实现该层级的分析目标。此外,仿真模型应与Arcadia视图中采用的表达视角相同。
图11 基于MBSE方法部署仿真任务
- 每种问题类型对应一种仿真。如果用一个单一的仿真来回答工程师在整个产品生命周期中可能遇到的所有问题,意味着该仿真是系统在其所有历史中的所有方面的完美虚拟表示。这既不现实也不可行。因此,必须考虑最复杂的情况,即在产品生命周期中,对每个工程师的问题进行一次仿真。而为了减少仿真数量,一个建议是定义关注点的类型,并为每种关注点类型构建一个仿真,或为每种类型的关注点构建至少一个可重用的仿真组件。为了简化这些仿真的管理,还需要适当的治理,例如仿真数据管理SDM。
图12 系统架构对应不同问题类型的仿真
- 最大程度地重用仿真资产。有几种方法可以重用仿真资产:
(1) 重用现有仿真组件以构建新的仿真;
(2) 重用现有的仿真来回答类似问题的不同表现;
(3) 在整个开发生命周期中重用测试工具和测试用例。对于仿真工具的重用,我们需要定义仿真建模规则,以确保组件的可重用性(例如,互操作格式,如FMU、HLA…、共享接口库…),我们还必须最小化仿真工具的数量,以尽可能少地保持协同仿真约束,并定义标准的基于组件的仿真架构。对于测试用例的重用,我们需要确保仿真设施为软件在环(SIL)、处理器在环(PIL)和硬件在环(HIL)提供无缝支持,以逐步从完全的虚拟测试过渡到真实的系统测试。
图13 仿真资产重用和管理
自动将架构模型元素转换为仿真模型元素。为了避免在基于现有架构模型的仿真模型设计中出现人为错误,强烈建议自动化模型转换。这为架构模型和仿真模型之间的连贯性和一致性提供了信心。自动化还可以集成可追溯链接,以简化影响分析和论证活动。这种自动化的一个后续优势是在工程组织中构建标准的仿真建模方法。
图14 系统架构到仿真架构的转换
5 总结
使用仿真来支持架构和详细设计活动是在降低风险的同时提高质量、成本和规划的有效方法。在大多数情况下,这三个关键的项目目标无法一起改进。通常以上游工程活动的项目费用增加为代价。
然而,经验和分析表明,用仿真模型指定系统所花费的努力远低于用文本需求来指定系统。已有权威研究证明,在设计模型中使用仿真的明显优势。而在此基础上使用自动化的仿真工具以及有利于模块化和可重用性的清晰建模规则,还能进一步提高设计效率和研发水平。
参考文献
- Pierre Nowodzienski, Juan Navas (Thales Corporate Engineering), “From Model-based to Model and Simulation-based Systems Architectures – achieving quality engineering through descriptive and analytical models”, 32ndAnnual INCOSE International Symposium, Detroit, USA, June 2022.
- Steven Gillijns, Lars Jordan, Mike Nicolai, Fabien Retho and Johan Vanhuyse “What's New in Simcenter for MBSE Overview and New Features”, Siemens Digital Industry Software, June, 2022.
- Thomas Marpaux, “Modeling of a bridge between Capella/SMW and Simcenter Studio/System Architect”, Siemens Digital Industry Software, July, 2022.