A focused, self-paced training on the Requirements Engineering process area
+of the Eclipse S-CORE Process Description, covering its concepts, roles,
+workflows, work products, and practical application in safety- and
+security-critical automotive open-source software development.
+
+
+
+
+
+
+
+
+
+
Duration
+
~3.5 hours
+
+
+
Structure
+
4 Modules + Checkpoint Quiz
+
+
+
Format
+
Self-paced
+
+
+
Standards
+
ISO 26262 · ASPICE SWE.1 · ISO/SAE 21434 · ISO PAS 8926
The six S-CORE workflows, work products with compliance tags, and end-to-end traceability.
+
~45 min
+
+
+
+
Checkpoint Quiz — All Modules
+10 questions covering all four modules. Pass mark: 70%. Instant scoring with explanations. (~20 min)
+
About This Course
+
This training is based on the Eclipse S-CORE Process Description —
+specifically the Requirements Engineering process area — and the applicable
+standards it implements: ISO 26262 (Part 8), ASPICE PAM 4.0 (SWE.1),
+ISO/SAE 21434, and ISO PAS 8926.
+
It is intended for anyone contributing to or reviewing requirements in an
+S-CORE-compliant project: developers, architects, safety managers, security
+managers, quality managers, and testers.
+
+
How to use this portal
+
Work through the modules in order. Each module ends with a short three-question
+check-in. After completing all four modules take the Checkpoint Quiz.
+Your progress is saved in your browser — no server required.
+
+
+
Learning Objectives
+
After completing this training you will be able to:
+
+
Explain the role of structured requirements engineering in safety- and security-critical automotive software
+
Name all stakeholders and identify their information needs in an S-CORE project
+
Distinguish the five requirement levels and select the correct one for a given situation
+
Write well-formed requirements that satisfy the mandatory attribute set
+
Apply S-CORE versioning rules and identify when a version bump is required
+
Trace requirements from stakeholder level through code and tests using the S-CORE workflow
Requirements engineering is not bureaucracy — it is the foundation that connects
+a customer's need to the last line of tested code. In safety- and security-critical
+automotive software this chain must be complete, correct, and auditable.
+This module explains why, who is involved, and what standards demand.
+
1.1 The Role of Requirements in Safety-Critical Software
+
Modern automotive software controls safety-critical actuators — brakes, steering,
+power management — and runs in open-source collaborative environments where dozens of
+contributors work across organisational boundaries. Without a structured requirements
+process two problems become inevitable:
+
+
No agreed specification — contributors implement different interpretations
+ of the same need.
+
No audit trail — safety and security auditors cannot verify that every
+ standard requirement is addressed.
+
+
+
Why RE is Mandated by Standards
+
ISO 26262 (Part 8, SWE.1), ASPICE PAM 4.0, ISO/SAE 21434, and ISO PAS 8926 all
+iltiyexplicitly require a documented, traceable requirements hierarchy as a precondition
+for safety and security releases. Without it, certification is impossible.
+
+
+
The S-CORE Requirements Engineering process provides a single, standardised answer
+to both problems: a hierarchy of requirement levels with defined attributes,
+mandatory reviews, and automatic traceability links to code and tests.
+
1.2 Stakeholders and Their Information Needs
+
The requirements hierarchy must satisfy the needs of every stakeholder who will
+either write, review, implement, test, or audit requirements. The S-CORE process
+identifies the following key stakeholders:
Clear stakeholder requirements as a project description
+
+
+
SW Architect
+
rl__committer
+
Breaks down platform specification into features, derives feature/component architecture, allocates requirements to architecture elements, defines AoUs from architecture
+
Feature requirements and AoUs to drive architecture decisions
+
+
+
Tester
+
rl__committer
+
Verifies that the specification is satisfied by the elements under test, considers AoUs for test case specification
+
Verifiable, testable requirements with traceability to test cases
+
+
+
Safety Architect
+
rl__safety_engineer
+
Performs Dependent Failure Analysis, qualitative safety analysis (e.g. FMEA), initiates additional requirements and AoUs to cover failures
+
Requirements with safety attributes and independence information
Implements SW according to specification, creates traceability by linking specification to code, considers AoUs of other components, creates AoUs for the component under development
+
Component requirements with clear acceptance criteria
+
+
+
Feature User
+
(no formal role ID)
+
Gets detailed information on the specification of a feature, is informed about boundary conditions (AoUs)
+
AoUs — boundary conditions they must fulfil when using the SW
+
+
+
Platform SW Developer of the Reference Integration
+
rl__platform_team
+
Implements requirements for reference integration
+
Component and feature requirements
+
+
+
+
+
Open Source Working Mode
+
In S-CORE any Contributor may write a requirement, but every requirement must be
+approved by a Committer or Project Lead before it is merged. Safety and Security
+Managers provide support when their domain is involved.
+
+
+
1.3 Standard Connections
+
The S-CORE requirements process implements requirements from multiple standards
+simultaneously. Understanding these connections helps prioritise engineering effort.
+
+
+
+
Standard
+
Relevant Clause
+
What it requires
+
+
+
+
+
ISO 26262
+
Part 8, SWE.1
+
SW requirements specification with safety classification, traceability, and review
+
+
+
ASPICE PAM 4.0
+
SWE.1
+
Elicitation, documentation, agreement, and traceability of SW requirements
+
+
+
ISO/SAE 21434
+
§10.5.1
+
Cybersecurity requirements derived from TARA, traceable through development
+
+
+
ISO PAS 8926
+
§4.5.2.1
+
To Be Defined
+
+
+
+
+
Assumptions of Use (AoU)
+
A special requirement type that defines the boundary conditions the user of a
+software element must fulfil to ensure safe and secure operation. AoUs are
+exportable to integrators so they can include them in their own requirements
+management systems.
+
+
+
1.4 Roles and Approval Chains
+
The S-CORE process defines clear responsibility for each level of the hierarchy:
+
+
Stakeholder requirements and SW-Platform AoU: Written by Contributor (rl__contributor), approved by Project Lead (rl__project_lead), supported by Safety Manager (rl__safety_manager).
+
Feature requirements and Feature AoU: Written by Contributor (rl__contributor), approved by Project Lead (rl__project_lead), supported by Safety Manager (rl__safety_manager) and Security Manager (rl__security_manager).
+
Component requirements and Component AoU: Written by Contributor (rl__contributor), approved by Committer (rl__committer), supported by Safety Manager (rl__safety_manager) and Security Manager (rl__security_manager).
+
Tool/Process requirements: Written by Contributor (rl__contributor), approved by Committer (rl__committer).
+
+
This separation ensures that the level of scrutiny matches the safety and security
+implications of the requirement.
+
+
Why does the approval chain differ between Feature and Component level? ▼
+
Feature requirements describe platform-level integration behaviour and are visible
+to all users of the platform — they require Project Lead approval because they
+represent agreements between the platform team and its stakeholders.
+
Component requirements are implementation-specific and concern only the component
+team — Committer approval is sufficient, as Committers are the technical
+gatekeepers for their component.
+
+
+
Module Check-In
+
Answer all questions and click Submit to check your understanding.
+
+
Q1. Who is responsible for approving Feature Requirements in S-CORE?
+
+
A Contributor
+
B Project Lead
+
C Safety Manager
+
D Feature User
+
+
Correct: B. Feature requirements are written by any Contributor but must be approved by the Project Lead. Safety and Security Managers provide support but do not approve.
+
+
+
Q2. Which standard requires SW requirements with a safety classification attribute, traceability, and formal review?
+
+
A ISO/SAE 21434
+
B ISO PAS 8926
+
C ISO 26262 Part 8 / ASPICE SWE.1
+
D IEC 61508
+
+
Correct: C. ISO 26262 Part 8 (in conjunction with ASPICE SWE.1) drives the SW requirements specification obligations in S-CORE. ISO/SAE 21434 and ISO PAS 8926 add cybersecurity and ADS-specific requirements on top.
+
+
+
Q3. An integrator using an S-CORE platform component needs to know the boundary conditions they must satisfy for safe use. Which requirement type addresses this?
+
+
A Stakeholder Requirements
+
B Feature Requirements
+
C Process Requirements
+
D Assumptions of Use (AoU)
+
+
Correct: D. Assumptions of Use (AoUs) define the boundary conditions that the user of a software element must fulfil. They are exportable so integrators can incorporate them into their own requirements management systems.
S-CORE defines a five-level requirement hierarchy. Each level has a precise
+meaning, a defined audience, a characteristic abstraction, and specific
+compliance obligations under ISO 26262, ASPICE, and ISO/SAE 21434.
+This module maps the hierarchy and explains when to use each level.
+
2.1 The S-CORE Requirement Hierarchy
+
The following diagram summarises the levels and their derivation relationships:
Additionally, Process/Tool Requirements sit alongside the hierarchy and
+describe the tooling and process activities that support it.
+
A child requirement is always derived from its parent. The derivation link
+includes the parent's version number so that stale links are automatically
+detected during the docs build.
Stakeholder Requirements are defined at the SW-Platform level. They describe
+what the platform needs to contain from the perspective of the customer
+(stakeholder), expressed as technical requirements at the highest level of
+abstraction.
+
+
Assumed Technical Safety Requirements
+
In SEooC (Safety Element out of Context) development — which is the S-CORE model
+— Stakeholder Requirements represent the assumed Technical Safety Requirements.
+The integrator must verify that these assumptions match their vehicle-level
+safety goals before using the platform.
+
+
+
+
Stakeholder Requirement Example
+
The platform shall support configuration of applications via files
+(e.g. yaml, json).
+
+
This describes a platform-level capability without specifying how it is
+implemented or which component provides it.
+
+
+
Compliance obligations: ISO 26262 §8 / SWE.1, ISO/SAE 21434 §10.5.1
+
2.3 Feature Requirements (wp__requirements_feat)
+
Feature Requirements are derived from Stakeholder Requirements and describe
+the behaviour of a feature at platform integration level, independent of
+which components implement it.
+
A "feature" represents a coherent set of requirements that together deliver a
+platform-level capability. Feature requirements are the primary input for
+architects, testers, and integrators.
+
+
Feature Requirement Example
+
The feature shall use JSON formatted string according to RFC-8259 for
+configuration.
+
+
This specifies the format at feature level without naming an implementation component.
+
+
+
Feature requirements also serve as the basis for integration testing on
+platform level.
+
Compliance obligations: ISO 26262 §8 / SWE.1, ISO/SAE 21434 §10.5.1
Component Requirements are derived from Feature Requirements and describe
+component-specific behaviour. They are implementation-facing: they tell a
+developer exactly what a component must do within the context of its feature.
+
+
Component Requirement Example
+
The component shall provide API calls to read and interpret every field of a
+JSON body in C++.
+
+
This is unambiguously allocated to a single component and is directly testable
+at unit level.
+
+
+
Component Requirements are the lowest level in the hierarchy and have the most
+direct link to code and test artefacts via the auto-generated implemented_by
+and verified_by attributes.
+
Compliance obligations: ISO 26262 §8 / SWE.1, ISO PAS 8926 §4.5.2.1,
+ISO 26262 (analysis appendix), ISO/SAE 21434 §10.5.1 + §10.5.2
+
2.5 Assumptions of Use (AoU)
+
AoUs can exist at every level — SW-Platform, Feature, and Component. They
+define the boundary conditions that the user of the software element must
+fulfil to ensure correct, safe, and secure operation.
+
+
+
+
AoU Level
+
Work Product ID
+
Audience
+
Compliance
+
+
+
+
+
SW-Platform AoU
+
wp__requirements_sw_platform_aou
+
Vehicle integrators using the platform
+
ISO 26262, ISO/SAE 21434 §10.5.1–2
+
+
+
Feature AoU
+
wp__requirements_feat_aou
+
Teams integrating the feature into a product
+
ISO 26262, ISO/SAE 21434 §10.5.1–2
+
+
+
Component AoU
+
wp__requirements_comp_aou
+
Developers using the component API
+
ISO 26262, ISO PAS 8926, ISO/SAE 21434 §10.5.1–2
+
+
+
+
+
AoU Example
+
The user shall provide a string as input which is not corrupted due to HW or
+QM SW errors.
+
+
This AoU tells the caller of the JSON configuration component what quality of
+input they must guarantee.
+
+
+
+
AoU and the Safety Manual
+
Feature and Component AoUs feed directly into the Platform Safety Manual and
+Module Safety Manual respectively. These manuals are the exportable artefacts
+that document all conditions an integrator must satisfy when deploying S-CORE
+components in a safety-relevant context.
+
+
+
2.6 Process and Tool Requirements (wp__requirements_proc_tool)
+
Process/Tool Requirements describe the activities and tooling constraints
+that support the development process. They are derived from the process
+description and specify what must be done manually versus what must be
+automated (tool-supported).
+
+
Process/Tool Requirement Example
+
It shall be checked that safety requirements (Safety != QM) can only be linked
+against safety requirements.
+
+
This is a process requirement that drives tool implementation in the
+Docs-as-Code build.
+
+
+
Process Requirements are verified by reviewing the process description rather
+than by functional testing.
+
2.7 Requirement Types
+
Every requirement — regardless of level — carries a type attribute that
+determines how it is verified and how it participates in traceability:
+
+
+
+
Type
+
Definition
+
Verification method
+
+
+
+
+
Functional
+
Describes a behaviour that can be demonstrated by test
+
Unit test, integration test
+
+
+
Interface
+
Defines an API or protocol; does not itself describe a behaviour
+
Review / analysis
+
+
+
Process
+
Describes a process activity or constraint; sub-type of Non-Functional
+
Review of process description
+
+
+
Non-Functional
+
All other quality constraints (performance, capacity, …)
+
Review / analysis
+
+
+
+
+
Type Affects Linkage Rules
+
The type attribute controls which architecture and safety linkage rules apply.
+For example, safety requirements of type Functional must eventually be linked to
+a test that exercises the functional behaviour. A Process requirement linked to a
+Functional safety requirement would be flagged as a linkage violation.
+
+
+
+
Interface requirements — when are they needed? ▼
+
Use the Interface type when a requirement defines a contract between two
+parties (e.g., an API signature, a protocol format, a data format) rather than a
+behaviour. Interface requirements are important for safety analysis because they
+define the boundaries across which faults can propagate — they often appear as
+inputs to DFA (Dependent Failure Analysis) and TARA.
+
+
+
Module Check-In
+
Answer all questions and click Submit to check your understanding.
+
+
Q1. A requirement states: 'The feature shall use JSON formatted strings according to RFC-8259 for configuration.' At which requirement level does this belong?
+
+
A Stakeholder Requirements
+
B Feature Requirements
+
C Component Requirements
+
D Process Requirements
+
+
Correct: B. The requirement describes behaviour at feature (platform integration) level — it specifies the format the feature uses without naming a specific component. Stakeholder requirements would be even more abstract; component requirements would name the implementing component and its API.
+
+
+
Q2. An integrator is building a vehicle product using an S-CORE platform component. They receive a document listing the conditions their application must satisfy to use the component safely. What type of requirement is this?
+
+
A Stakeholder Requirements
+
B Process Requirements
+
C Assumptions of Use (AoU)
+
D Functional Requirements
+
+
Correct: C. Assumptions of Use (AoUs) define boundary conditions for the user of a software element. They are exportable to integrators precisely so they can be incorporated into the integrator's own requirements management system.
+
+
+
Q3. Which requirement type is verified by reviewing the process description rather than by functional test execution?
+
+
A Functional
+
B Interface
+
C Process
+
D Non-Functional
+
+
Correct: C. Process requirements describe activities in the development process and are verified by reviewing the process description (or checking that tooling enforces them). They cannot be verified by running a functional test.
A requirement without well-defined attributes is not a requirement — it is a
+wish. S-CORE mandates a specific attribute set for every requirement and
+automates part of its population. This module covers all attributes, versioning
+rules, and the formulation principles that make requirements verifiable.
+
3.1 Manual Attributes
+
Every S-CORE requirement must have the following attributes set by the author
+before a pull request can be merged:
+
+
+
+
Attribute
+
Values / Format
+
Purpose
+
+
+
+
+
Unique ID
+
<type_prefix>__<keyword>_<shortname>
+
Stable identifier used for all traceability links
+
+
+
Status
+
valid | invalid
+
Only valid requirements are accepted in main branch
+
+
+
Title
+
Free text, expressive
+
Human-readable label
+
+
+
Description
+
Free text
+
The actual requirement statement
+
+
+
Version
+
Integer (1, 2, 3, …)
+
Bumped on every significant change
+
+
+
Rationale / Linkage
+
Free text | derived_from link
+
Stakeholder reqs need a rationale; derived reqs link to parent
+
+
+
Safety
+
QM | ASIL_B
+
Safety integrity level of this requirement
+
+
+
Security
+
Boolean / free text
+
Whether the requirement has security relevance
+
+
+
Type
+
Functional | Interface | Process | Non-Functional
+
Determines verification method and linkage rules
+
+
+
+
+
No "Draft" Status in Main Branch
+
S-CORE intentionally has no draft status value. A requirement is either
+valid (merged) or it lives in a pull request / feature branch. This forces
+engineers to complete a requirement before integrating it rather than
+accumulating technical debt in the form of unfinished requirements.
+
+
+
3.2 The Safety Attribute in Detail
+
The safety attribute is the cornerstone of ISO 26262 compliance. S-CORE
+currently supports two values:
+
+
+
+
Value
+
Meaning
+
+
+
+
+
QM
+
Quality Management — no ASIL claim; standard software quality processes apply
+
+
+
ASIL_B
+
Automotive Safety Integrity Level B — requires ASIL-B process measures, verification rigour, and traceability
+
+
+
+
+
ASIL Decomposition Is Not Used
+
S-CORE does not currently apply ASIL decomposition, so ASIL_A, ASIL_C, and
+ASIL_D are not required. Only QM and ASIL_B are defined. All safety-relevant
+requirements must be classified ASIL_B — a safety-relevant requirement that is
+incorrectly marked QM is a safety defect.
+
+
+
The tooling enforces linkage rules: an ASIL_B requirement may only be linked to
+other ASIL_B requirements or to QM requirements with a documented rationale.
+
3.3 Auto-Generated Attributes
+
The Docs-as-Code build populates three attributes automatically, eliminating
+manual maintenance overhead and ensuring the attributes are always current:
+
+
+
+
Attribute
+
How it is populated
+
Tool
+
+
+
+
+
Derives
+
Automatically inserted into the parent requirement when a child requirement references it via derived_from
+
Docs-as-Code
+
+
+
Implemented by
+
Source files are scanned for a defined tag containing the requirement ID; matching code locations are linked
+
Docs-as-Code
+
+
+
Verified by
+
Test files are scanned for a defined marker containing the requirement ID; matching test cases are linked
+
Docs-as-Code
+
+
+
+
+
How Implemented by Works
+
A developer adds the following tag in C++ source code:
During the docs build, the tool finds this tag, resolves feat__json_config__parse_body
+to the corresponding feature requirement, and automatically links the source
+file and line to the implemented_by attribute.
+
+
+
This automatic population means that the traceability matrix is always
+regenerated from the actual code and test artefacts — it cannot be manually
+falsified or forgotten.
+
3.4 Requirement Versioning
+
Significant vs. Non-Significant Changes
+
Not every edit to a requirement warrants a version increment. S-CORE defines
+precisely which changes are significant:
+
+
+
+
Attribute
+
Significant change
+
Non-significant change
+
+
+
+
+
Description
+
Functional content change or rewrite affecting meaning
+
Typo corrections, layout, notes
+
+
+
Safety
+
Any change
+
—
+
+
+
Security
+
Any change
+
—
+
+
+
Type
+
Any change
+
—
+
+
+
+
+
Version Mismatch Is a Build Error
+
Child requirements reference their parent requirement with an explicit version number
+(e.g., derived_from: stkh__platform__config_files[version==2]). If the parent
+requirement's version is later bumped, all child derivation links become stale and
+the docs build emits a warning that blocks merging until the child requirements
+are updated. This ensures that a change in a parent requirement always triggers a
+review of all its children.
+
+
+
Versioning Sets of Requirements
+
Individual requirement versioning covers single-requirement changes. For
+baselines — frozen sets of requirements used as the basis for a release or
+for a safety case — S-CORE uses standard version control tagging: a git tag
+applied to the repository records the exact state of all requirement files.
+
3.5 Requirement Quality and Formulation
+
A well-written requirement has four properties:
+
+
+
+
Property
+
Test question
+
+
+
+
+
Atomic
+
Does the requirement describe exactly one thing?
+
+
+
Verifiable
+
Can we write a test or review criterion that definitively confirms conformance?
+
+
+
Unambiguous
+
Is there exactly one valid interpretation?
+
+
+
Traceable
+
Does the requirement link upward to a parent (or have a rationale) and downward to implementation and test?
+
+
+
+
+
Notes Are Not Requirements
+
A note in a requirement (marked as such in the Docs-as-Code tool) is not part of
+the requirement itself. Notes provide additional explanation or context but
+must not contain normative content. Reviewers must check that normative
+statements are in the description, not buried in notes.
+
+
+
3.6 Requirement Reviews
+
Requirements that cannot be checked automatically require a manual inspection.
+The S-CORE process supports two kinds of review:
+
+
Peer review (PR review) — every requirement passes through a pull request
+ where Committers (rl__committer) and Project Leads (rl__project_lead) review it before it is merged to main.
+
Formal inspection — triggered explicitly when a contributor wants a
+ thorough review of a set of requirements. Uses a structured inspection
+ checklist (gd_chklst__req_inspection) that may be integrated into requirements/version management tooling.
+
+
+
What does the inspection checklist cover? ▼
+
The inspection checklist verifies:
+
+
Completeness: all mandatory attributes are populated
+
Consistency: no contradictions between requirements at the same level
+
Feasibility: the requirement can realistically be implemented and tested
+
Traceability: every requirement is derived from a parent or has a documented rationale
+
Safety/security classification: safety attribute is correct relative to safety analysis
Answer all questions and click Submit to check your understanding.
+
+
Q1. A developer edits a requirement's description to fix a typo and improve layout, with no change to its functional meaning. Should the version attribute be incremented?
+
+
A Yes — any edit to a requirement must increment the version
+
B No — only significant changes (functional content, safety, security, type) trigger a version increment
+
C Yes — the version must be incremented so child links are re-validated
+
D No — versions are only managed by git tags, not per-requirement
+
+
Correct: B. S-CORE explicitly distinguishes significant changes (content changes, safety/security/type attribute changes) from non-significant ones (typos, layout, notes). Only significant changes require a version bump so that child requirement links are re-validated.
+
+
+
Q2. Which attribute is automatically populated by the Docs-as-Code build when test files contain a defined marker with the requirement ID?
+
+
A Derives
+
B Implemented by
+
C Verified by
+
D Status
+
+
Correct: C. The build scans test files for a defined marker containing the requirement ID and automatically links matching test cases to the 'verified_by' attribute. This makes the traceability matrix always current without manual maintenance.
+
+
+
Q3. A requirement is marked safety=QM but a safety analysis has determined it is ASIL_B relevant. What is the consequence?
+
+
A Nothing — QM and ASIL_B requirements can be freely mixed
+
B The build will flag a linkage violation and the requirement is a safety defect
+
C The requirement is automatically upgraded to ASIL_B at build time
+
D A note is added to the requirement by the tool
+
+
Correct: B. An incorrectly classified safety attribute is a safety defect. The S-CORE tooling enforces linkage rules so that ASIL_B requirements may only be linked to other ASIL_B requirements (or QM with documented rationale). A wrong safety attribute would allow a safety-relevant element to be inadequately verified and could invalidate the safety case.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/process/trainings/_portals/requirements_engineering/module-4.html b/process/trainings/_portals/requirements_engineering/module-4.html
new file mode 100644
index 0000000000..6395333caa
--- /dev/null
+++ b/process/trainings/_portals/requirements_engineering/module-4.html
@@ -0,0 +1,356 @@
+
+
+
+
+
+
+Workflows and Work Products | S-CORE Process Training
+
+
+
+
+
+
+
+
+
+ Course Overview
+
+ ›
+ Module 4: Workflows and Work Products
+
+
+
+
+
+
+
+
+
Workflows and Work Products
+
+ ⏱ ~45 min
+ 📖 Module 4 of 4
+ 🗂 Requirements
+
+
+
Workflows and Work Products
+
S-CORE defines six specific workflows for requirements engineering and eight
+formal work products. This module walks through each workflow, its inputs and
+outputs, its responsible parties, and how the work products satisfy the
+applicable standards. The module closes with the end-to-end traceability
+picture.
+
4.1 Overview of the Six Workflows
+
+
+
+
Workflow ID
+
Workflow name
+
Responsible
+
Approved by
+
+
+
+
+
wf__req_stkh_req
+
Create/Maintain Stakeholder Requirements and SW-Platform AoU
+
Contributor rl__contributor
+
Project Lead rl__project_lead
+
+
+
wf__req_feat_req
+
Create/Maintain Feature Requirements
+
Contributor rl__contributor
+
Project Lead rl__project_lead
+
+
+
wf__req_feat_aou
+
Create/Maintain Feature AoUs
+
Contributor rl__contributor
+
Project Lead rl__project_lead
+
+
+
wf__req_comp_req
+
Create/Maintain Component Requirements
+
Contributor rl__contributor
+
Committer rl__committer
+
+
+
wf__req_comp_aou
+
Create/Maintain Component AoUs
+
Contributor rl__contributor
+
Committer rl__committer
+
+
+
wf__req_tool
+
Create/Maintain Tool/Process Requirements
+
Contributor rl__contributor
+
Committer rl__committer
+
+
+
wf__monitor_verify_requirements
+
Monitor/Verify Requirements
+
Committer rl__committer
+
Committer rl__committer
+
+
+
+
All six creation workflows can be initiated as part of a Change Request —
+the Change Management process is the single entry point for all content changes
+in S-CORE.
+
The Monitor/Verify Requirements workflow (wf__monitor_verify_requirements)
+is responsible for inspecting the full requirements set. Unlike the creation
+workflows it is owned by the Committer, who checks all requirement levels and
+safety manuals against the inspection checklist (gd_chklst__req_inspection).
+Its output is either an updated issue tracker entry or a completed Requirements
+Inspection work product.
+
Safety Managers (rl__safety_manager) are supported_by in the three stakeholder/feature workflows;
+both Safety and Security Managers (rl__security_manager) are supported_by in the two AoU workflows
+at feature and component level.
+
4.2 Workflow: Stakeholder Requirements and SW-Platform AoU
+
Purpose: Establish the top-level specification of what the platform must
+contain. This workflow produces the assumed Technical Safety Requirements for
+the SEooC.
A project lead opens a change request: "The platform shall support OTA software
+updates for individual components." A contributor writes the stakeholder
+requirement and the SW-Platform AoU (the conditions the OEM integrator must
+satisfy to use OTA safely). The project lead reviews and approves the PR.
Feature requirements are the primary driver of SW Architecture work. The SW
+Architect reads them to derive the feature architecture that allocates
+behaviour to components.
+
4.4 Workflows: AoU Requirements
+
Feature AoUs and Component AoUs are managed by their own workflows because
+they involve additional inputs from architecture work products and feed directly
+into the Safety Manual artefacts:
+
+
Feature AoU (wf__req_feat_aou):
+
Extra input: wp__feature_arch
+
+
Additional output: wp__platform_safety_manual
+
+
+
Component AoU (wf__req_comp_aou):
+
+
Extra input: wp__component_arch
+
Additional output: wp__module_safety_manual
+
+
+
AoU and Architecture Are Coupled
+
AoUs cannot be written without the architecture work product because AoUs
+emerge from the safety concept: once the architecture defines the isolation
+boundaries and safety mechanisms, the AoUs state what conditions must hold
+outside those boundaries for the safety concept to be valid.
+
+
+
4.5 Work Products and Their Compliance Tags
+
Each work product carries compliance tags that map it to the specific standard
+clauses it satisfies. Understanding these tags is important for auditors and
+safety managers.
+
+
+
+
Work Product
+
ID
+
Compliance tags
+
+
+
+
+
Stakeholder Requirements
+
wp__requirements_stkh
+
ISO 26262 §8/6.5.1, ISO/SAE 21434 §10.5.1
+
+
+
Feature Requirements
+
wp__requirements_feat
+
ISO 26262 §8/6.5.1, ISO/SAE 21434 §10.5.1
+
+
+
Component Requirements
+
wp__requirements_comp
+
ISO 26262 §8/6.5.1, ISO PAS 8926 §4.5.2.1, ISO 26262 analysis annex, ISO/SAE 21434 §10.5.1
+
+
+
SW-Platform AoU
+
wp__requirements_sw_platform_aou
+
ISO 26262 §8/6.5.1, ISO/SAE 21434 §10.5.1–2
+
+
+
Feature AoU
+
wp__requirements_feat_aou
+
ISO 26262 §8/6.5.1, ISO/SAE 21434 §10.5.1–2
+
+
+
Component AoU
+
wp__requirements_comp_aou
+
ISO 26262 §8/6.5.1, ISO PAS 8926 §4.5.2.1, ISO/SAE 21434 §10.5.1–2
+
+
+
Process/Tool Requirements
+
wp__requirements_proc_tool
+
(internal process lifecycle)
+
+
+
Requirements Inspection
+
wp__requirements_inspect
+
ISO 26262 §8/6.5.3
+
+
+
+
The Requirements Inspection work product is based on a structured checklist
+and may be integrated into requirements or version management tooling. It
+addresses the ISO 26262 requirement for formal review of SW requirements.
+
4.6 End-to-End Traceability
+
The S-CORE traceability model connects every requirement from its origin at
+stakeholder level down to the implementation artefacts and verification
+evidence:
The implemented_by and verified_by links are populated automatically by the
+Docs-as-Code build. This means the traceability matrix is always regenerated
+from the real artefacts — it cannot drift from the code. Auditors can trust
+that a requirement shown as "verified by test X" genuinely corresponds to a test
+that references that requirement ID.
+
+
+
4.7 Using the Tooling
+
The S-CORE Docs-as-Code tool provides:
+
+
Requirement templates — pre-formatted stubs for each requirement type that enforce the mandatory attribute set.
+
Build-time validation — attribute completeness, version link consistency, linkage rule enforcement, and safety attribute propagation checks.
+
Coverage reports — automatically generated views showing which requirements lack implemented_by or verified_by links (coverage gaps).
+
PR-based review workflow — all requirement changes go through a pull request; the Committer or Project Lead review is recorded in git history.
+
+
+
Getting Started
+
The Requirements Engineering concept (doc_concept__req_process) and Getting
+Started guide (doc_getstrt__req_process) describe the exact steps for creating
+a new requirement, deriving child requirements, and triggering a formal inspection.
+The workflow diagram in the getting started guide maps every step to the
+corresponding workflow ID listed in Section 4.1.
+
+
+
+
Linking requirements to code and tests — practical steps ▼
+
+
Find the requirement ID in the generated HTML portal or in the RST source.
+
Add the implementation tag in the source file as a structured comment:
+ // [<requirement_id>] (exact syntax depends on the Docs-as-Code version).
+
Add the verification marker in the test file using the framework-specific
+ marker (e.g., a pytest mark or a comment annotation).
+
Run the docs build (bazel run //:docs). The build will now populate
+ implemented_by and verified_by in the HTML output.
+
Verify coverage in the generated requirements traceability report.
+
+
+
+
Module Check-In
+
Answer all questions and click Submit to check your understanding.
+
+
Q1. A contributor wants to create new Component Requirements. Which approval chain applies?
+
+
A Written by Safety Manager, approved by Project Lead
+
B Written by Contributor, approved by Committer
+
C Written by Committer, approved by Project Lead
+
D Written by Contributor, approved by Safety Manager
+
+
Correct: B. Component Requirements are created by any Contributor and approved by a Committer. Project Lead approval is required for Stakeholder and Feature level requirements; Committer approval is sufficient for Component level because this is an implementation-specific concern.
+
+
+
Q2. Feature AoU requirements have an additional input compared to Feature Requirements. What is it?
+
+
A wp__requirements_stkh (Stakeholder Requirements)
+
B wp__requirements_comp (Component Requirements)
+
C wp__feature_arch (Feature Architecture)
+
D wp__issue_track_system (Issue Tracker)
+
+
Correct: C. AoUs at feature level emerge from the safety concept defined in the Feature Architecture. Without the architecture there is no basis for determining what boundary conditions must hold outside the software element.
+
+
+
Q3. An auditor asks: 'How do you guarantee that the traceability matrix between requirements and test cases is up to date?' What is the correct S-CORE answer?
+
+
A The traceability matrix is maintained manually by the Safety Manager and reviewed quarterly
+
B Traceability is managed in an external ALM tool which is synced monthly
+
C The Docs-as-Code build automatically regenerates the verified_by links from test file markers on every build, so the matrix cannot drift from the actual test artefacts
+
D Developers are required to update the traceability spreadsheet when they add tests
+
+
Correct: C. The 'verified_by' attribute is auto-populated by scanning test files for the requirement ID marker on every build. This means the traceability matrix is always regenerated from the real artefacts — it is impossible for it to show a test link that does not exist in the codebase.
10 questions covering all four modules — Module 1 through Module 4. Read each question carefully. Some questions are scenario-based. Instant scoring with explanations on submission.
A focused, self-paced training on the Requirements Engineering process area
+of the Eclipse S-CORE Process Description, covering its concepts, roles,
+workflows, work products, and practical application in safety- and
+security-critical automotive open-source software development.
+
+
+
+
+
+
+
+
+
+
Duration
+
~3.5 hours
+
+
+
Structure
+
4 Modules + Checkpoint Quiz
+
+
+
Format
+
Self-paced
+
+
+
Standards
+
ISO 26262 · ASPICE SWE.1 · ISO/SAE 21434 · ISO PAS 8926
The six S-CORE workflows, work products with compliance tags, and end-to-end traceability.
+
~45 min
+
+
+
+
Checkpoint Quiz — All Modules
+10 questions covering all four modules. Pass mark: 70%. Instant scoring with explanations. (~20 min)
+
About This Course
+
This training is based on the Eclipse S-CORE Process Description —
+specifically the Requirements Engineering process area — and the applicable
+standards it implements: ISO 26262 (Part 8), ASPICE PAM 4.0 (SWE.1),
+ISO/SAE 21434, and ISO PAS 8926.
+
It is intended for anyone contributing to or reviewing requirements in an
+S-CORE-compliant project: developers, architects, safety managers, security
+managers, quality managers, and testers.
+
+
How to use this portal
+
Work through the modules in order. Each module ends with a short three-question
+check-in. After completing all four modules take the Checkpoint Quiz.
+Your progress is saved in your browser — no server required.
+
+
+
Learning Objectives
+
After completing this training you will be able to:
+
+
Explain the role of structured requirements engineering in safety- and security-critical automotive software
+
Name all stakeholders and identify their information needs in an S-CORE project
+
Distinguish the five requirement levels and select the correct one for a given situation
+
Write well-formed requirements that satisfy the mandatory attribute set
+
Apply S-CORE versioning rules and identify when a version bump is required
+
Trace requirements from stakeholder level through code and tests using the S-CORE workflow
Requirements engineering is not bureaucracy — it is the foundation that connects
+a customer's need to the last line of tested code. In safety- and security-critical
+automotive software this chain must be complete, correct, and auditable.
+This module explains why, who is involved, and what standards demand.
+
1.1 The Role of Requirements in Safety-Critical Software
+
Modern automotive software controls safety-critical actuators — brakes, steering,
+power management — and runs in open-source collaborative environments where dozens of
+contributors work across organisational boundaries. Without a structured requirements
+process two problems become inevitable:
+
+
No agreed specification — contributors implement different interpretations
+ of the same need.
+
No audit trail — safety and security auditors cannot verify that every
+ standard requirement is addressed.
+
+
+
Why RE is Mandated by Standards
+
ISO 26262 (Part 8, SWE.1), ASPICE PAM 4.0, ISO/SAE 21434, and ISO PAS 8926 all
+explicitly require a documented, traceable requirements hierarchy as a precondition
+for safety and security releases. Without it, certification is impossible.
+
+
+
The S-CORE Requirements Engineering process provides a single, standardised answer
+to both problems: a hierarchy of requirement levels with defined attributes,
+mandatory reviews, and automatic traceability links to code and tests.
+
1.2 Stakeholders and Their Information Needs
+
The requirements hierarchy must satisfy the needs of every stakeholder who will
+either write, review, implement, test, or audit requirements. The S-CORE process
+identifies the following key stakeholders:
+
+
+
+
Stakeholder
+
Role in S-CORE
+
What they need from requirements
+
+
+
+
+
Project Lead
+
Defines platform specification and timeline, tracks progress
+
Clear stakeholder requirements as a project description
+
+
+
SW Architect
+
Derives features from stakeholder reqs, allocates to architecture
+
Feature requirements and AoUs to drive architecture decisions
+
+
+
Tester
+
Verifies specification is satisfied
+
Verifiable, testable requirements with traceability to test cases
+
+
+
Safety Manager
+
Initiates safety requirements, performs DFA and FMEA support
+
Requirements with safety attributes and independence information
+
+
+
Security Manager
+
Initiates security requirements, performs TARA support
+
Requirements with security attributes
+
+
+
SW Developer
+
Implements requirements, creates traceability to code
+
Component requirements with clear acceptance criteria
+
+
+
Feature User
+
Integrates platform components into their vehicle project
+
AoUs — boundary conditions they must fulfil when using the SW
+
+
+
Platform Integration Developer
+
Implements requirements for integration
+
Component and feature requirements
+
+
+
+
+
Open Source Working Mode
+
In S-CORE any Contributor may write a requirement, but every requirement must be
+approved by a Committer or Project Lead before it is merged. Safety and Security
+Managers provide support when their domain is involved.
+
+
+
1.3 Standard Connections
+
The S-CORE requirements process implements requirements from multiple standards
+simultaneously. Understanding these connections helps prioritise engineering effort.
+
+
+
+
Standard
+
Relevant Clause
+
What it requires
+
+
+
+
+
ISO 26262
+
Part 8, SWE.1
+
SW requirements specification with safety classification, traceability, and review
+
+
+
ASPICE PAM 4.0
+
SWE.1
+
Elicitation, documentation, agreement, and traceability of SW requirements
+
+
+
ISO/SAE 21434
+
§10.5.1
+
Cybersecurity requirements derived from TARA, traceable through development
+
+
+
ISO PAS 8926
+
§4.5.2.1
+
Safety and cybersecurity requirements for automated driving
+
+
+
+
+
Assumptions of Use (AoU)
+
A special requirement type that defines the boundary conditions the user of a
+software element must fulfil to ensure safe and secure operation. AoUs are
+exportable to integrators so they can include them in their own requirements
+management systems.
+
+
+
1.4 Roles and Approval Chains
+
The S-CORE process defines clear responsibility for each level of the hierarchy:
+
+
Stakeholder requirements and SW-Platform AoU: Written by Contributor, approved by Project Lead, supported by Safety Manager.
+
Feature requirements and Feature AoU: Written by Contributor, approved by Project Lead, supported by Safety Manager and Security Manager.
+
Component requirements and Component AoU: Written by Contributor, approved by Committer, supported by Safety Manager and Security Manager.
+
Tool/Process requirements: Written by Contributor, approved by Committer.
+
+
This separation ensures that the level of scrutiny matches the safety and security
+implications of the requirement.
+
+
Why does the approval chain differ between Feature and Component level? ▼
+
Feature requirements describe platform-level integration behaviour and are visible
+to all users of the platform — they require Project Lead approval because they
+represent agreements between the platform team and its stakeholders.
+
Component requirements are implementation-specific and concern only the component
+team — Committer approval is sufficient, as Committers are the technical
+gatekeepers for their component.
+
+
+
Module Check-In
+
Answer all questions and click Submit to check your understanding.
+
+
Q1. Who is responsible for approving Feature Requirements in S-CORE?
+
+
A Contributor
+
B Project Lead
+
C Safety Manager
+
D Feature User
+
+
Correct: B. Feature requirements are written by any Contributor but must be approved by the Project Lead. Safety and Security Managers provide support but do not approve.
+
+
+
Q2. Which standard requires SW requirements with a safety classification attribute, traceability, and formal review?
+
+
A ISO/SAE 21434
+
B ISO PAS 8926
+
C ISO 26262 Part 8 / ASPICE SWE.1
+
D IEC 61508
+
+
Correct: C. ISO 26262 Part 8 (in conjunction with ASPICE SWE.1) drives the SW requirements specification obligations in S-CORE. ISO/SAE 21434 and ISO PAS 8926 add cybersecurity and ADS-specific requirements on top.
+
+
+
Q3. An integrator using an S-CORE platform component needs to know the boundary conditions they must satisfy for safe use. Which requirement type addresses this?
+
+
A Stakeholder Requirements
+
B Feature Requirements
+
C Process Requirements
+
D Assumptions of Use (AoU)
+
+
Correct: D. Assumptions of Use (AoUs) define the boundary conditions that the user of a software element must fulfil. They are exportable so integrators can incorporate them into their own requirements management systems.
S-CORE defines a five-level requirement hierarchy. Each level has a precise
+meaning, a defined audience, a characteristic abstraction, and specific
+compliance obligations under ISO 26262, ASPICE, and ISO/SAE 21434.
+This module maps the hierarchy and explains when to use each level.
+
2.1 The S-CORE Requirement Hierarchy
+
The following diagram summarises the levels and their derivation relationships:
Additionally, Process/Tool Requirements sit alongside the hierarchy and
+describe the tooling and process activities that support it.
+
A child requirement is always derived from its parent. The derivation link
+includes the parent's version number so that stale links are automatically
+detected during the docs build.
+
2.2 Stakeholder Requirements
+
Stakeholder Requirements are defined at the SW-Platform level. They describe
+what the platform needs to contain from the perspective of the customer
+(stakeholder), expressed as technical requirements at the highest level of
+abstraction.
+
+
Assumed Technical Safety Requirements
+
In SEooC (Safety Element out of Context) development — which is the S-CORE model
+— Stakeholder Requirements represent the assumed Technical Safety Requirements.
+The integrator must verify that these assumptions match their vehicle-level
+safety goals before using the platform.
+
+
+
+
Stakeholder Requirement Example
+
The platform shall support configuration of applications via files
+(e.g. yaml, json).
+
+
This describes a platform-level capability without specifying how it is
+implemented or which component provides it.
+
+
+
Compliance obligations: ISO 26262 §8 / SWE.1, ISO/SAE 21434 §10.5.1
+
2.3 Feature Requirements
+
Feature Requirements are derived from Stakeholder Requirements and describe
+the behaviour of a feature at platform integration level, independent of
+which components implement it.
+
A "feature" represents a coherent set of requirements that together deliver a
+platform-level capability. Feature requirements are the primary input for
+architects, testers, and integrators.
+
+
Feature Requirement Example
+
The feature shall use JSON formatted string according to RFC-8259 for
+configuration.
+
+
This specifies the format at feature level without naming an implementation component.
+
+
+
Feature requirements also serve as the basis for integration testing on
+platform level.
+
Compliance obligations: ISO 26262 §8 / SWE.1, ISO/SAE 21434 §10.5.1
+
2.4 Component Requirements
+
Component Requirements are derived from Feature Requirements and describe
+component-specific behaviour. They are implementation-facing: they tell a
+developer exactly what a component must do within the context of its feature.
+
+
Component Requirement Example
+
The component shall provide API calls to read and interpret every field of a
+JSON body in C++.
+
+
This is unambiguously allocated to a single component and is directly testable
+at unit level.
+
+
+
Component Requirements are the lowest level in the hierarchy and have the most
+direct link to code and test artefacts via the auto-generated implemented_by
+and verified_by attributes.
+
Compliance obligations: ISO 26262 §8 / SWE.1, ISO PAS 8926 §4.5.2.1,
+ISO 26262 (analysis appendix), ISO/SAE 21434 §10.5.1 + §10.5.2
+
2.5 Assumptions of Use (AoU)
+
AoUs can exist at every level — SW-Platform, Feature, and Component. They
+define the boundary conditions that the user of the software element must
+fulfil to ensure correct, safe, and secure operation.
+
+
+
+
AoU Level
+
Audience
+
Compliance
+
+
+
+
+
SW-Platform AoU
+
Vehicle integrators using the platform
+
ISO 26262, ISO/SAE 21434 §10.5.1–2
+
+
+
Feature AoU
+
Teams integrating the feature into a product
+
ISO 26262, ISO/SAE 21434 §10.5.1–2
+
+
+
Component AoU
+
Developers using the component API
+
ISO 26262, ISO PAS 8926, ISO/SAE 21434 §10.5.1–2
+
+
+
+
+
AoU Example
+
The user shall provide a string as input which is not corrupted due to HW or
+QM SW errors.
+
+
This AoU tells the caller of the JSON configuration component what quality of
+input they must guarantee.
+
+
+
+
AoU and the Safety Manual
+
Feature and Component AoUs feed directly into the Platform Safety Manual and
+Module Safety Manual respectively. These manuals are the exportable artefacts
+that document all conditions an integrator must satisfy when deploying S-CORE
+components in a safety-relevant context.
+
+
+
2.6 Process and Tool Requirements
+
Process/Tool Requirements describe the activities and tooling constraints
+that support the development process. They are derived from the process
+description and specify what must be done manually versus what must be
+automated (tool-supported).
+
+
Process/Tool Requirement Example
+
It shall be checked that safety requirements (Safety != QM) can only be linked
+against safety requirements.
+
+
This is a process requirement that drives tool implementation in the
+Docs-as-Code build.
+
+
+
Process Requirements are verified by reviewing the process description rather
+than by functional testing.
+
2.7 Requirement Types
+
Every requirement — regardless of level — carries a type attribute that
+determines how it is verified and how it participates in traceability:
+
+
+
+
Type
+
Definition
+
Verification method
+
+
+
+
+
Functional
+
Describes a behaviour that can be demonstrated by test
+
Unit test, integration test
+
+
+
Interface
+
Defines an API or protocol; does not itself describe a behaviour
+
Review / analysis
+
+
+
Process
+
Describes a process activity or constraint; sub-type of Non-Functional
+
Review of process description
+
+
+
Non-Functional
+
All other quality constraints (performance, capacity, …)
+
Review / analysis
+
+
+
+
+
Type Affects Linkage Rules
+
The type attribute controls which architecture and safety linkage rules apply.
+For example, safety requirements of type Functional must eventually be linked to
+a test that exercises the functional behaviour. A Process requirement linked to a
+Functional safety requirement would be flagged as a linkage violation.
+
+
+
+
Interface requirements — when are they needed? ▼
+
Use the Interface type when a requirement defines a contract between two
+parties (e.g., an API signature, a protocol format, a data format) rather than a
+behaviour. Interface requirements are important for safety analysis because they
+define the boundaries across which faults can propagate — they often appear as
+inputs to DFA (Dependent Failure Analysis) and TARA.
+
+
+
Module Check-In
+
Answer all questions and click Submit to check your understanding.
+
+
Q1. A requirement states: 'The feature shall use JSON formatted strings according to RFC-8259 for configuration.' At which requirement level does this belong?
+
+
A Stakeholder Requirements
+
B Feature Requirements
+
C Component Requirements
+
D Process Requirements
+
+
Correct: B. The requirement describes behaviour at feature (platform integration) level — it specifies the format the feature uses without naming a specific component. Stakeholder requirements would be even more abstract; component requirements would name the implementing component and its API.
+
+
+
Q2. An integrator is building a vehicle product using an S-CORE platform component. They receive a document listing the conditions their application must satisfy to use the component safely. What type of requirement is this?
+
+
A Stakeholder Requirements
+
B Process Requirements
+
C Assumptions of Use (AoU)
+
D Functional Requirements
+
+
Correct: C. Assumptions of Use (AoUs) define boundary conditions for the user of a software element. They are exportable to integrators precisely so they can be incorporated into the integrator's own requirements management system.
+
+
+
Q3. Which requirement type is verified by reviewing the process description rather than by functional test execution?
+
+
A Functional
+
B Interface
+
C Process
+
D Non-Functional
+
+
Correct: C. Process requirements describe activities in the development process and are verified by reviewing the process description (or checking that tooling enforces them). They cannot be verified by running a functional test.
A requirement without well-defined attributes is not a requirement — it is a
+wish. S-CORE mandates a specific attribute set for every requirement and
+automates part of its population. This module covers all attributes, versioning
+rules, and the formulation principles that make requirements verifiable.
+
3.1 Manual Attributes
+
Every S-CORE requirement must have the following attributes set by the author
+before a pull request can be merged:
+
+
+
+
Attribute
+
Values / Format
+
Purpose
+
+
+
+
+
Unique ID
+
<type_prefix>__<keyword>_<shortname>
+
Stable identifier used for all traceability links
+
+
+
Status
+
valid | invalid
+
Only valid requirements are accepted in main branch
+
+
+
Title
+
Free text, expressive
+
Human-readable label
+
+
+
Description
+
Free text
+
The actual requirement statement
+
+
+
Version
+
Integer (1, 2, 3, …)
+
Bumped on every significant change
+
+
+
Rationale / Linkage
+
Free text | derived_from link
+
Stakeholder reqs need a rationale; derived reqs link to parent
+
+
+
Safety
+
QM | ASIL_B
+
Safety integrity level of this requirement
+
+
+
Security
+
Boolean / free text
+
Whether the requirement has security relevance
+
+
+
Type
+
Functional | Interface | Process | Non-Functional
+
Determines verification method and linkage rules
+
+
+
+
+
No "Draft" Status in Main Branch
+
S-CORE intentionally has no draft status value. A requirement is either
+valid (merged) or it lives in a pull request / feature branch. This forces
+engineers to complete a requirement before integrating it rather than
+accumulating technical debt in the form of unfinished requirements.
+
+
+
3.2 The Safety Attribute in Detail
+
The safety attribute is the cornerstone of ISO 26262 compliance. S-CORE
+currently supports two values:
+
+
+
+
Value
+
Meaning
+
+
+
+
+
QM
+
Quality Management — no ASIL claim; standard software quality processes apply
+
+
+
ASIL_B
+
Automotive Safety Integrity Level B — requires ASIL-B process measures, verification rigour, and traceability
+
+
+
+
+
ASIL Decomposition Is Not Used
+
S-CORE does not currently apply ASIL decomposition, so ASIL_A, ASIL_C, and
+ASIL_D are not required. Only QM and ASIL_B are defined. All safety-relevant
+requirements must be classified ASIL_B — a safety-relevant requirement that is
+incorrectly marked QM is a safety defect.
+
+
+
The tooling enforces linkage rules: an ASIL_B requirement may only be linked to
+other ASIL_B requirements or to QM requirements with a documented rationale.
+
3.3 Auto-Generated Attributes
+
The Docs-as-Code build populates three attributes automatically, eliminating
+manual maintenance overhead and ensuring the attributes are always current:
+
+
+
+
Attribute
+
How it is populated
+
Tool
+
+
+
+
+
Derives
+
Automatically inserted into the parent requirement when a child requirement references it via derived_from
+
Docs-as-Code
+
+
+
Implemented by
+
Source files are scanned for a defined tag containing the requirement ID; matching code locations are linked
+
Docs-as-Code
+
+
+
Verified by
+
Test files are scanned for a defined marker containing the requirement ID; matching test cases are linked
+
Docs-as-Code
+
+
+
+
+
How Implemented by Works
+
A developer adds the following tag in C++ source code:
During the docs build, the tool finds this tag, resolves feat__json_config__parse_body
+to the corresponding feature requirement, and automatically links the source
+file and line to the implemented_by attribute.
+
+
+
This automatic population means that the traceability matrix is always
+regenerated from the actual code and test artefacts — it cannot be manually
+falsified or forgotten.
+
3.4 Requirement Versioning
+
Significant vs. Non-Significant Changes
+
Not every edit to a requirement warrants a version increment. S-CORE defines
+precisely which changes are significant:
+
+
+
+
Attribute
+
Significant change
+
Non-significant change
+
+
+
+
+
Description
+
Functional content change or rewrite affecting meaning
+
Typo corrections, layout, notes
+
+
+
Safety
+
Any change
+
—
+
+
+
Security
+
Any change
+
—
+
+
+
Type
+
Any change
+
—
+
+
+
+
+
Version Mismatch Is a Build Error
+
Child requirements reference their parent requirement with an explicit version number
+(e.g., derived_from: stkh__platform__config_files[version==2]). If the parent
+requirement's version is later bumped, all child derivation links become stale and
+the docs build emits a warning that blocks merging until the child requirements
+are updated. This ensures that a change in a parent requirement always triggers a
+review of all its children.
+
+
+
Versioning Sets of Requirements
+
Individual requirement versioning covers single-requirement changes. For
+baselines — frozen sets of requirements used as the basis for a release or
+for a safety case — S-CORE uses standard version control tagging: a git tag
+applied to the repository records the exact state of all requirement files.
+
3.5 Requirement Quality and Formulation
+
A well-written requirement has four properties:
+
+
+
+
Property
+
Test question
+
+
+
+
+
Atomic
+
Does the requirement describe exactly one thing?
+
+
+
Verifiable
+
Can we write a test or review criterion that definitively confirms conformance?
+
+
+
Unambiguous
+
Is there exactly one valid interpretation?
+
+
+
Traceable
+
Does the requirement link upward to a parent (or have a rationale) and downward to implementation and test?
+
+
+
+
+
Notes Are Not Requirements
+
A note in a requirement (marked as such in the Docs-as-Code tool) is not part of
+the requirement itself. Notes provide additional explanation or context but
+must not contain normative content. Reviewers must check that normative
+statements are in the description, not buried in notes.
+
+
+
3.6 Requirement Reviews
+
Requirements that cannot be checked automatically require a manual inspection.
+The S-CORE process supports two kinds of review:
+
+
Peer review (PR review) — every requirement passes through a pull request
+ where Committers and Project Leads review it before it is merged to main.
+
Formal inspection — triggered explicitly when a contributor wants a
+ thorough review of a set of requirements. Uses a structured inspection
+ checklist that may be integrated into the requirements management tooling.
+
+
+
What does the inspection checklist cover? ▼
+
The inspection checklist verifies:
+
+
Completeness: all mandatory attributes are populated
+
Consistency: no contradictions between requirements at the same level
+
Feasibility: the requirement can realistically be implemented and tested
+
Traceability: every requirement is derived from a parent or has a documented rationale
+
Safety/security classification: safety attribute is correct relative to safety analysis
Answer all questions and click Submit to check your understanding.
+
+
Q1. A developer edits a requirement's description to fix a typo and improve layout, with no change to its functional meaning. Should the version attribute be incremented?
+
+
A Yes — any edit to a requirement must increment the version
+
B No — only significant changes (functional content, safety, security, type) trigger a version increment
+
C Yes — the version must be incremented so child links are re-validated
+
D No — versions are only managed by git tags, not per-requirement
+
+
Correct: B. S-CORE explicitly distinguishes significant changes (content changes, safety/security/type attribute changes) from non-significant ones (typos, layout, notes). Only significant changes require a version bump so that child requirement links are re-validated.
+
+
+
Q2. Which attribute is automatically populated by the Docs-as-Code build when test files contain a defined marker with the requirement ID?
+
+
A Derives
+
B Implemented by
+
C Verified by
+
D Status
+
+
Correct: C. The build scans test files for a defined marker containing the requirement ID and automatically links matching test cases to the 'verified_by' attribute. This makes the traceability matrix always current without manual maintenance.
+
+
+
Q3. A requirement is marked safety=QM but a safety analysis has determined it is ASIL_B relevant. What is the consequence?
+
+
A Nothing — QM and ASIL_B requirements can be freely mixed
+
B The build will flag a linkage violation and the requirement is a safety defect
+
C The requirement is automatically upgraded to ASIL_B at build time
+
D A note is added to the requirement by the tool
+
+
Correct: B. An incorrectly classified safety attribute is a safety defect. The S-CORE tooling enforces linkage rules so that ASIL_B requirements may only be linked to other ASIL_B requirements (or QM with documented rationale). A wrong safety attribute would allow a safety-relevant element to be inadequately verified and could invalidate the safety case.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/process/trainings/trainings_requirements_engineering/portal/module-4.html b/process/trainings/trainings_requirements_engineering/portal/module-4.html
new file mode 100644
index 0000000000..4fb2195acb
--- /dev/null
+++ b/process/trainings/trainings_requirements_engineering/portal/module-4.html
@@ -0,0 +1,324 @@
+
+
+
+
+
+Workflows and Work Products | S-CORE Process Training
+
+
+
+
+
+
+
+
+
+ Course Overview
+
+ ›
+ Module 4: Workflows and Work Products
+
+
+
+
+
+
+
+
+
Workflows and Work Products
+
+ ⏱ ~45 min
+ 📖 Module 4 of 4
+ 🗂 Requirements
+
+
+
Workflows and Work Products
+
S-CORE defines six specific workflows for requirements engineering and eight
+formal work products. This module walks through each workflow, its inputs and
+outputs, its responsible parties, and how the work products satisfy the
+applicable standards. The module closes with the end-to-end traceability
+picture.
+
4.1 Overview of the Six Workflows
+
+
+
+
Workflow ID
+
Workflow name
+
Responsible
+
Approved by
+
+
+
+
+
wf__req_stkh_req
+
Create/Maintain Stakeholder Requirements and SW-Platform AoU
+
Contributor
+
Project Lead
+
+
+
wf__req_feat_req
+
Create/Maintain Feature Requirements
+
Contributor
+
Project Lead
+
+
+
wf__req_feat_aou
+
Create/Maintain Feature AoUs
+
Contributor
+
Project Lead
+
+
+
wf__req_comp_req
+
Create/Maintain Component Requirements
+
Contributor
+
Committer
+
+
+
wf__req_comp_aou
+
Create/Maintain Component AoUs
+
Contributor
+
Committer
+
+
+
wf__req_tool
+
Create/Maintain Tool/Process Requirements
+
Contributor
+
Committer
+
+
+
+
All six workflows can be initiated as part of a Change Request — the
+Change Management process is the single entry point for all content changes
+in S-CORE.
+
Safety Managers are supported_by in the three stakeholder/feature workflows;
+both Safety and Security Managers are supported_by in the two AoU workflows
+at feature and component level.
+
4.2 Workflow: Stakeholder Requirements and SW-Platform AoU
+
Purpose: Establish the top-level specification of what the platform must
+contain. This workflow produces the assumed Technical Safety Requirements for
+the SEooC.
A project lead opens a change request: "The platform shall support OTA software
+updates for individual components." A contributor writes the stakeholder
+requirement and the SW-Platform AoU (the conditions the OEM integrator must
+satisfy to use OTA safely). The project lead reviews and approves the PR.
Feature requirements are the primary driver of SW Architecture work. The SW
+Architect reads them to derive the feature architecture that allocates
+behaviour to components.
+
4.4 Workflows: AoU Requirements
+
Feature AoUs and Component AoUs are managed by their own workflows because
+they involve additional inputs from architecture work products and feed directly
+into the Safety Manual artefacts:
+
+
Feature AoU (wf__req_feat_aou):
+
Extra input: wp__feature_arch
+
+
Additional output: wp__platform_safety_manual
+
+
+
Component AoU (wf__req_comp_aou):
+
+
Extra input: wp__component_arch
+
Additional output: wp__module_safety_manual
+
+
+
AoU and Architecture Are Coupled
+
AoUs cannot be written without the architecture work product because AoUs
+emerge from the safety concept: once the architecture defines the isolation
+boundaries and safety mechanisms, the AoUs state what conditions must hold
+outside those boundaries for the safety concept to be valid.
+
+
+
4.5 Work Products and Their Compliance Tags
+
Each work product carries compliance tags that map it to the specific standard
+clauses it satisfies. Understanding these tags is important for auditors and
+safety managers.
+
+
+
+
Work Product
+
ID
+
Compliance tags
+
+
+
+
+
Stakeholder Requirements
+
wp__requirements_stkh
+
ISO 26262 §8/6.5.1, ISO/SAE 21434 §10.5.1
+
+
+
Feature Requirements
+
wp__requirements_feat
+
ISO 26262 §8/6.5.1, ISO/SAE 21434 §10.5.1
+
+
+
Component Requirements
+
wp__requirements_comp
+
ISO 26262 §8/6.5.1, ISO PAS 8926 §4.5.2.1, ISO 26262 analysis annex, ISO/SAE 21434 §10.5.1
+
+
+
SW-Platform AoU
+
wp__requirements_sw_platform_aou
+
ISO 26262 §8/6.5.1, ISO/SAE 21434 §10.5.1–2
+
+
+
Feature AoU
+
wp__requirements_feat_aou
+
ISO 26262 §8/6.5.1, ISO/SAE 21434 §10.5.1–2
+
+
+
Component AoU
+
wp__requirements_comp_aou
+
ISO 26262 §8/6.5.1, ISO PAS 8926 §4.5.2.1, ISO/SAE 21434 §10.5.1–2
+
+
+
Process/Tool Requirements
+
wp__requirements_proc_tool
+
(internal process lifecycle)
+
+
+
Requirements Inspection
+
wp__requirements_inspect
+
ISO 26262 §8/6.5.3
+
+
+
+
The Requirements Inspection work product is based on a structured checklist
+and may be integrated into requirements or version management tooling. It
+addresses the ISO 26262 requirement for formal review of SW requirements.
+
4.6 End-to-End Traceability
+
The S-CORE traceability model connects every requirement from its origin at
+stakeholder level down to the implementation artefacts and verification
+evidence:
The implemented_by and verified_by links are populated automatically by the
+Docs-as-Code build. This means the traceability matrix is always regenerated
+from the real artefacts — it cannot drift from the code. Auditors can trust
+that a requirement shown as "verified by test X" genuinely corresponds to a test
+that references that requirement ID.
+
+
+
4.7 Using the Tooling
+
The S-CORE Docs-as-Code tool provides:
+
+
Requirement templates — pre-formatted stubs for each requirement type that enforce the mandatory attribute set.
+
Build-time validation — attribute completeness, version link consistency, linkage rule enforcement, and safety attribute propagation checks.
+
Coverage reports — automatically generated views showing which requirements lack implemented_by or verified_by links (coverage gaps).
+
PR-based review workflow — all requirement changes go through a pull request; the Committer or Project Lead review is recorded in git history.
+
+
+
Getting Started
+
The Requirements Engineering "Getting Started" guide (doc_getstrt__req_process)
+describes the exact steps for creating a new requirement, deriving child
+requirements, and triggering a formal inspection. The workflow diagram in that
+guide maps every step to the corresponding workflow ID listed in Section 4.1.
+
+
+
+
Linking requirements to code and tests — practical steps ▼
+
+
Find the requirement ID in the generated HTML portal or in the RST source.
+
Add the implementation tag in the source file as a structured comment:
+ // [<requirement_id>] (exact syntax depends on the Docs-as-Code version).
+
Add the verification marker in the test file using the framework-specific
+ marker (e.g., a pytest mark or a comment annotation).
+
Run the docs build (bazel run //:docs). The build will now populate
+ implemented_by and verified_by in the HTML output.
+
Verify coverage in the generated requirements traceability report.
+
+
+
+
Module Check-In
+
Answer all questions and click Submit to check your understanding.
+
+
Q1. A contributor wants to create new Component Requirements. Which approval chain applies?
+
+
A Written by Safety Manager, approved by Project Lead
+
B Written by Contributor, approved by Committer
+
C Written by Committer, approved by Project Lead
+
D Written by Contributor, approved by Safety Manager
+
+
Correct: B. Component Requirements are created by any Contributor and approved by a Committer. Project Lead approval is required for Stakeholder and Feature level requirements; Committer approval is sufficient for Component level because this is an implementation-specific concern.
+
+
+
Q2. Feature AoU requirements have an additional input compared to Feature Requirements. What is it?
+
+
A wp__requirements_stkh (Stakeholder Requirements)
+
B wp__requirements_comp (Component Requirements)
+
C wp__feature_arch (Feature Architecture)
+
D wp__issue_track_system (Issue Tracker)
+
+
Correct: C. AoUs at feature level emerge from the safety concept defined in the Feature Architecture. Without the architecture there is no basis for determining what boundary conditions must hold outside the software element.
+
+
+
Q3. An auditor asks: 'How do you guarantee that the traceability matrix between requirements and test cases is up to date?' What is the correct S-CORE answer?
+
+
A The traceability matrix is maintained manually by the Safety Manager and reviewed quarterly
+
B Traceability is managed in an external ALM tool which is synced monthly
+
C The Docs-as-Code build automatically regenerates the verified_by links from test file markers on every build, so the matrix cannot drift from the actual test artefacts
+
D Developers are required to update the traceability spreadsheet when they add tests
+
+
Correct: C. The 'verified_by' attribute is auto-populated by scanning test files for the requirement ID marker on every build. This means the traceability matrix is always regenerated from the real artefacts — it is impossible for it to show a test link that does not exist in the codebase.
10 questions covering all four modules — Module 1 through Module 4. Read each question carefully. Some questions are scenario-based. Instant scoring with explanations on submission.
'
+ for j, o in enumerate(q.get('options', []))
+ )
+ fb = q.get('feedback', '')
+ return (
+ f'
\n'
+ f'
'
+ f'Q{idx}. {scenario_html}{q["q"]}
\n'
+ f'
\n {opts_html}\n
\n'
+ f'
{fb}
\n'
+ f'
'
+ )
+
+
+def render_inline_quiz(quiz: dict, pass_mark: int = 67) -> str:
+ """3-question module check-in quiz section."""
+ qs = '\n'.join(_question_html(i, q) for i, q in enumerate(quiz['questions'], 1))
+ return (
+ f'
\n'
+ f'
Module Check-In
\n'
+ f'
'
+ f'Answer all questions and click Submit to check your understanding.
\n'
+ f' {qs}\n'
+ f' \n'
+ f' \n'
+ f'
'
+ )
+
+
+def render_checkpoint_questions(questions: list) -> str:
+ """All question blocks for a standalone checkpoint quiz page."""
+ return '\n'.join(
+ _question_html(i, q, standalone=True)
+ for i, q in enumerate(questions, 1)
+ )
+
+
+# ── Page builder ──────────────────────────────────────────────────────────────
+
+def build_page(md_path: Path, env: Environment) -> None:
+ raw = md_path.read_text(encoding='utf-8')
+ fm, body = parse_frontmatter(raw)
+ page_id = fm.get('id', md_path.stem)
+ ptype = fm.get('page_type', 'module')
+
+ # strip keys we pass explicitly to avoid duplicate-keyword errors
+ _STRIP = {'page_type', 'questions'}
+ fm_ctx = {k: v for k, v in fm.items() if k not in _STRIP}
+
+ tmpl = env.get_template('template.html')
+
+ if ptype == 'quiz':
+ questions = fm.get('questions', [])
+ questions_html = Markup(render_checkpoint_questions(questions))
+ html = tmpl.render(
+ page_type = 'quiz',
+ questions_html = questions_html,
+ content = Markup(''),
+ quiz_html = Markup(''),
+ quiz_init = '',
+ **fm_ctx,
+ )
+
+ elif ptype == 'index':
+ content_html = convert_body(body)
+ html = tmpl.render(
+ page_type = 'index',
+ content = Markup(content_html),
+ quiz_html = Markup(''),
+ quiz_init = '',
+ **fm_ctx,
+ )
+
+ else: # module
+ body, quiz = extract_quiz_block(body)
+ content_html = convert_body(body)
+ quiz_html = Markup(render_inline_quiz(quiz)) if quiz else Markup('')
+ quiz_init = ''
+ if quiz:
+ pm = fm.get('quiz_pass_mark', 67)
+ on_pass = fm.get('quiz_on_pass', None)
+ op_js = f'"{on_pass}"' if on_pass else 'null'
+ quiz_init = f"initQuiz('{quiz['id']}', {pm}, {op_js});"
+
+ html = tmpl.render(
+ page_type = 'module',
+ content = Markup(content_html),
+ quiz_html = quiz_html,
+ quiz_init = quiz_init,
+ **fm_ctx,
+ )
+
+ out = OUT / f'{page_id}.html'
+ out.write_text(html, encoding='utf-8')
+ print(f' ✓ {page_id}.html')
+
+
+# ── Main ──────────────────────────────────────────────────────────────────────
+
+def build_all(target_id: str | None = None) -> None:
+ OUT.mkdir(parents=True, exist_ok=True)
+
+ # copy shared assets
+ for name in ('style.css', 'app.js'):
+ src = ASSETS / name
+ if src.exists():
+ shutil.copy2(src, OUT / name)
+ print(f' → {name} (copied)')
+
+ env = Environment(loader=FileSystemLoader(str(TMPL)), autoescape=False)
+ files = sorted(CONTENT.glob('*.md'))
+
+ if not files:
+ sys.exit(f"No .md files found in {CONTENT}")
+
+ built = 0
+ for f in files:
+ pid = f.stem
+ if target_id and pid != target_id:
+ continue
+ build_page(f, env)
+ built += 1
+
+ if target_id and built == 0:
+ sys.exit(f"No file found with id '{target_id}' in {CONTENT}")
+
+ print(f'\nDone — {built} page(s) written to {OUT}')
+
+
+if __name__ == '__main__':
+ args = sys.argv[1:]
+
+ if '--list' in args:
+ for f in sorted(CONTENT.glob('*.md')):
+ fm, _ = parse_frontmatter(f.read_text(encoding='utf-8'))
+ print(f" {f.stem:20s} {fm.get('title', '—')}")
+ sys.exit(0)
+
+ build_all(args[0] if args else None)
diff --git a/process/trainings/trainings_requirements_engineering/source/content/index.md b/process/trainings/trainings_requirements_engineering/source/content/index.md
new file mode 100644
index 0000000000..4cc02397e1
--- /dev/null
+++ b/process/trainings/trainings_requirements_engineering/source/content/index.md
@@ -0,0 +1,83 @@
+---
+# *******************************************************************************
+# Copyright (c) 2026 Contributors to the Eclipse Foundation
+#
+# See the NOTICE file(s) distributed with this work for additional
+# information regarding copyright ownership.
+#
+# This program and the accompanying materials are made available under the
+# terms of the Apache License Version 2.0 which is available at
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# SPDX-License-Identifier: Apache-2.0
+# *******************************************************************************
+# AI Disclosure: This file was largely AI-generated. The AI-generated
+# portions are made available under CC0-1.0 and not subject to the
+# project's license. The human contributor has reviewed and verified
+# that the code is correct.
+# SPDX-License-Identifier: CC0-1.0
+# Assisted-by: Claude Sonnet 4.6
+# *******************************************************************************
+id: index
+page_type: index
+title: "S-CORE Requirements Engineering Training"
+breadcrumb: ""
+prev: null
+next:
+ url: module-1.html
+ label: "Module 1: Why Requirements Engineering?"
+---
+
+# S-CORE Requirements Engineering
+
+A focused, self-paced training on the **Requirements Engineering** process area
+of the Eclipse S-CORE Process Description, covering its concepts, roles,
+workflows, work products, and practical application in safety- and
+security-critical automotive open-source software development.
+
+| | |
+|---|---|
+| Duration | ~3.5 hours |
+| Structure | 4 Modules + Checkpoint Quiz |
+| Format | Self-paced |
+| Standards | ISO 26262 · ASPICE SWE.1 · ISO/SAE 21434 · ISO PAS 8926 |
+
+## Modules
+
+| Module | Title | Description | Duration |
+|--------|-------|-------------|----------|
+| Module 1 | [Why Requirements Engineering?](module-1.html) | Role of RE in safety-critical OSS, stakeholders, roles, and how standards drive the process. | ~30 min |
+| Module 2 | [Requirement Levels and Types](module-2.html) | The five requirement levels (Stakeholder, Feature, Component, AoU, Process), types, and their traceability relationships. | ~45 min |
+| Module 3 | [Requirement Attributes and Quality](module-3.html) | Mandatory and auto-generated attributes, formulation rules, versioning, and reviews. | ~45 min |
+| Module 4 | [Workflows and Work Products](module-4.html) | The six S-CORE workflows, work products with compliance tags, and end-to-end traceability. | ~45 min |
+
+**[Checkpoint Quiz — All Modules](quiz-1.html)**
+10 questions covering all four modules. Pass mark: 70%. Instant scoring with explanations. (~20 min)
+
+## About This Course
+
+This training is based on the **Eclipse S-CORE Process Description** —
+specifically the Requirements Engineering process area — and the applicable
+standards it implements: ISO 26262 (Part 8), ASPICE PAM 4.0 (SWE.1),
+ISO/SAE 21434, and ISO PAS 8926.
+
+It is intended for anyone contributing to or reviewing requirements in an
+S-CORE-compliant project: developers, architects, safety managers, security
+managers, quality managers, and testers.
+
+:::tip How to use this portal
+Work through the modules in order. Each module ends with a short three-question
+check-in. After completing all four modules take the Checkpoint Quiz.
+Your progress is saved in your browser — no server required.
+:::
+
+## Learning Objectives
+
+After completing this training you will be able to:
+
+- Explain the role of structured requirements engineering in safety- and security-critical automotive software
+- Name all stakeholders and identify their information needs in an S-CORE project
+- Distinguish the five requirement levels and select the correct one for a given situation
+- Write well-formed requirements that satisfy the mandatory attribute set
+- Apply S-CORE versioning rules and identify when a version bump is required
+- Trace requirements from stakeholder level through code and tests using the S-CORE workflow
diff --git a/process/trainings/trainings_requirements_engineering/source/content/module-1.md b/process/trainings/trainings_requirements_engineering/source/content/module-1.md
new file mode 100644
index 0000000000..828688ab6c
--- /dev/null
+++ b/process/trainings/trainings_requirements_engineering/source/content/module-1.md
@@ -0,0 +1,166 @@
+---
+# *******************************************************************************
+# Copyright (c) 2026 Contributors to the Eclipse Foundation
+#
+# See the NOTICE file(s) distributed with this work for additional
+# information regarding copyright ownership.
+#
+# This program and the accompanying materials are made available under the
+# terms of the Apache License Version 2.0 which is available at
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# SPDX-License-Identifier: Apache-2.0
+# *******************************************************************************
+# AI Disclosure: This file was largely AI-generated. The AI-generated
+# portions are made available under CC0-1.0 and not subject to the
+# project's license. The human contributor has reviewed and verified
+# that the code is correct.
+# SPDX-License-Identifier: CC0-1.0
+# Assisted-by: Claude Sonnet 4.6
+# *******************************************************************************
+id: module-1
+title: "Why Requirements Engineering?"
+breadcrumb: "Module 1: Why Requirements Engineering?"
+day: 1
+module_number: 1
+duration: "~30 min"
+standard: Requirements
+quiz_pass_mark: 70
+prev:
+ url: index.html
+ label: Course Overview
+next:
+ url: module-2.html
+ label: "Module 2: Requirement Levels and Types"
+---
+
+# Why Requirements Engineering?
+
+Requirements engineering is not bureaucracy — it is the foundation that connects
+a customer's need to the last line of tested code. In safety- and security-critical
+automotive software this chain must be complete, correct, and auditable.
+This module explains why, who is involved, and what standards demand.
+
+## 1.1 The Role of Requirements in Safety-Critical Software
+
+Modern automotive software controls safety-critical actuators — brakes, steering,
+power management — and runs in open-source collaborative environments where dozens of
+contributors work across organisational boundaries. Without a structured requirements
+process two problems become inevitable:
+
+1. **No agreed specification** — contributors implement different interpretations
+ of the same need.
+2. **No audit trail** — safety and security auditors cannot verify that every
+ standard requirement is addressed.
+
+:::important Why RE is Mandated by Standards
+ISO 26262 (Part 8, SWE.1), ASPICE PAM 4.0, ISO/SAE 21434, and ISO PAS 8926 all
+iltiyexplicitly require a documented, traceable requirements hierarchy as a precondition
+for safety and security releases. Without it, certification is impossible.
+:::
+
+The S-CORE Requirements Engineering process provides a single, standardised answer
+to both problems: a hierarchy of requirement levels with defined attributes,
+mandatory reviews, and automatic traceability links to code and tests.
+
+## 1.2 Stakeholders and Their Information Needs
+
+The requirements hierarchy must satisfy the needs of every stakeholder who will
+either write, review, implement, test, or audit requirements. The S-CORE process
+identifies the following key stakeholders:
+
+| Stakeholder | Source ID | Role in S-CORE | What they need from requirements |
+|-------------|-----------|---------------|----------------------------------|
+| **Project Lead** | `rl__project_lead` | Defines platform specification and content, creates project timeline, tracks project progress | Clear stakeholder requirements as a project description |
+| **SW Architect** | `rl__committer` | Breaks down platform specification into features, derives feature/component architecture, allocates requirements to architecture elements, defines AoUs from architecture | Feature requirements and AoUs to drive architecture decisions |
+| **Tester** | `rl__committer` | Verifies that the specification is satisfied by the elements under test, considers AoUs for test case specification | Verifiable, testable requirements with traceability to test cases |
+| **Safety Architect** | `rl__safety_engineer` | Performs Dependent Failure Analysis, qualitative safety analysis (e.g. FMEA), initiates additional requirements and AoUs to cover failures | Requirements with safety attributes and independence information |
+| **Security Architect** | `rl__security_engineer` | Performs Trust Boundary Analysis, Defense in Depth Analysis, qualitative security analysis (TARA) | Requirements with security attributes |
+| **Module/Tooling SW Developer** | `rl__delivery_team` | Implements SW according to specification, creates traceability by linking specification to code, considers AoUs of other components, creates AoUs for the component under development | Component requirements with clear acceptance criteria |
+| **Feature User** | *(no formal role ID)* | Gets detailed information on the specification of a feature, is informed about boundary conditions (AoUs) | AoUs — boundary conditions they must fulfil when using the SW |
+| **Platform SW Developer of the Reference Integration** | `rl__platform_team` | Implements requirements for reference integration | Component and feature requirements |
+
+:::tip Open Source Working Mode
+In S-CORE **any Contributor may write a requirement**, but every requirement must be
+approved by a Committer or Project Lead before it is merged. Safety and Security
+Managers provide support when their domain is involved.
+:::
+
+## 1.3 Standard Connections
+
+The S-CORE requirements process implements requirements from multiple standards
+simultaneously. Understanding these connections helps prioritise engineering effort.
+
+| Standard | Relevant Clause | What it requires |
+|----------|----------------|-----------------|
+| **ISO 26262** | Part 8, SWE.1 | SW requirements specification with safety classification, traceability, and review |
+| **ASPICE PAM 4.0** | SWE.1 | Elicitation, documentation, agreement, and traceability of SW requirements |
+| **ISO/SAE 21434** | §10.5.1 | Cybersecurity requirements derived from TARA, traceable through development |
+| **ISO PAS 8926** | §4.5.2.1 | To Be Defined |
+
+:::definition Assumptions of Use (AoU)
+A special requirement type that defines the **boundary conditions the user of a
+software element must fulfil** to ensure safe and secure operation. AoUs are
+exportable to integrators so they can include them in their own requirements
+management systems.
+:::
+
+## 1.4 Roles and Approval Chains
+
+The S-CORE process defines clear responsibility for each level of the hierarchy:
+
+- **Stakeholder requirements and SW-Platform AoU:** Written by Contributor (`rl__contributor`), approved by Project Lead (`rl__project_lead`), supported by Safety Manager (`rl__safety_manager`).
+- **Feature requirements and Feature AoU:** Written by Contributor (`rl__contributor`), approved by Project Lead (`rl__project_lead`), supported by Safety Manager (`rl__safety_manager`) and Security Manager (`rl__security_manager`).
+- **Component requirements and Component AoU:** Written by Contributor (`rl__contributor`), approved by Committer (`rl__committer`), supported by Safety Manager (`rl__safety_manager`) and Security Manager (`rl__security_manager`).
+- **Tool/Process requirements:** Written by Contributor (`rl__contributor`), approved by Committer (`rl__committer`).
+
+This separation ensures that the level of scrutiny matches the safety and security
+implications of the requirement.
+
+:::collapsible Why does the approval chain differ between Feature and Component level?
+Feature requirements describe platform-level integration behaviour and are visible
+to all users of the platform — they require Project Lead approval because they
+represent agreements between the platform team and its stakeholders.
+
+Component requirements are implementation-specific and concern only the component
+team — Committer approval is sufficient, as Committers are the technical
+gatekeepers for their component.
+:::
+
+:::quiz module-1-check
+
+- q: "Who is responsible for approving Feature Requirements in S-CORE?"
+ options:
+ - text: "Contributor"
+ - text: "Project Lead"
+ correct: true
+ - text: "Safety Manager"
+ - text: "Feature User"
+ feedback: >-
+ Correct: B. Feature requirements are written by any Contributor but must be approved
+ by the Project Lead. Safety and Security Managers provide support but do not approve.
+
+- q: "Which standard requires SW requirements with a safety classification attribute, traceability, and formal review?"
+ options:
+ - text: "ISO/SAE 21434"
+ - text: "ISO PAS 8926"
+ - text: "ISO 26262 Part 8 / ASPICE SWE.1"
+ correct: true
+ - text: "IEC 61508"
+ feedback: >-
+ Correct: C. ISO 26262 Part 8 (in conjunction with ASPICE SWE.1) drives the SW requirements
+ specification obligations in S-CORE. ISO/SAE 21434 and ISO PAS 8926 add cybersecurity
+ and ADS-specific requirements on top.
+
+- q: "An integrator using an S-CORE platform component needs to know the boundary conditions they must satisfy for safe use. Which requirement type addresses this?"
+ options:
+ - text: "Stakeholder Requirements"
+ - text: "Feature Requirements"
+ - text: "Process Requirements"
+ - text: "Assumptions of Use (AoU)"
+ correct: true
+ feedback: >-
+ Correct: D. Assumptions of Use (AoUs) define the boundary conditions that the user of a
+ software element must fulfil. They are exportable so integrators can incorporate them
+ into their own requirements management systems.
+:::
diff --git a/process/trainings/trainings_requirements_engineering/source/content/module-2.md b/process/trainings/trainings_requirements_engineering/source/content/module-2.md
new file mode 100644
index 0000000000..c596a7ef1e
--- /dev/null
+++ b/process/trainings/trainings_requirements_engineering/source/content/module-2.md
@@ -0,0 +1,250 @@
+---
+# *******************************************************************************
+# Copyright (c) 2026 Contributors to the Eclipse Foundation
+#
+# See the NOTICE file(s) distributed with this work for additional
+# information regarding copyright ownership.
+#
+# This program and the accompanying materials are made available under the
+# terms of the Apache License Version 2.0 which is available at
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# SPDX-License-Identifier: Apache-2.0
+# *******************************************************************************
+# AI Disclosure: This file was largely AI-generated. The AI-generated
+# portions are made available under CC0-1.0 and not subject to the
+# project's license. The human contributor has reviewed and verified
+# that the code is correct.
+# SPDX-License-Identifier: CC0-1.0
+# Assisted-by: Claude Sonnet 4.6
+# *******************************************************************************
+id: module-2
+title: "Requirement Levels and Types"
+breadcrumb: "Module 2: Requirement Levels and Types"
+day: 1
+module_number: 2
+duration: "~45 min"
+standard: Requirements
+quiz_pass_mark: 70
+prev:
+ url: module-1.html
+ label: "Module 1: Why Requirements Engineering?"
+next:
+ url: module-3.html
+ label: "Module 3: Requirement Attributes and Quality"
+---
+
+# Requirement Levels and Types
+
+S-CORE defines a five-level requirement hierarchy. Each level has a precise
+meaning, a defined audience, a characteristic abstraction, and specific
+compliance obligations under ISO 26262, ASPICE, and ISO/SAE 21434.
+This module maps the hierarchy and explains when to use each level.
+
+## 2.1 The S-CORE Requirement Hierarchy
+
+The following diagram summarises the levels and their derivation relationships:
+
+```
+Stakeholder Requirements (SW-Platform level)
+ │
+ ▼
+Feature Requirements ←→ Feature AoU
+ │
+ ▼
+Component Requirements ←→ Component AoU
+ │
+ ├── Code (Implemented by)
+ └── Tests (Verified by)
+```
+
+Additionally, **Process/Tool Requirements** sit alongside the hierarchy and
+describe the tooling and process activities that support it.
+
+A child requirement is always *derived from* its parent. The derivation link
+includes the parent's version number so that stale links are automatically
+detected during the docs build.
+
+## 2.2 Stakeholder Requirements (`wp__requirements_stkh`)
+
+**Stakeholder Requirements** are defined at the SW-Platform level. They describe
+**what the platform needs to contain** from the perspective of the customer
+(stakeholder), expressed as technical requirements at the highest level of
+abstraction.
+
+:::important Assumed Technical Safety Requirements
+In SEooC (Safety Element out of Context) development — which is the S-CORE model
+— Stakeholder Requirements represent the **assumed Technical Safety Requirements**.
+The integrator must verify that these assumptions match their vehicle-level
+safety goals before using the platform.
+:::
+
+:::example Stakeholder Requirement Example
+```
+The platform shall support configuration of applications via files
+(e.g. yaml, json).
+```
+This describes a platform-level capability without specifying how it is
+implemented or which component provides it.
+:::
+
+**Compliance obligations:** ISO 26262 §8 / SWE.1, ISO/SAE 21434 §10.5.1
+
+## 2.3 Feature Requirements (`wp__requirements_feat`)
+
+**Feature Requirements** are derived from Stakeholder Requirements and describe
+the behaviour of a feature **at platform integration level**, independent of
+which components implement it.
+
+A "feature" represents a coherent set of requirements that together deliver a
+platform-level capability. Feature requirements are the primary input for
+architects, testers, and integrators.
+
+:::example Feature Requirement Example
+```
+The feature shall use JSON formatted string according to RFC-8259 for
+configuration.
+```
+This specifies the format at feature level without naming an implementation component.
+:::
+
+Feature requirements also serve as the basis for integration testing on
+platform level.
+
+**Compliance obligations:** ISO 26262 §8 / SWE.1, ISO/SAE 21434 §10.5.1
+
+## 2.4 Component Requirements (`wp__requirements_comp`)
+
+**Component Requirements** are derived from Feature Requirements and describe
+component-specific behaviour. They are implementation-facing: they tell a
+developer exactly what a component must do within the context of its feature.
+
+:::example Component Requirement Example
+```
+The component shall provide API calls to read and interpret every field of a
+JSON body in C++.
+```
+This is unambiguously allocated to a single component and is directly testable
+at unit level.
+:::
+
+Component Requirements are the lowest level in the hierarchy and have the most
+direct link to code and test artefacts via the auto-generated `implemented_by`
+and `verified_by` attributes.
+
+**Compliance obligations:** ISO 26262 §8 / SWE.1, ISO PAS 8926 §4.5.2.1,
+ISO 26262 (analysis appendix), ISO/SAE 21434 §10.5.1 + §10.5.2
+
+## 2.5 Assumptions of Use (AoU)
+
+AoUs can exist at **every level** — SW-Platform, Feature, and Component. They
+define the boundary conditions that the *user* of the software element must
+fulfil to ensure correct, safe, and secure operation.
+
+| AoU Level | Work Product ID | Audience | Compliance |
+|-----------|----------------|----------|------------|
+| SW-Platform AoU | `wp__requirements_sw_platform_aou` | Vehicle integrators using the platform | ISO 26262, ISO/SAE 21434 §10.5.1–2 |
+| Feature AoU | `wp__requirements_feat_aou` | Teams integrating the feature into a product | ISO 26262, ISO/SAE 21434 §10.5.1–2 |
+| Component AoU | `wp__requirements_comp_aou` | Developers using the component API | ISO 26262, ISO PAS 8926, ISO/SAE 21434 §10.5.1–2 |
+
+:::example AoU Example
+```
+The user shall provide a string as input which is not corrupted due to HW or
+QM SW errors.
+```
+This AoU tells the caller of the JSON configuration component what quality of
+input they must guarantee.
+:::
+
+:::important AoU and the Safety Manual
+Feature and Component AoUs feed directly into the **Platform Safety Manual** and
+**Module Safety Manual** respectively. These manuals are the exportable artefacts
+that document all conditions an integrator must satisfy when deploying S-CORE
+components in a safety-relevant context.
+:::
+
+## 2.6 Process and Tool Requirements (`wp__requirements_proc_tool`)
+
+**Process/Tool Requirements** describe the activities and tooling constraints
+that support the development process. They are derived from the process
+description and specify what must be done manually versus what must be
+automated (tool-supported).
+
+:::example Process/Tool Requirement Example
+```
+It shall be checked that safety requirements (Safety != QM) can only be linked
+against safety requirements.
+```
+This is a process requirement that drives tool implementation in the
+Docs-as-Code build.
+:::
+
+Process Requirements are verified by **reviewing the process description** rather
+than by functional testing.
+
+## 2.7 Requirement Types
+
+Every requirement — regardless of level — carries a **type** attribute that
+determines how it is verified and how it participates in traceability:
+
+| Type | Definition | Verification method |
+|------|-----------|---------------------|
+| **Functional** | Describes a behaviour that can be demonstrated by test | Unit test, integration test |
+| **Interface** | Defines an API or protocol; does not itself describe a behaviour | Review / analysis |
+| **Process** | Describes a process activity or constraint; sub-type of Non-Functional | Review of process description |
+| **Non-Functional** | All other quality constraints (performance, capacity, …) | Review / analysis |
+
+:::important Type Affects Linkage Rules
+The `type` attribute controls which architecture and safety linkage rules apply.
+For example, safety requirements of type Functional must eventually be linked to
+a test that exercises the functional behaviour. A Process requirement linked to a
+Functional safety requirement would be flagged as a linkage violation.
+:::
+
+:::collapsible Interface requirements — when are they needed?
+Use the **Interface** type when a requirement defines a contract between two
+parties (e.g., an API signature, a protocol format, a data format) rather than a
+behaviour. Interface requirements are important for safety analysis because they
+define the boundaries across which faults can propagate — they often appear as
+inputs to DFA (Dependent Failure Analysis) and TARA.
+:::
+
+:::quiz module-2-check
+
+- q: "A requirement states: 'The feature shall use JSON formatted strings according to RFC-8259 for configuration.' At which requirement level does this belong?"
+ options:
+ - text: "Stakeholder Requirements"
+ - text: "Feature Requirements"
+ correct: true
+ - text: "Component Requirements"
+ - text: "Process Requirements"
+ feedback: >-
+ Correct: B. The requirement describes behaviour at feature (platform integration)
+ level — it specifies the format the feature uses without naming a specific component.
+ Stakeholder requirements would be even more abstract; component requirements would
+ name the implementing component and its API.
+
+- q: "An integrator is building a vehicle product using an S-CORE platform component. They receive a document listing the conditions their application must satisfy to use the component safely. What type of requirement is this?"
+ options:
+ - text: "Stakeholder Requirements"
+ - text: "Process Requirements"
+ - text: "Assumptions of Use (AoU)"
+ correct: true
+ - text: "Functional Requirements"
+ feedback: >-
+ Correct: C. Assumptions of Use (AoUs) define boundary conditions for the user
+ of a software element. They are exportable to integrators precisely so they can
+ be incorporated into the integrator's own requirements management system.
+
+- q: "Which requirement type is verified by reviewing the process description rather than by functional test execution?"
+ options:
+ - text: "Functional"
+ - text: "Interface"
+ - text: "Process"
+ correct: true
+ - text: "Non-Functional"
+ feedback: >-
+ Correct: C. Process requirements describe activities in the development process
+ and are verified by reviewing the process description (or checking that tooling
+ enforces them). They cannot be verified by running a functional test.
+:::
diff --git a/process/trainings/trainings_requirements_engineering/source/content/module-3.md b/process/trainings/trainings_requirements_engineering/source/content/module-3.md
new file mode 100644
index 0000000000..9bf5a98070
--- /dev/null
+++ b/process/trainings/trainings_requirements_engineering/source/content/module-3.md
@@ -0,0 +1,227 @@
+---
+# *******************************************************************************
+# Copyright (c) 2026 Contributors to the Eclipse Foundation
+#
+# See the NOTICE file(s) distributed with this work for additional
+# information regarding copyright ownership.
+#
+# This program and the accompanying materials are made available under the
+# terms of the Apache License Version 2.0 which is available at
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# SPDX-License-Identifier: Apache-2.0
+# *******************************************************************************
+# AI Disclosure: This file was largely AI-generated. The AI-generated
+# portions are made available under CC0-1.0 and not subject to the
+# project's license. The human contributor has reviewed and verified
+# that the code is correct.
+# SPDX-License-Identifier: CC0-1.0
+# Assisted-by: Claude Sonnet 4.6
+# *******************************************************************************
+id: module-3
+title: "Requirement Attributes and Quality"
+breadcrumb: "Module 3: Requirement Attributes and Quality"
+day: 1
+module_number: 3
+duration: "~45 min"
+standard: Requirements
+quiz_pass_mark: 70
+prev:
+ url: module-2.html
+ label: "Module 2: Requirement Levels and Types"
+next:
+ url: module-4.html
+ label: "Module 4: Workflows and Work Products"
+---
+
+# Requirement Attributes and Quality
+
+A requirement without well-defined attributes is not a requirement — it is a
+wish. S-CORE mandates a specific attribute set for every requirement and
+automates part of its population. This module covers all attributes, versioning
+rules, and the formulation principles that make requirements verifiable.
+
+## 3.1 Manual Attributes
+
+Every S-CORE requirement must have the following attributes set by the author
+before a pull request can be merged:
+
+| Attribute | Values / Format | Purpose |
+|-----------|----------------|---------|
+| **Unique ID** | `___` | Stable identifier used for all traceability links |
+| **Status** | `valid` \| `invalid` | Only `valid` requirements are accepted in main branch |
+| **Title** | Free text, expressive | Human-readable label |
+| **Description** | Free text | The actual requirement statement |
+| **Version** | Integer (1, 2, 3, …) | Bumped on every *significant* change |
+| **Rationale / Linkage** | Free text \| derived_from link | Stakeholder reqs need a rationale; derived reqs link to parent |
+| **Safety** | `QM` \| `ASIL_B` | Safety integrity level of this requirement |
+| **Security** | Boolean / free text | Whether the requirement has security relevance |
+| **Type** | `Functional` \| `Interface` \| `Process` \| `Non-Functional` | Determines verification method and linkage rules |
+
+:::important No "Draft" Status in Main Branch
+S-CORE intentionally has no `draft` status value. A requirement is either
+`valid` (merged) or it lives in a pull request / feature branch. This forces
+engineers to complete a requirement before integrating it rather than
+accumulating technical debt in the form of unfinished requirements.
+:::
+
+## 3.2 The Safety Attribute in Detail
+
+The `safety` attribute is the cornerstone of ISO 26262 compliance. S-CORE
+currently supports two values:
+
+| Value | Meaning |
+|-------|---------|
+| `QM` | Quality Management — no ASIL claim; standard software quality processes apply |
+| `ASIL_B` | Automotive Safety Integrity Level B — requires ASIL-B process measures, verification rigour, and traceability |
+
+:::important ASIL Decomposition Is Not Used
+S-CORE does not currently apply ASIL decomposition, so ASIL_A, ASIL_C, and
+ASIL_D are not required. Only QM and ASIL_B are defined. All safety-relevant
+requirements must be classified ASIL_B — a safety-relevant requirement that is
+incorrectly marked QM is a safety defect.
+:::
+
+The tooling enforces linkage rules: an ASIL_B requirement may only be linked to
+other ASIL_B requirements or to QM requirements with a documented rationale.
+
+## 3.3 Auto-Generated Attributes
+
+The Docs-as-Code build populates three attributes automatically, eliminating
+manual maintenance overhead and ensuring the attributes are always current:
+
+| Attribute | How it is populated | Tool |
+|-----------|---------------------|------|
+| **Derives** | Automatically inserted into the parent requirement when a child requirement references it via `derived_from` | Docs-as-Code |
+| **Implemented by** | Source files are scanned for a defined tag containing the requirement ID; matching code locations are linked | Docs-as-Code |
+| **Verified by** | Test files are scanned for a defined marker containing the requirement ID; matching test cases are linked | Docs-as-Code |
+
+:::example How Implemented by Works
+A developer adds the following tag in C++ source code:
+
+```cpp
+// [feat__json_config__parse_body]
+void ConfigParser::parseBody(const std::string& json) { ... }
+```
+
+During the docs build, the tool finds this tag, resolves `feat__json_config__parse_body`
+to the corresponding feature requirement, and automatically links the source
+file and line to the `implemented_by` attribute.
+:::
+
+This automatic population means that the traceability matrix is always
+regenerated from the actual code and test artefacts — it cannot be manually
+falsified or forgotten.
+
+## 3.4 Requirement Versioning
+
+### Significant vs. Non-Significant Changes
+
+Not every edit to a requirement warrants a version increment. S-CORE defines
+precisely which changes are significant:
+
+| Attribute | Significant change | Non-significant change |
+|-----------|-------------------|----------------------|
+| **Description** | Functional content change or rewrite affecting meaning | Typo corrections, layout, notes |
+| **Safety** | Any change | — |
+| **Security** | Any change | — |
+| **Type** | Any change | — |
+
+:::important Version Mismatch Is a Build Error
+Child requirements reference their parent requirement with an explicit version number
+(e.g., `derived_from: stkh__platform__config_files[version==2]`). If the parent
+requirement's version is later bumped, all child derivation links become stale and
+the docs build emits a warning that **blocks merging** until the child requirements
+are updated. This ensures that a change in a parent requirement always triggers a
+review of all its children.
+:::
+
+### Versioning Sets of Requirements
+
+Individual requirement versioning covers single-requirement changes. For
+**baselines** — frozen sets of requirements used as the basis for a release or
+for a safety case — S-CORE uses standard version control tagging: a git tag
+applied to the repository records the exact state of all requirement files.
+
+## 3.5 Requirement Quality and Formulation
+
+A well-written requirement has four properties:
+
+| Property | Test question |
+|----------|--------------|
+| **Atomic** | Does the requirement describe exactly one thing? |
+| **Verifiable** | Can we write a test or review criterion that definitively confirms conformance? |
+| **Unambiguous** | Is there exactly one valid interpretation? |
+| **Traceable** | Does the requirement link upward to a parent (or have a rationale) and downward to implementation and test? |
+
+:::important Notes Are Not Requirements
+A note in a requirement (marked as such in the Docs-as-Code tool) is **not part of
+the requirement** itself. Notes provide additional explanation or context but
+must not contain normative content. Reviewers must check that normative
+statements are in the description, not buried in notes.
+:::
+
+## 3.6 Requirement Reviews
+
+Requirements that cannot be checked automatically require a manual inspection.
+The S-CORE process supports two kinds of review:
+
+1. **Peer review (PR review)** — every requirement passes through a pull request
+ where Committers (`rl__committer`) and Project Leads (`rl__project_lead`) review it before it is merged to `main`.
+2. **Formal inspection** — triggered explicitly when a contributor wants a
+ thorough review of a set of requirements. Uses a structured inspection
+ checklist (`gd_chklst__req_inspection`) that may be integrated into requirements/version management tooling.
+
+:::collapsible What does the inspection checklist cover?
+The inspection checklist verifies:
+
+- Completeness: all mandatory attributes are populated
+- Consistency: no contradictions between requirements at the same level
+- Feasibility: the requirement can realistically be implemented and tested
+- Traceability: every requirement is derived from a parent or has a documented rationale
+- Safety/security classification: safety attribute is correct relative to safety analysis
+- Formulation quality: atomic, verifiable, unambiguous
+:::
+
+:::quiz module-3-check
+
+- q: "A developer edits a requirement's description to fix a typo and improve layout, with no change to its functional meaning. Should the version attribute be incremented?"
+ options:
+ - text: "Yes — any edit to a requirement must increment the version"
+ - text: "No — only significant changes (functional content, safety, security, type) trigger a version increment"
+ correct: true
+ - text: "Yes — the version must be incremented so child links are re-validated"
+ - text: "No — versions are only managed by git tags, not per-requirement"
+ feedback: >-
+ Correct: B. S-CORE explicitly distinguishes significant changes (content changes,
+ safety/security/type attribute changes) from non-significant ones (typos, layout,
+ notes). Only significant changes require a version bump so that child requirement
+ links are re-validated.
+
+- q: "Which attribute is automatically populated by the Docs-as-Code build when test files contain a defined marker with the requirement ID?"
+ options:
+ - text: "Derives"
+ - text: "Implemented by"
+ - text: "Verified by"
+ correct: true
+ - text: "Status"
+ feedback: >-
+ Correct: C. The build scans test files for a defined marker containing the
+ requirement ID and automatically links matching test cases to the 'verified_by'
+ attribute. This makes the traceability matrix always current without manual
+ maintenance.
+
+- q: "A requirement is marked safety=QM but a safety analysis has determined it is ASIL_B relevant. What is the consequence?"
+ options:
+ - text: "Nothing — QM and ASIL_B requirements can be freely mixed"
+ - text: "The build will flag a linkage violation and the requirement is a safety defect"
+ correct: true
+ - text: "The requirement is automatically upgraded to ASIL_B at build time"
+ - text: "A note is added to the requirement by the tool"
+ feedback: >-
+ Correct: B. An incorrectly classified safety attribute is a safety defect. The
+ S-CORE tooling enforces linkage rules so that ASIL_B requirements may only be
+ linked to other ASIL_B requirements (or QM with documented rationale). A wrong
+ safety attribute would allow a safety-relevant element to be inadequately
+ verified and could invalidate the safety case.
+:::
diff --git a/process/trainings/trainings_requirements_engineering/source/content/module-4.md b/process/trainings/trainings_requirements_engineering/source/content/module-4.md
new file mode 100644
index 0000000000..4964694b04
--- /dev/null
+++ b/process/trainings/trainings_requirements_engineering/source/content/module-4.md
@@ -0,0 +1,241 @@
+---
+# *******************************************************************************
+# Copyright (c) 2026 Contributors to the Eclipse Foundation
+#
+# See the NOTICE file(s) distributed with this work for additional
+# information regarding copyright ownership.
+#
+# This program and the accompanying materials are made available under the
+# terms of the Apache License Version 2.0 which is available at
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# SPDX-License-Identifier: Apache-2.0
+# *******************************************************************************
+# AI Disclosure: This file was largely AI-generated. The AI-generated
+# portions are made available under CC0-1.0 and not subject to the
+# project's license. The human contributor has reviewed and verified
+# that the code is correct.
+# SPDX-License-Identifier: CC0-1.0
+# Assisted-by: Claude Sonnet 4.6
+# *******************************************************************************
+id: module-4
+title: "Workflows and Work Products"
+breadcrumb: "Module 4: Workflows and Work Products"
+day: 1
+module_number: 4
+duration: "~45 min"
+standard: Requirements
+quiz_pass_mark: 70
+prev:
+ url: module-3.html
+ label: "Module 3: Requirement Attributes and Quality"
+next:
+ url: quiz-1.html
+ label: "Checkpoint Quiz"
+---
+
+# Workflows and Work Products
+
+S-CORE defines six specific workflows for requirements engineering and eight
+formal work products. This module walks through each workflow, its inputs and
+outputs, its responsible parties, and how the work products satisfy the
+applicable standards. The module closes with the end-to-end traceability
+picture.
+
+## 4.1 Overview of the Six Workflows
+
+| Workflow ID | Workflow name | Responsible | Approved by |
+|-------------|---------------|-------------|-------------|
+| `wf__req_stkh_req` | Create/Maintain Stakeholder Requirements and SW-Platform AoU | Contributor `rl__contributor` | Project Lead `rl__project_lead` |
+| `wf__req_feat_req` | Create/Maintain Feature Requirements | Contributor `rl__contributor` | Project Lead `rl__project_lead` |
+| `wf__req_feat_aou` | Create/Maintain Feature AoUs | Contributor `rl__contributor` | Project Lead `rl__project_lead` |
+| `wf__req_comp_req` | Create/Maintain Component Requirements | Contributor `rl__contributor` | Committer `rl__committer` |
+| `wf__req_comp_aou` | Create/Maintain Component AoUs | Contributor `rl__contributor` | Committer `rl__committer` |
+| `wf__req_tool` | Create/Maintain Tool/Process Requirements | Contributor `rl__contributor` | Committer `rl__committer` |
+| `wf__monitor_verify_requirements` | Monitor/Verify Requirements | Committer `rl__committer` | Committer `rl__committer` |
+
+All six creation workflows can be initiated as part of a **Change Request** —
+the Change Management process is the single entry point for all content changes
+in S-CORE.
+
+The **Monitor/Verify Requirements** workflow (`wf__monitor_verify_requirements`)
+is responsible for inspecting the full requirements set. Unlike the creation
+workflows it is owned by the Committer, who checks all requirement levels and
+safety manuals against the inspection checklist (`gd_chklst__req_inspection`).
+Its output is either an updated issue tracker entry or a completed Requirements
+Inspection work product.
+
+Safety Managers (`rl__safety_manager`) are *supported_by* in the three stakeholder/feature workflows;
+both Safety and Security Managers (`rl__security_manager`) are *supported_by* in the two AoU workflows
+at feature and component level.
+
+## 4.2 Workflow: Stakeholder Requirements and SW-Platform AoU
+
+**Purpose:** Establish the top-level specification of what the platform must
+contain. This workflow produces the assumed Technical Safety Requirements for
+the SEooC.
+
+**Inputs:** `wp__policies`, `wp__issue_track_system`
+
+**Outputs:** `wp__requirements_stkh`, `wp__requirements_sw_platform_aou`
+
+:::example Triggering this workflow
+A project lead opens a change request: *"The platform shall support OTA software
+updates for individual components."* A contributor writes the stakeholder
+requirement and the SW-Platform AoU (the conditions the OEM integrator must
+satisfy to use OTA safely). The project lead reviews and approves the PR.
+:::
+
+**Key guidance templates available:** `gd_temp__req_stkh_req`,
+`gd_temp__req_formulation`
+
+## 4.3 Workflow: Feature Requirements
+
+**Purpose:** Break down stakeholder requirements into feature-level
+specifications that describe integration behaviour independent of implementation.
+
+**Inputs:** `wp__requirements_stkh`, `wp__issue_track_system`
+
+**Output:** `wp__requirements_feat`
+
+Feature requirements are the primary driver of SW Architecture work. The SW
+Architect reads them to derive the feature architecture that allocates
+behaviour to components.
+
+## 4.4 Workflows: AoU Requirements
+
+Feature AoUs and Component AoUs are managed by their own workflows because
+they involve additional inputs from architecture work products and feed directly
+into the Safety Manual artefacts:
+
+- **Feature AoU** (`wf__req_feat_aou`):
+ - Extra input: `wp__feature_arch`
+ - Additional output: `wp__platform_safety_manual`
+
+- **Component AoU** (`wf__req_comp_aou`):
+ - Extra input: `wp__component_arch`
+ - Additional output: `wp__module_safety_manual`
+
+:::important AoU and Architecture Are Coupled
+AoUs cannot be written without the architecture work product because AoUs
+emerge from the safety concept: once the architecture defines the isolation
+boundaries and safety mechanisms, the AoUs state what conditions must hold
+*outside* those boundaries for the safety concept to be valid.
+:::
+
+## 4.5 Work Products and Their Compliance Tags
+
+Each work product carries compliance tags that map it to the specific standard
+clauses it satisfies. Understanding these tags is important for auditors and
+safety managers.
+
+| Work Product | ID | Compliance tags |
+|-------------|-----|-----------------|
+| Stakeholder Requirements | `wp__requirements_stkh` | ISO 26262 §8/6.5.1, ISO/SAE 21434 §10.5.1 |
+| Feature Requirements | `wp__requirements_feat` | ISO 26262 §8/6.5.1, ISO/SAE 21434 §10.5.1 |
+| Component Requirements | `wp__requirements_comp` | ISO 26262 §8/6.5.1, ISO PAS 8926 §4.5.2.1, ISO 26262 analysis annex, ISO/SAE 21434 §10.5.1 |
+| SW-Platform AoU | `wp__requirements_sw_platform_aou` | ISO 26262 §8/6.5.1, ISO/SAE 21434 §10.5.1–2 |
+| Feature AoU | `wp__requirements_feat_aou` | ISO 26262 §8/6.5.1, ISO/SAE 21434 §10.5.1–2 |
+| Component AoU | `wp__requirements_comp_aou` | ISO 26262 §8/6.5.1, ISO PAS 8926 §4.5.2.1, ISO/SAE 21434 §10.5.1–2 |
+| Process/Tool Requirements | `wp__requirements_proc_tool` | (internal process lifecycle) |
+| Requirements Inspection | `wp__requirements_inspect` | ISO 26262 §8/6.5.3 |
+
+The **Requirements Inspection** work product is based on a structured checklist
+and may be integrated into requirements or version management tooling. It
+addresses the ISO 26262 requirement for formal review of SW requirements.
+
+## 4.6 End-to-End Traceability
+
+The S-CORE traceability model connects every requirement from its origin at
+stakeholder level down to the implementation artefacts and verification
+evidence:
+
+```
+Stakeholder Requirements
+ │ derived_from
+ ▼
+Feature Requirements ──────────────────────► Feature AoU
+ │ derived_from
+ ▼
+Component Requirements ────────────────────► Component AoU
+ │ implemented_by (auto) │ verified_by (auto)
+ ▼ ▼
+ Source code Test cases
+```
+
+:::important Traceability Is Automatically Maintained
+The `implemented_by` and `verified_by` links are populated automatically by the
+Docs-as-Code build. This means **the traceability matrix is always regenerated
+from the real artefacts** — it cannot drift from the code. Auditors can trust
+that a requirement shown as "verified by test X" genuinely corresponds to a test
+that references that requirement ID.
+:::
+
+## 4.7 Using the Tooling
+
+The S-CORE Docs-as-Code tool provides:
+
+1. **Requirement templates** — pre-formatted stubs for each requirement type that enforce the mandatory attribute set.
+2. **Build-time validation** — attribute completeness, version link consistency, linkage rule enforcement, and safety attribute propagation checks.
+3. **Coverage reports** — automatically generated views showing which requirements lack `implemented_by` or `verified_by` links (coverage gaps).
+4. **PR-based review workflow** — all requirement changes go through a pull request; the Committer or Project Lead review is recorded in git history.
+
+:::tip Getting Started
+The Requirements Engineering concept (`doc_concept__req_process`) and Getting
+Started guide (`doc_getstrt__req_process`) describe the exact steps for creating
+a new requirement, deriving child requirements, and triggering a formal inspection.
+The workflow diagram in the getting started guide maps every step to the
+corresponding workflow ID listed in Section 4.1.
+:::
+
+:::collapsible Linking requirements to code and tests — practical steps
+1. **Find the requirement ID** in the generated HTML portal or in the RST source.
+2. **Add the implementation tag** in the source file as a structured comment:
+ `// []` (exact syntax depends on the Docs-as-Code version).
+3. **Add the verification marker** in the test file using the framework-specific
+ marker (e.g., a pytest mark or a comment annotation).
+4. **Run the docs build** (`bazel run //:docs`). The build will now populate
+ `implemented_by` and `verified_by` in the HTML output.
+5. **Verify coverage** in the generated requirements traceability report.
+:::
+
+:::quiz module-4-check
+
+- q: "A contributor wants to create new Component Requirements. Which approval chain applies?"
+ options:
+ - text: "Written by Safety Manager, approved by Project Lead"
+ - text: "Written by Contributor, approved by Committer"
+ correct: true
+ - text: "Written by Committer, approved by Project Lead"
+ - text: "Written by Contributor, approved by Safety Manager"
+ feedback: >-
+ Correct: B. Component Requirements are created by any Contributor and approved
+ by a Committer. Project Lead approval is required for Stakeholder and Feature
+ level requirements; Committer approval is sufficient for Component level because
+ this is an implementation-specific concern.
+
+- q: "Feature AoU requirements have an additional input compared to Feature Requirements. What is it?"
+ options:
+ - text: "wp__requirements_stkh (Stakeholder Requirements)"
+ - text: "wp__requirements_comp (Component Requirements)"
+ - text: "wp__feature_arch (Feature Architecture)"
+ correct: true
+ - text: "wp__issue_track_system (Issue Tracker)"
+ feedback: >-
+ Correct: C. AoUs at feature level emerge from the safety concept defined in
+ the Feature Architecture. Without the architecture there is no basis for
+ determining what boundary conditions must hold outside the software element.
+
+- q: "An auditor asks: 'How do you guarantee that the traceability matrix between requirements and test cases is up to date?' What is the correct S-CORE answer?"
+ options:
+ - text: "The traceability matrix is maintained manually by the Safety Manager and reviewed quarterly"
+ - text: "Traceability is managed in an external ALM tool which is synced monthly"
+ - text: "The Docs-as-Code build automatically regenerates the verified_by links from test file markers on every build, so the matrix cannot drift from the actual test artefacts"
+ correct: true
+ - text: "Developers are required to update the traceability spreadsheet when they add tests"
+ feedback: >-
+ Correct: C. The 'verified_by' attribute is auto-populated by scanning test files
+ for the requirement ID marker on every build. This means the traceability matrix
+ is always regenerated from the real artefacts — it is impossible for it to show
+ a test link that does not exist in the codebase.
+:::
diff --git a/process/trainings/trainings_requirements_engineering/source/content/quiz-1.md b/process/trainings/trainings_requirements_engineering/source/content/quiz-1.md
new file mode 100644
index 0000000000..b0aeff3fb1
--- /dev/null
+++ b/process/trainings/trainings_requirements_engineering/source/content/quiz-1.md
@@ -0,0 +1,174 @@
+---
+# *******************************************************************************
+# Copyright (c) 2026 Contributors to the Eclipse Foundation
+#
+# See the NOTICE file(s) distributed with this work for additional
+# information regarding copyright ownership.
+#
+# This program and the accompanying materials are made available under the
+# terms of the Apache License Version 2.0 which is available at
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# SPDX-License-Identifier: Apache-2.0
+# *******************************************************************************
+# AI Disclosure: This file was largely AI-generated. The AI-generated
+# portions are made available under CC0-1.0 and not subject to the
+# project's license. The human contributor has reviewed and verified
+# that the code is correct.
+# SPDX-License-Identifier: CC0-1.0
+# Assisted-by: Claude Sonnet 4.6
+# *******************************************************************************
+id: quiz-1
+page_type: quiz
+title: "Requirements Engineering Checkpoint Quiz"
+breadcrumb: "Requirements Engineering Checkpoint Quiz"
+description: >-
+ 10 questions covering all four modules — Module 1 through Module 4.
+ Read each question carefully. Some questions are scenario-based.
+ Instant scoring with explanations on submission.
+stats:
+ - "📋 10 Questions"
+ - "⏱ ~20 min"
+ - "🎯 Pass mark: 70% (7/10)"
+ - "📖 Covers Modules 1–4"
+pass_mark: 70
+certificate_title: "Requirements Engineering Certified"
+certificate_desc: "You have successfully passed the S-CORE Requirements Engineering Training."
+certificate_name: "S-CORE Requirements Engineering Training — Eclipse Foundation"
+prev:
+ url: module-4.html
+ label: "Module 4: Workflows and Work Products"
+next: null
+questions:
+
+ - q: "Why is structured requirements engineering mandated in S-CORE rather than left to individual project discretion?"
+ options:
+ - text: "It is required because requirements management tools are already available in the platform."
+ - text: "ISO 26262, ASPICE SWE.1, ISO/SAE 21434, and ISO PAS 8926 all require a documented, traceable requirements hierarchy as a precondition for certification; without it a safety and security release is not possible."
+ correct: true
+ - text: "It is only needed for ASIL_D projects; QM-only projects can skip structured RE."
+ - text: "Requirements engineering is optional — projects can substitute it with comprehensive test coverage."
+ feedback: >-
+ Correct: B. All applicable standards in S-CORE (ISO 26262, ASPICE, ISO/SAE 21434,
+ ISO PAS 8926) require a documented, traceable requirements hierarchy. There is no
+ standards-compliant path to certification without it, regardless of test coverage.
+
+ - q: "In S-CORE, any Contributor may write a requirement. Which of the following statements about the approval process is correct?"
+ options:
+ - text: "Contributors may directly merge requirements without review if the safety attribute is QM."
+ - text: "All requirements are approved exclusively by Safety Managers."
+ - text: "Stakeholder and Feature requirements must be approved by the Project Lead; Component requirements must be approved by a Committer."
+ correct: true
+ - text: "Requirements are approved by the Feature User because they are the primary consumer."
+ feedback: >-
+ Correct: C. The approval authority depends on the requirement level. Project Lead
+ approval is required for Stakeholder and Feature level (visible to all platform users);
+ Committer approval is sufficient for Component level (implementation-specific). Safety
+ and Security Managers provide support but do not hold the approval role.
+
+ - q: "A requirement states: 'The platform shall support JSON-based configuration.' At which level does this belong, and why?"
+ options:
+ - text: "Component Requirements — because it describes a concrete implementation detail."
+ - text: "Stakeholder Requirements — because it describes a platform-level capability at high abstraction, without specifying how any component implements it."
+ correct: true
+ - text: "Feature Requirements — because JSON is a specific technical format."
+ - text: "Process Requirements — because it describes a process constraint."
+ feedback: >-
+ Correct: B. Stakeholder Requirements describe what the platform must contain from
+ the customer's perspective at the highest abstraction level. This requirement names
+ a platform capability without specifying which component implements it or how —
+ that decomposition happens at Feature and Component levels.
+
+ - q: "An S-CORE component is released for integration into a vehicle OEM project. The OEM needs to know the boundary conditions their application must satisfy for the component to behave correctly under safety constraints. Which S-CORE work product delivers this information?"
+ options:
+ - text: "wp__requirements_comp (Component Requirements)"
+ - text: "wp__requirements_feat (Feature Requirements)"
+ - text: "wp__requirements_comp_aou (Component Assumptions of Use)"
+ correct: true
+ - text: "wp__requirements_proc_tool (Process/Tool Requirements)"
+ feedback: >-
+ Correct: C. Component Assumptions of Use (AoU) define the boundary conditions the
+ user of a component must fulfil. They are exported in the Module Safety Manual so
+ integrators can include them in their own requirements management systems, satisfying
+ ISO 26262 and ISO/SAE 21434 requirements for SEooC integration.
+
+ - q: "Which values are currently defined for the 'safety' attribute in S-CORE requirements?"
+ options:
+ - text: "QM and ASIL_B only, because ASIL decomposition is not used in S-CORE."
+ correct: true
+ - text: "ASIL_A, ASIL_B, ASIL_C, and ASIL_D to cover the full ISO 26262 range."
+ - text: "QM, ASIL_A, and ASIL_B for the subset of ISO 26262 levels used in automotive OSS."
+ - text: "Safety classification is not an attribute in S-CORE requirements."
+ feedback: >-
+ Correct: A. S-CORE currently defines only QM and ASIL_B as valid safety attribute
+ values. ASIL decomposition is not applied, so ASIL_A, _C, and _D are not needed.
+ A safety-relevant requirement incorrectly marked QM is a safety defect.
+
+ - q: "A developer edits a Component Requirement by changing its description to fix a typo and rewrites one sentence for clarity — the functional meaning is identical. Must the version attribute be incremented?"
+ options:
+ - text: "Yes — any edit to description requires a version bump."
+ - text: "No — only functional content changes, or changes to the safety, security, or type attribute, are significant and require a version increment."
+ correct: true
+ - text: "Yes — otherwise child requirement links become invalid."
+ - text: "No — version increments are only required for ASIL_B requirements."
+ feedback: >-
+ Correct: B. S-CORE distinguishes significant changes (functional content changes;
+ any change to safety, security, or type attributes) from non-significant changes
+ (typos, layout, notes). Only significant changes require a version bump and
+ trigger re-validation of child requirement links.
+
+ - q: "Which of the three auto-generated attributes is populated by scanning source code files for a defined tag containing the requirement ID?"
+ options:
+ - text: "Derives"
+ - text: "Implemented by"
+ correct: true
+ - text: "Verified by"
+ - text: "Status"
+ feedback: >-
+ Correct: B. 'Implemented by' is populated by scanning source code files for a
+ defined tag containing the requirement ID. 'Verified by' comes from test files.
+ 'Derives' is automatically inserted into parent requirements when a child uses
+ 'derived_from'. 'Status' is a manual attribute.
+
+ - q: "A contributor wants to create Feature AoU requirements. Compared to a plain Feature Requirements workflow, which additional input is required?"
+ options:
+ - text: "wp__requirements_stkh (Stakeholder Requirements)"
+ - text: "wp__requirements_proc_tool (Process/Tool Requirements)"
+ - text: "wp__feature_arch (Feature Architecture)"
+ correct: true
+ - text: "wp__requirements_inspect (Requirements Inspection)"
+ feedback: >-
+ Correct: C. AoUs at Feature level emerge from the safety concept defined in the
+ Feature Architecture. The architecture defines isolation boundaries and safety
+ mechanisms; AoUs express the conditions that must hold outside those boundaries.
+ Without the Feature Architecture there is no basis for writing Feature AoUs.
+
+ - q: "A safety auditor asks how S-CORE ensures that a requirement shown as 'verified by Test_X' in the documentation genuinely corresponds to a test that references that requirement. What is the correct answer?"
+ options:
+ - text: "The Safety Manager manually cross-checks the traceability matrix against the test repository each sprint."
+ - text: "The Docs-as-Code build scans all test files for requirement ID markers on every build and regenerates the 'verified_by' links automatically, so the documentation can never show a test link that does not exist in the codebase."
+ correct: true
+ - text: "An external ALM tool is synchronised monthly to keep the traceability matrix current."
+ - text: "Developers are required to update the traceability spreadsheet whenever a new test is added."
+ feedback: >-
+ Correct: B. The 'verified_by' attribute is auto-populated on every docs build by
+ scanning actual test files. The traceability matrix is therefore always regenerated
+ from real artefacts — it cannot be manually falsified, forgotten, or allowed to
+ drift. This is a key argument in the S-CORE safety case for requirements coverage.
+
+ - q: "A new feature is being specified. The correct end-to-end flow in S-CORE is:"
+ options:
+ - text: "Write Component Requirements first to anchor implementation, then derive Feature and Stakeholder Requirements bottom-up."
+ - text: "Write Stakeholder Requirements first, then derive Feature Requirements, then derive Component Requirements top-down, linking each level to its parent with a versioned derived_from reference."
+ correct: true
+ - text: "Write Feature Requirements first, then both Stakeholder Requirements and Component Requirements independently."
+ - text: "Only Stakeholder Requirements and Component Requirements are needed; Feature Requirements are optional in S-CORE."
+ feedback: >-
+ Correct: B. S-CORE follows the standards' top-down derivation model. Stakeholder
+ Requirements describe what the platform must contain; Feature Requirements break this
+ down to integration level; Component Requirements specify individual component
+ behaviour. Each level links to its parent using a versioned 'derived_from'
+ reference. Process Requirements are a separate, parallel concern derived from the
+ process description, not a step that precedes stakeholder requirements.
+
+---
diff --git a/process/trainings/trainings_requirements_engineering/source/requirements.txt b/process/trainings/trainings_requirements_engineering/source/requirements.txt
new file mode 100644
index 0000000000..fa9e00fa92
--- /dev/null
+++ b/process/trainings/trainings_requirements_engineering/source/requirements.txt
@@ -0,0 +1,3 @@
+markdown
+pyyaml
+jinja2
diff --git a/process/trainings/trainings_requirements_engineering/source/template.html b/process/trainings/trainings_requirements_engineering/source/template.html
new file mode 100644
index 0000000000..a03f681699
--- /dev/null
+++ b/process/trainings/trainings_requirements_engineering/source/template.html
@@ -0,0 +1,176 @@
+
+
+
+
+
+
+{{ title }} | S-CORE Process Training
+
+{% if page_type == 'quiz' %}
+
+{% endif %}
+
+
+
+