Kommunikation und Dokumentation Flashcards
Welche Zwecke erfüllt die Dokumentation von Code?
- Grundlage der Kommunikation mit verschiedenen Stakeholdern
- Verringerung des Aufwands von Wartung und Änderung durch schnelleres Verständnis der Codebase
- Erfassung der Qualitätsanforderungen
Welche Fragen muss die Dokumentation beantworten?
- Wie ist der Quellcode strukturiert?
- Welche größeren Implementierungseinheiten gibt es?
- Welche Beziehungen gibt es zwischen diesen Komponenten?
- Wie ist das Verhalten der Komponenten zur Laufzeit und wie arbeiten sie zusammen?
- Wie fügt sich das System in seine Umgebung ein?
- Welche grundlegenden Entscheidungen, Technologien und Konzepte prägen die Lösung, deren Implementation und den Betrieb?
Was sind die Qualitätsanforderungen an die Dokumentation?
- Aktualität und Korrektheit
- Zielgruppenadäquatheit
- Verständlichkeit und Konsistenz
- Wartbarkeit
- Kompaktheit
- Hierarchie (innerhalb des Systems)
- Kostengünstigkeit
Was sind die notwendigen Bestandteile eines Architekturdokuments?
Zentrale Architekturbeschreibung:
- Enthält alle architekturrelevanten Informationen
- Umfangreichster und detailliertester Teil der Dokumentation
- Wird auch SWAD genannt
Programmer’s Daily Reference Guide:
- kurzes Dokument
- enthält die wichtigsten technischen Informationen für die tägliche Arbeit
Was sind die optionalen Bestandteile eines Architekturdokuments?
- Dokumentationsübersicht
- Übersichtsrepräsentation
- Architekturtapete
- Handbuch zur Architekturdokumentation
Was ist eine Sicht?
Eine Sicht ist eine Abstraktion der Realität aus einer spezifischen Perspektive, z.B. Grundriss, Elektroplan, Fluchtwegplan…
Verschiedene Sichten bereiten die für verschiedene Stakeholder relevanten Informationen auf
Was kennzeichnet die Sicht der Kontextabgrenzung?
- Systemlandkarte auf hoher Abstraktionsebene
- Zeigt ebenfalls das Umfeld des Systems
- System als Blackbox
- Zeigt Schnittstellen mit Fremdsystemen, Anwendern, Betreibern
- Notation: Klassendiagramme mit Assoziationen zu anderen Systemen
Was kennzeichnet die Bausteinsicht?
- Beinhaltet Komponenten, Klassen, Pakete, Subsysteme und Partitionen
- Stellt Abhängigkeiten zwischen den Bausteinen dar
- Bausteine werden in Hierarchien dargestellt
- Notation: Bausteine => UML-Klassendiagramme, Komponenten mit Schnittstellen
Was kennzeichnet die Laufzeitsicht?
- Beschreibt das Verhalten der Bausteine zur Laufzeit
- Beschreibt, wie die Bausteine zur Laufzeit gestartet, überwacht und beendet werden
- Enthält Informationen zum Systemstart, Laufzeitkonfigurationen, Administration
- Notation: Sequenzdiagramm, Aktivitätsdiagramm, Kollaborations/Kommunikationsdiagramm
Was kennzeichnet die Verteilungssicht?
- Enthält Bestandteile der technischen Infrastruktur wie Prozessoren, Speicher, Netzwerke, Router, Firewalls
- Enthält Deployment, Verteilung und Installation der Software-Bausteine auf die Hardware
- Enthält physische Kanäle zwischen den Knoten
- Notation: Einsatzdiagramme, UML-Komponenten für Laufzeitelemente, UML-Beziehungen für physikalische Verbindungen
Was sind die Bestandteile des 4-Sichten-Modells nach Kruchten?
- Logical View: Object Model of the Design (if OOP is used)
- Process View: captures concurrency and synchronization aspects
- Physical View: describes the mappings of the software onto the hardware
- Development View: describes the static organization of the software in its development environment
Was sind gängige Werkzeuge zur Dokumentation?
- UML
- Textwerkzeuge (Office/Plaintext)
- Wiki
- Zeichenwerkzeuge
Was sind Kriterien für die Auswahl des Dokumentationswerkzeugs?
- Übersichtlichkeit
- Einfachheit der Benutzung, Suchfunktion
- Größe der Dokumente
- Verfügbarkeit
- Rollen-/Rechtekonzept, Zugriffe
- Robustheit
- Automatisierbarkeit
- Kommentar-/Reviewmöglichkeiten