Lebende Dokumentation
Eine lebende Dokumentation, auch dynamische Dokumentation, ist eine Beschreibung, welche durch kontinuierliche Bearbeitung aktuell gehalten wird. Ein Beispiel für eine lebende Dokumentation stellt ein Wiki dar.
Das Gegenstück zur lebenden Dokumentation wird als tote oder statische Dokumentation bezeichnet. Es handelt sich hierbei um ein Dokument, dessen Inhalt nicht kontinuierlich aktualisiert wird.
Gesetzgebung
In der Gesetzgebung werden Dokumente gepflegt, welche den aktuellen Zustand des Gesetzes wiedergeben. Hierbei muss zudem sichergestellt sein, dass auch alte Versionen der Gesetzgebung als statische Dokumentation erhalten bleiben, um eine historische Nachvollziehbarkeit zu gewährleisten.
Veränderungs- und Anforderungsmanagement
Im Veränderungs- und Anforderungsmanagement versteht man von einem Team geteilte Dokumente, welches vom Team aktuell gehalten wird. Unabhängig vom Formalitätsgrad der Dokumentation werden für das Team Bedingungen und Anforderungen definiert, welche zur Bearbeitung des Dokuments nötig sind.
Gemäß dem Single-Point-of-Truth-Prinzip sollte, bei (gewollter) Redundanz, zudem ein zentrales Dokument existieren, dessen Richtigkeit sichergestellt wird.
Softwareentwicklung
In der Softwareentwicklung wird zwischen einer von einem Menschen erstellten und gewarteten Beschreibung, welche die Anwendung verifiziert, sowie einer automatisch erstellten Beschreibung, welche aus dem Programm erstellt wurde, unterschieden. Gemäß dem DRY-Prinzip sollte zudem eine redundante (nicht ausführbare) Dokumentation vermieden werden.
Im Rahmen des Anforderungsmanagements wird die Anforderung an die Software in einer lebenden Dokumentation in einer vordefinierten Sprache (z. B. Gherkin) von einem Menschen verfasst. Hieraus werden Softwaretests erstellt, welche bei Ausführung verifizieren, ob der Zustand des Programms mit der Anforderung übereinstimmt.
Eine andere Art von lebender Dokumentation stellt die Humane Registry dar, welche (z. B. mittels Reflexion) automatisch aus dem Programm erstellt wird und die Schnittstellen des Programms dokumentiert. Die Schnittstellen können hierbei zu Testzwecken direkt über die Humane Registry angesteuert werden.
Des Weiteren kann, etwa mittels eines Erstellungsprozesses, auch automatisch eine nicht-ausführbare Dokumentation aus dem Quelltext des Programms erstellt werden. Diese Dokumentation umfasst hierbei Schnittstellenbeschreibungen und ggf. UML-Diagramme, welche Funktion und Aufbau der Anwendung dokumentieren. Da ein solches Dokument jedoch redundant zum Quelltext ist, kommt eine derartige Methodik nur noch vereinzelt zur Anwendung.