Psaniko hat geschrieben:Xin hat geschrieben:
Psaniko hat geschrieben:Inzwischen sind die meisten größeren Software-Projekte durch und durch konzeptioniert und durchgeplant und UML ist halt eine Form, Funktionsweise und Abhängigkeiten eines Projekts zu verdeutlichen.
Sagt wer?
Wikipedia zum Beispiel

Ich entwickle die Programmiersprache und den dazugehörigen Compiler. Achja, ich meine das ernst... ich mache das nicht, weil ich mal einen Compiler schreiben möchte, sondern weil ich die Sprache haben will. Der Compiler ist Mittel zum Zweck.
Dafür lese ich teilweise Literatur, nachdem ich die Probleme gelöst habe. Das mache ich jetzt seit dem Studium so. Erst denke ich, dann forsche ich. Ein Prof von mir sagte mir mal, dass ich nicht einfach so meine Gedanken niederschreiben darf, ich muss belege bringen. Ich arbeite nicht wissenschaftlich.
Da hat er recht. Was ich mache, hat bisher keiner so in ein Buch gepackt. Da hätten wir schonmal Problem 1.
Manches widerspricht aber akzeptierten Normen. Das kann ich mit Büchern also bloß widerlegen. Wissenschaftliches Arbeiten bedeutet also, wenn man etwas in einem Bereich machen möchte, der nicht möglich ist, zuerst zu beweisen, dass etwas nicht möglich ist und es dann doch zu tun.
Einer meiner Leitsprüche lautet "Always listen to experts - they tell you want can't be done and why. Then do it.". Ich sagte meinem Prof, dass das nicht funktioniert, denn nur weil jemand was hat drucken lassen, wird es nicht wahr. Er erwiderte, dass ein anständiges wissenschaftliches Werk auf seine Quellen verweist. Ich fragte ihn, worauf der erste Buchautor denn dann verweist. Das gab ihm definitiv zu denken.
Zwischendurch muss man selbst denken. Abschreiben funktioniert nur dann, wenn die Leute, von denen man abschreibt, überlegt haben oder selbst von Leuten abgeschrieben haben, die überlegt haben. Wenn da einer bei ist, der sich das Denken gespart hat, dann schreiben alle Unsinn ab und kombinieren den Kram zu neuem Unsinn.
Nehmen wir nun an, jemand hat überlegt und geschrieben. Und zwar zum Thema UML. Oder Java. Aus welchen Motiven schreibt die Person? Hat sie Argumente vorzubringen oder macht sie nur einen Vorschlag, den die Person selbst gut findet. Oder möchte sie etwas verkaufen?
Zum Thema Java kann ich Dir belegen, dass Java die einzige Wahrheit ist. Das haben Leute reihenweise ohne auch nur den Hauch einer Kritik übernommen. Im Studium hatte ein Bekannter von mir folgende Prüfungsfrage (das ist jetzt kein Scherz): "Warum wird eine Kaffeemaschine in Zukunft 128 MB RAM haben". Korrekte Antwort: "Um Java drauf laufen zu lassen".
Was ich für Märchen über Java habe lernen müssen, die technisch nicht haltbar sind, das glaubt man heute nicht mehr. An einer Hochschule für Informatik, also von Leuten, die auch gerne Bücher zum Thema schreiben...
Ich habe auch UML gelernt. Es hat sich herausgestellt, dass die korrekte Planung der UML-Diagramme am effizientesten war, wenn man erst die Software schreibt und dann die Planung dazu macht und anschließend behauptet, dass man nun anhand der Planung die Software schreibt.
Wir hatten übrigens eine eins in dem Fach, weil unsere Planung so gut durchdacht war.
Psaniko hat geschrieben:Xin hat geschrieben:
Die Klassenübersicht (also nur die Namen der Klassen mit Linien zu ihren Ableitungen, nicht den Membern) meines Projektes hätte ich als Tapete drucken müssen. Da es eigentlich keine nennenswerten Informationen enthielt, konnte ich mir das auch sparen. Ich bin der einzige Entwickler an diesem Projekt. Nebenberuflich.
Naja, UML ist mehr als nur eine Klassenübersicht aber wenn dein Projekt selbsterklärend ist und jeder fremde Programmierer sofort durchblickt, wie was funktioniert..dann brauchst du auch kein UML ^^
Ich weiß, dass UML auch aus Fallstudien usw. besteht. Den Ablauf einer Software, die einen Colaautomat steuert, die muss ich aber nicht planen. Den Ablauf einer Software, die ein echtes Programm steuert, ist mit UML nicht mehr überschaubar.
Psaniko hat geschrieben:stampuhh hat geschrieben:
...oder man muss das komplette Programm vorher einmal in UML durchdenken und dann genau nach Plan umsetzen.
So ist es gedacht, ja ^^
Leider kann man ein echtes Programm niemals vorher planen.
Im echten Leben entwickelt ein Programm eine Dynamik. Was in der Theorie funktioniert, bleibt in der Praxis in einem unerwarteten Flaschenhals stecken. Was lange und gut geplant wurde, wird mit einem Anruf des Kunden, der ein kleines Feature dazu bestellt mit einem Schlag zu Altpapier.
Programmieren ist ein iteratives Verfahren, teilweise auch Evolution und nicht komplett planbar.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.