Ein Anforderungsdiagramm ist ein spezialisiertes ingenieurwissenschaftliches Visualisierungswerkzeug, das von Systemarchitekten, Produktmanagern und Softwareentwicklern genutzt wird, um technische Spezifikationen, Systembeschränkungen und Verifikationstests darzustellen. Auf der SysML-(Systems Modeling Language)-Standardbasis aufgebaut, ermöglicht der native requirementDiagramEngine können Sie abstrakte Entwurfsanforderungen direkt mit physischen Systemkomponenten und Testfällen über textbasierte Angaben verknüpfen.
Verständnis der Elemente des Anforderungsdiagramms
Ein Anforderungsdiagramm besteht hauptsächlich aus zwei unterschiedlichen strukturellen Bausteinen: Anforderungsblöcke (die die Regeln festlegen) und Elementblöcke (die den Code, die Hardware oder die Testskripte modellieren). Beziehungen werden dann zwischen diesen Blöcken gezeichnet, um eine klare Rückverfolgbarkeitsmatrix zu erstellen.
Grundlegende Syntaxstruktur
Jedes Diagramm beginnt mit dem requirementDiagramDeklarationskopf. Danach folgt die Definition von Anforderungsblöcken mit verschachtelten Eigenschaften, Elementblöcken und gerichteten Beziehungslinien.
requirementDiagram
requirement test_req {
id: 1
text: "Das System muss Zahlungen sicher verarbeiten."
risk: hoch
verifymethod: test
} 
Die vollständige Anforderungstypen-Taxonomie
Nicht alle ingenieurwissenschaftlichen Anforderungen sind gleich. Die Engine bietet sechs unterschiedliche Block-Schlüsselwörter, um Ihre Spezifikationen visuell und semantisch zu klassifizieren. Jeder Typ verändert die im gerenderten Diagrammkasten angezeigte Kopfzeile:
requirement: Eine Standard- oder allgemeine Systemspezifikation.functionalRequirement: Bestimmt eine Aktion oder ein Verhaltensmerkmal, das das System ausführen muss.interfaceRequirement: Definiert Verbindungsstellen, Datenaustausch oder Kommunikationsprotokolle zwischen Komponenten.performanceRequirement: Legt messbare Ausführungsmaßstäbe fest, wie Geschwindigkeit, Skalierbarkeit, Durchsatz oder Kapazität.physicalRequirement: Bestimmt Materialbeschränkungen, Abmessungen, Gewicht oder Hardware-Beschränkungen.Designbeschränkung: Beschränkt die Auswahl von Software, Architekturstilen, Frameworks oder Compliance-Standards.
Anforderungsdiagramm
designConstraint legacy_constraint {
id: "CON-04"
text: "Der Backend muss die Rückwärtskompatibilität mit PHP 8.2-Pipelines aufrechterhalten."
risk: low
verifymethod: Inspektion
} 
Syntaxreferenz: Anforderungselemente und Modifikatoren
Die Tabelle unten zeigt die primären semantischen Schlüsselwörter, erforderlichen Attribute und Klassifizierungsstrukturen, die vom Anforderungsinterpreter native erkannt werden.
| Syntaxkomponente | Typ Anforderung | Beschreibung & Unterstützte Systemattribute |
|---|---|---|
| Deklaration | Schlüsselwort-Bezeichner | Initialisiert die SysML-Anforderungsarbeitsfläche. Muss genau Anforderungsdiagramm Blockkopf verwenden. |
| Einzigartiges-ID-Attribut | id: Zeichenkette / Ganzzahl |
Ein obligatorisches verschachteltes Attribut, das einen Nachverfolgungsindex oder eine eindeutige alphanumerische Referenznummer innerhalb Ihres Nachverfolgungssystems bereitstellt. Gemischte Leerzeichen sind zulässig. |
| Text-Attribut | text: Zeichenkette in Anführungszeichen |
Ein obligatorischer beschreibender String, der die eigentliche Spezifikation oder das Verhaltenskriterium des Elements beschreibt. Immer in doppelte Anführungszeichen setzen. |
| Risiko-Attribut | risk: Schweregrad-Flag |
Ein optionales Markierungselement zur Nachverfolgung der Schwere des architektonischen Risikos. Akzeptiert Low-Level-Tokens: low, mittel, oder hoch. |
| Verifizierungsattribut | verifizierungsmethode:Methoden-Tag |
Ein optionaler Parameter, der angibt, wie die Regel bewiesen wird. Akzeptiert standardmäßige ingenieurtechnische Werte: Analyse, Demonstration, Inspektion, oder Test. |
| Systemelement | Element Block |
Deklariert eine physische Komponente, eine Softwarekomponente oder ein Testskript mit der Syntax: element element_name { type: "komponententyp" }. |
Erweiterte Beziehungen und Spurbarkeitsverknüpfungen
Die Hauptstärke eines Anforderungsdiagramms liegt darin, Anforderungen mit realen Systemen zu verbinden. Verbindungen werden mit spezialisierten, typisierten Pfeilverbindern gezeichnet (z. B. - erfüllt ->) die eine klare strukturelle Absicht herstellen.
Unterstützte Beziehungsoperatoren
| Beziehungs-Syntax-Token | Strategische ingenieurtechnische Bedeutung | Richtungsflussregel |
|---|---|---|
Quelle - enthält -> Ziel |
Zerlegt eine umfassende übergeordnete Anforderung in eine kleinere, verschachtelte Unteranforderung. | Weist von der übergeordneten Anforderungsblöcke auf den Unteranforderungsblock hin. |
Element - erfüllt -> Anforderung |
Beweist, dass ein physisches Software- oder Hardware-Element eine Regel erfolgreich erfüllt. | Weist von der ElementBlock in Richtung der Ziel-AnforderungBlock. |
Element - überprüft -> Anforderung |
Weist darauf hin, dass ein bestimmter Testskript oder Testfall die Richtigkeit einer Regel überprüft. | Weist von der Test-ElementBlock in Richtung der Ziel-AnforderungBlock. |
Quelle - kopiert -> Ziel |
Weist auf eine duplizierte Anforderung hin, die vollständig einer Hauptanforderung an anderer Stelle entspricht. | Weist von der duplizierten Kopie in Richtung des ursprünglichen Hauptblocks hin. |
Quelle - verfolgt -> Ziel |
Stellt eine umfassende Abhängigkeit oder historische Beziehung zwischen zwei getrennten Anforderungen her. | Weist von der abhängigen Anforderung in Richtung des primären Zielblocks hin. |
Quelle - leitet ab -> Ziel |
Weist darauf hin, dass eine Anforderung aufgrund einer anderen Anforderung berechnet oder abgeleitet wurde. | Weist von der abgeleiteten Kind-Blöcke in Richtung des Quell-Eltern-Blocks hin. |
Quelle - verfeinert -> Ziel |
Fügt einer hochkomplexen, höheren technischen Spezifikation zusätzliche Nuancen oder Klarheit hinzu. | Weist von der verfeinerten Spezifikation in Richtung des Baseline-Zielblocks hin. |
Benutzerdefinierte Elemente & Erweiterte Attribute
Zusätzlich zu den Standardanforderungen ermöglicht der elementSchlüsselwort ermöglicht es Ihnen, spezifische Anwendungs-Skripte, Hardware-Elemente oder Drittanbieter-Pakete in Ihre Trace-Pfade einzubinden. Jeder Element-Block kann benutzerdefinierte Schlüssel-Wert-Metadaten-Eigenschaften speichern, indem er das type:Schema innerhalb seiner geschweiften Klammern nutzt.
requirementDiagram
element payment_gateway_api {
type: "Stripe-Mikroservice-Modul"
}
element compliance_audit_log {
type: "Immutableer Datenbanktabelle"
} 
Realitätsnahe Blueprint: Komplexe E-Commerce-Sicherheitsinfrastruktur
Dieser umfassende Blueprint verfolgt ein vollständiges Produktions-Konformitäts-Ökosystem. Er zeigt die Dekomposition über contains, ordnet Leistungsbeschränkungen zu, verbindet Software-Module über satisfies, und ordnet Integrations-Testfälle über verifiesSchleifen zu.
requirementDiagram
%% Anforderungshierarchie-Ebene
requirement security_master_req {
id: "SEC-001"
text: "Die Anwendungsplattform muss strenge PCI-DSS-Standardsachkonformität aufrechterhalten."
risk: high
verifymethod: test
}
performanceRequirement checkout_speed_req {
id: "PERF-22"
text: "MFA-kryptographische Authentifizierungs-Handshakes müssen in weniger als 200ms kompiliert werden."
risk: medium
verifymethod: analysis
}
interfaceRequirement secure_token_req {
id: "INT-09"
text: "API-Datenübertragungen müssen verschlüsselte JSON-Web-Tokens (JWT) verwenden."
risk: high
verifymethod: test
}
%% Systemelemente-Ebene
element auth_service_code {
type: "Go-Backend-Mikroservice"
}
element load_tester_script {
type: "K6-Leistungs-Skript"
}
element jwt_validator_test {
type: "Jest-Integration-Einheitstest-Suite"
}
%% Architektonische Beziehungspfade
security_master_req - contains -> checkout_speed_req
security_master_req - contains -> secure_token_req
auth_service_code - satisfies -> secure_token_req
load_tester_script - verifies -> checkout_speed_req
jwt_validator_test - verifies -> secure_token_req 
Häufige Syntax-Fehler & Systembeschränkungen
Beim Kompilieren präziser Ingenieurkarten sollten diese Validierungsparameter berücksichtigt werden, um Parsing-Fehler zu vermeiden:
- Pflichtfeld für doppelte Anführungszeichen bei Zeichenketten:Textblöcke und Typen (z. B.
text: "Beschreibung",type: "Komponente") *müssen* in doppelte Anführungszeichen gesetzt werden. Die Verwendung von einfachen Anführungszeichen oder daslassen von Zeichenketten unzitiert führt zum Absturz des Compilers. - Strenge Attributsyntax: Attribute innerhalb von Klammern müssen Doppelpunkte gefolgt von Werten verwenden (z. B.
id: 1). Das Vergessen des Doppelpunkts oder das Schreiben auf derselben Zeile ohne korrekte Einrückung kann Fehler verursachen. - Eingeschränkte Wertewahl: Das
riskundverifymethodParameter akzeptieren nur explizite Systemtokens (z. B.low,medium,highfür risk;analysis,demonstration,inspection,testfür verifymethod). Das Eingeben benutzerdefinierter Werte wierisk: extremewird den Layout-Builder beschädigen. - Integrität der Pfeilabstände: Richtungslinien müssen mit Leerzeichenabstand um die Operatoren eingegeben werden (z. B.
A - erfüllt -> B). Das Zusammenfassen der Zeichenkette zuA-satisfies->Bwird Systemverarbeitungs-Ausnahmen entfernen.