@rse/specbook 1.2.11 → 1.2.13
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-export-html.css +10 -1
- package/dst/specbook-export-html.js +30 -10
- package/dst/specbook-format.yaml +36 -28
- package/package.json +1 -1
|
@@ -282,7 +282,9 @@ body.info-on div.info-switch svg.info-icon {
|
|
|
282
282
|
icon leading each, the kinds bold in the path color and the names
|
|
283
283
|
semi-bold in the description color, as in the document content,
|
|
284
284
|
and a pointer separating the segments), extended for properties
|
|
285
|
-
with the not-filled circle icon and the bold property name,
|
|
285
|
+
with the not-filled circle icon and the bold property name, trailed
|
|
286
|
+
for instances by the anchor id of the object in the description
|
|
287
|
+
color (its "(#...)" wrapping normal, the id itself semi-bold), and
|
|
286
288
|
the description led by a "Schema" or "Specification" origin label
|
|
287
289
|
(its word in normal weight in a rounded box filled with the path
|
|
288
290
|
color), where
|
|
@@ -329,6 +331,13 @@ div.info-popup span.info-name {
|
|
|
329
331
|
div.info-popup.spec span.info-name {
|
|
330
332
|
color: var(--theme-color-specbook-popup-spec-desc);
|
|
331
333
|
}
|
|
334
|
+
div.info-popup.spec span.info-id {
|
|
335
|
+
color: var(--theme-color-specbook-popup-spec-desc);
|
|
336
|
+
font-weight: normal;
|
|
337
|
+
}
|
|
338
|
+
div.info-popup.spec span.info-id-name {
|
|
339
|
+
font-weight: 600;
|
|
340
|
+
}
|
|
332
341
|
div.info-popup span.info-object::before {
|
|
333
342
|
content: "\25CF";
|
|
334
343
|
font-weight: normal;
|
|
@@ -109,7 +109,7 @@ const templates = {
|
|
|
109
109
|
<h1>Table of Contents</h1>
|
|
110
110
|
<table>
|
|
111
111
|
{% for entry in Toc.entries %}
|
|
112
|
-
<tr class="level-{{ entry.level }}"><td><a href="#{{ entry.id }}"><span class="object-kind"{% if entry.info %} data-info="{{ entry.info }}" data-info-path="{{ entry.infopath }}"{% endif %}>{{ entry.kind }}:</span> <span class="object-name"{% if entry.spec %} data-info-spec="{{ entry.spec }}" data-info-path="{{ entry.specpath }}"{% endif %}>{{ entry.name }}</span> <span class="link-symbol">⚭</span></a></td>{% if entry.page %}<td class="page"><a href="#{{ entry.id }}">{{ entry.page }}</a></td>{% endif %}</tr>
|
|
112
|
+
<tr class="level-{{ entry.level }}"><td><a href="#{{ entry.id }}"><span class="object-kind"{% if entry.info %} data-info="{{ entry.info }}" data-info-path="{{ entry.infopath }}"{% endif %}>{{ entry.kind }}:</span> <span class="object-name"{% if entry.spec %} data-info-spec="{{ entry.spec }}" data-info-id="{{ entry.specid }}" data-info-path="{{ entry.specpath }}"{% endif %}>{{ entry.name }}</span> <span class="link-symbol">⚭</span></a></td>{% if entry.page %}<td class="page"><a href="#{{ entry.id }}">{{ entry.page }}</a></td>{% endif %}</tr>
|
|
113
113
|
{% endfor %}
|
|
114
114
|
</table>
|
|
115
115
|
</nav>
|
|
@@ -132,7 +132,7 @@ const templates = {
|
|
|
132
132
|
"TocPanelEntries": textframe `
|
|
133
133
|
<ul>
|
|
134
134
|
{% for entry in Entries %}
|
|
135
|
-
<li><a href="#{{ entry.id }}"><span class="entry"><span class="object-kind"{% if entry.info %} data-info="{{ entry.info }}" data-info-path="{{ entry.infopath }}"{% endif %}>{{ entry.kind }}:</span> <span class="object-name"{% if entry.spec %} data-info-spec="{{ entry.spec }}" data-info-path="{{ entry.specpath }}"{% endif %}>{{ entry.name }}</span></span></a>{{ entry.children }}</li>
|
|
135
|
+
<li><a href="#{{ entry.id }}"><span class="entry"><span class="object-kind"{% if entry.info %} data-info="{{ entry.info }}" data-info-path="{{ entry.infopath }}"{% endif %}>{{ entry.kind }}:</span> <span class="object-name"{% if entry.spec %} data-info-spec="{{ entry.spec }}" data-info-id="{{ entry.specid }}" data-info-path="{{ entry.specpath }}"{% endif %}>{{ entry.name }}</span></span></a>{{ entry.children }}</li>
|
|
136
136
|
{% endfor %}
|
|
137
137
|
</ul>
|
|
138
138
|
`,
|
|
@@ -152,7 +152,7 @@ const templates = {
|
|
|
152
152
|
/* <Object/> */
|
|
153
153
|
"Object": textframe `
|
|
154
154
|
<section>
|
|
155
|
-
<h{{ Object.level }} id="{{ Object.id }}"{% if Object.anchor %} data-id="{{ Object.anchor }}"{% endif %}><span class="object-kind"{% if Object.info %} data-info="{{ Object.info }}" data-info-path="{{ Object.infopath }}"{% endif %}>{{ Object.kind }}:</span> <span class="object-name"{% if Object.spec %} data-info-spec="{{ Object.spec }}" data-info-path="{{ Object.specpath }}"{% endif %}>{{ Object.name }}</span>{% if Object.primary %} <span class="primary-marker">⌘</span>{% endif %}{% if Object.paren %} <span class="anchor-paren">({{ Object.paren }})</span>{% endif %} <a href="#{{ Object.id }}"><span class="anchor-symbol">⚓︎</span></a></h{{ Object.level }}>
|
|
155
|
+
<h{{ Object.level }} id="{{ Object.id }}"{% if Object.anchor %} data-id="{{ Object.anchor }}"{% endif %}><span class="object-kind"{% if Object.info %} data-info="{{ Object.info }}" data-info-path="{{ Object.infopath }}"{% endif %}>{{ Object.kind }}:</span> <span class="object-name"{% if Object.spec %} data-info-spec="{{ Object.spec }}" data-info-id="{{ Object.specid }}" data-info-path="{{ Object.specpath }}"{% endif %}>{{ Object.name }}</span>{% if Object.primary %} <span class="primary-marker">⌘</span>{% endif %}{% if Object.paren %} <span class="anchor-paren">({{ Object.paren }})</span>{% endif %} <a href="#{{ Object.id }}"><span class="anchor-symbol">⚓︎</span></a></h{{ Object.level }}>
|
|
156
156
|
{{ Object.diagram }}
|
|
157
157
|
{{ Object.properties }}
|
|
158
158
|
{{ Object.description }}
|
|
@@ -207,7 +207,7 @@ const templates = {
|
|
|
207
207
|
<tbody>
|
|
208
208
|
{% for row in Table.rows %}
|
|
209
209
|
<tr id="{{ row.id }}"{% if row.anchor %} data-id="{{ row.anchor }}"{% endif %}{% if row.even %} class="even"{% endif %}>
|
|
210
|
-
<td><span{% if row.spec %} data-info-spec="{{ row.spec }}" data-info-path="{{ row.specpath }}"{% endif %}>{{ row.name }}</span>{% if row.primary %} <span class="primary-marker">⌘</span>{% endif %}{% if row.paren %} <span class="anchor-paren">({{ row.paren }})</span>{% endif %} <a href="#{{ row.id }}"><span class="anchor-symbol">⚓︎</span></a></td>
|
|
210
|
+
<td><span{% if row.spec %} data-info-spec="{{ row.spec }}" data-info-id="{{ row.specid }}" data-info-path="{{ row.specpath }}"{% endif %}>{{ row.name }}</span>{% if row.primary %} <span class="primary-marker">⌘</span>{% endif %}{% if row.paren %} <span class="anchor-paren">({{ row.paren }})</span>{% endif %} <a href="#{{ row.id }}"><span class="anchor-symbol">⚓︎</span></a></td>
|
|
211
211
|
{%- for value in row.values %}<td>{{ value }}</td>{% endfor %}
|
|
212
212
|
{%- if Table.desc %}<td>{{ row.description }}</td>{% endif %}
|
|
213
213
|
</tr>
|
|
@@ -227,7 +227,7 @@ const templates = {
|
|
|
227
227
|
<tbody>
|
|
228
228
|
{% for row in Table.rows %}
|
|
229
229
|
<tr id="{{ row.id }}"{% if row.anchor %} data-id="{{ row.anchor }}"{% endif %}{% if row.even %} class="even"{% endif %}>
|
|
230
|
-
<td><span{% if row.spec %} data-info-spec="{{ row.spec }}" data-info-path="{{ row.specpath }}"{% endif %}>{{ row.name }}</span>{% if row.primary %} <span class="primary-marker">⌘</span>{% endif %}{% if row.paren %} <span class="anchor-paren">({{ row.paren }})</span>{% endif %} <a href="#{{ row.id }}"><span class="anchor-symbol">⚓︎</span></a></td>
|
|
230
|
+
<td><span{% if row.spec %} data-info-spec="{{ row.spec }}" data-info-id="{{ row.specid }}" data-info-path="{{ row.specpath }}"{% endif %}>{{ row.name }}</span>{% if row.primary %} <span class="primary-marker">⌘</span>{% endif %}{% if row.paren %} <span class="anchor-paren">({{ row.paren }})</span>{% endif %} <a href="#{{ row.id }}"><span class="anchor-symbol">⚓︎</span></a></td>
|
|
231
231
|
<td class="chunks">
|
|
232
232
|
<table class="chunks">
|
|
233
233
|
{% for chunk in row.chunks %}
|
|
@@ -866,7 +866,8 @@ const tocPanelScript = textframe `
|
|
|
866
866
|
carrying a "data-info-spec" key pops up the corpus description of
|
|
867
867
|
the object instance (a diagram node box resolves through its
|
|
868
868
|
hyperlinked object anchor), titled with the "data-info-path" object
|
|
869
|
-
path
|
|
869
|
+
path (an instance popup trailing the "data-info-id" anchor id of
|
|
870
|
+
the object) and fed from the injected INFO/SPEC maps of pre-rendered
|
|
870
871
|
description HTML; the popup is capped at 40% viewport width and
|
|
871
872
|
attached above or below, whichever side offers more space; the
|
|
872
873
|
script runs at the end of the body, so a live preview body swap
|
|
@@ -964,6 +965,20 @@ const infoPopupScript = textframe `
|
|
|
964
965
|
}
|
|
965
966
|
title.appendChild(path)
|
|
966
967
|
}
|
|
968
|
+
|
|
969
|
+
/* the anchor id of an object instance (explicit or derived
|
|
970
|
+
from its name, carried by the "data-info-id" key) trails
|
|
971
|
+
the last segment */
|
|
972
|
+
const anchor = source.getAttribute("data-info-id")
|
|
973
|
+
if (spec !== null && anchor !== null) {
|
|
974
|
+
const id = document.createElement("span")
|
|
975
|
+
id.className = "info-id"
|
|
976
|
+
const name = document.createElement("span")
|
|
977
|
+
name.className = "info-id-name"
|
|
978
|
+
name.textContent = anchor
|
|
979
|
+
id.append(" (#", name, ")")
|
|
980
|
+
title.appendChild(id)
|
|
981
|
+
}
|
|
967
982
|
if (prop !== null) {
|
|
968
983
|
title.appendChild(pointer())
|
|
969
984
|
const name = document.createElement("span")
|
|
@@ -1154,11 +1169,12 @@ const infoAttr = (object) => {
|
|
|
1154
1169
|
` data-info="${escapeHtml(key)}" data-info-path="${escapeHtml(infoPathOf(object, false))}"` : "";
|
|
1155
1170
|
};
|
|
1156
1171
|
/* render the corpus description popup key (the fully-qualified anchor
|
|
1157
|
-
path) and name-ending title path of an object as
|
|
1158
|
-
attributes for the manually assembled hyperlink markup (the
|
|
1172
|
+
path), anchor id, and name-ending title path of an object as
|
|
1173
|
+
"data-info-spec" attributes for the manually assembled hyperlink markup (the
|
|
1159
1174
|
instance popup of the compact and full hyperlinks) */
|
|
1160
1175
|
const specAttr = (object) => infoParents !== null ?
|
|
1161
|
-
` data-info-spec="${escapeHtml(anchorOf(object))}" data-info-
|
|
1176
|
+
` data-info-spec="${escapeHtml(anchorOf(object))}" data-info-id="${escapeHtml(object.id)}"` +
|
|
1177
|
+
` data-info-path="${escapeHtml(infoPathOf(object))}"` : "";
|
|
1162
1178
|
/* collect the description popup map and the qualified title paths of
|
|
1163
1179
|
the schema nodes (the artifact kind leading its name, the nested
|
|
1164
1180
|
kinds appended), with the description Markdown of the objects and
|
|
@@ -1464,6 +1480,7 @@ const renderTable = (children, maxColumns) => {
|
|
|
1464
1480
|
paren: child.paren,
|
|
1465
1481
|
primary: child.primary,
|
|
1466
1482
|
spec: infoParents !== null ? anchorOf(child) : undefined,
|
|
1483
|
+
specid: child.id,
|
|
1467
1484
|
specpath: infoPathOf(child),
|
|
1468
1485
|
name: inline(child.name),
|
|
1469
1486
|
even: i % 2 === 1,
|
|
@@ -1505,6 +1522,7 @@ const renderTable = (children, maxColumns) => {
|
|
|
1505
1522
|
paren: child.paren,
|
|
1506
1523
|
primary: child.primary,
|
|
1507
1524
|
spec: infoParents !== null ? anchorOf(child) : undefined,
|
|
1525
|
+
specid: child.id,
|
|
1508
1526
|
specpath: infoPathOf(child),
|
|
1509
1527
|
name: inline(child.name),
|
|
1510
1528
|
even: i % 2 === 1,
|
|
@@ -1522,6 +1540,7 @@ const renderObject = (object, level, concise) => {
|
|
|
1522
1540
|
info: infoKeyOf(object),
|
|
1523
1541
|
infopath: infoPathOf(object, false),
|
|
1524
1542
|
spec: infoParents !== null ? anchorOf(object) : undefined,
|
|
1543
|
+
specid: object.id,
|
|
1525
1544
|
specpath: infoPathOf(object),
|
|
1526
1545
|
id: anchorOf(object),
|
|
1527
1546
|
anchor: object.anchor,
|
|
@@ -1593,7 +1612,7 @@ const tocEntries = (objects, pages) => {
|
|
|
1593
1612
|
const id = anchorOf(object);
|
|
1594
1613
|
entries.push({ id, kind: object.kind,
|
|
1595
1614
|
info: infoKeyOf(object), infopath: infoPathOf(object, false),
|
|
1596
|
-
spec: infoParents !== null ? id : undefined, specpath: infoPathOf(object),
|
|
1615
|
+
spec: infoParents !== null ? id : undefined, specid: object.id, specpath: infoPathOf(object),
|
|
1597
1616
|
name: inline(object.name), level: Math.min(level, 6), page: pages?.get(id) });
|
|
1598
1617
|
collect(headingChildren(object), level + 1);
|
|
1599
1618
|
}
|
|
@@ -1613,6 +1632,7 @@ const renderTocPanel = (objects, title, doc) => {
|
|
|
1613
1632
|
info: infoKeyOf(object),
|
|
1614
1633
|
infopath: infoPathOf(object, false),
|
|
1615
1634
|
spec: infoParents !== null ? anchorOf(object) : undefined,
|
|
1635
|
+
specid: object.id,
|
|
1616
1636
|
specpath: infoPathOf(object),
|
|
1617
1637
|
name: inline(object.name),
|
|
1618
1638
|
children: safe(entries(headingChildren(object)))
|
package/dst/specbook-format.yaml
CHANGED
|
@@ -151,7 +151,7 @@
|
|
|
151
151
|
optional: true
|
|
152
152
|
- name: THEME-STYLE
|
|
153
153
|
desc: The theme style.
|
|
154
|
-
value: enum(
|
|
154
|
+
value: enum(Dark,Light)
|
|
155
155
|
optional: true
|
|
156
156
|
- name: THEME-TONE
|
|
157
157
|
desc: The theme color tone.
|
|
@@ -347,7 +347,8 @@
|
|
|
347
347
|
diagram:
|
|
348
348
|
type: hub
|
|
349
349
|
center: self
|
|
350
|
-
nodes: "[[TERM:*]], [[PREMISE:*]], [[RULE:*]], [[DM.ENTITY:*]], [[ROLE:*]], [[PERSONA:*]]
|
|
350
|
+
nodes: "[[TERM:*]], [[PREMISE:*]], [[RULE:*]], [[DM.ENTITY:*]], [[ROLE:*]], [[PERSONA:*]],
|
|
351
|
+
[[WORKFLOW:*]], [[CONVENTION:*]], [[CV.ENTITY:*]]"
|
|
351
352
|
labeled: true
|
|
352
353
|
qualified: true
|
|
353
354
|
config:
|
|
@@ -441,8 +442,8 @@
|
|
|
441
442
|
diagram:
|
|
442
443
|
type: hub
|
|
443
444
|
center: self
|
|
444
|
-
nodes: "[[ROLE:*]], [[TERM:*]], [[PERSONA:*]], [[
|
|
445
|
-
[[CV.ENTITY:*]]"
|
|
445
|
+
nodes: "[[ROLE:*]], [[TERM:*]], [[PERSONA:*]], [[WORKFLOW:*]], [[ACTIVITY:*]],
|
|
446
|
+
[[USE-CASE:*]], [[TRANSITION:*]], [[CV.ENTITY:*]]"
|
|
446
447
|
labeled: true
|
|
447
448
|
qualified: true
|
|
448
449
|
config:
|
|
@@ -494,8 +495,8 @@
|
|
|
494
495
|
optional: true
|
|
495
496
|
- name: GENDER
|
|
496
497
|
desc: >
|
|
497
|
-
The gender of the persona: `
|
|
498
|
-
value: enum(
|
|
498
|
+
The gender of the persona: `Male`, `Female`, or `Diverse`.
|
|
499
|
+
value: enum(Male,Female,Diverse)
|
|
499
500
|
optional: true
|
|
500
501
|
- name: AGE
|
|
501
502
|
desc: >
|
|
@@ -519,9 +520,9 @@
|
|
|
519
520
|
optional: true
|
|
520
521
|
- name: PROFICIENCY
|
|
521
522
|
desc: >
|
|
522
|
-
The technical and domain skill level of the persona: `
|
|
523
|
-
`
|
|
524
|
-
value: enum(
|
|
523
|
+
The technical and domain skill level of the persona: `Novice`,
|
|
524
|
+
`Intermediate`, or `Expert`.
|
|
525
|
+
value: enum(Novice,Intermediate,Expert)
|
|
525
526
|
optional: true
|
|
526
527
|
- name: GOAL
|
|
527
528
|
desc: >
|
|
@@ -1099,8 +1100,9 @@
|
|
|
1099
1100
|
type: hub
|
|
1100
1101
|
center: self
|
|
1101
1102
|
nodes: "[[USE-CASE:*]], [[ROLE:*]], [[PERSONA:*]], [[STEP:*]], [[ACTIVITY:*]],
|
|
1102
|
-
[[FR.REQUIREMENT:*]], [[RULE:*]], [[
|
|
1103
|
-
[[PRINCIPLE:*]], [[CV.ENTITY:*]]
|
|
1103
|
+
[[FR.REQUIREMENT:*]], [[RULE:*]], [[DM.ENTITY:*]], [[TRANSITION:*]],
|
|
1104
|
+
[[PERMISSION:*]], [[PRINCIPLE:*]], [[STORYBOARD:*]], [[CV.ENTITY:*]],
|
|
1105
|
+
[[TEST-CASE:*]]"
|
|
1104
1106
|
labeled: true
|
|
1105
1107
|
qualified: true
|
|
1106
1108
|
config:
|
|
@@ -1269,7 +1271,8 @@
|
|
|
1269
1271
|
diagram:
|
|
1270
1272
|
type: hub
|
|
1271
1273
|
center: self
|
|
1272
|
-
nodes: "[[DM.ENTITY:*]], [[FR.REQUIREMENT:*]], [[USE-CASE:*]]
|
|
1274
|
+
nodes: "[[DM.ENTITY:*]], [[FR.REQUIREMENT:*]], [[USE-CASE:*]], [[LIFECYCLE:*]],
|
|
1275
|
+
[[FV.COMPONENT:*]], [[CONCERN:*]], [[TACTIC:*]], [[DECISION:*]], [[TEST-CASE:*]]"
|
|
1273
1276
|
edges: "[[RELATION:*]]"
|
|
1274
1277
|
labeled: true
|
|
1275
1278
|
qualified: true
|
|
@@ -1374,18 +1377,21 @@
|
|
|
1374
1377
|
attributes (an "association class") is reified as an entity of its own,
|
|
1375
1378
|
related from both sides.
|
|
1376
1379
|
optional: true
|
|
1380
|
+
format:
|
|
1381
|
+
maxTableColumns: 5
|
|
1377
1382
|
props:
|
|
1378
1383
|
- name: TARGET
|
|
1379
1384
|
desc: Reference to the DATA-MODEL entity the directed relation targets.
|
|
1380
1385
|
value: "[[DM.ENTITY:*]]"
|
|
1381
1386
|
- name: KIND
|
|
1382
1387
|
desc: >
|
|
1383
|
-
The kind of the directed relation: `
|
|
1384
|
-
reference to an independent target entity, `
|
|
1385
|
-
shared part-of relation whose target outlives
|
|
1386
|
-
`
|
|
1387
|
-
owned by and deleted with the entity; defaults to
|
|
1388
|
-
|
|
1388
|
+
The kind of the directed relation: `Association` for a plain
|
|
1389
|
+
reference to an independent target entity, `Aggregation` for a
|
|
1390
|
+
(optionally even shared) part-of relation whose target outlives
|
|
1391
|
+
the entity, or `Composition` for an exclusive part-of relation
|
|
1392
|
+
whose target is owned by and deleted with the entity; defaults to
|
|
1393
|
+
`Association`.
|
|
1394
|
+
value: enum(Association,Aggregation,Composition)
|
|
1389
1395
|
optional: true
|
|
1390
1396
|
- name: ARITY
|
|
1391
1397
|
desc: >
|
|
@@ -1693,7 +1699,7 @@
|
|
|
1693
1699
|
diagram:
|
|
1694
1700
|
type: hub
|
|
1695
1701
|
center: self
|
|
1696
|
-
nodes: "[[INTERFACE:*]], [[TYPE:*]], [[ENDPOINT:*]]"
|
|
1702
|
+
nodes: "[[INTERFACE:*]], [[TYPE:*]], [[ENDPOINT:*]], [[FV.COMPONENT:*]]"
|
|
1697
1703
|
labeled: true
|
|
1698
1704
|
qualified: true
|
|
1699
1705
|
config:
|
|
@@ -1778,7 +1784,7 @@
|
|
|
1778
1784
|
diagram:
|
|
1779
1785
|
type: hub
|
|
1780
1786
|
center: self
|
|
1781
|
-
nodes: "[[TYPE:*]], [[INTERFACE:*]]"
|
|
1787
|
+
nodes: "[[TYPE:*]], [[INTERFACE:*]], [[ENDPOINT:*]]"
|
|
1782
1788
|
deep: true
|
|
1783
1789
|
labeled: true
|
|
1784
1790
|
qualified: true
|
|
@@ -2183,7 +2189,8 @@
|
|
|
2183
2189
|
diagram:
|
|
2184
2190
|
type: hub
|
|
2185
2191
|
center: self
|
|
2186
|
-
nodes: "[[PRINCIPLE:*]], [[PERSONA:*]], [[STEP:*]], [[USE-CASE:*]], [[
|
|
2192
|
+
nodes: "[[PRINCIPLE:*]], [[PERSONA:*]], [[STEP:*]], [[USE-CASE:*]], [[CONVENTION:*]],
|
|
2193
|
+
[[PATTERN:*]], [[ELEMENT:*]], [[DECISION:*]]"
|
|
2187
2194
|
labeled: true
|
|
2188
2195
|
qualified: true
|
|
2189
2196
|
config:
|
|
@@ -2350,7 +2357,7 @@
|
|
|
2350
2357
|
diagram:
|
|
2351
2358
|
type: hub
|
|
2352
2359
|
center: self
|
|
2353
|
-
nodes: "[[PATTERN:*]], [[PRINCIPLE:*]], [[STORYBOARD:*]]"
|
|
2360
|
+
nodes: "[[PATTERN:*]], [[PRINCIPLE:*]], [[STORYBOARD:*]], [[DECISION:*]]"
|
|
2354
2361
|
deep: true
|
|
2355
2362
|
labeled: true
|
|
2356
2363
|
qualified: true
|
|
@@ -2440,7 +2447,7 @@
|
|
|
2440
2447
|
diagram:
|
|
2441
2448
|
type: hub
|
|
2442
2449
|
center: self
|
|
2443
|
-
nodes: "[[STORYBOARD:*]], [[PERSONA:*]], [[SCENARIO:*]], [[PATTERN:*]]"
|
|
2450
|
+
nodes: "[[STORYBOARD:*]], [[PERSONA:*]], [[SCENARIO:*]], [[PATTERN:*]], [[MOCKUP:*]]"
|
|
2444
2451
|
deep: true
|
|
2445
2452
|
labeled: true
|
|
2446
2453
|
qualified: true
|
|
@@ -2803,7 +2810,7 @@
|
|
|
2803
2810
|
type: hub
|
|
2804
2811
|
center: self
|
|
2805
2812
|
nodes: "[[FV.COMPONENT:*]], [[FR.REQUIREMENT:*]], [[INTERFACE:*]], [[DM.ENTITY:*]],
|
|
2806
|
-
[[TACTIC:*]], [[DECISION:*]]"
|
|
2813
|
+
[[UNIT:*]], [[NODE:*]], [[CONCERN:*]], [[TACTIC:*]], [[DECISION:*]]"
|
|
2807
2814
|
labeled: true
|
|
2808
2815
|
qualified: true
|
|
2809
2816
|
properties:
|
|
@@ -2918,6 +2925,7 @@
|
|
|
2918
2925
|
diagram:
|
|
2919
2926
|
type: hub
|
|
2920
2927
|
center: self
|
|
2928
|
+
nodes: "[[TS.TIER:*]], [[TS.TIER:*.COMPONENT:*]], [[DV.TIER:*]]"
|
|
2921
2929
|
hierarchy: true
|
|
2922
2930
|
properties:
|
|
2923
2931
|
- PRODUCT
|
|
@@ -2942,8 +2950,8 @@
|
|
|
2942
2950
|
diagram:
|
|
2943
2951
|
type: hub
|
|
2944
2952
|
center: self
|
|
2945
|
-
nodes: "[[TS.TIER:*.COMPONENT:*]], [[FV.COMPONENT:*]], [[
|
|
2946
|
-
[[DECISION:*]]"
|
|
2953
|
+
nodes: "[[TS.TIER:*.COMPONENT:*]], [[FV.COMPONENT:*]], [[CONCERN:*]],
|
|
2954
|
+
[[TACTIC:*]], [[DECISION:*]]"
|
|
2947
2955
|
labeled: true
|
|
2948
2956
|
qualified: true
|
|
2949
2957
|
properties:
|
|
@@ -3512,7 +3520,7 @@
|
|
|
3512
3520
|
type: hub
|
|
3513
3521
|
center: self
|
|
3514
3522
|
nodes: "[[DV.TIER:*]], [[AREA:*]], [[NODE:*]], [[NETWORK:*]], [[FV.COMPONENT:*]],
|
|
3515
|
-
[[UNIT:*]], [[TACTIC:*]], [[DECISION:*]]"
|
|
3523
|
+
[[UNIT:*]], [[CONCERN:*]], [[TACTIC:*]], [[DECISION:*]]"
|
|
3516
3524
|
labeled: true
|
|
3517
3525
|
qualified: true
|
|
3518
3526
|
properties:
|
|
@@ -3799,7 +3807,7 @@
|
|
|
3799
3807
|
center: self
|
|
3800
3808
|
nodes: "[[TACTIC:*]], [[NR.REQUIREMENT:*]], [[FV.COMPONENT:*]], [[UNIT:*]],
|
|
3801
3809
|
[[ASPECT:*]], [[NODE:*]], [[DM.ENTITY:*]], [[CONCERN:*]], [[DECISION:*]],
|
|
3802
|
-
[[TS.TIER:*.COMPONENT:*]]"
|
|
3810
|
+
[[TS.TIER:*.COMPONENT:*]], [[TEST-CASE:*]]"
|
|
3803
3811
|
labeled: true
|
|
3804
3812
|
qualified: true
|
|
3805
3813
|
properties:
|