Richtige Dokumentation eines Java Programms

Letavino

Aktives Mitglied
Hallo, ich hoffe, dies ist der richtige Bereich hierfür!
Ich bin gerade dabei eine Technische Dokumentation eines Java Programms von mir zu schreiben, welche einen Einblick für andere bieten soll, die mit dem Programm arbeiten, aber auch für diejenigen, die im Quellcode des Programms Änderungen vornehmen möchten.

Bisher habe ich:
- Eine Einleitung mit Vorbemerkungen
- Eine Erklärung der verwendeten Datenbanken
- Die Aufgabenstellung, Anforderungen und Ziele des Programms
- Eine Beschreibung der Benutzeroberflächen
- Eine grobe Struktur der Dateien und deren Beschreibung
- Datenbankendiagramme
- Einen Abschnitt zum Programmtest
- Und schließlich eine Zusammenfassung

- Der Quelltext ist kommentiert und mit JavaDoc ausgestattet

Doch fehlt eine genauere Übersicht über den Programmablauf. Bei meinem letzten PHP Projekt konnte ich dazu für die wichtigsten Dateien PAP's erstellen, bei meinem Java Code scheint das so nicht möglich zu sein, da der Programmablauf nicht so linear ist.
Welche Form der Darstellung würde sich hier anbieten?
Gibt es Programme, die soetwas automatisch aus dem Code heraus erstellen können?
Programme für UML habe ich bereits gefunden, fand die darstellung aber irgendwie sehr nichts-sagend.

Mfg, Florian
 

Guardi

Bekanntes Mitglied
UML ist aber der Standard ;)

Klassendiagramme (Architektur) und Sequenzdiagramme (Ablauf) sind sogar must-haves!
Du wirst dich damit wohl ein bisschen beschäftigen müssen.
Allerdings ist es immer einfacher Diagramme aus fertigem Code zu stricken als konzeptionell welche zu erstellen für wein Projekt, dass man zukünfitg umsetzen möchte.
 

Wildcard

Top Contributor
Allerdings ist es immer einfacher Diagramme aus fertigem Code zu stricken als konzeptionell welche zu erstellen für wein Projekt, dass man zukünfitg umsetzen möchte.
Das ist dann auch genau die Art von UML Diagramm mit der niemand etwas anfangen kann ;)
 

schalentier

Gesperrter Benutzer
Ich weiss ja net, was fuer ein Programm du geschrieben hast, aber normalerweise macht man zwei Dokus. Eine fuer den Anwender und eine fuer Entwickler. Das Ziel sollte es sein, das beide Dokus so lang wie noetig, aber so kurz wie moeglich sind. Erreichen kann man das ueber eine intuitive Oberflaeche mit sinnvollen Tooltips fuer den Anwender und einfachem, logischem Quellcode mit durchdachten Klassen-/Methodennamen fuer den Entwickler.

Fuer Anwender:
- Die Aufgabenstellung, Anforderungen und Ziele des Programms
Sehr wichtig, hier sollte viel Gehirnschmalz drin stecken
- Eine Beschreibung der Benutzeroberflächen
Haengt von der Komplexitaet der Anwendung ab, sollte soweit moeglich selbstklaerend sein. Hauptproblem hier ist, wie haelt man die Beschreibung mit der Anwendung selbst aktuell?

Fuer Entwickler:
- Eine Erklärung der verwendeten Datenbanken
Okay
- Eine grobe Struktur der Dateien und deren Beschreibung
Sehr praktisch, wenn man mit Maven arbeitet aber vergleichsweise unwichtig, da das Projektlayout immer gleich ist
- Datenbankendiagramme
ER Diagramme? Wird das generiert? Ansonsten wuerd ich nur die wichtigsten Tabellen, Beziehungen und Felder beschreiben.
- Einen Abschnitt zum Programmtest
Schoen, hier sollte erklaert werden, wie man schnell einen Unittest schreibt, vielleicht irgendwas ueber bestehende Mock-Strukturen, etc.
- Der Quelltext ist kommentiert und mit JavaDoc ausgestattet
Kann nicht schaden ;-)

Welche Form der Darstellung würde sich hier anbieten?
Sequenzdiagramme

Gibt es Programme, die soetwas automatisch aus dem Code heraus erstellen können?
Programme für UML habe ich bereits gefunden, fand die darstellung aber irgendwie sehr nichts-sagend.
Ja gibt es, ist im meinen Augen aber Humbug. Ich wuerd maximal den Ablauf einiger weniger kritischer Stellen per UML dokumentieren. Hier gilt wie fuer die gesamte Doku, weniger ist oft mehr.

Das Problem an ausfuehrlicher Dokumentation ist die Aktualitaet. Niemand hat Lust, das gerade Programmierte noch an zig Stellen in riesigen Word-Dokumenten nachzupflegen. Fuer mich haben sich UserStories als hervoragendes Mittel herausgestellt. Da beschreibt man "nur", wer was in der Anwendung machen kann. Aber nicht das wie, denn das steht im Code.

Aber wie immer, es haengt sehr stark von der Anwendung ab.
 

Andi_CH

Top Contributor
Das ist dann auch genau die Art von UML Diagramm mit der niemand etwas anfangen kann ;)

Ich muss dir bepflichten. Ich habe noch nie brauchbare UML Diagramme gesehen, die aus Code generiert wurden und nicht massiv überarbeitet wurden.

UML Diagramme werden zuerst erstellt und dann wird anhand dieser der Code erstellt bzw. zum Teil automatisch generiert.
Am Schluss (nobody is perfect) braucht es sicher noch etwas Feintunig an den Diagrammen weil der Code ja "organisch" gewachsen ist.

Das Eingangsposting so als Inhaltsverzeichnis betrachtet sieht nicht recht gut aus.
 
Zuletzt bearbeitet:

Letavino

Aktives Mitglied
Ok, vielen Dank für die guten Antworten!
Ich denke, da muss ich noch ein bisschen nacharbeiten und ich werde das nächste Projekt auch erstmal mit einer ausgedehnteren Planungsphase beginnen.

Ihr habt mir wirklich wietergeholfen. :)

mfg, Florian
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Lottospiel, genug Reihen tippen für 3 Richtige (Spaß mit Arrays)? Allgemeine Java-Themen 46
N Ist Selenium hier das richtige Werkzeug? Allgemeine Java-Themen 1
F Java Script für das Vorhaben das richtige? Allgemeine Java-Themen 9
B Logikfehlersuche, das perfekte Lottosystem für 3 Richtige mit Arraylists? Allgemeine Java-Themen 61
F Java die richtige Sprache? - Anfänger Allgemeine Java-Themen 3
T If Vergleich ergibt nicht das richtige Ergebnis Allgemeine Java-Themen 2
U Welches ist das richtige Entwurfsmuster Allgemeine Java-Themen 2
P Richtige Verwendung eines Timers Allgemeine Java-Themen 8
J JSP die richtige Wahl Allgemeine Java-Themen 2
Final_Striker Exceptionhandling: Richtige Verwendung des Try/Catch Blocks Allgemeine Java-Themen 14
P Ist Java überhaupt das Richtige für mich? Allgemeine Java-Themen 7
G "Richtige" Konsolenanwendung (wie z.B. nano, cente Allgemeine Java-Themen 4
B Java, Ant und das richtige JDK? Allgemeine Java-Themen 9
T Ist IAdaptable die richtige Lösung? Allgemeine Java-Themen 4
O Oberfläche und "richtige" Programmierung Allgemeine Java-Themen 8
L Welche Collection ist die richtige ? Listen mergen Allgemeine Java-Themen 3
K Richtige JVM für jar Ausführung? Allgemeine Java-Themen 4
meez Vectoren vs. "richtige" Arrays Allgemeine Java-Themen 18
berserkerdq2 Gibt es eine saubere Dokumentation von Jfoenix? Allgemeine Java-Themen 1
D Javadoc - API-Dokumentation Allgemeine Java-Themen 2
P JAVA Code in Dokumentation erklären Allgemeine Java-Themen 2
Luk10 API - Dokumentation Allgemeine Java-Themen 7
H2SO3- auswahl ob dokumentation en oder de Allgemeine Java-Themen 2
GilbertGrape Wo Dokumentation einer abstrakten Methode? Allgemeine Java-Themen 5
T Was gehört alles in eine vollständige Dokumentation Allgemeine Java-Themen 3
J Java Quellcode Aufbereitung für Dokumentation Allgemeine Java-Themen 11
R Automatische Code Dokumentation Allgemeine Java-Themen 3
S Paar Infos für meine Dokumentation. Allgemeine Java-Themen 5
M deutsche Dokumentation zum Download? Allgemeine Java-Themen 7
E JDK-Dokumentation auf deutsch Allgemeine Java-Themen 3
O regulärer Ausdruck zum durchsuchen eines Strings verwenden Allgemeine Java-Themen 2
T Rotationswinkel eines Bildes bestimmen Allgemeine Java-Themen 4
C Probleme beim Erstellen eines runnable-jar files Allgemeine Java-Themen 1
J JavaScript innerhalb eines Java Projekts ausführen Allgemeine Java-Themen 2
Encera Größe eines Objektes in Byte berechnen Allgemeine Java-Themen 2
8u3631984 Prüfen ob min. ein Element eines Sets in einem anderen Set enh Allgemeine Java-Themen 4
M Array Rang eines Elements Allgemeine Java-Themen 4
OnDemand Teile eines Links entfernen Allgemeine Java-Themen 6
H Auslesen eines (LDAP-)Attributs in Active Directory Allgemeine Java-Themen 2
W JSON parsen eines ,mit JS.stringify erstellten Strings Allgemeine Java-Themen 27
H Textposition eines gedrehten Textes verschieben Allgemeine Java-Themen 8
berserkerdq2 run-methode eines Threads so programmieren, dass 30x die Sekunde etwas ausgeführt wird. Allgemeine Java-Themen 44
E Ersetzen eines Bildes in der Kopfzeile eines Word-Docx-Dokuments mit Apache POI XWPF Allgemeine Java-Themen 0
N Fahrtrichtung eines selbstfahrenden Auto ändern Allgemeine Java-Themen 3
T Letztes Zeichen eines Strings enfernen Allgemeine Java-Themen 14
S Übergabe eines Sortierkriteriums für ein Artikel Array mittels BiPredicate<Artikel, Artikel> Allgemeine Java-Themen 13
gotzi242 Schatzsuche mithilfe eines O(log n) Algorithmus Allgemeine Java-Themen 2
C Koordinaten LONG/LAT eines neuen Punktes in bestimmter Entfernen und Winkel berechnen Allgemeine Java-Themen 3
Tobero Meine Funktion für das beinhalten eines Punktes in einem Kreis funktioniert nicht Allgemeine Java-Themen 5
LimDul Direktes return eines Array geht nicht Allgemeine Java-Themen 20
S Mittelwert anhand eines Stream berechnen Allgemeine Java-Themen 5
kodela Breite eines erweiterten Monitors feststellen Allgemeine Java-Themen 5
R Zeilen eines 2d Arrays abwechselnd links und rechts mit Nullen auffüllen Allgemeine Java-Themen 14
Zrebna Alternative Darstellung eines Codesnippets Allgemeine Java-Themen 33
kodela Inhalt eines Arrays ändert sich mysteriös Allgemeine Java-Themen 2
bueseb84 Wget mit Wildcards - oder wie lädt man bei JFrog die letzte Version eines Artifacts herunter Allgemeine Java-Themen 3
N Erkennen eines Programs Allgemeine Java-Themen 2
N Pausieren eines Programmes Allgemeine Java-Themen 4
D Input/Output Implementierung eines CommandHandlers/Parsers für viele Eingaben Allgemeine Java-Themen 26
M Gibt es eine API die den aktuellen Wert eines Indikators beim Trading zurückgibt? Allgemeine Java-Themen 7
F Wie bekommt man alle Filenamen eines Webserver Verzeichnisses Allgemeine Java-Themen 6
A Fehler beim Öffnen eines Projekts Allgemeine Java-Themen 6
N Eigenschaften eines Buttons per Setter verändern Allgemeine Java-Themen 5
S Ausfuehrung eines Programms aufzeichnen..? Allgemeine Java-Themen 4
X Ermittlung eines doppelte Paars mit Streams Allgemeine Java-Themen 50
Stonie Prüfen von direkter Implementierung eines Interfaces Allgemeine Java-Themen 7
S Vorbereitung eines Praktikums Allgemeine Java-Themen 4
H Aufruf eines Web Service anhand übergebenen Parameter Allgemeine Java-Themen 2
M Weiterleiten von empfangenen Nachrichten eines StompSessionHandlers Allgemeine Java-Themen 1
J Programm zum Suchen eines Wortes im Dateisystem Allgemeine Java-Themen 4
H Rename eines Projekts Allgemeine Java-Themen 1
J Fenstergröße eines anderen Programmes auslesen Allgemeine Java-Themen 9
ReinerCoder auf Klassen innerhalb eines package zugreifen Allgemeine Java-Themen 22
Meeresgott Erste Schritte Sourcetree - Git | Suchen eines Commits Allgemeine Java-Themen 2
E Status eines USB Mikrofon abfragen Allgemeine Java-Themen 2
DaCrazyJavaExpert OOP Ansätze und Tipps zum Porgrammieren eines Taschenrechners Allgemeine Java-Themen 25
A OOP Problem beim Berechnen der größten Fläche eines Ringes Allgemeine Java-Themen 19
JavaNewbie2.0 Start eines Anderen Programm erkennen Allgemeine Java-Themen 6
I Verbindung eines Java-Plugins mit Webserver Allgemeine Java-Themen 3
L Auswertung eines Testes funktioniert nicht Allgemeine Java-Themen 37
G Iteratoren - Wie kann man mithilfe von Iteratoren nur jeden zweiten Wert eines TreeSets ausgeben? Allgemeine Java-Themen 4
GreenTeaYT Elemente eines 2Dim LinkedList von links nach rechts ausgeben? Allgemeine Java-Themen 0
B Spalten eines 2d-Arrays Allgemeine Java-Themen 2
M Rechenprogramm eines wissenschaftlichen Taschenrechners Allgemeine Java-Themen 4
S Eigenschaften (hier Verknüpfung) eines Files lesen Allgemeine Java-Themen 2
E Typüberprüfung eines chars Allgemeine Java-Themen 5
H Hilfe bei Erstellung eines Hilfe Fenster bei Tastendruck (F1 bei Win98) Allgemeine Java-Themen 5
T Teile eines Double-Wertes verändern Allgemeine Java-Themen 2
R Rückgabe eines Arrays durch Funktion Allgemeine Java-Themen 9
H Datentypen Typ eines Arrays überprüfen Allgemeine Java-Themen 9
RalleYTN DPI eines Bildes ändern Allgemeine Java-Themen 4
N Methoden Methoden einer Klasse auf Grundlage eines Strings aufrufen Allgemeine Java-Themen 6
K Bestimmten Bereich eines Strings lesen Allgemeine Java-Themen 6
C -Verschiedene Versionen eines Programms verwalten Allgemeine Java-Themen 7
O Datentypen Erstellung eines Containers, der verschachtelte Map-Strukturen beherbergen kann Allgemeine Java-Themen 0
A einmalige Ausführung eines Methodenabschnittes Allgemeine Java-Themen 3
F CPU Last eines Thread ausfindig machen Allgemeine Java-Themen 0
L Menge der Buchstaben eines Textes zählen Allgemeine Java-Themen 3
F Teil eines Bildes laden Allgemeine Java-Themen 1
Neumi5694 Operatoren regEx für das Erstellen eines Strings verwenden Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben