跳到正文
Mernyx
打开菜单

Mermaid 需求图速查表

需求、需求的种类,以及满足它们的东西。

这个页面上的每一张图都由Mernyx——macOS 上的原生 Mermaid 编辑器绘制。不是浏览器里跑的 Mermaid.js,而是 App 画布用的同一个渲染器。

一条需求

所有内容都写在花括号里。id、text、risk 和 verifymethod 是四个字段。

requirementDiagram
  requirement checkout_req {
    id: 1
    text: Orders must be payable online.
    risk: high
    verifymethod: test
  }
一个标着 checkout_req 的需求框,列着 ID 1、文字 Orders must be payable online、风险 High 和验证方式 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
  }
并排的三个需求框:一个功能需求、一个性能需求和一个接口需求,各有自己的 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 原生,不经过浏览器。

图表预览