UML

Algorithmen, Sprachunabhängige Diskussionen zu Konzepten, Programmiersprachen-Design
Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: C-Tutorial - kleine Fehlerliste

Beitrag von Xin » Sa Feb 06, 2010 8:01 pm

Psaniko hat geschrieben:...stell dir mal vor du willst in deinem Dienst z.B. eine Authentifizierung via OpenID einbauen. Dann kannst du auch nicht das gesamte Projekt analysieren und jede einzelne Zeile Code kontrollieren, nur weil du den Programmieren nicht vertraust. In so einem Falle musst du dich wohl oder übel auf die Dokumentation der API beschränken im Vertrauen darauf, dass die OpenID-Programmierer keinen Unsinn abgeschrieben haben.
Zeig mir eine Dokumentation in UML.
Psaniko hat geschrieben:UML ist bestimmt nicht jedermanns Sache (meine auch nicht), aber in großen Teams musst du deine Vorgehensweise und deinen Code in irgendeiner Weise dokumentieren und deinen Team-Kollegen verständlich machen. Und UML ist halt einer der etablierten Standards.
Standard hin oder her. Ich habe PHP programmiert, Java, C#, C++ und ich mach das beruflich... in verschiedenen Softwarefirmen und in einem Forschungsinstitut.

Ich habe noch >-=-> NIE <-=-< eine Dokumentation in UML gesehen.

Die einzige UML Dokumentation, die ich bisher gesehen habe, haben wir für's Studium gemacht.
Xin hat geschrieben:Ansonsten besteht die Gefahr, dass man ein mögliches Feature nicht beachtet und später am Core rumfrickeln muss um es richtig zu implementieren. Gute Software ist gekapselt.
Gute Software ist in mindestens 99% eine Illusion.
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.

Psaniko
Beiträge: 17
Registriert: Mo Feb 01, 2010 5:34 pm

Re: C-Tutorial - kleine Fehlerliste

Beitrag von Psaniko » Di Feb 09, 2010 7:45 pm

Xin hat geschrieben:
Psaniko hat geschrieben:...stell dir mal vor du willst in deinem Dienst z.B. eine Authentifizierung via OpenID einbauen. Dann kannst du auch nicht das gesamte Projekt analysieren und jede einzelne Zeile Code kontrollieren, nur weil du den Programmieren nicht vertraust. In so einem Falle musst du dich wohl oder übel auf die Dokumentation der API beschränken im Vertrauen darauf, dass die OpenID-Programmierer keinen Unsinn abgeschrieben haben.
Zeig mir eine Dokumentation in UML.
Ich habe nicht behauptet, dass die Dokumentation ausschließlich aus UML besteht. Aber um deinem Befehl Folge zu leisten: google: uml
Xin hat geschrieben: Standard hin oder her. Ich habe PHP programmiert, Java, C#, C++ und ich mach das beruflich... in verschiedenen Softwarefirmen und in einem Forschungsinstitut.

Ich habe noch >-=-> NIE <-=-< eine Dokumentation in UML gesehen.
Ich habe Äpfel gegessen, Birnen, Kiwis und Weintrauben. Ich mag wirklich gerne Obst aber ich habe noch >-=-> NIE <-=-< eine Feige gegessen. Nur weil ich es nicht kenne, muss das nicht heißen, dass andere Leute die Feige nicht lecker finden.
Xin hat geschrieben:Gute Software ist in mindestens 99% eine Illusion.
Das musst du mir jetzt aber doch erklären?

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: UML

Beitrag von cloidnerux » Di Feb 09, 2010 10:04 pm

Xin hat geschrieben:Gute Software ist in mindestens 99% eine Illusion.
Das musst du mir jetzt aber doch erklären?
Nenn mir ein Programm und ich nenn dir 10 Gründe es nicht zu nutzen, das ist was er meint.
Wenn du ein Programm gut findest, dann liegt es daran, das du damit zurechtkommst und Produktiv bist, wenn du dies aber nicht erreichst, dann sagst du die Software ist schlecht, findest Fehler über Fehler und kreidest alles an was dir nicht gefällt. Es gibt kaum ein Programm, das nicht irgendwo Fehler hätte.
Wenn etwas wirklich gut wäre, dann würde die Software jeder benutzen, das tut aber keiner.

Software muss geplant werden, wie bleibt dem Programmier oder dem Team überlassen. UML ist eine Möglichkeit zu Planen, aber nur für den, der UML akzeptiert. Es wäre vielleicht für das Wiki, Möglichkeiten der Planung und Dokumentation von Software zu beschreiben.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: UML

Beitrag von Dirty Oerti » Di Feb 09, 2010 10:52 pm

... noch dazu ist kaum eine Software aus theoretischer Sicht her perfekt umgesetzt, denn ein Konzept (was z.B. mit UML erstellt worden sein könnte) kann perfekt durchgeplant sein und noch so toll sein, in der Software finden sich dann meist immer "kleinere Ärgernisse" wie Redundanzen, schlechte Kapselung in Klassen oder einfach Fehler/Bugs.
Oft ist dies aber auch notwendig, da sich das theoretische "Ideal" nicht nahe genug an der Realität bewegt und so z.B. keine ordentliche Fehlerüberprüfung in das Konzept mit einbezieht oder Rückmeldungen an den User nicht impliziert.
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: C-Tutorial - kleine Fehlerliste

Beitrag von Xin » Di Feb 09, 2010 11:40 pm

Psaniko hat geschrieben:Ich habe nicht behauptet, dass die Dokumentation ausschließlich aus UML besteht. Aber um deinem Befehl Folge zu leisten: google: uml
UML bei google kann ich auch eingeben.
Folgst Du Deinem Link landest in 14 von 21 Fällen bei Hochschulen, Universitäten oder Seiten, die UML erklären. Dann gibt es da eine Grafik, die eine Website verschönert, sowie das Cover eines Buches.
Bleiben von 21 Grafiken 5 über, von denen ich 3 nicht zuordnen kann und 2 Projekte mit weniger als 10 Klasse dokumentieren. Da hätten es drei Sätze auch getan.
Vielleicht habe ich mich zu knapp ausgedrückt: Zeig mir eine Dokumetation von einem Projekt. Also etwas, wo man auch mal wenigstens eine popelige Woche lang dran programmieren muss.

Ich habe mir mal eine Übersicht von meinem Projekt generieren lassen. Nur die Klassennamen - keine Methode oder Attribute - und wie sie in Verbindung stehen. Fand ich cool, wollte ich mir ausdrucken, zusammenkleben und dann aufhängen. Also alles zusammengeschoben, damit die Verbindungen auch gut aussehen und die zusammenhängenden Klassen nebeneinander liegen. Dann die Papiergröße kontrolliert: 4m mal 3m und festgestellt, dass meine Wohnung leider zu klein für ein UML Diagram ist, dass nahezu null Information trägt.

Nur der Vollständigkeit halber: Ich entwickle das Projekt alleine, ich bin keine Softwarefirma mit 10, 100 oder 1000 Mann. SAP hat um die 20000. Ich könnte mir vorstellen, dass SAP mit UML arbeitet. Habe eben noch mit einem SAP-Entwickler gesprochen, wenn ich dran denke, frage ich ihn mal, wie wichtig UML in seinem Job ist.
Psaniko hat geschrieben:
Xin hat geschrieben: Standard hin oder her. Ich habe PHP programmiert, Java, C#, C++ und ich mach das beruflich... in verschiedenen Softwarefirmen und in einem Forschungsinstitut.

Ich habe noch >-=-> NIE <-=-< eine Dokumentation in UML gesehen.
Ich habe Äpfel gegessen, Birnen, Kiwis und Weintrauben. Ich mag wirklich gerne Obst aber ich habe noch >-=-> NIE <-=-< eine Feige gegessen. Nur weil ich es nicht kenne, muss das nicht heißen, dass andere Leute die Feige nicht lecker finden.
Bist Du professioneller Obstverkoster?
Ich verdiene mit Programmierung meinen Lebensunterhalt und zahle die Unkosten dieses Forum. Ansonsten empfehle ich Feigen im Speckmantel.
Psaniko hat geschrieben:
Xin hat geschrieben:Gute Software ist in mindestens 99% eine Illusion.
Das musst du mir jetzt aber doch erklären?
Wenn Du das - also das Gegenteil von dem, was Du zuvor sagtest - einem Fachmann verkaufen willst, dann sagst Du einfach 'Yagni!', Du hast Dich damit selbst als Professional geoutet und dann wirst Du am Core rumfrickeln, weil Du ein mögliches Feature nicht beachtet hast.

Du wirst für jede Meinung in der Informatik einen Beleg finden, dass Du recht hast. Und es spielt in der Realität überhaupt keine Rolle, ob Du YAGNI sagst oder perfekte Planung per UML präsentierst, ich garantiere Dir, Du wirst rumfrickeln. Der einzige Unterschied zwischen YAGNI und UML ist, dass YAGNI von Beginn an klarstellt, dass jegliche Planung für den A.... ist und Du frickeln wirst. Und Yagni! sagt sich in ca. 0,2 Sekunden, während eine UML Planung Tage bis Wochen verbraucht. Beides ist professionelles Arbeiten, beides führt zu vergleichbaren Resultaten, nur dass einer vorher anfängt.
Planloses Frickeln lässt sich aber schlecht dem Chef präsentieren. Dafür braucht man UML. Aber wenn der Chef sein Okay gegeben hat, dann archiviert man die Präsentation, vergisst alles wieder und kehrt zurück in die Realität. Da hat nämlich gerade der Kunde angerufen und noch einen kleinen Wunsch geäußert.
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.

Psaniko
Beiträge: 17
Registriert: Mo Feb 01, 2010 5:34 pm

Re: C-Tutorial - kleine Fehlerliste

Beitrag von Psaniko » Mo Feb 15, 2010 4:36 pm

Xin hat geschrieben: Vielleicht habe ich mich zu knapp ausgedrückt: Zeig mir eine Dokumetation von einem Projekt. Also etwas, wo man auch mal wenigstens eine popelige Woche lang dran programmieren muss.
Ich habe UML noch nie in einem Projekt genutzt und wenn, dann würde ich das Diagramm nicht veröffentlichen.
Xin hat geschrieben: Bist Du professioneller Obstverkoster?
Ich verdiene mit Programmierung meinen Lebensunterhalt und zahle die Unkosten dieses Forum. Ansonsten empfehle ich Feigen im Speckmantel.
Gute Antwort :mrgreen:
Xin hat geschrieben: Wenn Du das - also das Gegenteil von dem, was Du zuvor sagtest - einem Fachmann verkaufen willst, dann sagst Du einfach 'Yagni!', Du hast Dich damit selbst als Professional geoutet und dann wirst Du am Core rumfrickeln, weil Du ein mögliches Feature nicht beachtet hast.

Du wirst für jede Meinung in der Informatik einen Beleg finden, dass Du recht hast. Und es spielt in der Realität überhaupt keine Rolle, ob Du YAGNI sagst oder perfekte Planung per UML präsentierst, ich garantiere Dir, Du wirst rumfrickeln. Der einzige Unterschied zwischen YAGNI und UML ist, dass YAGNI von Beginn an klarstellt, dass jegliche Planung für den A.... ist und Du frickeln wirst. Und Yagni! sagt sich in ca. 0,2 Sekunden, während eine UML Planung Tage bis Wochen verbraucht. Beides ist professionelles Arbeiten, beides führt zu vergleichbaren Resultaten, nur dass einer vorher anfängt.
Planloses Frickeln lässt sich aber schlecht dem Chef präsentieren. Dafür braucht man UML. Aber wenn der Chef sein Okay gegeben hat, dann archiviert man die Präsentation, vergisst alles wieder und kehrt zurück in die Realität. Da hat nämlich gerade der Kunde angerufen und noch einen kleinen Wunsch geäußert.
Hier muss ich dir leider widersprechen ^^ Zuerstmal stell bitte UML nicht als Gegenteil von YAGNI dar, gute, flexible Software muss nicht zwingend mit UML geplant werden.
Programmierst du deine MySQL-Klasse immer erst dann wenn du die erste Datenbank-Abfrage brauchst? Programmierst du erst einen Error-Handler sobald der erste Fehler auftritt? Diese Vorgehensweise kann langfristig schwierig und aufwendig werden, vor allem bei größeren Projekten.
Natürlich musst du immer am Code rumfrickeln, niemand programmiert ein ganzes Projekt fehlerfrei in einem durch. Aber bei gut geplanter, flexibler Software musst du nur sehr selten am Core rumfrickeln. Wenn ich schon vorher weiß, dass meine Plattform vielleicht später mal Plugins unterstützen soll, dann ist es meistens einfacher schon vorher z.B. einen Observer zu implementieren. Wenn du ihn nachträglich einbaust, kann das sehr viel Aufwand bedeuten da du an hunderten von Stellen Events beim Observer registrieren musst. Nur ein Beispiel.

Antworten