Model Driven Architecture ist die Idee, dass Sie Modelle erstellen, die das Problem, das Sie lösen müssen, ohne jegliche (oder zumindest die meisten) Implementierungstechnologien ausdrücken und dann die Implementierung für eine oder mehrere spezifische Plattformen generieren. Die Behauptung ist, dass das Arbeiten auf einer höheren Abstraktionsebene viel mächtiger und produktiver ist. Darüber hinaus überleben Ihre Modelle Technologien (so haben Sie immer noch etwas, wenn Ihre erste Sprache/Plattform veraltet ist, die Sie für Ihre nächste Generation Lösung verwenden können). Ein weiterer wichtiger Vorteil besteht darin, dass ein großer Teil des Boilerplate und "Grunt Work" erzeugt werden kann. Sobald der Computer die Semantik Ihrer Situation verstanden hat, kann er Ihnen mehr helfen.Machst du gerade MDA (Model Driven Architecture)? Wenn ja, welche Tools verwenden Sie und wie funktioniert es?
Einige behaupten, dieser Ansatz 10 mal produktiver ist, und dass es die Art und Weise ist werden wir alle Software in 10 Jahren bauen.
Dies ist jedoch alles nur Theorie. Ich frage mich, was die Ergebnisse sind, wenn der Gummi die Straße trifft. Auch die "offizielle" Version von MDA stammt aus der OMG, und scheint sehr schwer. Es basiert stark auf UML, was je nachdem, wen Sie fragen, gut oder schlecht sein kann (ich lehne mich auf "schlecht" zu).
Aber trotz dieser Bedenken ist es schwer, mit der Idee zu argumentieren, auf einer höheren Abstraktionsebene zu arbeiten und den Computer "zu lehren", um die Semantik Ihres Problems und Ihrer Lösung zu verstehen. Stellen Sie sich eine Reihe von ER-Modellen vor, die einfach die Wahrheit ausdrücken, und stellen Sie sich dann vor, diese zu verwenden, um einen bedeutenden Teil Ihrer Lösung zu generieren, zuerst in einer Technologie und dann wieder in einer anderen Technologie.
Also, Ich würde gerne von Leuten hören, die wirklich MDA gerade machen ("offiziell" oder nicht). Welche Werkzeuge verwendest du? Wie läuft es? Wie viel von dem theoretischen Versprechen konnten Sie erfassen? Sehen Sie eine echte 10-fache Effizienzsteigerung?
Danke. Interessant, dass der Teufel im Detail ist. Modelle sind definitionsgemäß Übervereinfachungen, und das hat dich am meisten geschmerzt. +1 –
Bei der modellgetriebenen Softwareentwicklung wird der Code aus dem Modell generiert. Sie ändern das Metamodell, das Modell und die Generatoren, um das Verhalten zu ändern oder hinzuzufügen. Es geht nicht um das Erstellen und Verwalten eines unabhängigen Modells, das beim Aktualisieren des Codes manuell aktualisiert wird. –
Das ist genau mein Punkt. Irgendwann ist der generierte Code nicht mehr nützlich. Sobald Sie den Code manuell ändern müssen, bricht der Prozess zusammen. –