Welche Art von Diagrammen erstellen Programmierer typischerweise, bevor sie den Code schreiben?
Wenn nach “typischerweise” gefragt wird, dann muss ich aus meiner Erfahrung heraus ehrlicherweise antworten: Keine.
Nach meiner Erfahrung erstellen nur wenige Entwickler überhaupt Diagramme, bevor sie zu kodieren beginnen. Bei kleineren Projekten sowieso nicht, es sei denn sie werden dazu gezwungen. Bei größeren Projekten auch oft nur wenn mindestens einer dieser Bedingungen eintritt:
Es ist ein Top-Entwickler, der sich mit OO-Design oder ähnlichen Dingen schon beschäftigt hat
Er wird von der Projektleitung oder etablierten Vorgehensmodellen dazu gezwungen
Aus meiner Sicht, ist es absolut sinnvoll, bestimmte Diagramme zu erstellen — insbesondere:
UML-Klassendiagramme wenn es sich um ein komplexeres Zusammenspiel unterschiedlicher Klassen handelt
UML-Ablaufdiagramme, wenn es komplexe Abläufe oder ein komplexes Zusammenspiel zwischen den Klassen gibt
UML-State-Diagramme, falls eine State-Machine in irgend einer Form involviert ist.
Entity-Relationship (ER) Diagramme, falls ein relationales Datenbankschema verwendet wird
Darüber hinaus können Schnittstellen-Beschreibungen (i.d.R. in Text- oder Tabellenform) hinzukommen, wenn Schnittstellen zwischen Systemkomponenten oder an der Schnittstelle zum System (z.B. REST-Aufrufe) enthalten sind.
Letzteres ist das, was vermutlich am meisten in Form einem Design-Dokument in der Praxis erstellt wird, während die anderen Elemente oft entweder aus Unkenntnis oder mangelndem Interesse gar nicht erstellt werden.
Leider fehlt auch vielen Unternehmen überhaupt die Kompetenz, solche Diagramme bzw. Dokumente überhaupt einzufordern.