Skip to content

Commit

Permalink
updated
Browse files Browse the repository at this point in the history
  • Loading branch information
rdmueller committed Mar 10, 2024
1 parent 28d8612 commit 2c3b365
Showing 1 changed file with 186 additions and 2 deletions.
188 changes: 186 additions & 2 deletions Uebungen.adoc
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
:icons: font
:diagram-server-url: https://kroki.io
:diagram-server-type: kroki_io

++++
<style>
details > div.content {
Expand Down Expand Up @@ -49,6 +52,19 @@ Den Qulitätsbaum referenzierst Du als PlantUML über
....
----
[TIP]
=====
PlantUML und andere Diagramme können gut über einen Kroki.io Server gerendert werden.
Der Server wird in AsciiDoc wie folgt konfiguriert:

[source, asciidoc]
----
:diagram-server-url: https://kroki.io
:diagram-server-type: kroki_io
----

=====
siehe auch https://docs.asciidoctor.org/diagram-extension/latest/[AsciiDoc Diagram-Extension], https://docs.asciidoctor.org/asciidoc/latest/directives/include/[AsciiDoc Include-Directive]
====
Expand Down Expand Up @@ -77,7 +93,7 @@ TIP: achte darauf den Namen `sec-quality-tree` für jedes Diagramm zu überschre
siehe auch https://docs.asciidoctor.org/asciidoc/latest/directives/include-tagged-regions/[AsciiDoc tagged-regions]
====

=== Systemkontext
== Systemkontext

Nutze https://draw.io[draw.io] um einen Systemkontext zu zeichnen.
Binde den Systemkontext in Kapitel 3 ein.
Expand All @@ -102,7 +118,7 @@ image::C4/systemkontext.dio.svg[]
Verfeinere den Systemkontext weiter.
====

=== ADRs: Pugh-Matrix
== ADRs: Pugh-Matrix

Erstelle eine Pugh-Matrix in Excel als graphische Übersicht der bewerteten Qualitätskriterien verschiedener Optionen einer Entscheidung.

Expand All @@ -121,10 +137,178 @@ Mit dem Kommando
exportierst Du alle Excel-Files im Projekt nach `CSV` und `AsciiDoc`.
Du findest die Files unter `src/docs/excel/[name des Excel-Files]/[Name des Worksheets].adoc`.
Siehe auch https://doctoolchain.org/docToolchain/v2.0.x/015_tasks/03_task_exportExcel.html[exportExcel]
====

Was fällt Dir auf?

.Lösung
[%collapsible]
====
Es werden nicht nur die Daten aus dem Excel-File exportiert, sondern auch Farben, Col- und Row-Spans und Formeln werden berechnet.
====

== Skizzieren mit MS PowerPoint

Als Architekt bist Du es wahrscheinlich gewöhnt Deine Architektur mit PowerPoint zu skizzieren und präsentieren.

Erstelle eine Lösungsskizze / Big Picture / Informelle Übersicht mit PowerPoint und binde 1-2 Slides in Deine Dokumentation ein.

TIP: Verwende `{slide}` in den Speakernotes um den Dateinamen der exportierten Folie zu erhalten.

.Lösung
[%collapsible]
====
Powerpoint lässt sich ähnlich wie Excel in Deine Dokumentation einbauen.
Verwende dazu den Task `exportPPT`.
Dabei werden die Folien einzeln als `.jpg` und alle Speakernotes zusammen als `.ad` (AsciiDoc) exportiert.
Da die Namen der exportierten Slides nicht ganz einfach zu erkennen sind, kann in den Speakernotes {slide} als Platzhalter verwendet werden, der automatisch ersetzt wird.
Durch das gezielte setzen von `// tag::[]` können leicht einzelne Slides und deren beschreibender Text in AsciiDoc inkludiert werden.
siehe auch https://doctoolchain.org/docToolchain/v2.0.x/015_tasks/03_task_exportPPT.html[exportPPT]
TIP: PowerPoint kann mit einem Stift auch sehr gut als digitales Whiteboard eingesetzt werden.
====

== Skizzieren mit draw.io

Auch draw.io eigent sich hervorragend für Skizzen.

Skizziere diesmal eine Änderung an einem Frontend, indem Du einen Screenshot des Frontends in draw.io mit Anmerkungen versiehst.

.Lösung
[%collapsible]
====
Die Heransgehensweise sollte klar sein.
Das insteressante daran ist, dass Du per Copy & Paste einen Screenshot in draw.io kopieren kannst und diesen dann mit Vektorgrafiken annotieren kannst.
Draw.io speichert bei den Formaten `.png` und `.svg` den Source in den Meta-Daten.
Dadurch kann solch ein annotierter Screenshot jederzeit erneut geöffnet und verändert werden.
====

== Bausteinsicht

Die Bausteinsicht ist durch ihre Hirarchie etwas herausfordernd. Hier gibt es mehrere Ansätze.

=== Bausteinsicht mit draw.io

Öffne den Systemkontext in draw.io und füge den Elementen in draw.io Links auf Unterseiten hinzu.

Binde die Grafik so ein, dass die Links funktionieren.

TIP: das funktioniert nur bei `.svg`-Grafiken, die `inline` eingebunden werden.

.Lösung
[%collapsible]
====
Das Diagramm muss mit `opts=inline` eingebunden werden.
Das führt aber zu Problemen mit dem `imagesdir`, welches der generierten HTML Seite sagt, wo die Bilder liegen.
Durch die `inline` Option muss Asciidoctor allerdins schon beim Rendering die Datei einbinden.
Folgendes Fragment funktioniert:
[source, asciidoc]
----
:currentImagesDir: {imagesDir}
// je nach Folder muss hier der Verweis richtig gesetzt werden
:imagesdir: ../../../images/
image::C4/systemkontext.dio.svg[opts=inline]
:imagesDir: {currentImagesDir}
----
TIP: Dieses Beispiel kann weitergeführt werden, indem die hirarchische Struktur der Bausteinsicht in den Dokumenten und im `images`-VErzeichnis nachgebaut und verlinkt wird
====

=== Bausteinsicht mit PlantUML

Auch PlantUML unterstützt Links in `.svg` Diagrammen.
Hier besteht der Vorteil, dass kein `imagesdir` manipuliert werden muss.

Die Diagramme werden mit zwei identischen Optionen für unterschiedliche Ausgaben eingebunden:


.Lösung plain PlantUML
[%collapsible]
====
[source, asciidoc]
----
[plantuml,demo1,svg,opts="inline",svg-type="inline"]
-----
@startuml
set separator none
title Software System - System Context
top to bottom direction
skinparam {
arrowFontSize 10
defaultTextAlignment center
wrapWidth 200
maxMessageSize 100
}
hide stereotype
skinparam rectangle<<SoftwareSystem>> {
BackgroundColor #1168bd
FontColor #ffffff
BorderColor #0b4884
shadowing false
HyperlinkColor #ffffff
}
skinparam person<<User>> {
BackgroundColor #08427b
FontColor #ffffff
BorderColor #052e56
shadowing false
}
person "==User\n<size:10>[Person]</size>\n\nA user of my software system." <<User>> as User
rectangle "==Software System\n<size:10>[Software System]</size>\n\nMy software system." <<SoftwareSystem>> as SoftwareSystem [[01_BigSpender/01_container.html]]
User .[#707070,thickness=2].> SoftwareSystem : "<color:#707070>Uses"
@enduml
-----
----
====


.Lösung C4 Plantuml
[%collapsible]
====
[source, asciidoc]
----
[plantuml,demo2,svg,opts="inline",svg-type="inline"]
-----
@startuml
set separator none
title Software System - System Context
skinparam {
HyperlinkColor #ffffff
}
top to bottom direction
!include <C4/C4>
!include <C4/C4_Context>
Person(User, "User", $descr="A user of my software system.", $tags="", $link="")
System(SoftwareSystem, "Software System", $descr="My software system.", $tags="", $link="01_BigSpender/01_container.html")
Rel(User, SoftwareSystem, "Uses", $techn="", $tags="", $link="")
SHOW_LEGEND(true)
@enduml
-----
----
====

=== Bausteinsicht mit Structurizr

Du kannst auch Structurizr von Simon Brown zum Erstellen von C4 Diagrammen verwenden.

Schlage im README.adoc nach, wie Du Structurizr-Lite starten kannst um eine workspace.dsl zu verwenden.

0 comments on commit 2c3b365

Please sign in to comment.