82 lines
1.6 KiB
Typst
82 lines
1.6 KiB
Typst
#import "tabler.typ"
|
|
// Colors used across the template.
|
|
#let stroke-color = luma(200)
|
|
#let fill-color = luma(240)
|
|
|
|
|
|
#let idState = state("04cb31e7-92f1-4e72-82d8-e5ef190d0745", 0)
|
|
|
|
|
|
|
|
#let usecase(
|
|
name: "",
|
|
diagramm: none,
|
|
actors: ([],),
|
|
precondition: [],
|
|
process: [],
|
|
acceptanceCriteria: none,
|
|
offset: 2,
|
|
) = {
|
|
idState.update(s => s + 1)
|
|
|
|
set heading(offset: offset, numbering: none)
|
|
|
|
context [
|
|
#figure(
|
|
none,
|
|
kind: "usecase",
|
|
supplement: _ => [UC-#h(-0.25em)],
|
|
)
|
|
#label("usecase-" + str(idState.get()))
|
|
|
|
#figure(
|
|
tabler.sideways(
|
|
columns: (auto, 1fr),
|
|
|
|
[Bezeichnung ],
|
|
[UC-#idState.get(): #name],
|
|
|
|
..(
|
|
if diagramm != none {
|
|
(
|
|
[Diagramm],
|
|
block(
|
|
inset: (top: 0.5em, left: 0.5em, right: 0.5em),
|
|
width: 100%,
|
|
figure(
|
|
diagramm,
|
|
caption: [Diagramm für #{ "UC-" + str(idState.get()) }],
|
|
),
|
|
),
|
|
)
|
|
} else { () }
|
|
),
|
|
|
|
[Beteiligte Akteure],
|
|
actors.join(", "),
|
|
|
|
[Vorbedingungen],
|
|
precondition,
|
|
|
|
[Ablauf],
|
|
process,
|
|
..(
|
|
if acceptanceCriteria != none {
|
|
(
|
|
[Akzeptanzkriterien],
|
|
[
|
|
#for criteria in acceptanceCriteria {
|
|
[+ #criteria]
|
|
}
|
|
],
|
|
)
|
|
}
|
|
),
|
|
),
|
|
caption: [Anwendungsfall: #{ "UC-" + str(idState.get()) }],
|
|
)
|
|
|
|
|
|
]
|
|
}
|