Skip to content

Domain Modules

The platform is split into bounded domain apps.

Bounded-context approach

Each module owns its primary workflows, URLs, templates, and tests; cross-domain reuse should happen through shared abstractions in core.

Core Modules

  • core: cross-cutting web concerns, middleware, shared helpers
  • portfolio_mgmt: portfolio entities and views
  • requirements_mgmt: requirements, links, quality checks, imports
  • sysarch_mgmt: architecture nodes and resources
  • sysdef_mgmt: system definition entities and hierarchy
  • verification_validation_mgmt: verification plans, cases, execution and defects
  • safety_assurance: safety argument and assurance workflows

Supporting Modules

  • interface_mgmt, project_interface_mgmt
  • scope_mgmt
  • analysis_mgmt
  • baseline_mgmt
  • impact_assessment
  • ops_mgmt
  • diagrams_mgmt

Module Interaction Overview

flowchart LR
    Core[core]
    Portfolio[portfolio_mgmt]
    SysDef[sysdef_mgmt]
    SysArch[sysarch_mgmt]
    Req[requirements_mgmt]
    Intf[interface_mgmt]
    PIntf[project_interface_mgmt]
    Scope[scope_mgmt]
    VnV[verification_validation_mgmt]
    Safety[safety_assurance]
    Baseline[baseline_mgmt]
    Impact[impact_assessment]
    Ops[ops_mgmt]

    Portfolio --> Req
    Portfolio --> Scope
    SysDef --> Req
    SysArch --> Intf
    Intf --> PIntf
    Req --> VnV
    Req --> Safety
    VnV --> Baseline
    Safety --> Baseline
    Baseline --> Impact
    Scope --> Ops

    Core --> Portfolio
    Core --> SysDef
    Core --> SysArch
    Core --> Req
    Core --> Intf
    Core --> PIntf
    Core --> Scope
    Core --> VnV
    Core --> Safety
    Core --> Baseline
    Core --> Impact
    Core --> Ops

URL Composition

Root URL routing delegates from app/app/urls.py to each domain module, preserving local route ownership and reducing global coupling.

flowchart TD
    Root[app/app/urls.py]
    Root --> CoreURL[core.urls]
    Root --> PortfolioURL[portfolio_mgmt.urls]
    Root --> SysArchURL[sysarch_mgmt.urls]
    Root --> SysDefURL[sysdef_mgmt.urls]
    Root --> ScopeURL[scope_mgmt.urls]
    Root --> ReqURL[requirements_mgmt.urls]
    Root --> VnVURL[verification_validation_mgmt.urls]
    Root --> SafetyURL[safety_assurance.urls]
    Root --> BaselineURL[baseline_mgmt.urls]
    Root --> ImpactURL[impact_assessment.urls]
    Root --> OpsURL[ops_mgmt.urls]

Dependency Rules

  • Domain modules may depend on core.
  • Domain modules should not import peer module internals.
  • Shared cross-cutting logic belongs in core.
  • New cross-domain orchestration should use explicit services rather than implicit imports.
Collapsed dependency warning

Direct imports into another domain app's private utilities tend to create circular dependencies and brittle refactors.