State-of-Art 2010: Coding vs Modeling
-
Hallo Communitonen!
In Hinblick auf neue State-of-Art Techniken wie MDD, Prozess-Frameworks und Code Generatoren,
wie würdet Ihr die Verteilung des durchschnittlichen Zeitaufwand von Coding in 3/4GL in Relation zum Modelling in OMT (OMG), BPM und DSM sehen in sagen wir ca. 5 Jahren.
(100% := Zeit Coding + Zeit Modelling eines Entwicklers/Architekten/Ingenieurs)
z.B. 50/50Vielen Dank für eure Schätzung!
P84
-
Ich hab zwar nicht so recht Ahnung, was du meinst, aber ich würde denken, dass die Zeit, die fürs Modellieren benötigt wird, weiter steigt, wo hingegen die Zeit fürs reine Programmieren zurückgeht.
Ich denke mal, es gibt bald leistungsstarke Tools, die Code aus irgendwelchen Diagrammen bzw Spezifikationen generieren und damit diese Zeit verringern.
Ist aber nur eine fixe Idee.edit:
Ich weiss nicht, wie das Verhältnis jetzt ist. Aber ich würde so 75% Modellierung zu 25% Programmierung visionieren.
-
Griffin schrieb:
Ist aber nur eine fixe Idee.
Es gibt keine wirklich neuen Ideen auf diesen Planeten!
Now we have a ride with our new WARP drive!
Ready for countdown:
10
9
8
7
6
5
4
3
2
1
Engage!
Software Factories | ISBN: 0471202843
Software Productivity Award 2005!... ja ... ich weiß ... siehe Sign...
@Griffin:
Deine Quote fehlt noch!
-
Ich kann mir ehrlich gesagt nicht vorstellen, alles zu modellieren. Auf Arbeit modellieren wir nie.
Klar, ich mach mir hin und wieder in meinen Schreibblock (ja, Pen & Paper!) ein paar quasi-UML-Diagramme, für mich selbst als Gedankenstütze... aber das kommt auch eher seltener vor. Wir haben mal versucht mit einer art Codegeneratoren zu arbeiten. Es war alles unheimlich umständlich und wir kamen uns ziemlich verloren vor. Da tipp ich doch lieber die paar Zeilen selbst ein.
Den einzigen Codegenerator den ich benutze, ist der von Eclipse: den GUI-Editor!
Button hier, Textbox da, fertig! Aber die Actions, Models, Documents usw. mach ich trotzdem von Hand. Geht auch ruckzuck.
Und wenn ich bedenke, was ich alles für Algorithmen zusammen programmiere, weiß ich nicht wie ich das mit nem Diagramm hinbekommen sollte? Unvorstellbar für mich. Ich denke halt in Programmcode. Vielleicht muß man mit Modellieren anfangen zu "entwickeln", damit es einem einfacher fällt? Dafür würde man dann vielleicht das eigentliche Programmieren nicht richtig können?
Ganz davon abgesehen, das man eh weniger Code produziert als nachzudenken.
Mein pers. Fazit: dieser MDA-Kram ist nur ein Hype.
-
@Artchi:
Bekomme ich noch einen Quote von Dir?
-
Entweder man modelliert in einer informalen Notation (UML auf der sprichwörtlichen Serviette), dann lässt es sich nicht durch einen Codegenerator verwerten. Oder man modelliert in einer formalen Notation, dann ist es Programmieren. Insofern ist die Frage IMO sinnlos.
-
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.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.