Programmieren - alles kontrollieren 4.935 Themen, 20.621 Beiträge

Wie erfolgreich planen (Objektorientiert)

Yves3 / 2 Antworten / Flachansicht Nickles

Hallo

Ich programmiere jetzt schon einige Jahre und habe schon mehrere kleinere bis mittlere Projekte abgeschlossen.
Immer und überall wird eine gute Planung vor der eigentlichen Programmierarbeit empfohlen, was ich auch aus meiner Erfahrung bestätigen kann. Die meiste Zeit verschwende ich nämlich immer noch mit dem Anpassen meines Programmcodes, weil ich irgend etwas bei der Planung nicht berücksichtigt habe. Das Problem ist bei mir nicht die mangelnde Bereitschaft zur Planung, sondern einfach die Tatsache, dass ich nie alles berücksichtige und der kleinste Denkfehler grosse Auswirkungen auf den Aufbau des Programms hat. Ein einziger solcher Denkfehler kann dazu führen, dass vielleicht zwei oder gar drei Klassen angepasst werden müssen. Wenn es zwei oder drei so kleine Probleme mit dem Plan gibt, dann muss häufig schon das ganze Programm umstrukturiert werden.
Ist die nötige Erfahrung mit Technologien, Libraries und der Sprache vorhanden, so kommt es zwar zu weniger Problemen, ein paar bleiben aber meistens trotzdem. Wenn man einige Teile noch nicht so kennt, dann ist eine Planung meistens beinahe nutzlos.

Meine bisherige Methode beim Programmieren von Programmen mit einigen unbekannten Teilen war grob folgende:
Zuerst überlegte ich mir, was ich alles an Einzelaufgaben können muss und erstellt für mich Demoprojekte, die diese Aufgaben einzeln behandeln. Wenn ich dann alles zusammen hatte, erstellte ich ein Klassendiagramm für das komplette Projekt, in dem die Einzelaufgaben in Objekte unterteilt und so angeordnet werden, dass sie die gesamte Aufgabe des Programms erfüllen.
Das klingt ja logisch und beinahe perfekt, ist es aber nicht. Schon während dem Schreiben der Demoprojekte bemerke ich manchmal, dass ein bereits erstelltes Demoprojekt für eine Aufgabe gar nicht gebraucht werden kann.
Das ist wie mit der Henne und dem Ei. Wenn man kein Klassendiagramm des gesamten Programmaufbaus hat, dann weiss man auch nicht genau, was im Detail alles für Aufgaben erfüllt werden müssen. Hat man allerdings kein detailliertes Wissen über die "Einzelteile" des Programms, so ist es schlicht unmöglich ein Klassendiagramm zu erstellen, weil man die Aufteilung der Objekte (im allgemeinen Sinn) und die Schnittstellen zwischen ihnen nicht richtig beurteilen kann.

Wie empfindet ihr das? Habt ihr irgendwelche Tipps zum Lösen solcher Probleme? Wie ausführlich und mit welchen Mitteln plant ihr? Wie geht ihr bei Unbekanntem vor, das zuerst noch ganz oder teilweise erlernt werden muss und deshalb eine vorgängige Planung stark erschwert?

bei Antwort benachrichtigen