本文へスキップ
Mernyx
メニューを開く

Mermaid 要件図のチートシート

要件と、その種類、そしてそれを満たすもの。

このページのすべての図はMernyx(macOS 向けネイティブ Mermaid エディタ)が描いたものです。ブラウザで動く Mermaid.js ではなく、App のキャンバスで使うのと同じレンダラーです。

要件

すべては波括弧の中に置きます。id、text、risk、verifymethod の 4 フィールドです。

requirementDiagram
  requirement checkout_req {
    id: 1
    text: Orders must be payable online.
    risk: high
    verifymethod: test
  }
checkout_req とラベルされた要件箱。ID 1、text は Orders must be payable online、risk は High、verification は Test と並んでいます。図を拡大

要件の種類

id の前のキーワードが種類を示します。functional、performance、interface、physical、あるいは設計上の制約です。

requirementDiagram
  functionalRequirement payment_req {
    id: 1.1
    text: Card payments must be authorised.
    risk: high
    verifymethod: test
  }
  performanceRequirement response_req {
    id: 1.2
    text: Pages must load in under a second.
    risk: medium
    verifymethod: analysis
  }
  interfaceRequirement api_req {
    id: 1.3
    text: The payment API must stay stable.
    risk: low
    verifymethod: inspection
  }
横並びの要件箱 3 つ。機能要件、性能要件、インターフェース要件が、それぞれ自分の id、text、risk、検証方法を持っています。図を拡大

エレメント

エレメントは、要件が語っている、システムの外にある対象です。type がその種類を示し、docRef がそこを指します。

requirementDiagram
  requirement checkout_req {
    id: 1
    text: Orders must be payable online.
    risk: high
    verifymethod: test
  }
  element checkout_service {
    type: service
    docRef: reqs/checkout
  }
要件箱の隣にサービスとマークされたエレメント箱があり、reqs/checkout を指す文書参照を持っています。図を拡大

関係

矢印のあいだの語が関係です。contains、satisfies、verifies、traces、derives、refines、copies。

requirementDiagram
  requirement checkout_req {
    id: 1
    text: Orders must be payable online.
    risk: high
    verifymethod: test
  }
  functionalRequirement payment_req {
    id: 1.1
    text: Card payments must be authorised.
    risk: high
    verifymethod: test
  }
  element checkout_service {
    type: service
  }
  checkout_req - contains -> payment_req
  checkout_service - satisfies -> payment_req
  checkout_service - verifies -> payment_req
要件箱と機能要件箱が contains 関係で結ばれ、エレメント箱が satisfies と verifies で両方に繋がっています。図を拡大

Mernyx で描いてみる

.mmd ファイルを開いて、キャンバスでノードを動かしてみてください。ソースコードもついてきます。macOS ネイティブで、ブラウザは介在しません。

図のプレビュー