Machst du gerade MDA (Model Driven Architecture)? Wenn ja, welche Tools verwenden Sie und wie funktioniert es?

8

Model Driven Architecture ist die Idee, dass Sie Modelle erstellen, die das Problem, das Sie lösen müssen, auf eine Weise ausdrücken, die frei von (oder zumindest den meisten) Implementierungstechnologien ist, und dann eine 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.

Manche behaupten, dass dieser Ansatz zehnmal produktiver ist und dass wir in zehn Jahren Software entwickeln werden.

Aber das ist alles nur Theorie. Ich frage mich, was die Ergebnisse sind, wenn der Gummi die Straße trifft. Auch die "offizielle" Version von MDA stammt von der OMG und scheint sehr schwer zu sein. 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", 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 wesentlichen Teil Ihrer Lösung zu generieren, zuerst in einer Technologie und dann in einer anderen Technologie.

Also, Ich würde gerne von Leuten hören, die gerade MDA 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?

    
Charlie Flowers 30.03.2009, 04:46
quelle

4 Antworten

0

Ich habe es einmal versucht. Ungefähr auf halbem Weg durch das Projekt wurde mir klar, dass meine Modelle hoffnungslos veraltet waren und so komplex waren, dass sie auf dem neuesten Stand gehalten werden konnten, und das verlangsamte mich.

Das Problem ist, dass die Software voll von Randfällen ist. Modelle eignen sich hervorragend, um das größere Bild zu erfassen, aber sobald Sie beginnen, die Implementierung zu programmieren, finden Sie all diese Edge Cases und zu lange bemerken Sie, dass das Modell viel zu granular ist und Sie zwischen der Wartung des Modells oder dem Erhalten wählen müssen etwas Code geschrieben. Vielleicht ist die Boiler-Plate-Generation ein Vorteil für die Inbetriebnahme, aber danach verschwinden die Vorteile schnell und ich habe einen drastischen Produktivitätsabfall festgestellt. Die Modelle verschwanden schließlich aus diesem Projekt.

    
Jeremy Wall 01.04.2009, 02:31
quelle
6

Die fehlende Antwort auf diese Frage ist etwas ominös ... vielleicht lasse ich Dijkstra Feld es.

  

... Weil Computer in einem Jahrzehnt erschienen sind   wenn der Glaube an den Fortschritt und   Gesundheit der Wissenschaft und   Technologie war praktisch unbegrenzt   Vielleicht ist es klug, sich daran zu erinnern   seiner ursprünglichen Ziele, der Menschheit   wissenschaftliche Bemühungen über, sagen wir, die   die letzten fünf Jahrhunderte waren ein   spektakuläres Versagen.

     

Wie Sie sich alle erinnern, das erste und   Hauptziel war die Entwicklung   des Elixiers, das den einen geben würde   das hat es Ewige Jugend getrunken. Aber seit   Es gibt nicht viel Sinn in Ewigkeit   Armut, die Welt der Wissenschaft schnell   begann sein zweites Projekt, nämlich   der Stein der Weisen, der würde   können Sie so viel Gold verdienen wie Sie   erforderlich.

     

...

     

Die Suche nach der idealen Programmierung   Sprache und die ideale Mensch-Maschine   Schnittstelle, die die Software machen würde   Krise schmelzen wie Schnee in der Sonne hatte   - und hat immer noch! - all das   Merkmale der Suche nach dem   Elixier und der Stein. Diese Suche   erhält starke Unterstützung von zwei   Seiten, erstens aus der Tatsache, dass die   das Wirken von Wundern ist das Mindeste   das kannst du von Computern erwarten,   und zweitens von den finanziellen und   politische Unterstützung von einer Gesellschaft, die   hatte immer nach dem Elixier gefragt und   der Stein an erster Stelle.

     

Zwei große Ströme können sein   ausgezeichnet, die Suche nach dem Stein   und die Suche nach dem Elixier.

     

Die Suche nach dem Stein basiert auf   die Annahme, dass unsere "Programmierung   Werkzeuge "sind zu schwach. Ein Beispiel ist   der Glaube, dass aktuelle Programmierung   Sprachen fehlen die "Features", die wir brauchen.   PL / I war einer der spektakulärsten   Möchtegern-Steine ​​produziert werden. ich noch   erinnere dich an die Werbung in   Datamation, 1968, in der ein Lächeln   Susie Mayer kündigt in voller Farbe an   dass sie alles gelöst hat   Programmierprobleme durch Umschalten auf   PL / I. Es war nur zu vorhersehbar   das, ein paar Jahre später, arme Susie   Mayer lächelte nicht mehr. Unnötig   um zu sagen, die Suche ging weiter und entsprechend   Zeit war ein nächster Möchtegernstein   produziert in Form von Ada (hinten   der Eiserne Vorhang wurde scharfsinnig bezeichnet   als PL / II). Sogar das elementarste   Astrologie für Anfänger genügt   sagen voraus, dass Ada nicht die letzte sein wird   Stein dieser Art.

     

...

     

Eine weitere Reihe von Steinen in der Form   von "Programmierwerkzeugen" wird produziert   unter dem Banner von "Software   Technik ", die im Laufe der Zeit   hat versucht, den Intellektuellen zu ersetzen   Disziplin durch Managementdisziplin zu   soweit es jetzt als akzeptiert hat   seine Charta "Wie programmiert man, wenn Sie?   kann nicht. "

    
Steven Huwig 01.04.2009 01:11
quelle
4

Ich mache seit 1999 meine eigene unabhängige Forschung im Bereich der modellgetriebenen Softwareentwicklung. Im Jahr 2006 habe ich schließlich eine generische Modellierungsmethodik entwickelt, die ich als ABSE (Atom-Based Software Engineering) bezeichnete.

ABSE baut also auf zwei grundlegenden Aspekten auf:

  • Bei der Programmierung geht es um die Zerlegung von Problemen
  • Alles kann auf einem Baum dargestellt werden

Einige ABSE-Funktionen:

  • Es kann alle anderen Formen der Softwareentwicklung unterstützen, vom traditionellen dateiorientierte Methoden bis hin zu komponentenbasierter Entwicklung, aspektorientierter Programmierung, domänenspezifischer Modellierung, Software-Produktlinien und Software-Fabriken.

  • Es ist generisch genug, um auf Unternehmenssoftware, eingebettete Spiele, Avionik, Internet und jede andere Domäne angewendet zu werden.

  • Sie müssen kein Raketenwissenschaftler sein, um effektiv zu arbeiten. ABSE ist für den "bloßen Entwickler sterblichen" zugänglich. Es gibt keine Komplexität wie in oAW / MDA / XMI / GMF / etc Werkzeugketten.

  • Sein Meta-Metamodell wurde entwickelt, um eine 100% ige Codegenerierung aus dem Modell zu unterstützen. Keine Hin- und Rückfahrt notwendig. Der benutzerdefinierte / generierte Code-Mix wird direkt vom Metamodell unterstützt.

  • Das Modell kann gleichzeitig manipuliert werden. Workflows und Versionskontrolle können angewendet werden (Werkzeugunterstützung erforderlich).

Es klingt vielleicht wie auf der utopischen Seite, aber eigentlich habe ich die Forschungsphase verlassen und ich bin jetzt in der Implementierungsphase einer IDE, die all das in die Praxis umsetzt. Ich denke, ich werde in ein paar Wochen (Ende April) einen Basis-Prototypen fertig haben. Die IDE (genannt AtomWeaver) wird über ABSE gebaut, AtomWeaver wird also der erste Beweis der ABSE-Methodik sein.

Also, das ist kein MDA (Gott sei Dank!), aber es ist zumindest ein sehr überschaubarer Ansatz. Als Erfinder von ABSE bin ich verständlicherweise davon begeistert, aber ich bin mir sicher, dass Model-Driven Software Development 2009 einen Schub bekommen wird!

Bleib dran ...

    
Rui Curado 02.04.2009 09:13
quelle
4

Modellgetriebene Softwareentwicklung ist immer noch ein Nischenbereich, aber es gibt veröffentlichte Fallstudien und eine wachsende Zahl anderer Literatur, die Erfolg über handcodierte Methoden zeigt.

Der MDA der OMG ist nur ein Ansatz, andere zeigen Erfolg mit domänenspezifischen Sprachen (die keine UML für die Modellierung verwenden).

Der Schlüssel besteht darin, Code aus den Modellen zu generieren und Ihren Generator zu aktualisieren, wenn er nicht das erzeugt, was Sie wollen - den Code nicht zu ändern. Spezialisierte Werkzeuge, die Ihnen dabei helfen können, gibt es seit Jahren, aber das Interesse an diesem Ansatz ist in den letzten fünf Jahren durch Microsofts Einzug in diesem Bereich und durch Open-Source-Projekte wie openArchitectureWare in der Eclipse-Welt gewachsen.

>

Ich betreibe einige Websites: www.modeldrivensoftware.net und www.codegeneration.net , wo Sie weitere Diskussionen, Interviews, Artikel und Tooling-Optionen zu diesen Themen erhalten können.

    
Mark Dalgarno 04.05.2009 12:48
quelle

Tags und Links