UML

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

UML

Beitrag von Xin » So Nov 22, 2009 2:07 pm

stampuhh hat geschrieben:Muss dazu dann aber auch gleich sagen, dass ich mit OOP eigentlich kein Problem haben sollte. Bin es ja von Java nicht anders gewöhnt. Im Studium wird hauptsächlich Java verwendet und dann bauen natürlich auch fast alle Konzepte auf Java auf. Ich sage nur UML und Klassendiagramme etc.
Und wie ist Deine Meinung zu UML?
stampuhh hat geschrieben:In diesem Sinne ist das mit den Konstruktoren sicherlich eine sehr gute Idee^^
Habe eh vor nach C mir dann C++ vorzunehmen ;)
C++ ist in Arbeit, wann ich immer ich Zeit dafür finde.
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.

Benutzeravatar
stampuhh
Beiträge: 211
Registriert: Sa Nov 07, 2009 4:39 pm
Wohnort: Paderborn

Re: C-Tutorial - kleine Fehlerliste

Beitrag von stampuhh » So Nov 22, 2009 2:37 pm

UML?
:twisted:

Mich würde ja mal interessieren ob größere Projekte wirklich mit so welchen Methoden arbeiten. Wird erst alles "auf Papier" mit UML aufgemalt und dann nachher umgesetzt? Wir hatten das in einem Softwarepraktikum teilweise. Dort war schon ein Projekt gegeben und wir mussten das fortsetzen. Da waren die UML-Diagramme ganz hilfreich sich in die Arbeitsweise des vorhandenem Codes einzuarbeiten und die Abhängigkeiten zu verstehen. Man hätte es aber auch ohne geschafft :P

Alternativen zu UML wurden uns allerdings auch keine genannt (falls es welche geben sollte, inner Schule wurden kurz Struktogramme erklärt). Aber ich weiß nicht ob ich die Entwicklung die mit UML verläuft gut finde. Also immer mehr in Richtung automatisch Code zu generieren.

In meiner alten Schule wird im Informatikunterricht nur noch mit BlueJ gearbeitet. Das soll wohl extrem einfach sein um GUIs oder ähnliches zu bekommen. Mehr oder weniger nach dem Baukastenprinzip. Habe damit selber noch nichts gemacht und habs nur mal so erklärt bekommen von einem angehendem Lehrer. So "richtig" programmieren lernen die aber wohl nicht mehr. Da fand ich meine Einführung in Java damals noch besser. Heutige Programmierer müssen wohl hauptsächlich mit ihrer Entwicklungsumgebung gut umgehen können :P
C++ ist in Arbeit, wann ich immer ich Zeit dafür finde.
Oh ja...arbeite ich mich dann gerne durch wenn ich mit C soweit bin.

gruß stampuhh
NachDenkSeiten.de

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

Re: C-Tutorial - kleine Fehlerliste

Beitrag von Xin » So Nov 22, 2009 11:45 pm

stampuhh hat geschrieben:UML?
:twisted:

Mich würde ja mal interessieren ob größere Projekte wirklich mit so welchen Methoden arbeiten. Wird erst alles "auf Papier" mit UML aufgemalt und dann nachher umgesetzt?
Wir hatten das in einem Softwarepraktikum teilweise. Dort war schon ein Projekt gegeben und wir mussten das fortsetzen. Da waren die UML-Diagramme ganz hilfreich sich in die Arbeitsweise des vorhandenem Codes einzuarbeiten und die Abhängigkeiten zu verstehen. Man hätte es aber auch ohne geschafft :P
stampuhh hat geschrieben:Alternativen zu UML wurden uns allerdings auch keine genannt (falls es welche geben sollte, inner Schule wurden kurz Struktogramme erklärt). Aber ich weiß nicht ob ich die Entwicklung die mit UML verläuft gut finde. Also immer mehr in Richtung automatisch Code zu generieren.
Wir generieren in der Firma auch reichlich Code.
Nichts davon hat mit Struktogrammen oder UML zu tun.
UML halte ich für zweifelhaft - Struktogramme halte ich ohne jeden Zweifel für Schwachsinn.
stampuhh hat geschrieben:In meiner alten Schule wird im Informatikunterricht nur noch mit BlueJ gearbeitet. Das soll wohl extrem einfach sein um GUIs oder ähnliches zu bekommen. Mehr oder weniger nach dem Baukastenprinzip. Habe damit selber noch nichts gemacht und habs nur mal so erklärt bekommen von einem angehendem Lehrer. So "richtig" programmieren lernen die aber wohl nicht mehr. Da fand ich meine Einführung in Java damals noch besser. Heutige Programmierer müssen wohl hauptsächlich mit ihrer Entwicklungsumgebung gut umgehen können :P
[/quote]
Mit der Entwicklungsumgebung umgehen können definitiv. Aber da kommt noch was hinzu. Den auch Baukästen wie Visual Studio kommen _sehr_ schnell an ihre Grenzen. GUI Programmierung ist damit eigentlich nicht sinnvoll möglich - auch wenn es auf den ersten Blick so aussehen mag.

Auch da wird viel Code generiert - gelegentlich wird sogar Code generiert, der gar nicht gewünscht ist. Alles in allem ist der Baukasten für mich eher Spielzeug für die Leute, die frisch dazukommen. Es ist weniger eine Arbeitserleichterung, denn gute GUIs, brauchbares Softwaredesign lässt sich damit kaum gestalten.
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.

Benutzeravatar
stampuhh
Beiträge: 211
Registriert: Sa Nov 07, 2009 4:39 pm
Wohnort: Paderborn

Re: UML

Beitrag von stampuhh » Mo Nov 23, 2009 12:29 am

Kenne das aus Java (oder bekannt z.B. auch aus diesen HTML Baukasten Programmen wie Adobe GoLive, etc). Es gibt einige Programme mit denen man sich eine GUI zusammen klicken kann, der Code der erstellt wird ist aber meist nicht den, den man braucht oder einfach mal schnell erweitern kann. Meist stören dann so Feinheiten, wo man sich dann wünscht es doch per Hand gemacht zu haben ;)
Besonders diese Adobe-Programme erzeugen doch HTML-Code den man per Hand nie machen würde (war zumindest mal so).
Wir generieren in der Firma auch reichlich Code.
Nichts davon hat mit Struktogrammen oder UML zu tun.
Eine Alternative oder eher in die Richtung Templates?

Ich weiß ja nicht wofür UML so gedacht ist, wenn es eh nicht/kaum eingesetzt wird :D
Nur damit um Studenten inner Uni zu unterhalten kann ich mir ja nicht vorstellen :P

gruß stampuhh
NachDenkSeiten.de

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

Re: UML

Beitrag von Xin » Mo Nov 23, 2009 10:36 am

stampuhh hat geschrieben:Kenne das aus Java (oder bekannt z.B. auch aus diesen HTML Baukasten Programmen wie Adobe GoLive, etc). Es gibt einige Programme mit denen man sich eine GUI zusammen klicken kann, der Code der erstellt wird ist aber meist nicht den, den man braucht oder einfach mal schnell erweitern kann. Meist stören dann so Feinheiten, wo man sich dann wünscht es doch per Hand gemacht zu haben ;)
Mich stört viel mehr, dass die Code-Generatoren meine Änderungen wieder rausnehmen oder dann meckern oder sogar abschmieren, weil sie meine Änderungen nicht verstehen.
stampuhh hat geschrieben:
Wir generieren in der Firma auch reichlich Code.
Nichts davon hat mit Struktogrammen oder UML zu tun.
Eine Alternative oder eher in die Richtung Templates?
Eher in Richtung Templates. Hier laufen Python-Skripts die aufwendige Konvertierungsroutinen automatisch erstellen, um Daten von Fortran über C++ nach C# zu bewegen und umgekehrt.

Ich selbst plane meine Projekte, in dem ich die Headerdateien schreibe. Ansonsten habe ich auf meiner Website mal eine Kurzanleitung Softwaretechnik für den Hausgebrauch geschrieben.
Da steht nix von UML oder Struktogrammen. Geplant wird von jemanden, der weiß, was er tut. Oder einer kleinen Gruppe. Die Planung wird mit den Leuten abgesprochen, die tangierende Punkte besser berücksichtigen können. Zum Beispiel wenn das Projekt ein Teilprojekt ist und Schnittstellen zu anderen Teilprojekten entstehen müssen. Dann tauscht man sich aus, warum diese Schnittstelle, was der andere vom Background der Schnittstelle wissen muss.
Und diese kleine Gruppe arbeitet die Planung wie für den Hausgebrauch aus. Macht Unterprojekte (die dann wieder von anderen geplant werden könnten) usw.

Eine große Planungtruppe - für die UML gedacht ist, damit alle die gleiche Sprache sprechen - bedeutet nur Verzögerungen, Missverständnisse und Chaos. Eine Truppe von 3 Mann, die zusammenarbeitet, die die entsprechenden Unterprojekte leitet, ist zu agil, als dass man sich UML antun möchte.

Trotzdem wird UML verwendet. Nicht jede Firma muss agil sein, um Geld verlangen zu können. Man sollte es mal gesehen haben und man sollte im Falle des Falles fähig sein, sich schnell einzuarbeiten.
stampuhh hat geschrieben:Ich weiß ja nicht wofür UML so gedacht ist, wenn es eh nicht/kaum eingesetzt wird :D
Nur damit um Studenten inner Uni zu unterhalten kann ich mir ja nicht vorstellen :P
Hmm... ehrlich gesagt... warum denn nicht?
Struktogramme haben doch auch keinen Wert: Sie sind aufwendiger zu zeichnen als Programme zu schreiben sind, dabei sinkt - meiner Meinung nach - sogar die Lesbarkeit im Vergleich zu einem gut formatierten Quelltext. Wie ich eine private Membermethode in einem Struktogramm abbilde oder gar abstrakte oder generische Programmierung... da ist auch die UML überfordert.
Ich schreibe eine C++-Headerdatei. Die ist lesbar und damit nicht überfordert.

Sagen wir es mal anders: Wenn man aus der Hochschule in die Realität hinausschreitet und was richtiges machen will, dann kann man beides nicht gebrauchen, weil man für ein "Hallo Welt" oder ein Programm, dass die Zahlen von 1-10 ausgibt einfach kein Geld bekommt - selbst wenn man es in UML oder als Struktogramm geplant hat.

Trotzdem bekommen Generationen von Informatikschülern und -studenten Struktogramme vermittelt und in den Klausuren abgefragt. Ich kenne Deinen Studiengang ja nicht, aber ich würde grob schätzen, dass ich mir 50% meines Studiums auch hätte schenken können. Darunter zum Beispiel auch ein Fach, wo ich viermal zur Klausur antreten musste, bevor ich sie mit Hängen und Würgen und einem Trostpunkt bestanden habe, weil sie nur mit 40% statt 50% als erfolgreich bestanden gewertet wurde. Den Trostpunkt. ohne den ich selbst die 40% nicht gehabt hätte, habe ich bekommmen, weil ich damit den Schnitt merklich gehoben habe, ansonsten hätten nämlich nur 6 von 93 bestanden. Bei 50% Wertung hätte einer wohl eine Vier bekommen.
Dafür habe ich 8 Wochen gelernt, täglich. Nach 6 Wochen merkte ich, dass ich vom Lernstress Probleme mit dem Herzen bekam. Ich meine also wirklich angestrengt lernen. Beim dritten Mal habe ich "nur" sechs Wochen gelernt und 70 von 160 Punkte gehabt (wobei ich die Klausur eigentlich bestanden hätte, wenn der Prof nicht einfach Teile weggestrichen hätte und für Aufgaben 0 Punkte gezählt hätte).
Eigentlich durften wir nur dreimal, aber eine Klausur im Grundstudium durften wir auf schriftlichen Antrag beim Prüfungsamt dann ein viertes Mal schreiben.
Vielleicht nochwas: Die Bibliothek hatte zu dem Stoff genau ein (1) Buch, indem der Stoff - wie wir ihn gelernt haben - mit genau einer (1) Seite behandelt wurde, die damit überschrieben wurde, dass diese Methode in der Elektrotechnik obsolete ist und deswegen nur der Vollständigkeit halber auf dieser Seite genannt - nicht beschrieben - wird.
Ich bin dann durchgekommen... andere nicht.
Weder kann ich heute noch Kleinsignalverstärker bauen, noch habe ich jemals einen Kleinsignalverstärker zusammengelötet. Wie gesagt... ich habe ein Informatikdiplom... und wäre beinahe aufgrund von Kleinsignalverstärkern exmatrikuliert worden.

Kannst Du mir erklären, warum ich für ein erfolgreiches Informatik-Studium Kleinsignalverstärker bauen können oder Elektronen an einem NPN-Transistor berechnen muss?

Warum sollte man also nicht auch Struktogramme und UML pauken, wenn es da draußen keiner benutzt?
Ehemalige Kommilitonen arbeiten bei diversen Software-Großunternehmen, nicht nur bei kleinen Softwareklitschen. Ich kenne niemanden, der UML oder Struktogramme benutzt.
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.

Benutzeravatar
stampuhh
Beiträge: 211
Registriert: Sa Nov 07, 2009 4:39 pm
Wohnort: Paderborn

Re: UML

Beitrag von stampuhh » Mo Nov 23, 2009 10:54 am

Ich studiere ja nicht auf Diplom sondern auf so nen dummen Bachelor. Es gibt viele Sachen auf die ich gerne verzichten würde, ich aber dennoch belegen muss. Die schwierigsten Fächer sind für mich Sachen wo es rein theoretisch/formal zugeht. Also man irgendeinen Algorithmus formal beweisen muss. Oder so ne Komplexitätsgeschichten. Das hat einfach viel damit zu tun dass ich sehr oft richtig denke, es aber nicht niedergeschrieben kriege wie es gewünscht ist. Da hilft nur auswändiglernen der "Templates" :D

Außerdem muss man sagen, dass ein großer Teil der Professoren einen darauf ausbildet später Manager zu sein. Sprich man redet mit Kunden und plant so ein bisschen mit UML. Das eigentliche Programmieren machen dann aber andere für einen ;)
Teilweise denke ich dann schon warum ich nicht einfach BWL studiere mit Nebenfach Informatik oder so was.

Richtig spannend ist es wohl auch erst im Hauptstudium und Master wo man sich dann "aussuchen" kann was man studieren möchte (zumindest die grobe Richtung). Wenn ich im Master überhaupt ankomme vor lauter Unmotiviertheit :evil:

Bin ich ja schon mal froh dass man UML nicht perfekt können muss :D
Ich selbst plane meine Projekte, in dem ich die Headerdateien schreibe. Ansonsten habe ich auf meiner Website mal eine Kurzanleitung Softwaretechnik für den Hausgebrauch geschrieben.
Werde ich nachher mal reinschauen.

gruß stampuhh
NachDenkSeiten.de

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

Re: UML

Beitrag von Xin » Mo Nov 23, 2009 11:33 am

stampuhh hat geschrieben:Außerdem muss man sagen, dass ein großer Teil der Professoren einen darauf ausbildet später Manager zu sein. Sprich man redet mit Kunden und plant so ein bisschen mit UML. Das eigentliche Programmieren machen dann aber andere für einen ;)
Was ich so bei Dir raushöre ist, dass Du offenbar Spaß am Programmieren hast. Das Informatik-Studium ist aber kein Studium, um zu programmieren. Es gehört in meinen Augen ausdrücklich dazu, dass man die Sprache der Informationsverarbeitung beherrscht, aber da hört ein Informatik-Studium nicht auf.

Es gehört eben auch dazu, Fähigkeiten mitzubringen, um Softwareproduktion umzusetzen. Und das ist eben mit Programmierern alleine nicht machbar: Du musst so ein Projekt auch managen können.
stampuhh hat geschrieben:Richtig spannend ist es wohl auch erst im Hauptstudium und Master wo man sich dann "aussuchen" kann was man studieren möchte (zumindest die grobe Richtung). Wenn ich im Master überhaupt ankomme vor lauter Unmotiviertheit :evil:
Das Grundstudium war bei uns auch scheiße... im Hauptstudium wurde es lockerer und bedeutend interessanter.
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.

Benutzeravatar
stampuhh
Beiträge: 211
Registriert: Sa Nov 07, 2009 4:39 pm
Wohnort: Paderborn

Re: UML

Beitrag von stampuhh » Mo Nov 23, 2009 4:21 pm

Ja war vielleicht etwas übertrieben ausgedrückt. Ich habe nichts dagegen ein Projekt auch zu managen. Aber ich habe halt kein Bock nachher nur den Manager zu spielen ;)

Also wirklich nur noch mit Kunden zu tun zu haben. Bei mir aufer Arbeit ist es z.B. so dass die Leute, die im Vertrieb sitzen alle irgendwie Maschinenbau studiert haben, aber halt gar nichts mehr in dem Bereich machen. Es ist mehr oder weniger nur noch Kunden werben und das Produkt vermarkten.

So ein bisschen mehr an dem was ich studiert habe möchte ich dann später schon arbeiten :P

Aber ich denke da kommt es wieder ganz stark auf die Firma an wo man arbeitet, und den Bereich wo man letztendlich hingeht. Kann ja auch durchaus sein, dass man als Entwickler gar nicht mit Kunden zu tun hat, sondern irgendwas für eigene Maschinen schreibt.
Das Informatik-Studium ist aber kein Studium, um zu programmieren.

Das war mir von Anfang an bewusst. Sonst hätte ich eine Ausbildung gemacht ;)
im Hauptstudium wurde es lockerer und bedeutend interessanter.
Ich hoffe, dass das bei uns auch so ist und nicht alles durch die Bachelor/Master-Umstellung so geworden ist wie es im Moment ist.
Grund und Hauptstudium in 6 Semestern ist einfach nicht zu schaffen (ja es gibt natürlich auch Ausnahmen).

gruß stampuhh
NachDenkSeiten.de

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

Re: C-Tutorial - kleine Fehlerliste

Beitrag von Psaniko » Mo Feb 01, 2010 6:24 pm

stampuhh hat geschrieben:Heutige Programmierer müssen wohl hauptsächlich mit ihrer Entwicklungsumgebung gut umgehen können :P
Ich würde eher sagen, frühere Programmierer mussten hauptsächlich mit ihrer Entwicklungsumgebung gut umgehen können ^^
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.

Code-Generatoren lehne ich ab, da kommt meist nur wust raus^^ Man sollte UML eher als Dokumentation verstehen, z.B. für den Fall, dass man nach 3 Jahren nochmal etwas am XY-Projekt von damals ändern muss und total aufgeschmissen ist weil man nicht mehr weiß wie die Daten sich zueinander verhalten.

Ich nutze es selber zwar auch kaum, aber ich mache auch eher kleinere Projekte und bin kein Fan von Dokumentationen o.Ä. :D

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

Re: C-Tutorial - kleine Fehlerliste

Beitrag von Xin » Mo Feb 01, 2010 8:23 pm

Moin Psaniko, willkommen im Forum,
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?
Psaniko hat geschrieben:Code-Generatoren lehne ich ab, da kommt meist nur wust raus^^ Man sollte UML eher als Dokumentation verstehen, z.B. für den Fall, dass man nach 3 Jahren nochmal etwas am XY-Projekt von damals ändern muss und total aufgeschmissen ist weil man nicht mehr weiß wie die Daten sich zueinander verhalten.
Guter Code ist selbsterklärend, weil die Dokumentation Teil des Codes ist. Weder habe ich bisher eine UML Darstellung gesehen, die ihrem Projekt entspricht, noch eine UML Darstellung, die ihrem Projekt entspricht UND nachvollziehbar sein. UML ist hübsch, um Bildchen zu zeichnen und Präsentationen zu machen und den Chef zu beeindrucken. Beim Programmieren hat es mir bisher nicht geholfen.

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.

Und jetzt erkläre mir mal, was ich mit UML soll, wenn es mit mir nicht fertig wird?
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.

Antworten