Persistency Documentation#

This documentation describes the structure, usage and configuration of the Bazel-based C++/Rust module template according to the SCORE module folder structure and the SCORE building blocks concept.

Overview#

This repository provides a standardized setup for projects using C++ or Rust and Bazel as a build system. It integrates best practices for build, test, CI/CD and documentation.

Module Layout#

The module template includes the following top-level structure:

<module_name>/                      # Root folder of the module, subfolder only if more than one module exists in the repository
├── .github/
│   └── workflows/                  # CI/CD pipelines
├── docs/                           # Global documentation of the module
│   ├── features/                   # Feature documentation and architecture
│   │   └── <feature_name>/         # Feature folder parts for each feature which should be in module documentation
│   │       ├── architecture/       # Feature architecture [wp__feature_arch] and of architecture review [wp__sw_arch_verification]
│   │       ├── safety_analysis/    # Feature safety analysis artifacts ([wp__feature_fmea], [wp__feature_dfa], [wp__requirements_feat_aou])
│   │       ├── safety_planning/    # Feature safety planning artifacts
│   │       ├── security_analysis/  # Feature security analysis artifacts [wp__feature_security_analysis]
│   │       └── security_planning/  # Feature security planning artifacts
│   ├── manuals/                    # Module manual, integration manual, table of assumptions of use,
│   │                               #   safety manual [wp__module_safety_manual],
│   │                               #   needs table of [wp__requirements_feat_aou]
│   │                               #   security manual [wp__module_security_manual]
│   ├── release/                    # Module release note [wp__module_sw_release_note]
│   ├── safety_mgt/                 # Module safety plan [wp__module_safety_plan],
│   │                               #   module safety package [wp__module_safety_package],
│   │                               #   formal document and safety analysis reviews [wp__fdr_reports]
│   ├── security_mgt/               # Module security plan [wp__module_security_plan],
│   │                               #   module security package [wp__module_security_package],
│   │                               #   formal document reviews [wp__fdr_reports_security],
│   │                               #   module SW bill of material [wp__sw_module_sbom]
│   └── verification_report/        # Module verification report,
│                                   #   module verifications [wp__verification_module_ver_report],
├── examples/                       # Usage examples for the module / features
├── score/                          # Components of the module
│   ├── tests/                      # Module-level tests (e.g., feature integration tests, system tests) [wp__verification_comp_int_test]
│   └── <component_name>/           # Component folder for each component of the module
│       ├── docs/                   # Documentation of the component
│       │   ├── architecture/       # Component architecture [wp__component_arch]
│       │   │                       #   (only if lower level components exist)
|       |   |                       #   architecture review [wp__sw_arch_verification],
│       │   ├── detailed_design/    # Detailed design [wp__sw_implementation]
│       │   │                       #   code inspection [wp__sw_implementation_inspection]
│       │   ├── requirements/       # Component requirements [wp__requirements_comp],[wp__requirements_inspect]
│       │   ├── safety_analysis/    # Safety analysis [wp__sw_component_fmea], [wp__sw_component_dfa], [wp__requirements_comp_aou]
|       |   |                       # Component classification [wp__sw_component_class] for pre-existing software
│       │   │                       #   (only if component architecture exists)
│       │   ├── security_analysis/  # Security analysis [wp__sw_component_security_analysis]
│       │   │                       #   (only if component architecture exists)
│       │   └── manuals/            # User documentation (of a single component, e.g., user manual of a library component, optional)
│       └── src/                    # Source files, include files, unit tests [wp__verification_sw_unit_test],
│           ├── <lower_level_comp>/ # Lower level component (follows <component_name> structure)
│           └── tests/              # Component-level tests (e.g., unit tests) [wp__verification_sw_unit_test]
├── MODULE.bazel                    # Bazel module definition
├── BUILD                           # Root build rules
├── project_config.bzl              # Project metadata used by Bazel macros
└── README.md                       # Entry point of the repository

Module / Feature Documentation#

Module / Feature documentation overview#

Title

ID

Safety

Security

Status

Persistency Architecture Inspection Checklist

doc__persistency_arc_inspection

ASIL_B

YES

draft

Persistency Codeowners

doc__persistency_codeowners

ASIL_B

YES

valid

Persistency DFA

doc__persistency_dfa

ASIL_B

NO

valid

Persistency FMEA

doc__persistency_fmea

ASIL_B

NO

valid

Persistency KVS Feature Architecture

doc__persistency_kvs_architecture

ASIL_B

NO

valid

Persistency KVS Security WPs

doc__persistency_security_wp

ASIL_B

YES

valid

Persistency Release Note

doc__persistency_release_note

ASIL_B

NO

valid

Persistency Safety Analysis Checklist

doc__persistency_safety_analysis_fdr

ASIL_B

YES

valid

Persistency Safety Analysis Checklist

doc__module_safety_analysis_fdr

ASIL_B

YES

valid

Persistency Safety Manual

doc__persistency_safety_manual

ASIL_B

NO

valid

Persistency Safety Package Formal Review

doc__persistency_safety_package_fdr

ASIL_B

NO

valid

Persistency Safety Plan

doc__persistency_safety_plan

ASIL_B

NO

valid

Persistency Safety Plan Formal Review

doc__persistency_safety_plan_fdr

ASIL_B

NO

valid

Persistency Safety WPs

doc__persistency_safety_wp

ASIL_B

NO

valid

Persistency Security Manual

doc__persistency_security_manual

ASIL_B

YES

draft

Persistency Security Package Formal Review

doc__persistency_sec_pkg_fdr

ASIL_B

YES

valid

Persistency Security Plan

doc__persistency_security_plan

ASIL_B

YES

valid

Persistency Security Plan Formal Review

doc__persistency_security_plan_fdr

ASIL_B

YES

valid

Persistency Verification Report

doc__persistency_verification_report

ASIL_B

NO

valid

STRIDE

doc__persistency_stride

ASIL_B

YES

valid

Component documentation#

Component documentation overview#

Title

ID

Safety

Security

Status

JSON Component Classification

doc__json_comp_class

ASIL_B

NO

valid

KVS

doc__kvs

ASIL_B

NO

valid

KVS Architecture Inspection Checklist

doc__kvs_arc_inspection

ASIL_B

YES

draft

KVS Detailed Design

doc__kvs_detailed_design

ASIL_B

NO

draft

KVS DFA

doc__kvs_dfa

ASIL_B

NO

valid

KVS FMEA

doc__kvs_fmea

ASIL_B

NO

valid

KVS Implementation Inspection Checklist

doc__kvs_impl_inspection

ASIL_B

YES

draft

KVS Module Architecture

doc__kvs_architecture

ASIL_B

NO

valid

KVS Requirements

doc__kvs_requirements

ASIL_B

NO

valid

KVS Requirements Inspection Checklist

doc__kvs_req_inspection

ASIL_B

YES

valid

Persistency JSON

doc__persistencyjson

ASIL_B

NO

valid

Examples#

No examples yet.

Quick Start#

To build the module:

bazel build //src/...

To run all tests:

bazel test //...

To run Unit Tests:

bazel test //src/...

To run Component / Feature Integration Tests:

bazel test //tests/...

Module Configuration#

The project_config.bzl file defines metadata used by Bazel macros.

Example:

PROJECT_CONFIG = {
    "asil_level": "QM",
    "source_code": ["cpp", "rust"]
}

This enables conditional behavior (e.g., choosing clang-tidy for C++ or clippy for Rust).