Praxis Model Explorer

软件结构模型

解释软件如何被模块化、如何通过接口协作、哪些结构承载业务用例;不把目录、调用密度或工具指标当成模型对象。

定位

Viewpoint
描述 Package、Component、Interface、Port、Class、Connector、结构协作和运行时 Interaction
Stakeholder
架构师、开发者、维护者、评审者
Abstraction Level
package / component / classifier / owned behavior
Authority
docs/models/software-structure 是归一化模型目录;docs/engineering 作为软件结构模型的兼容投影输入共同承载。
Packages
20
Elements
68
Diagrams
68

Package 概览图

flowchart TD
  model["软件结构模型"]
  pkg_0["软件结构模型"]
  model --> pkg_0
  pkg_1["apps"]
  pkg_0 --> pkg_1
  pkg_2["boards"]
  pkg_0 --> pkg_2
  pkg_2 --> pkg_2_contents["13 elements / 13 diagrams"]
  pkg_3["build.c6_companion"]
  pkg_0 --> pkg_3
  pkg_3 --> pkg_3_contents["1 elements / 1 diagrams"]
  pkg_4["build.t_display_p4_tft"]
  pkg_0 --> pkg_4
  pkg_4 --> pkg_4_contents["1 elements / 1 diagrams"]
  pkg_5["build.tdisplayp4_amoled"]
  pkg_0 --> pkg_5
  pkg_5 --> pkg_5_contents["1 elements / 1 diagrams"]
  pkg_6["build.tdisplayp4_tft"]
  pkg_0 --> pkg_6
  pkg_6 --> pkg_6_contents["1 elements / 1 diagrams"]
  pkg_7["builds"]
  pkg_0 --> pkg_7
  pkg_7 --> pkg_7_contents["1 elements / 1 diagrams"]
  pkg_8["cmake"]
  pkg_0 --> pkg_8
  pkg_8 --> pkg_8_contents["1 elements / 1 diagrams"]
  pkg_9["COPYRIGHT"]
  pkg_0 --> pkg_9
  pkg_9 --> pkg_9_contents["1 elements / 1 diagrams"]
  pkg_10["firmware"]
  pkg_0 --> pkg_10
  pkg_10 --> pkg_10_contents["3 elements / 3 diagrams"]
  pkg_11["images"]
  pkg_0 --> pkg_11
  pkg_11 --> pkg_11_contents["1 elements / 1 diagrams"]
  pkg_12["LICENSE"]
  pkg_0 --> pkg_12
  pkg_12 --> pkg_12_contents["1 elements / 1 diagrams"]
  pkg_13["managed_components"]
  pkg_0 --> pkg_13
  pkg_13 --> pkg_13_contents["1 elements / 1 diagrams"]
  pkg_14["esp32_lvgl"]
  pkg_1 --> pkg_14
  pkg_14 --> pkg_14_contents["22 elements / 22 diagrams"]
  pkg_15["linux_cardputer_zero"]
  pkg_1 --> pkg_15
  pkg_15 --> pkg_15_contents["5 elements / 5 diagrams"]
  pkg_16["linux_sim_shell"]
  pkg_1 --> pkg_16
  pkg_16 --> pkg_16_contents["1 elements / 1 diagrams"]
  pkg_17["linux_uconsole_gtk"]
  pkg_1 --> pkg_17
  pkg_17 --> pkg_17_contents["12 elements / 12 diagrams"]
  pkg_18["nrf52_node"]
  pkg_1 --> pkg_18
  pkg_18 --> pkg_18_contents["1 elements / 1 diagrams"]
  pkg_19["README.md"]
  pkg_1 --> pkg_19
  pkg_19 --> pkg_19_contents["1 elements / 1 diagrams"]

Package / Element / Diagram

软件结构模型

Model 根命名空间下组织 0 个直接模型元素,并通过 0 张 UML 图呈现。

apps

apps 命名空间下组织 0 个直接模型元素,并通过 0 张 UML 图呈现。

boards

boards 命名空间下组织 13 个直接模型元素,并通过 13 张 package、component、class 图呈现。

  • 函数节点:makeBoardProfilecomponent · classifier · high函数节点:makeBoardProfile 表示软件结构模型中的 Component 候选,重点是可替换模块、提供/需要的接口以及连接关系。
  • 函数节点:pinNumcomponent · classifier · high函数节点:pinNum 表示软件结构模型中的 Component 候选,重点是可替换模块、提供/需要的接口以及连接关系。
  • 结构切片 boards · gat562_mesh_evb_pro/include/boardsclass · classifier · high结构协作:结构切片 boards · gat562_mesh_evb_pro/include/boards 表示 软件结构模型 中的 Classifier 候选;它应使用仓库或业务语言中的真实名称,不允许用工具生成的匿名代号替代。
  • 结构切片 boards · t_display_p4/include/boardsclass · classifier · high结构协作:结构切片 boards · t_display_p4/include/boards 表示 软件结构模型 中的 Classifier 候选;它应使用仓库或业务语言中的真实名称,不允许用工具生成的匿名代号替代。
  • 结构切片 boards · t_echo_lite/include/boardsclass · classifier · high结构协作:结构切片 boards · t_echo_lite/include/boards 表示 软件结构模型 中的 Classifier 候选;它应使用仓库或业务语言中的真实名称,不允许用工具生成的匿名代号替代。
  • 结构切片 boards · tab5/include/boardsclass · classifier · high结构协作:结构切片 boards · tab5/include/boards 表示 软件结构模型 中的 Classifier 候选;它应使用仓库或业务语言中的真实名称,不允许用工具生成的匿名代号替代。
  • 结构切片 boards · tdeck_pro/include/boardsclass · classifier · high结构协作:结构切片 boards · tdeck_pro/include/boards 表示 软件结构模型 中的 Classifier 候选;它应使用仓库或业务语言中的真实名称,不允许用工具生成的匿名代号替代。
  • 结构切片 boards · tdeck/include/boardsclass · classifier · high结构协作:结构切片 boards · tdeck/include/boards 表示 软件结构模型 中的 Classifier 候选;它应使用仓库或业务语言中的真实名称,不允许用工具生成的匿名代号替代。
  • 结构切片 boards · tlora_pager/include/boardsclass · classifier · high结构协作:结构切片 boards · tlora_pager/include/boards 表示 软件结构模型 中的 Classifier 候选;它应使用仓库或业务语言中的真实名称,不允许用工具生成的匿名代号替代。
  • 结构切片 boards · twatchs3/include/boardsclass · classifier · high结构协作:结构切片 boards · twatchs3/include/boards 表示 软件结构模型 中的 Classifier 候选;它应使用仓库或业务语言中的真实名称,不允许用工具生成的匿名代号替代。
  • 结构切片 gat562_mesh_evb_pro · gat562_mesh_evb_proclass · classifier · high结构协作:结构切片 gat562_mesh_evb_pro · gat562_mesh_evb_pro 表示 软件结构模型 中的 Classifier 候选;它应使用仓库或业务语言中的真实名称,不允许用工具生成的匿名代号替代。
  • 结构切片 t_echo_lite · t_echo_liteclass · classifier · high结构协作:结构切片 t_echo_lite · t_echo_lite 表示 软件结构模型 中的 Classifier 候选;它应使用仓库或业务语言中的真实名称,不允许用工具生成的匿名代号替代。
  • 模块边界:boardspackage · namespace · high模块边界:boards 表示 Package 命名空间或包含关系,用于组织模型元素,不等同于任意文件夹清单。

build.c6_companion

build.c6_companion 命名空间下组织 1 个直接模型元素,并通过 1 张 package 图呈现。

  • 模块边界:build.c6_companionpackage · namespace · high模块边界:build.c6_companion 表示 Package 命名空间或包含关系,用于组织模型元素,不等同于任意文件夹清单。

build.t_display_p4_tft

build.t_display_p4_tft 命名空间下组织 1 个直接模型元素,并通过 1 张 package 图呈现。

  • 模块边界:build.t_display_p4_tftpackage · namespace · high模块边界:build.t_display_p4_tft 表示 Package 命名空间或包含关系,用于组织模型元素,不等同于任意文件夹清单。

build.tdisplayp4_amoled

build.tdisplayp4_amoled 命名空间下组织 1 个直接模型元素,并通过 1 张 package 图呈现。

  • 模块边界:build.tdisplayp4_amoledpackage · namespace · high模块边界:build.tdisplayp4_amoled 表示 Package 命名空间或包含关系,用于组织模型元素,不等同于任意文件夹清单。

build.tdisplayp4_tft

build.tdisplayp4_tft 命名空间下组织 1 个直接模型元素,并通过 1 张 package 图呈现。

  • 模块边界:build.tdisplayp4_tftpackage · namespace · high模块边界:build.tdisplayp4_tft 表示 Package 命名空间或包含关系,用于组织模型元素,不等同于任意文件夹清单。

builds

builds 命名空间下组织 1 个直接模型元素,并通过 1 张 package 图呈现。

  • 模块边界:buildspackage · namespace · high模块边界:builds 表示 Package 命名空间或包含关系,用于组织模型元素,不等同于任意文件夹清单。

cmake

cmake 命名空间下组织 1 个直接模型元素,并通过 1 张 package 图呈现。

  • 模块边界:cmakepackage · namespace · high模块边界:cmake 表示 Package 命名空间或包含关系,用于组织模型元素,不等同于任意文件夹清单。

COPYRIGHT

COPYRIGHT 命名空间下组织 1 个直接模型元素,并通过 1 张 package 图呈现。

  • 模块边界:COPYRIGHTpackage · namespace · high模块边界:COPYRIGHT 表示 Package 命名空间或包含关系,用于组织模型元素,不等同于任意文件夹清单。

firmware

firmware 命名空间下组织 3 个直接模型元素,并通过 3 张 package、component 图呈现。

  • 服务对象:maincomponent · classifier · high服务对象:main 表示软件结构模型中的 Component 候选,重点是可替换模块、提供/需要的接口以及连接关系。
  • 界面组件:tm_services_record_errorcomponent · classifier · high界面组件:tm_services_record_error 表示软件结构模型中的 Component 候选,重点是可替换模块、提供/需要的接口以及连接关系。
  • 模块边界:firmwarepackage · namespace · high模块边界:firmware 表示 Package 命名空间或包含关系,用于组织模型元素,不等同于任意文件夹清单。

images

images 命名空间下组织 1 个直接模型元素,并通过 1 张 package 图呈现。

  • 模块边界:imagespackage · namespace · high模块边界:images 表示 Package 命名空间或包含关系,用于组织模型元素,不等同于任意文件夹清单。

LICENSE

LICENSE 命名空间下组织 1 个直接模型元素,并通过 1 张 package 图呈现。

  • 模块边界:LICENSEpackage · namespace · high模块边界:LICENSE 表示 Package 命名空间或包含关系,用于组织模型元素,不等同于任意文件夹清单。

managed_components

managed_components 命名空间下组织 1 个直接模型元素,并通过 1 张 package 图呈现。

  • 模块边界:managed_componentspackage · namespace · high模块边界:managed_components 表示 Package 命名空间或包含关系,用于组织模型元素,不等同于任意文件夹清单。

esp32_lvgl

apps/esp32_lvgl 命名空间下组织 22 个直接模型元素,并通过 22 张 package、component、sequence 图呈现。

  • 函数节点:companion_entercomponent · classifier · high函数节点:companion_enter 表示软件结构模型中的 Component 候选,重点是可替换模块、提供/需要的接口以及连接关系。
  • 函数节点:containscomponent · classifier · high函数节点:contains 表示软件结构模型中的 Component 候选,重点是可替换模块、提供/需要的接口以及连接关系。
  • 函数节点:maincomponent · classifier · high函数节点:main 表示软件结构模型中的 Component 候选,重点是可替换模块、提供/需要的接口以及连接关系。
  • 模块边界:apps/esp32_lvglpackage · namespace · high模块边界:apps/esp32_lvgl 表示 Package 命名空间或包含关系,用于组织模型元素,不等同于任意文件夹清单。
  • add_hex_line 调用 add_status_lineinteraction · owned_behavior · high动态协作:add_hex_line 调用 add_status_line 是 软件结构模型 中的局部行为,用于解释某个 Classifier、UseCase 或 Component 在特定场景下的动作、消息或状态变化。
  • add_status_line 调用 add_labelinteraction · owned_behavior · high动态协作:add_status_line 调用 add_label 是 软件结构模型 中的局部行为,用于解释某个 Classifier、UseCase 或 Component 在特定场景下的动作、消息或状态变化。
  • add_u32_line 调用 add_labelinteraction · owned_behavior · high动态协作:add_u32_line 调用 add_label 是 软件结构模型 中的局部行为,用于解释某个 Classifier、UseCase 或 Component 在特定场景下的动作、消息或状态变化。
  • canRunEsp32LvglStartupRuntime 调用 canStartEsp32LvglLoopRuntimeinteraction · owned_behavior · high动态协作:canRunEsp32LvglStartupRuntime 调用 canStartEsp32LvglLoopRuntime 是 软件结构模型 中的局部行为,用于解释某个 Classifier、UseCase 或 Component 在特定场景下的动作、消息或状态变化。
  • companion_enter 调用 add_hex_lineinteraction · owned_behavior · high动态协作:companion_enter 调用 add_hex_line 是 软件结构模型 中的局部行为,用于解释某个 Classifier、UseCase 或 Component 在特定场景下的动作、消息或状态变化。
  • companion_enter 调用 add_labelinteraction · owned_behavior · high动态协作:companion_enter 调用 add_label 是 软件结构模型 中的局部行为,用于解释某个 Classifier、UseCase 或 Component 在特定场景下的动作、消息或状态变化。
  • companion_enter 调用 add_status_lineinteraction · owned_behavior · high动态协作:companion_enter 调用 add_status_line 是 软件结构模型 中的局部行为,用于解释某个 Classifier、UseCase 或 Component 在特定场景下的动作、消息或状态变化。
  • companion_enter 调用 add_u32_lineinteraction · owned_behavior · high动态协作:companion_enter 调用 add_u32_line 是 软件结构模型 中的局部行为,用于解释某个 Classifier、UseCase 或 Component 在特定场景下的动作、消息或状态变化。
  • hasEsp32LvglRuntimeTargetProfile 调用 esp32LvglRuntimeTargetProfileinteraction · owned_behavior · high动态协作:hasEsp32LvglRuntimeTargetProfile 调用 esp32LvglRuntimeTargetProfile 是 软件结构模型 中的局部行为,用于解释某个 Classifier、UseCase 或 Component 在特定场景下的动作、消息或状态变化。
  • runEsp32LvglStartupRuntime 调用 canRunEsp32LvglStartupRuntimeinteraction · owned_behavior · high动态协作:runEsp32LvglStartupRuntime 调用 canRunEsp32LvglStartupRuntime 是 软件结构模型 中的局部行为,用于解释某个 Classifier、UseCase 或 Component 在特定场景下的动作、消息或状态变化。
  • runEsp32LvglStartupRuntime 调用 setBootLoginteraction · owned_behavior · high动态协作:runEsp32LvglStartupRuntime 调用 setBootLog 是 软件结构模型 中的局部行为,用于解释某个 Classifier、UseCase 或 Component 在特定场景下的动作、消息或状态变化。
  • runEsp32LvglStartupRuntime 调用 showBootUiinteraction · owned_behavior · high动态协作:runEsp32LvglStartupRuntime 调用 showBootUi 是 软件结构模型 中的局部行为,用于解释某个 Classifier、UseCase 或 Component 在特定场景下的动作、消息或状态变化。
  • setBootLog 调用 lockUiinteraction · owned_behavior · high动态协作:setBootLog 调用 lockUi 是 软件结构模型 中的局部行为,用于解释某个 Classifier、UseCase 或 Component 在特定场景下的动作、消息或状态变化。
  • setBootLog 调用 unlockUiinteraction · owned_behavior · high动态协作:setBootLog 调用 unlockUi 是 软件结构模型 中的局部行为,用于解释某个 Classifier、UseCase 或 Component 在特定场景下的动作、消息或状态变化。
  • showBootUi 调用 lockUiinteraction · owned_behavior · high动态协作:showBootUi 调用 lockUi 是 软件结构模型 中的局部行为,用于解释某个 Classifier、UseCase 或 Component 在特定场景下的动作、消息或状态变化。
  • showBootUi 调用 unlockUiinteraction · owned_behavior · high动态协作:showBootUi 调用 unlockUi 是 软件结构模型 中的局部行为,用于解释某个 Classifier、UseCase 或 Component 在特定场景下的动作、消息或状态变化。
  • startEsp32LvglLoopRuntime 调用 canStartEsp32LvglLoopRuntimeinteraction · owned_behavior · high动态协作:startEsp32LvglLoopRuntime 调用 canStartEsp32LvglLoopRuntime 是 软件结构模型 中的局部行为,用于解释某个 Classifier、UseCase 或 Component 在特定场景下的动作、消息或状态变化。
  • tick 调用 log_loop_intervalinteraction · owned_behavior · high动态协作:tick 调用 log_loop_interval 是 软件结构模型 中的局部行为,用于解释某个 Classifier、UseCase 或 Component 在特定场景下的动作、消息或状态变化。

linux_cardputer_zero

apps/linux_cardputer_zero 命名空间下组织 5 个直接模型元素,并通过 5 张 package、component 图呈现。

  • 函数节点:containscomponent · classifier · high函数节点:contains 表示软件结构模型中的 Component 候选,重点是可替换模块、提供/需要的接口以及连接关系。
  • 函数节点:maincomponent · classifier · high函数节点:main 表示软件结构模型中的 Component 候选,重点是可替换模块、提供/需要的接口以及连接关系。
  • 函数节点:not_containscomponent · classifier · high函数节点:not_contains 表示软件结构模型中的 Component 候选,重点是可替换模块、提供/需要的接口以及连接关系。
  • 函数节点:read_filecomponent · classifier · high函数节点:read_file 表示软件结构模型中的 Component 候选,重点是可替换模块、提供/需要的接口以及连接关系。
  • 模块边界:apps/linux_cardputer_zeropackage · namespace · high模块边界:apps/linux_cardputer_zero 表示 Package 命名空间或包含关系,用于组织模型元素,不等同于任意文件夹清单。

linux_sim_shell

apps/linux_sim_shell 命名空间下组织 1 个直接模型元素,并通过 1 张 package 图呈现。

  • 模块边界:apps/linux_sim_shellpackage · namespace · high模块边界:apps/linux_sim_shell 表示 Package 命名空间或包含关系,用于组织模型元素,不等同于任意文件夹清单。

linux_uconsole_gtk

apps/linux_uconsole_gtk 命名空间下组织 12 个直接模型元素,并通过 12 张 package、component 图呈现。

  • 函数节点:expectcomponent · classifier · high函数节点:expect 表示软件结构模型中的 Component 候选,重点是可替换模块、提供/需要的接口以及连接关系。
  • 函数节点:launchMapLayoutcomponent · classifier · high函数节点:launchMapLayout 表示软件结构模型中的 Component 候选,重点是可替换模块、提供/需要的接口以及连接关系。
  • 函数节点:launchSettingsLayoutcomponent · classifier · high函数节点:launchSettingsLayout 表示软件结构模型中的 Component 候选,重点是可替换模块、提供/需要的接口以及连接关系。
  • 函数节点:maincomponent · classifier · high函数节点:main 表示软件结构模型中的 Component 候选,重点是可替换模块、提供/需要的接口以及连接关系。
  • 函数节点:makeLabelcomponent · classifier · high函数节点:makeLabel 表示软件结构模型中的 Component 候选,重点是可替换模块、提供/需要的接口以及连接关系。
  • 函数节点:makeSettingsRowcomponent · classifier · high函数节点:makeSettingsRow 表示软件结构模型中的 Component 候选,重点是可替换模块、提供/需要的接口以及连接关系。
  • 函数节点:makeSpincomponent · classifier · high函数节点:makeSpin 表示软件结构模型中的 Component 候选,重点是可替换模块、提供/需要的接口以及连接关系。
  • 函数节点:makeSwitchcomponent · classifier · high函数节点:makeSwitch 表示软件结构模型中的 Component 候选,重点是可替换模块、提供/需要的接口以及连接关系。
  • 函数节点:refreshMapcomponent · classifier · high函数节点:refreshMap 表示软件结构模型中的 Component 候选,重点是可替换模块、提供/需要的接口以及连接关系。
  • 函数节点:refreshUicomponent · classifier · high函数节点:refreshUi 表示软件结构模型中的 Component 候选,重点是可替换模块、提供/需要的接口以及连接关系。
  • 函数节点:setLabelcomponent · classifier · high函数节点:setLabel 表示软件结构模型中的 Component 候选,重点是可替换模块、提供/需要的接口以及连接关系。
  • 模块边界:apps/linux_uconsole_gtkpackage · namespace · high模块边界:apps/linux_uconsole_gtk 表示 Package 命名空间或包含关系,用于组织模型元素,不等同于任意文件夹清单。

nrf52_node

apps/nrf52_node 命名空间下组织 1 个直接模型元素,并通过 1 张 package 图呈现。

  • 模块边界:apps/nrf52_nodepackage · namespace · high模块边界:apps/nrf52_node 表示 Package 命名空间或包含关系,用于组织模型元素,不等同于任意文件夹清单。

README.md

apps/README.md 命名空间下组织 1 个直接模型元素,并通过 1 张 package 图呈现。

  • 模块边界:apps/README.mdpackage · namespace · high模块边界:apps/README.md 表示 Package 命名空间或包含关系,用于组织模型元素,不等同于任意文件夹清单。

Trace / Refine