Mario Sedlak
Softwareentwicklung
Siehe auch
Software
Computer
Hauptthemen

Softwareentwicklung – Design

Unter einem "Design" verstehe ich in der Softwareentwicklung das Treffen der grundlegenden Entscheidungen, wie ein neues Softwareprojekt umgesetzt werden soll:

Ein Design-Dokument hält sich in allem noch recht vage. Ihm muss eine Spezifikation folgen, die viel genauer ins Detail geht. Bei großen Anwendungen ist so eine zeitintensive, aufgeteilte Arbeitsweise üblich. Ob sie auch wirklich effizient ist, darüber kann man streiten. Dem Vorteil der guten Arbeitsteilung und Dokumentation steht der Nachteil entgegen, dass das Schreiben der ganzen Dokumente häufig mehr Aufwand als das eigentliche Programmieren verursacht.

Recherchen

Wenn man ein Design-Dokument schreibt, hat man normalerweise viel mit verschiedenen Leuten zu besprechen, die sich untereinander nicht ganz einig sind. Mir ist das dann oft ein bisschen so vorgekommen wie Politik, wenn es um einen Gesetzesentwurf geht. Da gibt es Blockierer, Interessensvertreter, Machtkämpfe, ... Oft ist der Programmieraufwand für eine kleine Verbesserung geringer als die Zeit, in der man darüber diskutiert.

Hintergrundinformationen

Als wichtig empfinde ich, auch Hintergrundinformationen anzugeben, warum etwas so oder so vorgegeben wird. Streng genommen sind solche Informationen entbehrlich, aber manchmal hat sogar der Programmierer, der ganz zuletzt in der Informationskette sitzt, eine gute Idee der Vereinfachung, die niemand vor ihm hatte (z. B. weil nur der Programmierer weiß, wie die Software intern arbeitet). Je weniger Informationen man ihm gibt, desto weniger Vorschläge kann er jedoch machen.

Hintergrundinformationen werden z. B. auch im Request for Comment 1521 gegeben (nach "rationale" suchen).

Testfälle

Sehr überrascht war ich, wie mir mein Vorgesetzter erklärt hat, dass man schon bei der Erstellung des Designs Fallbeispiele angeben muss, die das korrekte, zu erwartende Ergebnis angeben, wenn die und die Ausgangsbedingungen vorliegen. Wenn die Software eine komplexe Berechnung vornehmen soll, bedeutet das meines Erachtens, dass ich die Software zuerst selbst schreiben muss (z. B. in Excel), bevor die Programmierer die Software dann nocheinmal schreiben können. Das erscheint mir absurd.

Vergleiche

Weiter

Softwarespezifikation

Siehe auch

Weblinks