@rse/specbook 1.5.1 → 1.5.2
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.
- package/dst/specbook-format.yaml +40 -4
- package/package.json +2 -2
package/dst/specbook-format.yaml
CHANGED
|
@@ -751,26 +751,54 @@
|
|
|
751
751
|
file: 07-REQS-NR-Non-Functional-Requirements.md
|
|
752
752
|
desc: >
|
|
753
753
|
The quality attributes and constraints the solution must satisfy, such as performance,
|
|
754
|
-
security, scalability, reliability, and usability.
|
|
754
|
+
security, scalability, reliability, and usability. The requirements are optionally grouped
|
|
755
|
+
into the project-specific quality goals they refine (the upper levels of a quality attribute
|
|
756
|
+
utility tree), which the overview diagram draws as boxes around their requirements.
|
|
755
757
|
optional: true
|
|
756
758
|
refs: >
|
|
757
759
|
- ISO/IEC 25010:2023: Systems and software engineering -- Systems and software Quality Requirements and Evaluation (SQuaRE) -- Product quality model (2023),
|
|
758
760
|
https://www.iso.org/standard/78176.html
|
|
759
761
|
- ISO/IEC/IEEE 29148:2018: Systems and software engineering -- Life cycle processes -- Requirements engineering (2018),
|
|
760
762
|
https://www.iso.org/standard/72089.html
|
|
763
|
+
- Bass/Clements/Kazman: Software Architecture in Practice, 4th ed.: Quality Attribute Utility Tree (2021),
|
|
764
|
+
https://www.informit.com/store/software-architecture-in-practice-9780136886099
|
|
761
765
|
- DSDM: MoSCoW Prioritisation, DSDM Agile Project Framework (2014),
|
|
762
766
|
https://www.agilebusiness.org/dsdm-project-framework/moscow-prioritisation.html
|
|
763
767
|
- Doran: There's a S.M.A.R.T. Way to Write Management's Goals and Objectives, Management Review 70(11) (1981)
|
|
764
768
|
diagram:
|
|
765
769
|
type: grid
|
|
766
770
|
nodes: "[[NR.REQUIREMENT:*]]"
|
|
771
|
+
nest:
|
|
772
|
+
properties:
|
|
773
|
+
- GROUP
|
|
767
774
|
properties:
|
|
768
775
|
- PRIORITY
|
|
769
776
|
- CATEGORY
|
|
770
777
|
config:
|
|
771
778
|
size-node-width-max: 440
|
|
772
|
-
grid-columns-max:
|
|
779
|
+
grid-columns-max: 2
|
|
773
780
|
children:
|
|
781
|
+
- kind: GROUP
|
|
782
|
+
desc: >
|
|
783
|
+
A named group of requirements jointly refining one project-specific quality goal,
|
|
784
|
+
carrying a short (1-3 word), per-artifact unique name distinct from the names of its
|
|
785
|
+
requirements (e.g. `Observability` for the completeness, causality, integrity, and
|
|
786
|
+
availability of the recorded traces, `Data Protection` for the lawful, minimal, and
|
|
787
|
+
guarded processing of personal data), and described by a 1-sentence description
|
|
788
|
+
("what") of the quality goal the requirements add up to plus a 1-sentence rationale
|
|
789
|
+
("why") of the cohesion. A group is a quality goal in the sense of a quality
|
|
790
|
+
attribute utility tree: unlike the fixed `CATEGORY` of a requirement, which
|
|
791
|
+
classifies it for comparability, it names the quality the project itself strives
|
|
792
|
+
for and may span requirements of several categories. It is distinct from a
|
|
793
|
+
Functional Requirements group, which bundles the functions and mechanisms
|
|
794
|
+
realizing such a quality. A group carries no obligation of its own: it has no
|
|
795
|
+
priority, no metric, and is verified through its requirements alone, so it
|
|
796
|
+
affects the overview diagram only, where its requirements are drawn next to each
|
|
797
|
+
other inside a box. The groups are listed before the requirements, and every
|
|
798
|
+
requirement belongs to at most one group.
|
|
799
|
+
optional: true
|
|
800
|
+
referenced:
|
|
801
|
+
- "[[NR.REQUIREMENT:*]]"
|
|
774
802
|
- kind: REQUIREMENT
|
|
775
803
|
desc: >
|
|
776
804
|
A single non-functional requirement, named with a short (3-8 word) summary and
|
|
@@ -797,8 +825,8 @@
|
|
|
797
825
|
diagram:
|
|
798
826
|
type: hub
|
|
799
827
|
center: self
|
|
800
|
-
nodes: "[[NR.
|
|
801
|
-
[[TACTIC:*]], [[DECISION:*]], [[CONCERN:*]], [[TEST-CASE:*]]"
|
|
828
|
+
nodes: "[[NR.GROUP:*]], [[NR.REQUIREMENT:*]], [[FR.REQUIREMENT:*]], [[PREMISE:*]],
|
|
829
|
+
[[RULE:*]], [[TACTIC:*]], [[DECISION:*]], [[CONCERN:*]], [[TEST-CASE:*]]"
|
|
802
830
|
labeled: true
|
|
803
831
|
qualified: true
|
|
804
832
|
config:
|
|
@@ -826,6 +854,14 @@
|
|
|
826
854
|
e.g. a hosting, budget, or technology mandate, as opposed to a constraint
|
|
827
855
|
on the domain, which is a Domain Rule).
|
|
828
856
|
value: enum(Performance,Compatibility,Usability,Reliability,Security,Safety,Maintainability,Flexibility,Compliance,Constraint)
|
|
857
|
+
- name: GROUP
|
|
858
|
+
desc: >
|
|
859
|
+
Reference to the NON-FUNCTIONAL-REQUIREMENTS group (the quality goal) the
|
|
860
|
+
requirement belongs to, placing it next to the other requirements of the
|
|
861
|
+
group in the overview diagram, independent of its `CATEGORY`; omitted for a
|
|
862
|
+
requirement standing on its own.
|
|
863
|
+
value: "[[NR.GROUP:*]]"
|
|
864
|
+
optional: true
|
|
829
865
|
- name: QUALIFIES
|
|
830
866
|
desc: >
|
|
831
867
|
Comma-separated references to the FUNCTIONAL-REQUIREMENTS objects whose
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rse/specbook",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.2",
|
|
4
4
|
"publishConfig": { "access": "public" },
|
|
5
5
|
"description": "Markdown-based Specification Format (API, CLI and MCP service)",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"@d2lang/d2": "0.1.34",
|
|
32
32
|
"shiki": "4.5.0",
|
|
33
33
|
"pdfjs-dist": "6.4.299",
|
|
34
|
-
"@napi-rs/canvas": "1.0.
|
|
34
|
+
"@napi-rs/canvas": "1.0.11",
|
|
35
35
|
"@toon-format/toon": "4.4.0",
|
|
36
36
|
"valibot": "1.5.0",
|
|
37
37
|
"nunjucks": "3.2.4",
|