Praxis Software Structure Model

Function node: contains

function is located in apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L19, which is reused or relied upon by multiple objects and is used to explain technical collaboration and change impact.

Component Diagrams candidate / high 0.1.0 · 34aad0bffa2f / main

How to read pictures

Technical complexity analysis

Relationship with business complexity

Governance suggestions

UML/Technical Diagram

flowchart LR
  package_node["apps/esp32_lvgl"]
  file_node["apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L19"]
  component_node["function: contains"]
  package_node --> file_node
  file_node --> component_node
  component_node --> outgoingRelations["No obvious external collaboration observed"]
  incomingRelations["Reused by multiple objects"] --> component_node

Coverage

Drill down on semantic elements in the diagram

  1. apps/esp32_lvgl package

    apps/esp32_lvgl is the function node: the package/module boundary to which contains belongs, used to determine whether the component is a local implementation detail or a cross-module collaboration point.

    Technical roles
    Component ownership boundary: It defines the engineering context that the current component should serve by default.
    Why it appears
    Components cannot be interpreted without package; the same symbol may represent completely different responsibilities, ownership and change impact if it is located in different packages.
    Relationship meaning
    apps/esp32_lvgl -> Function node: contains means that the component is hosted by this technology boundary; its role must be explained by entry, call, export, test or configuration evidence, not just by directory location.
    Drill-down intention
    Drill down into the package to view the cross-module dependencies, structural collaborations and hotspots of apps/esp32_lvgl, and explain from the boundary layer why this component appears here.
    Business correlation
    If the function node: contains is called by the business Use Case, then apps/esp32_lvgl is the candidate technology landing point for the business capability.
    Change impact
    Migrating or renaming the package may change the component import path, drill-down index, and Use Case reference to the technology hosting boundary.
    Confidence
    high

    Evidence

    • component package: apps/esp32_lvgl
    • Component type: function
    • Official module: apps/esp32_lvgl
    • Code anchor: apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L19
    • Signs of reuse/dependence: reused or dependent on multiple objects
    • Signs of external collaboration/orchestration: No obvious external collaboration clues are currently observed
    • apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L19

    Risk

    • Component responsibilities may be misled by paths; the true role still needs to be determined based on code evidence such as calls, imports, exports, entries, and tests.

    Problem

    • The current warehouse evidence has not proven that the function node: contains belongs to the stable responsibility of apps/esp32_lvgl and is temporarily treated as a candidate.
  2. apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp file

    apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp is the evidence file of the current component, indicating that the technical responsibilities of function node: contains can be traced back to the specific code location.

    Technical roles
    Code evidence anchor: It allows component explanation to go back to specific files instead of staying on abstract graphics.
    Why it appears
    The software architecture model must tie each component diagram to a verifiable document, otherwise the UI is just a projection rather than a traceable interpretation.
    Relationship meaning
    The file node connects the component node, indicating that the implementation, entry or symbol fact of the component comes from this file.
    Drill-down intention
    Drill down into the components, sequences or hotspots related to the file to check whether the file is just an implementation detail or has become a technology hub shared by multiple capabilities.
    Business correlation
    Business roles cannot be directly determined from the path, and need to be confirmed by using Use Case evidence from the organization/process model.
    Change impact
    Modifying apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp may affect the component diagram, related sequences, hot spot judgment, and business drill-down documents that reference the component.
    Confidence
    high

    Evidence

    • apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp
    • apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L19

    Risk

    • The file path can only indicate the location and cannot prove business responsibilities alone.

    Problem

    • The current file anchor can only prove the position; if multiple entries or responsibilities appear in the same file, they need to be separated and explained in the component/sequence document.
  3. Function node: contains component

    Function node: contains is the central technical object of the current Component Diagram; this diagram uses it to explain responsibilities, collaboration pressures, and drill-down paths.

    Technical roles
    Key technical objects: It needs to be combined with signs of reuse, signs of external collaboration, file locations and drill-down maps to determine specific responsibilities.
    Why it appears
    The local warehouse evidence identifies it as a key component or symbol, and it has the located file apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp, the referenced/called relationship and the external dependency/calling relationship.
    Relationship meaning
    Package, file, referenced/calling relationship and external dependency/calling relationship are all organized around this component to determine whether it is an entrance, orchestrator, shared capability or risk concentration point.
    Drill-down intention
    Drill down on this component to enter the sequence it participates in, the structural slice it belongs to, or nearby hotspots to answer "how does it work, who calls it, and who it calls".
    Business correlation
    Function node: contains is not a business use case, but may be a technical node that passes when business capabilities are implemented. Business roles cannot be directly determined from the path, and need to be confirmed by using Use Case evidence from the organization/process model. If the Organization/Process Model's Use Case drill-down references it, it should be stated in the business documentation whether it has portal, orchestration, domain rules, adapter, or infrastructure responsibilities.
    Change impact
    Modification of function node: contains may affect the entry logic, calling relationship and business/engineering documents that reference it in apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp.
    Confidence
    high

    Evidence

    • apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp
    • Component type: function
    • Official module: apps/esp32_lvgl
    • Code anchor: apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L19
    • Signs of reuse/dependence: reused or dependent on multiple objects
    • Signs of external collaboration/orchestration: No obvious external collaboration clues are currently observed
    • apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L19

    Risk

    • High collaboration pressure does not necessarily represent a design problem; it must be judged based on business entry, testing and change frequency.

    Problem

    • This component has high collaboration pressure; the current document is processed as a candidate orchestration center or public interface, and evidence of its responsibilities is illustrated through a drill-down diagram.
  4. Referenced/called relationship reuse_signal

    Reused/relied signs are used to explain its degree of reuse or orchestration in the technical network; only the meaning is shown here, and the internal count is not regarded as a user conclusion.

    Technical roles
    Reuse pressure clues: Help identify shared cores, common interfaces, or high regression risk points.
    Why it appears
    The complexity cannot be judged by looking at the component name alone, and there are signs of reuse/dependence. Translate local warehouse relationship evidence into user-understandable collaboration pressure.
    Relationship meaning
    Other components, files, or symbols depend on the current component; the more relationships there are, the more likely it is that modifying it will affect more callers.
    Drill-down intention
    Drilling down into relevant sequences or hotspots can reduce abstract numbers to specific calling fragments, files and risk locations.
    Business correlation
    If the component supports user visibility, this relationship indicator will affect the verification cost and regression risk of business changes.
    Change impact
    Refactoring components that are referenced/called by a large number of objects requires careful handling of compatibility, caller migration, and test coverage.
    Confidence
    high

    Evidence

    • Component type: function
    • Official module: apps/esp32_lvgl
    • Code anchor: apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L19
    • Signs of reuse/dependence: reused or dependent on multiple objects
    • Signs of external collaboration/orchestration: No obvious external collaboration clues are currently observed
    • apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L19

    Risk

    • Relationship metrics come from local warehouse analysis and may be affected by scan granularity, generated files, or import noise.

    Problem

    • Current evidence does not fully differentiate between runtime calls, type references, exported aggregates, or product noise in these relationships, and thus are only candidates for collaboration pressure.
  5. External dependency/calling relationship collaboration_signal

    External collaboration/orchestration signs are used to explain its degree of reuse or orchestration in the technical network; only the meaning is shown here, and the internal count is not regarded as a user conclusion.

    Technical roles
    Orchestration stress clues: Help identify orchestration centers, convergence entrances, or coupling diffusion points.
    Why it appears
    The complexity cannot be judged by looking at the component name alone. External collaboration/orchestration signs translate local warehouse relationship evidence into user-understandable collaboration pressure.
    Relationship meaning
    The current component depends on other components, files or symbols; the more relationships there are, the more likely it is to assume wider coordination responsibilities.
    Drill-down intention
    Drilling down into relevant sequences or hotspots can reduce abstract numbers to specific calling fragments, files and risk locations.
    Business correlation
    If the component supports user visibility, this relationship indicator will affect the verification cost and regression risk of business changes.
    Change impact
    Reducing excessive external dependencies usually means splitting orchestration responsibilities, introducing interface boundaries, or moving adaptation logic to a more appropriate location.
    Confidence
    high

    Evidence

    • Component type: function
    • Official module: apps/esp32_lvgl
    • Code anchor: apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L19
    • Signs of reuse/dependence: reused or dependent on multiple objects
    • Signs of external collaboration/orchestration: No obvious external collaboration clues are currently observed
    • apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L19

    Risk

    • Relationship metrics come from local warehouse analysis and may be affected by scan granularity, generated files, or import noise.

    Problem

    • Current evidence does not fully differentiate between runtime calls, type references, exported aggregates, or product noise in these relationships, and thus are only candidates for collaboration pressure.

Drill-down UML

Dynamic collaboration: tick calls log_loop_interval sequence · dynamic_flow

Open this sequence to confirm the role of function node: contains in tick -> log_loop_interval: whether it is initiating collaboration, receiving calls, doing orchestration, or only exposing dependent capabilities.

tick calls log_loop_interval in apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp.
Dynamic collaboration: add_status_line calls add_label sequence · dynamic_flow

Open this sequence to confirm the role of function node: contains in add_status_line -> add_label: whether it is initiating collaboration, receiving calls, doing orchestration, or only exposing dependent capabilities.

add_status_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp in apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp add_label.
Dynamic collaboration: add_u32_line calls add_label sequence · dynamic_flow

Open this sequence to confirm the role of function node: contains in add_u32_line -> add_label: whether it is initiating collaboration, receiving calls, doing orchestration, or only exposing dependent capabilities.

add_u32_line in apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp calls add_label in apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp.
Dynamic collaboration: add_hex_line calls add_status_line sequence · dynamic_flow

Open this sequence to confirm the role of function node: contains in add_hex_line -> add_status_line: whether it is initiating collaboration, receiving calls, doing orchestration, or only exposing dependent capabilities.

add_hex_line in apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp calls add_status_line in apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp.
Dynamic collaboration: companion_enter calls add_label sequence · dynamic_flow

Open this sequence to confirm the role of function node: contains in companion_enter -> add_label: whether it is initiating collaboration, receiving calls, doing orchestration, or only exposing dependent capabilities.

companion_enter in apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp calls add_label in apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp.

Evidence

Problem