在 SysML 块定义图中,单个 "block" 可以同时表示硬件和软件吗?
In a SysML Block Definition Diagram, can a single "block" represent both hardware and software?
与 class 图表相比,似乎可以在框图中对系统的多个方面进行建模,例如软件、硬件、实体等。
有没有可能一个块既可以代表软件又可以代表硬件?或者它们总是会被分成两个独立的块?例如。在给一些机械建模的时候,假设机械有一个物理按钮,机械的软件也有一个"Button"软件class。将它们建模为单独的块还是单独的块?
对于映射到面向对象语言的数据库实体,作为 class,可以问同样的问题,并且所述实体也代表现实生活中的物理参与者(例如 "User" 软件 class & 现实生活中的物理用户).
在单个块可以表示多个方面的情况下,是否有某种形式的符号来指示 "this block represents both hardware and software" - 或者这只是基于与其他块具有多个不同注释关系的块来暗示?
系统工程师通常希望将物理组件和软件组件分开。软件中的 "digital twin" 并不总是准确地代表其物理对象。例如,错误的传感可能导致数字孪生成为现实中组件的不准确表示。想象一下自动驾驶汽车在交通中的位置,或者 "stalling" 737 MAX。
在信息系统中,一个人的数字孪生不同于它所代表的真实的人。想象一下,如果您的医生仅根据不准确的健康记录对您进行治疗,将会发生什么。您,作为真实的人,应该与您的健康记录区分开来。此外,软件的设计应该与数据库模式的设计区分开来,因此两者可以独立变化。
要回答您的问题,没有什么可以阻止您将所有事物建模为一个块,但是,如果您将模型中的事物混为一谈,则无法单独推理它们.为什么要将物理事物及其数字双胞胎或 Java class 和数据库 table 建模为相同的 SysML 块?
这完全取决于您要传达的内容。始终考虑模型和视图的特定用途来建模和创建视图。
如果您只是想传达与人或具有按钮的机器相关的系统的概念,无论是硬件还是 software/virtual,那么一个块就可以工作。如果您想引起对两个可能按钮或系统其他内部工作之间的任何特征或关系的注意,则为每个使用不同的块并创建第三个“具有”(aggregates/composes)这两个“系统”块不同类型的按钮或具有硬件子系统和具有按钮的软件子系统。如果两种按钮类型之间存在相关关系,则显示它们。如果物理硬件按钮依赖于按钮 class 或功能的软件实现,则创建该依赖关系。
根据需要详细阐述和添加细节,一旦充分传达了概念,就停止。
如果您对要传达的内容没有具体的想法,但正在尝试了解一个概念在哪里结束,下一个概念从哪里开始,甚至如何思考整个混乱,请尝试多种方式并您可能会更好地理解问题并理顺思路。如果组合的块没有显示您要“说”的内容,请尝试块和关系的不同组合。当你发现有用的东西可以解决手头的问题时,停下来。
不要被语言束缚
与 class 图表相比,似乎可以在框图中对系统的多个方面进行建模,例如软件、硬件、实体等。
有没有可能一个块既可以代表软件又可以代表硬件?或者它们总是会被分成两个独立的块?例如。在给一些机械建模的时候,假设机械有一个物理按钮,机械的软件也有一个"Button"软件class。将它们建模为单独的块还是单独的块?
对于映射到面向对象语言的数据库实体,作为 class,可以问同样的问题,并且所述实体也代表现实生活中的物理参与者(例如 "User" 软件 class & 现实生活中的物理用户).
在单个块可以表示多个方面的情况下,是否有某种形式的符号来指示 "this block represents both hardware and software" - 或者这只是基于与其他块具有多个不同注释关系的块来暗示?
系统工程师通常希望将物理组件和软件组件分开。软件中的 "digital twin" 并不总是准确地代表其物理对象。例如,错误的传感可能导致数字孪生成为现实中组件的不准确表示。想象一下自动驾驶汽车在交通中的位置,或者 "stalling" 737 MAX。
在信息系统中,一个人的数字孪生不同于它所代表的真实的人。想象一下,如果您的医生仅根据不准确的健康记录对您进行治疗,将会发生什么。您,作为真实的人,应该与您的健康记录区分开来。此外,软件的设计应该与数据库模式的设计区分开来,因此两者可以独立变化。
要回答您的问题,没有什么可以阻止您将所有事物建模为一个块,但是,如果您将模型中的事物混为一谈,则无法单独推理它们.为什么要将物理事物及其数字双胞胎或 Java class 和数据库 table 建模为相同的 SysML 块?
这完全取决于您要传达的内容。始终考虑模型和视图的特定用途来建模和创建视图。
如果您只是想传达与人或具有按钮的机器相关的系统的概念,无论是硬件还是 software/virtual,那么一个块就可以工作。如果您想引起对两个可能按钮或系统其他内部工作之间的任何特征或关系的注意,则为每个使用不同的块并创建第三个“具有”(aggregates/composes)这两个“系统”块不同类型的按钮或具有硬件子系统和具有按钮的软件子系统。如果两种按钮类型之间存在相关关系,则显示它们。如果物理硬件按钮依赖于按钮 class 或功能的软件实现,则创建该依赖关系。
根据需要详细阐述和添加细节,一旦充分传达了概念,就停止。
如果您对要传达的内容没有具体的想法,但正在尝试了解一个概念在哪里结束,下一个概念从哪里开始,甚至如何思考整个混乱,请尝试多种方式并您可能会更好地理解问题并理顺思路。如果组合的块没有显示您要“说”的内容,请尝试块和关系的不同组合。当你发现有用的东西可以解决手头的问题时,停下来。
不要被语言束缚