sirena 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.github/workflows/build_deploy.yml +59 -0
- data/.github/workflows/links.yml +85 -0
- data/.github/workflows/rake.yml +15 -0
- data/.github/workflows/release.yml +27 -0
- data/.gitignore +68 -0
- data/.rspec +3 -0
- data/.rubocop.yml +14 -0
- data/.rubocop_todo.yml +70 -0
- data/ARCHITECTURE.md +744 -0
- data/Gemfile +12 -0
- data/LICENSE +25 -0
- data/README.adoc +357 -0
- data/Rakefile +11 -0
- data/docs/.gitignore +1 -0
- data/docs/Gemfile +13 -0
- data/docs/_config.yml +182 -0
- data/docs/_diagram_types/architecture-diagram.adoc +314 -0
- data/docs/_diagram_types/block-diagram.adoc +345 -0
- data/docs/_diagram_types/c4-diagram.adoc +559 -0
- data/docs/_diagram_types/class-diagram.adoc +816 -0
- data/docs/_diagram_types/er-diagram.adoc +719 -0
- data/docs/_diagram_types/error-diagram.adoc +114 -0
- data/docs/_diagram_types/examples/flowchart-examples.adoc +29 -0
- data/docs/_diagram_types/flowchart.adoc +488 -0
- data/docs/_diagram_types/gantt-chart.adoc +502 -0
- data/docs/_diagram_types/git-graph.adoc +600 -0
- data/docs/_diagram_types/index.adoc +192 -0
- data/docs/_diagram_types/info-diagram.adoc +103 -0
- data/docs/_diagram_types/kanban-diagram.adoc +262 -0
- data/docs/_diagram_types/mindmap.adoc +603 -0
- data/docs/_diagram_types/packet-diagram.adoc +378 -0
- data/docs/_diagram_types/pie-chart.adoc +335 -0
- data/docs/_diagram_types/quadrant-chart.adoc +406 -0
- data/docs/_diagram_types/radar-chart.adoc +528 -0
- data/docs/_diagram_types/requirement-diagram.adoc +416 -0
- data/docs/_diagram_types/sankey-diagram.adoc +357 -0
- data/docs/_diagram_types/sequence-diagram.adoc +664 -0
- data/docs/_diagram_types/state-diagram.adoc +658 -0
- data/docs/_diagram_types/timeline.adoc +352 -0
- data/docs/_diagram_types/treemap-diagram.adoc +462 -0
- data/docs/_diagram_types/user-journey.adoc +602 -0
- data/docs/_features/index.adoc +129 -0
- data/docs/_guides/cli-reference.adoc +203 -0
- data/docs/_guides/index.adoc +56 -0
- data/docs/_guides/installation.adoc +100 -0
- data/docs/_guides/quick-start.adoc +132 -0
- data/docs/_pages/comparison.adoc +441 -0
- data/docs/_pages/compatibility.adoc +300 -0
- data/docs/_pages/index.adoc +39 -0
- data/docs/_references/index.adoc +103 -0
- data/docs/_tutorials/index.adoc +57 -0
- data/docs/index.adoc +166 -0
- data/docs/lychee.toml +54 -0
- data/examples/.gitignore +10 -0
- data/examples/README.adoc +196 -0
- data/examples/README.md +64 -0
- data/examples/architecture/01-basic-services.mmd +9 -0
- data/examples/architecture/01-basic-services.svg +37 -0
- data/examples/architecture/02-service-groups.mmd +16 -0
- data/examples/architecture/02-service-groups.svg +55 -0
- data/examples/architecture/README.adoc +79 -0
- data/examples/block/01-basic-blocks.mmd +13 -0
- data/examples/block/01-basic-blocks.svg +44 -0
- data/examples/block/02-block-shapes.mmd +13 -0
- data/examples/block/02-block-shapes.svg +47 -0
- data/examples/block/README.adoc +85 -0
- data/examples/c4/01-context-diagram.mmd +10 -0
- data/examples/c4/01-context-diagram.svg +45 -0
- data/examples/c4/02-container-diagram.mmd +24 -0
- data/examples/c4/02-container-diagram.svg +105 -0
- data/examples/c4/README.adoc +92 -0
- data/examples/class_diagram/01-basic-classes.mmd +61 -0
- data/examples/class_diagram/01-basic-classes.svg +117 -0
- data/examples/class_diagram/02-relationships.mmd +61 -0
- data/examples/class_diagram/02-relationships.svg +129 -0
- data/examples/class_diagram/README.adoc +93 -0
- data/examples/er_diagram/01-basic-entities.mmd +64 -0
- data/examples/er_diagram/01-basic-entities.svg +5 -0
- data/examples/er_diagram/02-cardinality.mmd +57 -0
- data/examples/er_diagram/02-cardinality.svg +125 -0
- data/examples/er_diagram/README.adoc +88 -0
- data/examples/error/01-basic-error.mmd +1 -0
- data/examples/error/01-basic-error.svg +13 -0
- data/examples/error/02-error-display.mmd +1 -0
- data/examples/error/02-error-display.svg +13 -0
- data/examples/error/README.adoc +71 -0
- data/examples/error_message_example.svg +13 -0
- data/examples/flowchart/00-original.mmd +13 -0
- data/examples/flowchart/00-original.svg +5 -0
- data/examples/flowchart/01-basic-flow.mmd +7 -0
- data/examples/flowchart/01-basic-flow.svg +52 -0
- data/examples/flowchart/01-basic-flow.yml +13 -0
- data/examples/flowchart/02*.svg +87 -0
- data/examples/flowchart/02-node-shapes.mmd +9 -0
- data/examples/flowchart/02-node-shapes.svg +33 -0
- data/examples/flowchart/03-edge-types.mmd +7 -0
- data/examples/flowchart/03-edge-types.svg +53 -0
- data/examples/flowchart/04-subgraphs.mmd +9 -0
- data/examples/flowchart/04-subgraphs.svg +33 -0
- data/examples/flowchart/05-styling.mmd +9 -0
- data/examples/flowchart/05-styling.svg +33 -0
- data/examples/flowchart/06-complex-flow.mmd +8 -0
- data/examples/flowchart/06-complex-flow.svg +59 -0
- data/examples/flowchart/README.adoc +167 -0
- data/examples/gantt/01-simple-timeline.* +14 -0
- data/examples/gantt/01-simple-timeline.mmd +6 -0
- data/examples/gantt/01-simple-timeline.svg +26 -0
- data/examples/gantt/02-task-dependencies.mmd +6 -0
- data/examples/gantt/02-task-dependencies.svg +26 -0
- data/examples/gantt/README.adoc +86 -0
- data/examples/git_graph/01-linear-history.mmd +12 -0
- data/examples/git_graph/01-linear-history.svg +26 -0
- data/examples/git_graph/02-branching.mmd +12 -0
- data/examples/git_graph/02-branching.svg +26 -0
- data/examples/git_graph/README.adoc +73 -0
- data/examples/info/02-showinfo.mmd +1 -0
- data/examples/info/02-showinfo.svg +10 -0
- data/examples/info/README.adoc +58 -0
- data/examples/info_showinfo_example.svg +10 -0
- data/examples/kanban/01-simple-board.mmd +8 -0
- data/examples/kanban/01-simple-board.svg +43 -0
- data/examples/kanban/02-workflow.mmd +8 -0
- data/examples/kanban/02-workflow.svg +43 -0
- data/examples/kanban/README.adoc +79 -0
- data/examples/mindmap/01-simple-tree.mmd +19 -0
- data/examples/mindmap/01-simple-tree.svg +61 -0
- data/examples/mindmap/02-knowledge-map.mmd +19 -0
- data/examples/mindmap/02-knowledge-map.svg +61 -0
- data/examples/mindmap/README.adoc +77 -0
- data/examples/packet/01-basic-packet.* +17 -0
- data/examples/packet/01-basic-packet.mmd +4 -0
- data/examples/packet/01-basic-packet.svg +82 -0
- data/examples/packet/README.adoc +58 -0
- data/examples/pie/01-simple-chart.mmd +5 -0
- data/examples/pie/01-simple-chart.svg +17 -0
- data/examples/pie/02-labeled-slices.mmd +6 -0
- data/examples/pie/02-labeled-slices.svg +19 -0
- data/examples/pie/README.adoc +75 -0
- data/examples/quadrant/01-basic-quadrant.mmd +13 -0
- data/examples/quadrant/01-basic-quadrant.svg +33 -0
- data/examples/quadrant/02-positioned-items.mmd +14 -0
- data/examples/quadrant/02-positioned-items.svg +35 -0
- data/examples/quadrant/README.adoc +84 -0
- data/examples/radar/01-simple-radar.* +5 -0
- data/examples/radar/01-simple-radar.mmd +3 -0
- data/examples/radar/01-simple-radar.svg +25 -0
- data/examples/radar/02-multiple-curves.mmd +4 -0
- data/examples/radar/02-multiple-curves.svg +43 -0
- data/examples/radar/README.adoc +75 -0
- data/examples/requirement/01-basic-requirements.mmd +23 -0
- data/examples/requirement/01-basic-requirements.svg +49 -0
- data/examples/requirement/02-risk-levels.mmd +23 -0
- data/examples/requirement/02-risk-levels.svg +49 -0
- data/examples/requirement/README.adoc +85 -0
- data/examples/sankey/01-simple-flow.mmd +7 -0
- data/examples/sankey/01-simple-flow.svg +34 -0
- data/examples/sankey/02-multi-stage.mmd +11 -0
- data/examples/sankey/02-multi-stage.svg +44 -0
- data/examples/sankey/README.adoc +74 -0
- data/examples/sequence/01-basic-sequence.mmd +27 -0
- data/examples/sequence/01-basic-sequence.svg +5 -0
- data/examples/sequence/02-activations.mmd +17 -0
- data/examples/sequence/02-activations.svg +78 -0
- data/examples/sequence/README.adoc +86 -0
- data/examples/state_diagram/01-simple-states.mmd +29 -0
- data/examples/state_diagram/01-simple-states.svg +5 -0
- data/examples/state_diagram/02-composite.mmd +19 -0
- data/examples/state_diagram/02-composite.svg +81 -0
- data/examples/state_diagram/README.adoc +90 -0
- data/examples/timeline/01-simple-timeline.mmd +11 -0
- data/examples/timeline/01-simple-timeline.svg +36 -0
- data/examples/timeline/02-periods.mmd +15 -0
- data/examples/timeline/02-periods.svg +47 -0
- data/examples/timeline/README.adoc +78 -0
- data/examples/treemap/01-basic-treemap.mmd +12 -0
- data/examples/treemap/01-basic-treemap.svg +59 -0
- data/examples/treemap/README.adoc +59 -0
- data/examples/user_journey/01-simple-journey.mmd +23 -0
- data/examples/user_journey/01-simple-journey.svg +5 -0
- data/examples/user_journey/02-multi-actor.mmd +18 -0
- data/examples/user_journey/02-multi-actor.svg +129 -0
- data/examples/user_journey/README.adoc +81 -0
- data/examples/xychart/01-line-chart.mmd +5 -0
- data/examples/xychart/01-line-chart.svg +43 -0
- data/examples/xychart/02-bar-chart.mmd +7 -0
- data/examples/xychart/02-bar-chart.svg +48 -0
- data/examples/xychart/README.adoc +80 -0
- data/exe/sirena +7 -0
- data/lib/sirena/cli.rb +138 -0
- data/lib/sirena/commands/batch.rb +117 -0
- data/lib/sirena/commands/render.rb +80 -0
- data/lib/sirena/commands/types.rb +29 -0
- data/lib/sirena/commands/version.rb +24 -0
- data/lib/sirena/diagram/architecture.rb +46 -0
- data/lib/sirena/diagram/base.rb +61 -0
- data/lib/sirena/diagram/block.rb +81 -0
- data/lib/sirena/diagram/c4.rb +328 -0
- data/lib/sirena/diagram/class_diagram.rb +385 -0
- data/lib/sirena/diagram/er_diagram.rb +238 -0
- data/lib/sirena/diagram/error.rb +38 -0
- data/lib/sirena/diagram/flowchart.rb +160 -0
- data/lib/sirena/diagram/gantt.rb +71 -0
- data/lib/sirena/diagram/git_graph.rb +36 -0
- data/lib/sirena/diagram/info.rb +38 -0
- data/lib/sirena/diagram/kanban.rb +178 -0
- data/lib/sirena/diagram/mindmap.rb +54 -0
- data/lib/sirena/diagram/packet.rb +79 -0
- data/lib/sirena/diagram/pie.rb +115 -0
- data/lib/sirena/diagram/quadrant.rb +138 -0
- data/lib/sirena/diagram/radar.rb +52 -0
- data/lib/sirena/diagram/requirement.rb +133 -0
- data/lib/sirena/diagram/sankey.rb +217 -0
- data/lib/sirena/diagram/sequence.rb +242 -0
- data/lib/sirena/diagram/state_diagram.rb +237 -0
- data/lib/sirena/diagram/timeline.rb +171 -0
- data/lib/sirena/diagram/treemap.rb +84 -0
- data/lib/sirena/diagram/user_journey.rb +149 -0
- data/lib/sirena/diagram/xy_chart.rb +76 -0
- data/lib/sirena/diagram.rb +8 -0
- data/lib/sirena/diagram_registry.rb +101 -0
- data/lib/sirena/engine.rb +292 -0
- data/lib/sirena/parser/architecture.rb +41 -0
- data/lib/sirena/parser/base.rb +41 -0
- data/lib/sirena/parser/block.rb +72 -0
- data/lib/sirena/parser/c4.rb +53 -0
- data/lib/sirena/parser/class_diagram.rb +63 -0
- data/lib/sirena/parser/er_diagram.rb +40 -0
- data/lib/sirena/parser/error.rb +49 -0
- data/lib/sirena/parser/flowchart.rb +71 -0
- data/lib/sirena/parser/gantt.rb +60 -0
- data/lib/sirena/parser/git_graph.rb +95 -0
- data/lib/sirena/parser/grammars/architecture.rb +145 -0
- data/lib/sirena/parser/grammars/block.rb +190 -0
- data/lib/sirena/parser/grammars/c4.rb +226 -0
- data/lib/sirena/parser/grammars/class_diagram.rb +284 -0
- data/lib/sirena/parser/grammars/common.rb +84 -0
- data/lib/sirena/parser/grammars/er_diagram.rb +114 -0
- data/lib/sirena/parser/grammars/error.rb +40 -0
- data/lib/sirena/parser/grammars/flowchart.rb +298 -0
- data/lib/sirena/parser/grammars/gantt.rb +252 -0
- data/lib/sirena/parser/grammars/git_graph.rb +167 -0
- data/lib/sirena/parser/grammars/info.rb +58 -0
- data/lib/sirena/parser/grammars/kanban.rb +83 -0
- data/lib/sirena/parser/grammars/mindmap.rb +115 -0
- data/lib/sirena/parser/grammars/packet.rb +73 -0
- data/lib/sirena/parser/grammars/pie.rb +128 -0
- data/lib/sirena/parser/grammars/quadrant.rb +199 -0
- data/lib/sirena/parser/grammars/radar.rb +150 -0
- data/lib/sirena/parser/grammars/requirement.rb +188 -0
- data/lib/sirena/parser/grammars/sankey.rb +104 -0
- data/lib/sirena/parser/grammars/sequence.rb +247 -0
- data/lib/sirena/parser/grammars/state_diagram.rb +172 -0
- data/lib/sirena/parser/grammars/timeline.rb +142 -0
- data/lib/sirena/parser/grammars/treemap.rb +120 -0
- data/lib/sirena/parser/grammars/xy_chart.rb +120 -0
- data/lib/sirena/parser/info.rb +49 -0
- data/lib/sirena/parser/kanban.rb +97 -0
- data/lib/sirena/parser/mindmap.rb +106 -0
- data/lib/sirena/parser/packet.rb +76 -0
- data/lib/sirena/parser/pie.rb +49 -0
- data/lib/sirena/parser/quadrant.rb +57 -0
- data/lib/sirena/parser/radar.rb +104 -0
- data/lib/sirena/parser/requirement.rb +70 -0
- data/lib/sirena/parser/sankey.rb +64 -0
- data/lib/sirena/parser/sequence.rb +51 -0
- data/lib/sirena/parser/state_diagram.rb +69 -0
- data/lib/sirena/parser/timeline.rb +57 -0
- data/lib/sirena/parser/transforms/architecture.rb +97 -0
- data/lib/sirena/parser/transforms/block.rb +254 -0
- data/lib/sirena/parser/transforms/c4.rb +347 -0
- data/lib/sirena/parser/transforms/class_diagram.rb +352 -0
- data/lib/sirena/parser/transforms/er_diagram.rb +169 -0
- data/lib/sirena/parser/transforms/error.rb +58 -0
- data/lib/sirena/parser/transforms/flowchart.rb +293 -0
- data/lib/sirena/parser/transforms/gantt.rb +215 -0
- data/lib/sirena/parser/transforms/git_graph.rb +160 -0
- data/lib/sirena/parser/transforms/info.rb +58 -0
- data/lib/sirena/parser/transforms/kanban.rb +176 -0
- data/lib/sirena/parser/transforms/mindmap.rb +227 -0
- data/lib/sirena/parser/transforms/packet.rb +63 -0
- data/lib/sirena/parser/transforms/pie.rb +143 -0
- data/lib/sirena/parser/transforms/quadrant.rb +177 -0
- data/lib/sirena/parser/transforms/radar.rb +126 -0
- data/lib/sirena/parser/transforms/requirement.rb +272 -0
- data/lib/sirena/parser/transforms/sankey.rb +122 -0
- data/lib/sirena/parser/transforms/sequence.rb +342 -0
- data/lib/sirena/parser/transforms/state_diagram.rb +292 -0
- data/lib/sirena/parser/transforms/timeline.rb +177 -0
- data/lib/sirena/parser/transforms/treemap.rb +81 -0
- data/lib/sirena/parser/transforms/xy_chart.rb +132 -0
- data/lib/sirena/parser/treemap.rb +98 -0
- data/lib/sirena/parser/user_journey.rb +120 -0
- data/lib/sirena/parser/xy_chart.rb +114 -0
- data/lib/sirena/parser.rb +8 -0
- data/lib/sirena/renderer/architecture.rb +251 -0
- data/lib/sirena/renderer/base.rb +251 -0
- data/lib/sirena/renderer/block.rb +286 -0
- data/lib/sirena/renderer/c4.rb +490 -0
- data/lib/sirena/renderer/class_diagram.rb +499 -0
- data/lib/sirena/renderer/er_diagram.rb +417 -0
- data/lib/sirena/renderer/error.rb +131 -0
- data/lib/sirena/renderer/flowchart.rb +301 -0
- data/lib/sirena/renderer/gantt.rb +331 -0
- data/lib/sirena/renderer/git_graph.rb +368 -0
- data/lib/sirena/renderer/info.rb +93 -0
- data/lib/sirena/renderer/kanban.rb +295 -0
- data/lib/sirena/renderer/mindmap.rb +396 -0
- data/lib/sirena/renderer/packet.rb +239 -0
- data/lib/sirena/renderer/pie.rb +235 -0
- data/lib/sirena/renderer/quadrant.rb +292 -0
- data/lib/sirena/renderer/radar.rb +323 -0
- data/lib/sirena/renderer/requirement.rb +371 -0
- data/lib/sirena/renderer/sankey.rb +255 -0
- data/lib/sirena/renderer/sequence.rb +424 -0
- data/lib/sirena/renderer/state_diagram.rb +328 -0
- data/lib/sirena/renderer/timeline.rb +304 -0
- data/lib/sirena/renderer/treemap.rb +152 -0
- data/lib/sirena/renderer/user_journey.rb +331 -0
- data/lib/sirena/renderer/xy_chart.rb +452 -0
- data/lib/sirena/renderer.rb +8 -0
- data/lib/sirena/svg/circle.rb +41 -0
- data/lib/sirena/svg/document.rb +103 -0
- data/lib/sirena/svg/element.rb +65 -0
- data/lib/sirena/svg/ellipse.rb +33 -0
- data/lib/sirena/svg/group.rb +71 -0
- data/lib/sirena/svg/line.rb +49 -0
- data/lib/sirena/svg/path.rb +76 -0
- data/lib/sirena/svg/polygon.rb +43 -0
- data/lib/sirena/svg/polyline.rb +35 -0
- data/lib/sirena/svg/rect.rb +57 -0
- data/lib/sirena/svg/style.rb +44 -0
- data/lib/sirena/svg/text.rb +72 -0
- data/lib/sirena/svg.rb +19 -0
- data/lib/sirena/text_measurement.rb +71 -0
- data/lib/sirena/theme/builtin/dark.yml +70 -0
- data/lib/sirena/theme/builtin/default.yml +80 -0
- data/lib/sirena/theme/builtin/high_contrast.yml +70 -0
- data/lib/sirena/theme/builtin/light.yml +70 -0
- data/lib/sirena/theme/color_palette.rb +48 -0
- data/lib/sirena/theme/effect_styles.rb +28 -0
- data/lib/sirena/theme/registry.rb +41 -0
- data/lib/sirena/theme/shape_styles.rb +28 -0
- data/lib/sirena/theme/spacing_config.rb +24 -0
- data/lib/sirena/theme/typography.rb +30 -0
- data/lib/sirena/theme.rb +69 -0
- data/lib/sirena/transform/architecture.rb +273 -0
- data/lib/sirena/transform/base.rb +199 -0
- data/lib/sirena/transform/block.rb +215 -0
- data/lib/sirena/transform/c4.rb +288 -0
- data/lib/sirena/transform/class_diagram.rb +296 -0
- data/lib/sirena/transform/er_diagram.rb +204 -0
- data/lib/sirena/transform/error.rb +39 -0
- data/lib/sirena/transform/flowchart.rb +161 -0
- data/lib/sirena/transform/gantt.rb +253 -0
- data/lib/sirena/transform/git_graph.rb +283 -0
- data/lib/sirena/transform/info.rb +39 -0
- data/lib/sirena/transform/kanban.rb +180 -0
- data/lib/sirena/transform/mindmap.rb +251 -0
- data/lib/sirena/transform/packet.rb +185 -0
- data/lib/sirena/transform/pie.rb +62 -0
- data/lib/sirena/transform/quadrant.rb +167 -0
- data/lib/sirena/transform/radar.rb +227 -0
- data/lib/sirena/transform/requirement.rb +233 -0
- data/lib/sirena/transform/sankey.rb +212 -0
- data/lib/sirena/transform/sequence.rb +143 -0
- data/lib/sirena/transform/state_diagram.rb +228 -0
- data/lib/sirena/transform/timeline.rb +139 -0
- data/lib/sirena/transform/treemap.rb +120 -0
- data/lib/sirena/transform/user_journey.rb +207 -0
- data/lib/sirena/transform/xy_chart.rb +273 -0
- data/lib/sirena/transform.rb +8 -0
- data/lib/sirena/version.rb +5 -0
- data/lib/sirena.rb +328 -0
- data/lib/tasks/benchmark.rake +532 -0
- data/lib/tasks/examples.rake +468 -0
- data/lib/tasks/generate_mermaid_fixtures.rake +363 -0
- data/lib/tasks/mermaid_fixtures.rake +46 -0
- data/scripts/extract_mermaid_tests.rb +493 -0
- data/scripts/rename_to_sirena.rb +73 -0
- data/sirena.gemspec +47 -0
- metadata +529 -0
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
= Requirement Diagram Examples
|
|
2
|
+
|
|
3
|
+
== Purpose
|
|
4
|
+
|
|
5
|
+
Requirement diagrams model requirements, their relationships, and associated elements like risks and tests, commonly used in systems engineering.
|
|
6
|
+
|
|
7
|
+
== When to Use
|
|
8
|
+
|
|
9
|
+
* Requirements engineering
|
|
10
|
+
* System specification documentation
|
|
11
|
+
* Traceability matrices
|
|
12
|
+
* Risk assessment
|
|
13
|
+
* Verification planning
|
|
14
|
+
|
|
15
|
+
== Syntax Overview
|
|
16
|
+
|
|
17
|
+
[source,mermaid]
|
|
18
|
+
----
|
|
19
|
+
requirementDiagram
|
|
20
|
+
requirement req1 {
|
|
21
|
+
id: 1
|
|
22
|
+
text: Requirement text
|
|
23
|
+
risk: high
|
|
24
|
+
verifymethod: test
|
|
25
|
+
}
|
|
26
|
+
element element1 {
|
|
27
|
+
type: system
|
|
28
|
+
}
|
|
29
|
+
req1 - satisfies -> element1
|
|
30
|
+
----
|
|
31
|
+
|
|
32
|
+
== Examples
|
|
33
|
+
|
|
34
|
+
=== 01: Basic Requirements
|
|
35
|
+
|
|
36
|
+
Demonstrates basic requirement definitions with relationships.
|
|
37
|
+
|
|
38
|
+
**File**: link:01-basic-requirements.mmd[01-basic-requirements.mmd]
|
|
39
|
+
|
|
40
|
+
[source,mermaid]
|
|
41
|
+
----
|
|
42
|
+
include::01-basic-requirements.mmd[]
|
|
43
|
+
----
|
|
44
|
+
|
|
45
|
+
image::01-basic-requirements.svg[]
|
|
46
|
+
|
|
47
|
+
=== 02: Risk Levels
|
|
48
|
+
|
|
49
|
+
Showcases requirements with different risk levels and verification methods.
|
|
50
|
+
|
|
51
|
+
**File**: link:02-risk-levels.mmd[02-risk-levels.mmd]
|
|
52
|
+
|
|
53
|
+
[source,mermaid]
|
|
54
|
+
----
|
|
55
|
+
include::02-risk-levels.mmd[]
|
|
56
|
+
----
|
|
57
|
+
|
|
58
|
+
image::02-risk-levels.svg[]
|
|
59
|
+
|
|
60
|
+
== Features Demonstrated
|
|
61
|
+
|
|
62
|
+
[%header,cols="1,1"]
|
|
63
|
+
|===
|
|
64
|
+
| Feature | Example
|
|
65
|
+
|
|
66
|
+
| Requirement definition
|
|
67
|
+
| 01, 02
|
|
68
|
+
|
|
69
|
+
| Risk levels
|
|
70
|
+
| 02
|
|
71
|
+
|
|
72
|
+
| Verification methods
|
|
73
|
+
| 01, 02
|
|
74
|
+
|
|
75
|
+
| Element relationships
|
|
76
|
+
| 01, 02
|
|
77
|
+
|
|
78
|
+
| Traceability links
|
|
79
|
+
| 01, 02
|
|
80
|
+
|===
|
|
81
|
+
|
|
82
|
+
== Additional Resources
|
|
83
|
+
|
|
84
|
+
* link:../../README.adoc[Main Documentation]
|
|
85
|
+
* https://mermaid.js.org/syntax/requirementDiagram.html[Mermaid Requirement Diagram Documentation]
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<svg
|
|
2
|
+
width="546.0"
|
|
3
|
+
height="410.0"
|
|
4
|
+
viewBox="0 0 546 410"
|
|
5
|
+
version="1.2"
|
|
6
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
7
|
+
>
|
|
8
|
+
<path fill="#4472C4" stroke="none" opacity="0.4" d="M 95 95.0 C 152.5 95.0, 152.5 95.0, 210 95.0 L 210 145.0 C 152.5 145.0, 152.5 145.0, 95 145.0 Z"/>
|
|
9
|
+
<text fill="#000000" x="152.5" y="120.0" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="12.0">100</text>
|
|
10
|
+
<path fill="#ED7D31" stroke="none" opacity="0.4" d="M 95 107.0 C 152.5 107.0, 152.5 177.0, 210 177.0 L 210 203.0 C 152.5 203.0, 152.5 133.0, 95 133.0 Z"/>
|
|
11
|
+
<text fill="#000000" x="152.5" y="155.0" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="12.0">50</text>
|
|
12
|
+
<path fill="#A5A5A5" stroke="none" opacity="0.4" d="M 250 104.5 C 305.0 104.5, 305.0 104.5, 360 104.5 L 360 135.5 C 305.0 135.5, 305.0 135.5, 250 135.5 Z"/>
|
|
13
|
+
<text fill="#000000" x="305.0" y="120.0" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="12.0">60</text>
|
|
14
|
+
<path fill="#FFC000" stroke="none" opacity="0.4" d="M 250 109.5 C 305.0 109.5, 305.0 179.5, 360 179.5 L 360 200.5 C 305.0 200.5, 305.0 130.5, 250 130.5 Z"/>
|
|
15
|
+
<text fill="#000000" x="305.0" y="155.0" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="12.0">40</text>
|
|
16
|
+
<path fill="#5B9BD5" stroke="none" opacity="0.4" d="M 240 180.5 C 300.0 180.5, 300.0 250.5, 360 250.5 L 360 269.5 C 300.0 269.5, 300.0 199.5, 240 199.5 Z"/>
|
|
17
|
+
<text fill="#000000" x="300.0" y="225.0" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="12.0">35</text>
|
|
18
|
+
<path fill="#70AD47" stroke="none" opacity="0.4" d="M 240 185.5 C 300.0 185.5, 300.0 325.5, 360 325.5 L 360 334.5 C 300.0 334.5, 300.0 194.5, 240 194.5 Z"/>
|
|
19
|
+
<text fill="#000000" x="300.0" y="260.0" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="12.0">15</text>
|
|
20
|
+
<rect fill="#ffffff" stroke="#000000" stroke-width="2" x="60.0" y="100.0" width="35.0" height="40.0" rx="3.0" ry="3.0"/>
|
|
21
|
+
<text fill="#FFFFFF" x="77.0" y="125.0" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="12.0" font-weight="bold">Engineering</text>
|
|
22
|
+
<rect fill="#ffffff" stroke="#000000" stroke-width="2" x="210.0" y="100.0" width="40.0" height="40.0" rx="3.0" ry="3.0"/>
|
|
23
|
+
<text fill="#FFFFFF" x="230.0" y="125.0" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="12.0" font-weight="bold">Development</text>
|
|
24
|
+
<rect fill="#ffffff" stroke="#000000" stroke-width="2" x="210.0" y="170.0" width="30.0" height="40.0" rx="3.0" ry="3.0"/>
|
|
25
|
+
<text fill="#FFFFFF" x="225.0" y="195.0" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="12.0" font-weight="bold">Testing</text>
|
|
26
|
+
<rect fill="#ffffff" stroke="#000000" stroke-width="2" x="360.0" y="100.0" width="26.0" height="40.0" rx="3.0" ry="3.0"/>
|
|
27
|
+
<text fill="#FFFFFF" x="373.0" y="125.0" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="12.0" font-weight="bold">Frontend</text>
|
|
28
|
+
<rect fill="#ffffff" stroke="#000000" stroke-width="2" x="360.0" y="170.0" width="24.0" height="40.0" rx="3.0" ry="3.0"/>
|
|
29
|
+
<text fill="#FFFFFF" x="372.0" y="195.0" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="12.0" font-weight="bold">Backend</text>
|
|
30
|
+
<rect fill="#ffffff" stroke="#000000" stroke-width="2" x="360.0" y="240.0" width="24.0" height="40.0" rx="3.0" ry="3.0"/>
|
|
31
|
+
<text fill="#FFFFFF" x="372.0" y="265.0" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="12.0" font-weight="bold">QA</text>
|
|
32
|
+
<rect fill="#ffffff" stroke="#000000" stroke-width="2" x="360.0" y="310.0" width="22.0" height="40.0" rx="3.0" ry="3.0"/>
|
|
33
|
+
<text fill="#FFFFFF" x="371.0" y="335.0" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="12.0" font-weight="bold">UAT</text>
|
|
34
|
+
</svg>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
sankey-beta
|
|
2
|
+
Oil,Transportation,200
|
|
3
|
+
Oil,Industry,100
|
|
4
|
+
Oil,Residential,50
|
|
5
|
+
NaturalGas,PowerGeneration,120
|
|
6
|
+
NaturalGas,Industry,50
|
|
7
|
+
NaturalGas,Residential,30
|
|
8
|
+
Coal,PowerGeneration,100
|
|
9
|
+
Coal,Industry,50
|
|
10
|
+
Renewable,PowerGeneration,80
|
|
11
|
+
Renewable,Residential,20
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
<svg
|
|
2
|
+
width="405.0"
|
|
3
|
+
height="410.0"
|
|
4
|
+
viewBox="0 0 405 410"
|
|
5
|
+
version="1.2"
|
|
6
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
7
|
+
>
|
|
8
|
+
<path fill="#4472C4" stroke="none" opacity="0.4" d="M 98 95.0 C 154.0 95.0, 154.0 165.0, 210 165.0 L 210 215.0 C 154.0 215.0, 154.0 145.0, 98 145.0 Z"/>
|
|
9
|
+
<text fill="#000000" x="154.0" y="155.0" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="12.0">200</text>
|
|
10
|
+
<path fill="#ED7D31" stroke="none" opacity="0.4" d="M 98 107.0 C 154.0 107.0, 154.0 247.0, 210 247.0 L 210 273.0 C 154.0 273.0, 154.0 133.0, 98 133.0 Z"/>
|
|
11
|
+
<text fill="#000000" x="154.0" y="190.0" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="12.0">100</text>
|
|
12
|
+
<path fill="#A5A5A5" stroke="none" opacity="0.4" d="M 98 113.0 C 154.0 113.0, 154.0 323.0, 210 323.0 L 210 337.0 C 154.0 337.0, 154.0 127.0, 98 127.0 Z"/>
|
|
13
|
+
<text fill="#000000" x="154.0" y="225.0" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="12.0">50</text>
|
|
14
|
+
<path fill="#FFC000" stroke="none" opacity="0.4" d="M 90 174.5 C 150.0 174.5, 150.0 104.5, 210 104.5 L 210 135.5 C 150.0 135.5, 150.0 205.5, 90 205.5 Z"/>
|
|
15
|
+
<text fill="#000000" x="150.0" y="155.0" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="12.0">120</text>
|
|
16
|
+
<path fill="#5B9BD5" stroke="none" opacity="0.4" d="M 90 183.0 C 150.0 183.0, 150.0 253.0, 210 253.0 L 210 267.0 C 150.0 267.0, 150.0 197.0, 90 197.0 Z"/>
|
|
17
|
+
<text fill="#000000" x="150.0" y="225.0" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="12.0">50</text>
|
|
18
|
+
<path fill="#70AD47" stroke="none" opacity="0.4" d="M 90 185.5 C 150.0 185.5, 150.0 325.5, 210 325.5 L 210 334.5 C 150.0 334.5, 150.0 194.5, 90 194.5 Z"/>
|
|
19
|
+
<text fill="#000000" x="150.0" y="260.0" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="12.0">30</text>
|
|
20
|
+
<path fill="#C00000" stroke="none" opacity="0.4" d="M 88 247.0 C 149.0 247.0, 149.0 107.0, 210 107.0 L 210 133.0 C 149.0 133.0, 149.0 273.0, 88 273.0 Z"/>
|
|
21
|
+
<text fill="#000000" x="149.0" y="190.0" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="12.0">100</text>
|
|
22
|
+
<path fill="#7030A0" stroke="none" opacity="0.4" d="M 88 253.0 C 149.0 253.0, 149.0 253.0, 210 253.0 L 210 267.0 C 149.0 267.0, 149.0 267.0, 88 267.0 Z"/>
|
|
23
|
+
<text fill="#000000" x="149.0" y="260.0" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="12.0">50</text>
|
|
24
|
+
<path fill="#4472C4" stroke="none" opacity="0.4" d="M 85 319.5 C 147.5 319.5, 147.5 109.5, 210 109.5 L 210 130.5 C 147.5 130.5, 147.5 340.5, 85 340.5 Z"/>
|
|
25
|
+
<text fill="#000000" x="147.5" y="225.0" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="12.0">80</text>
|
|
26
|
+
<path fill="#ED7D31" stroke="none" opacity="0.4" d="M 85 326.5 C 147.5 326.5, 147.5 326.5, 210 326.5 L 210 333.5 C 147.5 333.5, 147.5 333.5, 85 333.5 Z"/>
|
|
27
|
+
<text fill="#000000" x="147.5" y="330.0" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="12.0">20</text>
|
|
28
|
+
<rect fill="#ffffff" stroke="#000000" stroke-width="2" x="60.0" y="100.0" width="38.0" height="40.0" rx="3.0" ry="3.0"/>
|
|
29
|
+
<text fill="#FFFFFF" x="79.0" y="125.0" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="12.0" font-weight="bold">Oil</text>
|
|
30
|
+
<rect fill="#ffffff" stroke="#000000" stroke-width="2" x="210.0" y="170.0" width="30.0" height="40.0" rx="3.0" ry="3.0"/>
|
|
31
|
+
<text fill="#FFFFFF" x="225.0" y="195.0" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="12.0" font-weight="bold">Transportation</text>
|
|
32
|
+
<rect fill="#ffffff" stroke="#000000" stroke-width="2" x="210.0" y="240.0" width="30.0" height="40.0" rx="3.0" ry="3.0"/>
|
|
33
|
+
<text fill="#FFFFFF" x="225.0" y="265.0" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="12.0" font-weight="bold">Industry</text>
|
|
34
|
+
<rect fill="#ffffff" stroke="#000000" stroke-width="2" x="210.0" y="310.0" width="25.0" height="40.0" rx="3.0" ry="3.0"/>
|
|
35
|
+
<text fill="#FFFFFF" x="222.0" y="335.0" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="12.0" font-weight="bold">Residential</text>
|
|
36
|
+
<rect fill="#ffffff" stroke="#000000" stroke-width="2" x="60.0" y="170.0" width="30.0" height="40.0" rx="3.0" ry="3.0"/>
|
|
37
|
+
<text fill="#FFFFFF" x="75.0" y="195.0" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="12.0" font-weight="bold">NaturalGas</text>
|
|
38
|
+
<rect fill="#ffffff" stroke="#000000" stroke-width="2" x="210.0" y="100.0" width="35.0" height="40.0" rx="3.0" ry="3.0"/>
|
|
39
|
+
<text fill="#FFFFFF" x="227.0" y="125.0" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="12.0" font-weight="bold">PowerGeneration</text>
|
|
40
|
+
<rect fill="#ffffff" stroke="#000000" stroke-width="2" x="60.0" y="240.0" width="28.0" height="40.0" rx="3.0" ry="3.0"/>
|
|
41
|
+
<text fill="#FFFFFF" x="74.0" y="265.0" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="12.0" font-weight="bold">Coal</text>
|
|
42
|
+
<rect fill="#ffffff" stroke="#000000" stroke-width="2" x="60.0" y="310.0" width="25.0" height="40.0" rx="3.0" ry="3.0"/>
|
|
43
|
+
<text fill="#FFFFFF" x="72.0" y="335.0" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="12.0" font-weight="bold">Renewable</text>
|
|
44
|
+
</svg>
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
= Sankey Diagram Examples
|
|
2
|
+
|
|
3
|
+
== Purpose
|
|
4
|
+
|
|
5
|
+
Sankey diagrams visualize flow quantities between nodes, showing how values split and combine through a system.
|
|
6
|
+
|
|
7
|
+
== When to Use
|
|
8
|
+
|
|
9
|
+
* Energy flow visualization
|
|
10
|
+
* Resource allocation tracking
|
|
11
|
+
* Material flow analysis
|
|
12
|
+
* Budget distribution
|
|
13
|
+
* Process flow quantification
|
|
14
|
+
|
|
15
|
+
== Syntax Overview
|
|
16
|
+
|
|
17
|
+
[source,mermaid]
|
|
18
|
+
----
|
|
19
|
+
sankey-beta
|
|
20
|
+
Source,Target,100
|
|
21
|
+
Source,Another,50
|
|
22
|
+
----
|
|
23
|
+
|
|
24
|
+
== Examples
|
|
25
|
+
|
|
26
|
+
=== 01: Simple Flow
|
|
27
|
+
|
|
28
|
+
Demonstrates basic sankey diagram with flow relationships.
|
|
29
|
+
|
|
30
|
+
**File**: link:01-simple-flow.mmd[01-simple-flow.mmd]
|
|
31
|
+
|
|
32
|
+
[source,mermaid]
|
|
33
|
+
----
|
|
34
|
+
include::01-simple-flow.mmd[]
|
|
35
|
+
----
|
|
36
|
+
|
|
37
|
+
image::01-simple-flow.svg[]
|
|
38
|
+
|
|
39
|
+
=== 02: Multi-Stage
|
|
40
|
+
|
|
41
|
+
Showcases complex multi-stage flow diagram.
|
|
42
|
+
|
|
43
|
+
**File**: link:02-multi-stage.mmd[02-multi-stage.mmd]
|
|
44
|
+
|
|
45
|
+
[source,mermaid]
|
|
46
|
+
----
|
|
47
|
+
include::02-multi-stage.mmd[]
|
|
48
|
+
----
|
|
49
|
+
|
|
50
|
+
image::02-multi-stage.svg[]
|
|
51
|
+
|
|
52
|
+
== Features Demonstrated
|
|
53
|
+
|
|
54
|
+
[%header,cols="1,1"]
|
|
55
|
+
|===
|
|
56
|
+
| Feature | Example
|
|
57
|
+
|
|
58
|
+
| Basic flows
|
|
59
|
+
| 01, 02
|
|
60
|
+
|
|
61
|
+
| Flow quantities
|
|
62
|
+
| 01, 02
|
|
63
|
+
|
|
64
|
+
| Multi-stage flows
|
|
65
|
+
| 02
|
|
66
|
+
|
|
67
|
+
| Node relationships
|
|
68
|
+
| 01, 02
|
|
69
|
+
|===
|
|
70
|
+
|
|
71
|
+
== Additional Resources
|
|
72
|
+
|
|
73
|
+
* link:../../README.adoc[Main Documentation]
|
|
74
|
+
* https://mermaid.js.org/syntax/sankey.html[Mermaid Sankey Documentation]
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
sequenceDiagram
|
|
2
|
+
participant User
|
|
3
|
+
participant WebApp
|
|
4
|
+
participant API
|
|
5
|
+
participant Database
|
|
6
|
+
participant Cache
|
|
7
|
+
|
|
8
|
+
User->>+WebApp: Request Product Page
|
|
9
|
+
WebApp->>+Cache: Check Cache
|
|
10
|
+
Cache-->>-WebApp: Cache Miss
|
|
11
|
+
|
|
12
|
+
WebApp->>+API: GET /api/product/123
|
|
13
|
+
API->>+Database: SELECT * FROM products WHERE id=123
|
|
14
|
+
Database-->>-API: Product Data
|
|
15
|
+
API-->>-WebApp: JSON Response
|
|
16
|
+
|
|
17
|
+
WebApp->>+Cache: Store in Cache
|
|
18
|
+
Cache-->>-WebApp: Cached
|
|
19
|
+
|
|
20
|
+
WebApp-->>-User: Render Product Page
|
|
21
|
+
|
|
22
|
+
Note over User,Cache: Subsequent request will hit cache
|
|
23
|
+
|
|
24
|
+
User->>+WebApp: Refresh Page
|
|
25
|
+
WebApp->>+Cache: Check Cache
|
|
26
|
+
Cache-->>-WebApp: Cache Hit
|
|
27
|
+
WebApp-->>-User: Render Product Page (Fast)
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg width="400" height="200" viewBox="0 0 400 200" version="1.2" xmlns="http://www.w3.org/2000/svg">
|
|
3
|
+
<rect x="50" y="50" width="300" height="100" fill="#f0f0f0" stroke="#000000" stroke-width="2"/>
|
|
4
|
+
<text x="200" y="100" text-anchor="middle" font-family="Arial, sans-serif" font-size="14" fill="#000000">Sequence Diagram (parser needs fixes)</text>
|
|
5
|
+
</svg>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
sequenceDiagram
|
|
2
|
+
participant Client
|
|
3
|
+
participant Server
|
|
4
|
+
participant Database
|
|
5
|
+
participant Cache
|
|
6
|
+
|
|
7
|
+
Client->>+Server: Request data
|
|
8
|
+
Server->>+Database: Query data
|
|
9
|
+
Database-->>-Server: Return results
|
|
10
|
+
Server->>+Cache: Store in cache
|
|
11
|
+
Cache-->>-Server: Cached
|
|
12
|
+
Server-->>-Client: Response
|
|
13
|
+
|
|
14
|
+
Client->>+Server: Request same data
|
|
15
|
+
Server->>+Cache: Check cache
|
|
16
|
+
Cache-->>-Server: Cache hit
|
|
17
|
+
Server-->>-Client: Fast response
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
<svg
|
|
2
|
+
width="680.0"
|
|
3
|
+
height="820.0"
|
|
4
|
+
viewBox="0 0 680 820"
|
|
5
|
+
version="1.2"
|
|
6
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
7
|
+
>
|
|
8
|
+
<line stroke="#000000" stroke-width="1" x1="80.0" y1="60.0" x2="80.0" y2="760.0" stroke-dasharray="5,5"/>
|
|
9
|
+
<line stroke="#000000" stroke-width="1" x1="220.0" y1="60.0" x2="220.0" y2="760.0" stroke-dasharray="5,5"/>
|
|
10
|
+
<line stroke="#000000" stroke-width="1" x1="360.0" y1="60.0" x2="360.0" y2="760.0" stroke-dasharray="5,5"/>
|
|
11
|
+
<line stroke="#000000" stroke-width="1" x1="500.0" y1="60.0" x2="500.0" y2="760.0" stroke-dasharray="5,5"/>
|
|
12
|
+
<g id="message-0">
|
|
13
|
+
<line stroke="#000000" stroke-width="2" x1="80.0" y1="120.0" x2="212.0" y2="120.0"/>
|
|
14
|
+
<polygon fill="#000000" stroke="#000000" points="220,120 212,116 212,124"/>
|
|
15
|
+
<text fill="#000000" x="150.0" y="110.0" text-anchor="middle" font-family="Arial, sans-serif" font-size="12">Request data</text>
|
|
16
|
+
</g>
|
|
17
|
+
<g id="message-1">
|
|
18
|
+
<line stroke="#000000" stroke-width="2" x1="220.0" y1="180.0" x2="352.0" y2="180.0"/>
|
|
19
|
+
<polygon fill="#000000" stroke="#000000" points="360,180 352,176 352,184"/>
|
|
20
|
+
<text fill="#000000" x="290.0" y="170.0" text-anchor="middle" font-family="Arial, sans-serif" font-size="12">Query data</text>
|
|
21
|
+
</g>
|
|
22
|
+
<g id="message-2">
|
|
23
|
+
<line stroke="#000000" stroke-width="2" x1="360.0" y1="240.0" x2="212.0" y2="240.0" stroke-dasharray="5,5"/>
|
|
24
|
+
<polygon fill="#000000" stroke="#000000" points="220,240 228,236 228,244"/>
|
|
25
|
+
<text fill="#000000" x="290.0" y="230.0" text-anchor="middle" font-family="Arial, sans-serif" font-size="12">Return results</text>
|
|
26
|
+
</g>
|
|
27
|
+
<g id="message-3">
|
|
28
|
+
<line stroke="#000000" stroke-width="2" x1="220.0" y1="300.0" x2="492.0" y2="300.0"/>
|
|
29
|
+
<polygon fill="#000000" stroke="#000000" points="500,300 492,296 492,304"/>
|
|
30
|
+
<text fill="#000000" x="360.0" y="290.0" text-anchor="middle" font-family="Arial, sans-serif" font-size="12">Store in cache</text>
|
|
31
|
+
</g>
|
|
32
|
+
<g id="message-4">
|
|
33
|
+
<line stroke="#000000" stroke-width="2" x1="500.0" y1="360.0" x2="212.0" y2="360.0" stroke-dasharray="5,5"/>
|
|
34
|
+
<polygon fill="#000000" stroke="#000000" points="220,360 228,356 228,364"/>
|
|
35
|
+
<text fill="#000000" x="360.0" y="350.0" text-anchor="middle" font-family="Arial, sans-serif" font-size="12">Cached</text>
|
|
36
|
+
</g>
|
|
37
|
+
<g id="message-5">
|
|
38
|
+
<line stroke="#000000" stroke-width="2" x1="220.0" y1="420.0" x2="72.0" y2="420.0" stroke-dasharray="5,5"/>
|
|
39
|
+
<polygon fill="#000000" stroke="#000000" points="80,420 88,416 88,424"/>
|
|
40
|
+
<text fill="#000000" x="150.0" y="410.0" text-anchor="middle" font-family="Arial, sans-serif" font-size="12">Response</text>
|
|
41
|
+
</g>
|
|
42
|
+
<g id="message-6">
|
|
43
|
+
<line stroke="#000000" stroke-width="2" x1="80.0" y1="480.0" x2="212.0" y2="480.0"/>
|
|
44
|
+
<polygon fill="#000000" stroke="#000000" points="220,480 212,476 212,484"/>
|
|
45
|
+
<text fill="#000000" x="150.0" y="470.0" text-anchor="middle" font-family="Arial, sans-serif" font-size="12">Request same data</text>
|
|
46
|
+
</g>
|
|
47
|
+
<g id="message-7">
|
|
48
|
+
<line stroke="#000000" stroke-width="2" x1="220.0" y1="540.0" x2="492.0" y2="540.0"/>
|
|
49
|
+
<polygon fill="#000000" stroke="#000000" points="500,540 492,536 492,544"/>
|
|
50
|
+
<text fill="#000000" x="360.0" y="530.0" text-anchor="middle" font-family="Arial, sans-serif" font-size="12">Check cache</text>
|
|
51
|
+
</g>
|
|
52
|
+
<g id="message-8">
|
|
53
|
+
<line stroke="#000000" stroke-width="2" x1="500.0" y1="600.0" x2="212.0" y2="600.0" stroke-dasharray="5,5"/>
|
|
54
|
+
<polygon fill="#000000" stroke="#000000" points="220,600 228,596 228,604"/>
|
|
55
|
+
<text fill="#000000" x="360.0" y="590.0" text-anchor="middle" font-family="Arial, sans-serif" font-size="12">Cache hit</text>
|
|
56
|
+
</g>
|
|
57
|
+
<g id="message-9">
|
|
58
|
+
<line stroke="#000000" stroke-width="2" x1="220.0" y1="660.0" x2="72.0" y2="660.0" stroke-dasharray="5,5"/>
|
|
59
|
+
<polygon fill="#000000" stroke="#000000" points="80,660 88,656 88,664"/>
|
|
60
|
+
<text fill="#000000" x="150.0" y="650.0" text-anchor="middle" font-family="Arial, sans-serif" font-size="12">Fast response</text>
|
|
61
|
+
</g>
|
|
62
|
+
<g id="participant-Client">
|
|
63
|
+
<rect fill="#ffffff" stroke="#000000" stroke-width="2" x="20.0" y="20.0" width="120.0" height="40.0" rx="5.0" ry="5.0"/>
|
|
64
|
+
<text fill="#000000" x="80.0" y="40.0" text-anchor="middle" font-family="Arial, sans-serif" font-size="14" dominant-baseline="middle">Client</text>
|
|
65
|
+
</g>
|
|
66
|
+
<g id="participant-Server">
|
|
67
|
+
<rect fill="#ffffff" stroke="#000000" stroke-width="2" x="160.0" y="20.0" width="120.0" height="40.0" rx="5.0" ry="5.0"/>
|
|
68
|
+
<text fill="#000000" x="220.0" y="40.0" text-anchor="middle" font-family="Arial, sans-serif" font-size="14" dominant-baseline="middle">Server</text>
|
|
69
|
+
</g>
|
|
70
|
+
<g id="participant-Database">
|
|
71
|
+
<rect fill="#ffffff" stroke="#000000" stroke-width="2" x="300.0" y="20.0" width="120.0" height="40.0" rx="5.0" ry="5.0"/>
|
|
72
|
+
<text fill="#000000" x="360.0" y="40.0" text-anchor="middle" font-family="Arial, sans-serif" font-size="14" dominant-baseline="middle">Database</text>
|
|
73
|
+
</g>
|
|
74
|
+
<g id="participant-Cache">
|
|
75
|
+
<rect fill="#ffffff" stroke="#000000" stroke-width="2" x="440.0" y="20.0" width="120.0" height="40.0" rx="5.0" ry="5.0"/>
|
|
76
|
+
<text fill="#000000" x="500.0" y="40.0" text-anchor="middle" font-family="Arial, sans-serif" font-size="14" dominant-baseline="middle">Cache</text>
|
|
77
|
+
</g>
|
|
78
|
+
</svg>
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
= Sequence Diagram Examples
|
|
2
|
+
|
|
3
|
+
== Purpose
|
|
4
|
+
|
|
5
|
+
Sequence diagrams visualize interactions between objects or components over time, showing the order of messages exchanged in a particular scenario. They are essential for documenting API workflows, system interactions, and communication protocols.
|
|
6
|
+
|
|
7
|
+
== When to Use
|
|
8
|
+
|
|
9
|
+
* API request/response flows and service interactions
|
|
10
|
+
* Authentication and authorization sequences
|
|
11
|
+
* Asynchronous message exchanges and event processing
|
|
12
|
+
* Transaction workflows and state changes
|
|
13
|
+
* System integration scenarios and data flows
|
|
14
|
+
|
|
15
|
+
== Syntax Overview
|
|
16
|
+
|
|
17
|
+
[source,mermaid]
|
|
18
|
+
----
|
|
19
|
+
sequenceDiagram
|
|
20
|
+
participant Alice
|
|
21
|
+
participant Bob
|
|
22
|
+
|
|
23
|
+
Alice->>Bob: Hello Bob
|
|
24
|
+
Bob-->>Alice: Hi Alice
|
|
25
|
+
|
|
26
|
+
Note over Alice,Bob: Conversation
|
|
27
|
+
----
|
|
28
|
+
|
|
29
|
+
**Participants**: Define entities using `participant Name`
|
|
30
|
+
|
|
31
|
+
**Message Types**:
|
|
32
|
+
- `->>` - Solid arrow
|
|
33
|
+
- `-->>` - Dotted arrow (response)
|
|
34
|
+
- `->>+` - Activate lifeline
|
|
35
|
+
- `-->>-` - Deactivate lifeline
|
|
36
|
+
|
|
37
|
+
**Additional Elements**:
|
|
38
|
+
- `Note over A,B: Text` - Add notes
|
|
39
|
+
- `loop` - Repeating sequences
|
|
40
|
+
- `alt`/`else` - Conditional flows
|
|
41
|
+
- `par` - Parallel execution
|
|
42
|
+
|
|
43
|
+
== Examples
|
|
44
|
+
|
|
45
|
+
=== 01: Basic Sequence
|
|
46
|
+
|
|
47
|
+
Demonstrates a complete request/response flow with caching, showing participant interactions and activation/deactivation of lifelines.
|
|
48
|
+
|
|
49
|
+
**File**: link:01-basic-sequence.mmd[01-basic-sequence.mmd]
|
|
50
|
+
|
|
51
|
+
[source,mermaid]
|
|
52
|
+
----
|
|
53
|
+
include::01-basic-sequence.mmd[]
|
|
54
|
+
----
|
|
55
|
+
|
|
56
|
+
image::01-basic-sequence.svg[]
|
|
57
|
+
|
|
58
|
+
== Features Demonstrated
|
|
59
|
+
|
|
60
|
+
[%header,cols="1,1"]
|
|
61
|
+
|===
|
|
62
|
+
| Feature | Example
|
|
63
|
+
|
|
64
|
+
| Participant declaration
|
|
65
|
+
| 01
|
|
66
|
+
|
|
67
|
+
| Solid arrows (requests)
|
|
68
|
+
| 01
|
|
69
|
+
|
|
70
|
+
| Dotted arrows (responses)
|
|
71
|
+
| 01
|
|
72
|
+
|
|
73
|
+
| Activation/deactivation
|
|
74
|
+
| 01
|
|
75
|
+
|
|
76
|
+
| Notes
|
|
77
|
+
| 01
|
|
78
|
+
|
|
79
|
+
| Multi-step workflows
|
|
80
|
+
| 01
|
|
81
|
+
|===
|
|
82
|
+
|
|
83
|
+
== Additional Resources
|
|
84
|
+
|
|
85
|
+
* link:../../README.adoc[Main Documentation]
|
|
86
|
+
* https://mermaid.js.org/syntax/sequenceDiagram.html[Mermaid Sequence Diagram Documentation]
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
stateDiagram-v2
|
|
2
|
+
[*] --> Idle
|
|
3
|
+
|
|
4
|
+
Idle --> Connecting : connect()
|
|
5
|
+
Connecting --> Connected : success
|
|
6
|
+
Connecting --> Error : failure
|
|
7
|
+
|
|
8
|
+
state Connected {
|
|
9
|
+
[*] --> Authenticated
|
|
10
|
+
Authenticated --> Active
|
|
11
|
+
|
|
12
|
+
state Active {
|
|
13
|
+
[*] --> Reading
|
|
14
|
+
Reading --> Writing : write_request
|
|
15
|
+
Writing --> Reading : write_complete
|
|
16
|
+
Reading --> Processing : process_data
|
|
17
|
+
Processing --> Reading : complete
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
Active --> Suspended : suspend()
|
|
21
|
+
Suspended --> Active : resume()
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
Connected --> Disconnecting : disconnect()
|
|
25
|
+
Error --> Idle : reset()
|
|
26
|
+
Disconnecting --> Idle : complete
|
|
27
|
+
Suspended --> Disconnecting : timeout
|
|
28
|
+
|
|
29
|
+
Idle --> [*] : shutdown()
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg width="400" height="200" viewBox="0 0 400 200" version="1.2" xmlns="http://www.w3.org/2000/svg">
|
|
3
|
+
<rect x="50" y="50" width="300" height="100" fill="#f0f0f0" stroke="#000000" stroke-width="2"/>
|
|
4
|
+
<text x="200" y="100" text-anchor="middle" font-family="Arial, sans-serif" font-size="14" fill="#000000">State Diagram (parser needs fixes)</text>
|
|
5
|
+
</svg>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
stateDiagram-v2
|
|
2
|
+
[*] --> Application
|
|
3
|
+
|
|
4
|
+
state Application {
|
|
5
|
+
[*] --> Idle
|
|
6
|
+
Idle --> Processing : Start
|
|
7
|
+
|
|
8
|
+
state Processing {
|
|
9
|
+
[*] --> Validating
|
|
10
|
+
Validating --> Executing : Valid
|
|
11
|
+
Validating --> Failed : Invalid
|
|
12
|
+
Executing --> Success
|
|
13
|
+
Executing --> Failed
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
Processing --> Idle : Complete
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
Application --> [*]
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
<svg
|
|
2
|
+
width="753.0"
|
|
3
|
+
height="600.0"
|
|
4
|
+
viewBox="0 0 753.0 600"
|
|
5
|
+
version="1.2"
|
|
6
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
7
|
+
>
|
|
8
|
+
<g id="transition-start_1_to_Application">
|
|
9
|
+
<path fill="none" stroke="#000000" stroke-width="2" d="M 65 65 L 358.5 75" marker-end="url(#arrowhead)"/>
|
|
10
|
+
</g>
|
|
11
|
+
<g id="transition-start_1_to_Idle">
|
|
12
|
+
<path fill="none" stroke="#000000" stroke-width="2" d="M 65 65 L 600 75" marker-end="url(#arrowhead)"/>
|
|
13
|
+
</g>
|
|
14
|
+
<g id="transition-Idle_to_Processing">
|
|
15
|
+
<path fill="none" stroke="#000000" stroke-width="2" d="M 600 75 L 105.0 275" marker-end="url(#arrowhead)"/>
|
|
16
|
+
<text fill="#000000" x="352.5" y="167.0" text-anchor="middle" font-family="Arial, sans-serif" font-size="12">Start</text>
|
|
17
|
+
</g>
|
|
18
|
+
<g id="transition-start_1_to_Validating">
|
|
19
|
+
<path fill="none" stroke="#000000" stroke-width="2" d="M 65 65 L 355.0 275" marker-end="url(#arrowhead)"/>
|
|
20
|
+
</g>
|
|
21
|
+
<g id="transition-Validating_to_Executing">
|
|
22
|
+
<path fill="none" stroke="#000000" stroke-width="2" d="M 355.0 275 L 601.5 275" marker-end="url(#arrowhead)"/>
|
|
23
|
+
<text fill="#000000" x="478.25" y="267.0" text-anchor="middle" font-family="Arial, sans-serif" font-size="12">Valid</text>
|
|
24
|
+
</g>
|
|
25
|
+
<g id="transition-Validating_to_Failed">
|
|
26
|
+
<path fill="none" stroke="#000000" stroke-width="2" d="M 355.0 275 L 100 475" marker-end="url(#arrowhead)"/>
|
|
27
|
+
<text fill="#000000" x="227.5" y="367.0" text-anchor="middle" font-family="Arial, sans-serif" font-size="12">Invalid</text>
|
|
28
|
+
</g>
|
|
29
|
+
<g id="transition-Executing_to_Success">
|
|
30
|
+
<path fill="none" stroke="#000000" stroke-width="2" d="M 601.5 275 L 350 475" marker-end="url(#arrowhead)"/>
|
|
31
|
+
</g>
|
|
32
|
+
<g id="transition-Executing_to_Failed">
|
|
33
|
+
<path fill="none" stroke="#000000" stroke-width="2" d="M 601.5 275 L 100 475" marker-end="url(#arrowhead)"/>
|
|
34
|
+
</g>
|
|
35
|
+
<g id="transition-Processing_to_Idle">
|
|
36
|
+
<path fill="none" stroke="#000000" stroke-width="2" d="M 105.0 275 L 600 75" marker-end="url(#arrowhead)"/>
|
|
37
|
+
<text fill="#000000" x="352.5" y="167.0" text-anchor="middle" font-family="Arial, sans-serif" font-size="12">Complete</text>
|
|
38
|
+
</g>
|
|
39
|
+
<g id="transition-Application_to_end_2">
|
|
40
|
+
<path fill="none" stroke="#000000" stroke-width="2" d="M 358.5 75 L 565 465" marker-end="url(#arrowhead)"/>
|
|
41
|
+
</g>
|
|
42
|
+
<g id="state-start_1">
|
|
43
|
+
<circle fill="#000000" stroke="none" cx="65.0" cy="65.0" r="15.0"/>
|
|
44
|
+
<text fill="#000000" x="65.0" y="65.0" text-anchor="middle" font-family="Arial, sans-serif" font-size="14" dominant-baseline="middle">[*]</text>
|
|
45
|
+
</g>
|
|
46
|
+
<g id="state-Application">
|
|
47
|
+
<rect fill="#ffffff" stroke="#000000" stroke-width="2" x="300.0" y="50.0" width="117.0" height="50.0" rx="10.0" ry="10.0"/>
|
|
48
|
+
<text fill="#000000" x="358.5" y="75.0" text-anchor="middle" font-family="Arial, sans-serif" font-size="14" dominant-baseline="middle">Application</text>
|
|
49
|
+
</g>
|
|
50
|
+
<g id="state-Idle">
|
|
51
|
+
<rect fill="#ffffff" stroke="#000000" stroke-width="2" x="550.0" y="50.0" width="100.0" height="50.0" rx="10.0" ry="10.0"/>
|
|
52
|
+
<text fill="#000000" x="600.0" y="75.0" text-anchor="middle" font-family="Arial, sans-serif" font-size="14" dominant-baseline="middle">Idle</text>
|
|
53
|
+
</g>
|
|
54
|
+
<g id="state-Processing">
|
|
55
|
+
<rect fill="#ffffff" stroke="#000000" stroke-width="2" x="50.0" y="250.0" width="110.0" height="50.0" rx="10.0" ry="10.0"/>
|
|
56
|
+
<text fill="#000000" x="105.0" y="275.0" text-anchor="middle" font-family="Arial, sans-serif" font-size="14" dominant-baseline="middle">Processing</text>
|
|
57
|
+
</g>
|
|
58
|
+
<g id="state-Validating">
|
|
59
|
+
<rect fill="#ffffff" stroke="#000000" stroke-width="2" x="300.0" y="250.0" width="110.0" height="50.0" rx="10.0" ry="10.0"/>
|
|
60
|
+
<text fill="#000000" x="355.0" y="275.0" text-anchor="middle" font-family="Arial, sans-serif" font-size="14" dominant-baseline="middle">Validating</text>
|
|
61
|
+
</g>
|
|
62
|
+
<g id="state-Executing">
|
|
63
|
+
<rect fill="#ffffff" stroke="#000000" stroke-width="2" x="550.0" y="250.0" width="103.0" height="50.0" rx="10.0" ry="10.0"/>
|
|
64
|
+
<text fill="#000000" x="601.5" y="275.0" text-anchor="middle" font-family="Arial, sans-serif" font-size="14" dominant-baseline="middle">Executing</text>
|
|
65
|
+
</g>
|
|
66
|
+
<g id="state-Failed">
|
|
67
|
+
<rect fill="#ffffff" stroke="#000000" stroke-width="2" x="50.0" y="450.0" width="100.0" height="50.0" rx="10.0" ry="10.0"/>
|
|
68
|
+
<text fill="#000000" x="100.0" y="475.0" text-anchor="middle" font-family="Arial, sans-serif" font-size="14" dominant-baseline="middle">Failed</text>
|
|
69
|
+
</g>
|
|
70
|
+
<g id="state-Success">
|
|
71
|
+
<rect fill="#ffffff" stroke="#000000" stroke-width="2" x="300.0" y="450.0" width="100.0" height="50.0" rx="10.0" ry="10.0"/>
|
|
72
|
+
<text fill="#000000" x="350.0" y="475.0" text-anchor="middle" font-family="Arial, sans-serif" font-size="14" dominant-baseline="middle">Success</text>
|
|
73
|
+
</g>
|
|
74
|
+
<g id="state-end_2">
|
|
75
|
+
<g>
|
|
76
|
+
<circle fill="none" stroke="#000000" stroke-width="2" cx="565.0" cy="465.0" r="15.0"/>
|
|
77
|
+
<circle fill="#000000" stroke="none" cx="565.0" cy="465.0" r="10.0"/>
|
|
78
|
+
</g>
|
|
79
|
+
<text fill="#000000" x="565.0" y="465.0" text-anchor="middle" font-family="Arial, sans-serif" font-size="14" dominant-baseline="middle">[*]</text>
|
|
80
|
+
</g>
|
|
81
|
+
</svg>
|