理解系统模型的块定义BDD图

1,350 阅读6分钟

简介

BDD是一种展示系统静态结构的工具,用于定义系统组件(Block)、属性、操作和关系。

BDD通过块表示系统组件,包含属性(如软件、硬件组件)和接口,描述组件间的关系与交互。它帮助系统工程师理解整体结构,进行设计和分析。

1 块定义图(Block Definition Diagram, BDD):

在 SysML 中,块定义图用于定义系统中的块(Block)及其之间的关系,块是表示系统结构和行为的基本构建单元。我们一起通过实例了解该图。

question_ans.png

该图用于定义系统的静态结构,描述系统组件及其属性、操作和关系。

  • 2 结构图:块定义图 bdd详细介绍

结构图表:块定义图(Block Definition Diagram):用于显示系统块的信息。

定义和设计目的:

用于表示系统的组成部分及其之间的关系。通过这个图表,系统工程师可以定义系统的各个组成部分,以及它们之间的连接和依赖关系。

正例应用场景:

帮助系统工程师理清系统的整体结构,从而更好地进行系统设计和分析。

需要注意的是:如果系统的结构定义不清晰或者组成部分之间的关系设计错误,则可能导致系统设计不稳定或者难以维护。
  • 属性定义

块:

块(符号:带有关键字 = «block»的矩形)表示一个系统组件,一个模块化结构单元,封装其内容(属性、行为、约束)并支持第一类(即可以在模型存储库中绘制和直接操作)接口。

模块封装的行为

 操作、信号和状态机。
 端口:
 用于连接和连接(“布线”)模块接口的唯一交互点称为端口。

块可以指定软件、硬件、机械和湿件(人员、组织、设施)组件。

块支持信息和物理流的提供(实现或实现)和必需(使用)接口。

块可以递归分解为部件,其中每个部件也必须由块定义。

再次说明块定义图 (bdd)是一个静态结构图,它显示了系统组件、它们的内容(属性、行为、约束)、接口和关系。

通过在块定义图 (BDD) 定义和内部块图 (IBD) 用法之间交替,可以将递归分解(“嵌套”)为部件。

行为可以由块(例如,操作、信号和状态机)封装,也可以直接或间接(通过接口)分配给块(例如,活动/操作)。

可以通过约束块对块进行数学约束,以生成数学上可模拟的参数图。

比较和对比对象:

UML 2 类图和组件图;
SA/SD系统上下文和结构图图;
IDEF IDEF1X 图。

3 表示方法

  • 表示属性

块和接口:

通过定义块及其接口来表示系统与外部环境的交互。接口可以描述输入输出信号、数据流、物理连接等。

依赖关系:

    使用依赖关系表示块之间的依赖性,包含系统与环境的依赖关系。

流属性(Flow Properties):

    用于定义通过接口传递的数据或物理量,表示系统与环境之间的交互流。
  • 目的

块定义图的用途是指定用于控制对象、数据对象和接口对象的系统静态结构。如果应用得当,系统块图是递归可扩展的,并且在数学上(参数化)可模拟。

如下,块图显示系统中各块之间的关系。

SysML_内部块图显示内部结构如何通信.png

如下图为块定义图, 块定义图的主要元素如下:

块(Block): 表示系统的基本构建单元,类似于 UML 类。
属性(Property): 定义块的特性。
操作(Operation): 定义块的功能。
接口(Interface): 定义块之间的交互方式。
关联(Association): 表示块之间的结构关系。
依赖关系(Dependency): 表示块之间的依赖性。
流属性(Flow Properties): 表示通过接口传递的流动数据或物理量。

SysML_内部框图原简-定义图.png

  • 块的使用图说明

BDD 块定义与 IBD 块使用二分法,BDD和IBD相辅相成(参见黑盒与白盒),并在系统分析和设计过程中支持递归结构分解技术。

BDD 定义块的属性,包括其部件属性(强拥有的部件)和引用属性(共享部件),IBD 在封装它们的块的结构上下文中指定零件属性和引用属性的用法或角色。

否则,IBD 中的零件属性和参照属性可能具有不同的用法或角色,具体取决于它们在 IBD 中的实现方式(“连接”)。

SysML_内部框图原简-使用图.png

4 适用场景

  • 用于分解系统:

用途: 描述系统的分解结构,将复杂系统分解成多个块,每个块代表一个子系统或组件。

示例: 在一个汽车系统中,定义引擎块、传动块、车身块等,表示各个部分及其关系。

  • 属性和操作定义:

用途: 定义块的属性和操作,为每个块指定详细的特性和功能。

示例: 定义引擎块的属性(如功率、排量)和操作(如启动、停止)。

  • 接口和连接:

用途: 描述块之间的接口和连接方式,定义系统各部分的交互关系。 示例: 定义引擎块与传动块之间的接口,表示它们之间的机械连接和信号传递。

  • 系统级设计:

用途: 在系统设计阶段,使用块定义图来描述系统的静态结构和组件关系。 示例: 在设计一个复杂电子系统时,定义各个硬件模块及其互联关系。

5 最佳实践路径

正确的使用

  • 积极地将对象三元组模式分类技术应用于块,以分离控制对象、接口对象和数据对象。

  • 通过在 BDD 定义和 IBD 用法之间交替递归分解(“嵌套”)块层次结构。

  • 将所有活动分配给代表 Conrol 对象 Blocsk 的分区。

块定义图的缺陷和使用陷阱

  • 初学者容易混淆控制对象、接口对象和数据对象块。

  • SA/SD DFD 反模式(又名“回到 1980 年左右的未来”反模式)= 将活动图定义为功能流程图,而不表示控制对象的部件。

  • Bloctivity Anti-Pattern = 混淆块和活动语法和语义。

复杂性管理:

一个复杂系统包含成百上千个块及其关系,块定义图可能变得难以理解和维护。

动态行为表示不足:

块定义图主要描述系统的静态结构,缺乏对系统动态行为的详细描述能力, 在需要描述系统的运行时行为和交互过程时,块定义图无法提供足够的信息,需要结合其他图(如活动图、序列图)来补充。

 细节表达能力有限: 

比如对于需要详细描述硬件电路或软件算法的场景,块定义图可能无法提供足够的细节。 块定义图在表达具体的实现细节和低层次的设计时可能显得不足。

 学习曲线陡峭: 

新手在系统建模时,可能需要时间来熟悉块定义图的各种元素和关系,才能有效地进行建模。对于初学者,理解和使用块定义图及其相关元素可能具有一定的学习难度。