State-of-Art 2010: Coding vs Modeling



  • Wie weit soll denn das modellieren für dich gehen? Wenn autom. Code rauskommen soll, sehe ich wie gesagt schwarz.

    Meine Vermutung: 90% Coding zu 10% Modelling

    Es wird sich zu heute nicht viel ändern.



  • Moin Moin

    Das Problem an UML usw ist IMHO das der Programmierer zwei Darstellungen einer Sache aktuell halten muss. Einmal den Code und das UML Diagramm und Redunanzen hassen glaube ich alle Informatiker!
    Ich stelle mir eine Struktur vor in der ich zwischen UML, NSD und Quellcode umschalten kann und in jeder Form einen aktuellen Code sehe und am Ende durch 1 Klick eine vollständige, durch das Programm erzeugte, Dokumentation bekomme.

    Und das ganze noch durch Unterstützung durch einen Wizard in dem ich mein Problem durch ein Frage und Antwort Spiel beschreibe und der Wizard ein geeignetes Pattern aus seiner einige tausend Pattern umfassenden Datenbank einfügt usw.
    Sowas in der Richtung denke bzw hoffe ich...

    cu Jens alias CodeHure



  • Codehure schrieb:

    ...Das Problem an UML usw ist IMHO das der Programmierer zwei Darstellungen einer Sache aktuell halten muss. Einmal den Code und das UML Diagramm und Redunanzen hassen glaube ich alle Informatiker!
    Ich stelle mir eine Struktur vor in der ich zwischen UML, NSD und Quellcode umschalten kann und in jeder Form einen aktuellen Code sehe und am Ende durch 1 Klick eine vollständige, durch das Programm erzeugte, Dokumentation bekomme.
    ...

    http://www.computerbase.de/lexikon/Round_Trip_Engineering

    Bekomme ich auch von Dir eine Quote?
    Muss ich denn jedesmal nachfragen?



  • Codehure schrieb:

    Moin Moin

    Das Problem an UML usw ist IMHO das der Programmierer zwei Darstellungen einer Sache aktuell halten muss. Einmal den Code und das UML Diagramm und Redunanzen hassen glaube ich alle Informatiker!
    Ich stelle mir eine Struktur vor in der ich zwischen UML, NSD und Quellcode umschalten kann und in jeder Form einen aktuellen Code sehe und am Ende durch 1 Klick eine vollständige, durch das Programm erzeugte, Dokumentation bekomme.

    Dann probier mal vernünftige UML-Tools aus. Rational Rose kann das, egal in welche Richtung: Code -> UML und UML -> Code. In Echtzeit!!! Du machst eine kleine Änderung und es ändert sich auf der anderen Seite umgehend.

    Ändert an dem Problem nichts, das ich die Algorithmen nicht modellieren kann... bzw. ich pers. meine Schwierigkeit damit habe.



  • Artchi schrieb:

    Dann probier mal vernünftige UML-Tools aus. Rational Rose kann das, egal in welche Richtung: Code -> UML und UML -> Code. In Echtzeit!!! Du machst eine kleine Änderung und es ändert sich auf der anderen Seite umgehend.

    Wird auch mit Visual Studio 2005 Team System möglich sein.



  • Modellierung ca. 60 %, da sich schnell ein Gerüst generieren läßt, was für den Programmierer eh Zeitverschwendung ist. Es lassen sich in der Designphase auch einfach und vorallem schnell und kostengünstig Änderungen vornehmen.

    Kodierung ca. 40 %, da man zur Zeit noch nicht Algorithmen und ähnliches Modellieren kann.

    Noodles schrieb:

    Artchi schrieb:

    Dann probier mal vernünftige UML-Tools aus. Rational Rose kann das, egal in welche Richtung: Code -> UML und UML -> Code. In Echtzeit!!! Du machst eine kleine Änderung und es ändert sich auf der anderen Seite umgehend.

    Wird auch mit Visual Studio 2005 Team System möglich sein.

    Ich glaube Du kennst die Rational Palette wohl eher nicht... 😉



  • Linux Entwickler schrieb:

    Ich glaube Du kennst die Rational Palette wohl eher nicht... 😉

    Da haste Recht! 😉
    Aber ich kenne Team System, zumindest aus der Beta Phase, kennst Du das?



  • Ich hätte spontan 50:50 getippt, wenn du unter modellieren auch den Part, der Code -eingabe zuläßt, in dem man erstmal nur ein Klassengerüst aufbaut (ob nun mit oder ohne Tool).

    @Prof84
    Hast du das Buch, was du da zeigst schon gelesen? Ich stelle es mir schon ziemlich schwer vor, größenteils nur noch zu modellieren, bzw. erstmal Tools zu erstellen, die sowas leisten.
    Wenn man dann mit einer höheren "Sprache", oder grafischen Beschreibung formalisieren will stelle ich mir das vom Aufwand nicht einfacher vor, als selber code zu tippen.



  • TheBigW schrieb:

    Ich stelle es mir schon ziemlich schwer vor, größenteils nur noch zu modellieren, bzw. erstmal Tools zu erstellen, die sowas leisten.
    Wenn man dann mit einer höheren "Sprache", oder grafischen Beschreibung formalisieren will stelle ich mir das vom Aufwand nicht einfacher vor, als selber code zu tippen.

    Vielleicht geht es garnicht so sehr darum den Aufwand zu verkleinern, sondern eher darum bessere Modelle zu schaffen und durch die Automatisierung die Fehlerquellen bei der Umsetzung von Modell in Code einzuschränken. Durch das exakte Modell behält man einen besseren Überblick über seine Software und sie wird besser wartbar und erweiterbar, weil man eben am Modell ändern kann und nicht so viel im Code rummachen muß.

    Aber ehrlich gesagt: ich glaube nicht daran, daß das so richtig funktioniert.



  • @TheBigW:
    Ich habe bei Amazon.de eine Rez. geschrieben.
    Ist entweder noch nicht freigeschaltet oder ich habe was falsch gemacht.

    @Jester:
    Gibt es heute eine Industrieanlage auf der Welt, die wirklich 0 Mitarbeiter benötigt?
    Wie war das denn früher mit der Fliesbandarbeit?
    Oder noch weiter in der Vergangenheit - die Manufaktur?

    Genau den selben Prozess werden Softwarefabriken durchlaufen.
    Ziel ist nach wie vor eine "On-the-Fly" - Erstellung einer Vielzahl von Individualstufen.



  • Prof84 schrieb:

    @TheBigW:
    Gibt es heute eine Industrieanlage auf der Welt, die wirklich 0 Mitarbeiter benötigt?
    Wie war das denn früher mit der Fliesbandarbeit?
    Oder noch weiter in der Vergangenheit - die Manufaktur?

    Wie groß ist die geistige Leistung sich zwei Teile vom Fließband zu schnappen und die zusammenzuschrauben?



  • Aber ehrlich gesagt: ich glaube nicht daran, daß das so richtig funktioniert.

    Ich auch nicht. Als großer Automatisierungsfan denke ich, das da schon noch einiges bewegt werden kann, aber das kann auch Stolpersteine haben.

    Beispiel: bei der Netbeans IDE finde ich es extrem schick, das wenn ich die Schnittstelle eines Interfaces ändere, automatisch alle Klassen, die es implementieren mitgeändert werden -> toll spart unter umständen 'ne Menge Schreibarbeit, aber, wenn die Änderung eine Anpassung der Implementierung erfordern sollte, fällt es mir auf die Füße.
    Bei den meisten C++ IDEs wird mir der Compiler schon sagen, das ich meine Schnittstellen anpassen muß. Wie man sieht, hat beides Vor- und Nachteile.

    @Jester

    Das Problem ist nicht dei Vorstellung einer (Teil-)automatisierten Softwareerstellung, sondern die Motivation. Ich würde es begrüßen, wenn es in einer Weise geschehen würde, die zu besserem Code führt. Der praktische Hintergrund ist IMO aber wohl eher der, das einige Manager sich nur zu gerne hochqualifizierte (unbequeme) Spezialisten vom Hals schaffen wollen, weil man ja dann mit den entsprechenden Tools jeder Software erstellen kann.

    Ich persönlich benutze UML immer noch bloß um mal über meinen Code drüber zu schauen (Dokumentation), oder um fremden Code zu verstehen. Wirklich selber damit eine Anwendung entwickelt habe ich damit noch nie.



  • Jester schrieb:

    Wie groß ist die geistige Leistung sich zwei Teile vom Fließband zu schnappen und die zusammenzuschrauben?

    Öhm, so groß wie um PHP mit MySQL zu verbinden,
    Accesstabellen oder HTML Seiten zu erstellen?! 😃

    Gibst Du bitte auch eine Quote ab?

    Wäre cool, wenn ich noch das Statement von 1-2 SW/System-Architekten erhalten könnte. Bislang erfüllt der Thread aber genau meinen Erwartungen.



  • Prof84 schrieb:

    Gibst Du bitte auch eine Quote ab?

    Hm, ich tippe mal auf 50:50, ist aber nur geraten und entbehrt jeglicher Grundlage 🙂



  • Wäre tool, wenn ich noch das Statement von 1-2 SW/System-Architekten erhalten könnte.

    gibt es hier gar nicht.



  • Prof84 schrieb:

    Wäre tool, wenn ich noch das Statement von 1-2 SW/System-Architekten erhalten könnte. Bislang erfüllt der Thread aber genau meinen Erwartungen.

    Vielleicht hilft es ein wenig. Ich vertiefe Softwaredesign/-engineering.

    Schließe mich aber den anderen an. Würde auf 50-70 : 50-30 % tippen, je nach Anwendung. Ich sehe zusätzlich noch den Vorteil, dass man sich erst spät auf eine Sprache oder zum B. verteilte Architektur(CORBA, J2EE) festlegen muss.

    Wenn es um die Qualitätssicherung geht, kommt man imho um UML nicht mehr herum. Wenn ich erst eine Woche lang Code einhacke und dann von der Leitung eine veränderte Spezifikation bekomme, oder einen Designfehler begangen hab, kann ich teilweise noch mal neu anfangen. Bei UML 5 ändern, Code neu generieren. 🙂

    Interessant ist es besonders in Zeiten des Outsourcings, da ich das Design vor Ort mit dem Auftraggeber planen kann und am Ende nur noch das fertige Design + Pflichtenheft nach Indien/China weitergeben muss. So kann man die kommunikative Schwachstelle beim Outsourcings reduzieren.


Anmelden zum Antworten