Skip to content

Sphinx-Needs Schema Visualization #60

@arnoox

Description

@arnoox

Is your feature request related to a problem? Please describe.

The Sphinx-Needs schema definition and validation feature is a powerful tool for verifying safety-critical processes, but the purely text-based definition of the schema is often difficult to read for users, especially non-developers and process engineers, to visualize and grasp. Even developers can quickly lose track of complex schemas.

Without a graphical representation, the structure must be manually derived from code or documentation, which is error-prone and complicates onboarding. The current simple representations (e.g., on the demo page) are insufficient to reflect the complexity of the full schema, including advanced validation rules.

Describe the solution you'd like

I would like a function to be implemented that generates a graphical visualization of the pure Need-Schema model (ubtrace/ubcode).

The visualization should clearly display the following elements:

  • Need Items (Nodes): All defined need types.
  • Attributes: The relevant attributes for each Need type.
  • Link Types and Directions (Edges): The possible link relationships between Need types, including the link direction.
  • Documentation Nodes (Optional): Separate nodes or comments to document and explain parts of the model and the intended use of specific Needs.

Describe alternatives you've considered
currently no alternatives

Additional context
Use Case:

  • Process refers to that picture, developers can a quick overview and understand what/how they need to use things. For complex process meta models, they can even navigate through the graph or filter certain aspects.
  • Process people are doing this actively, maintaining manually huge plantuml/mermaid diagrams. It is also actively used and discussed in daily work of developers.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions