Was sind die Vorteile und Risiken der Driven Architecture Ansatz zu einem Modell zu bewegen?

StackOverflow https://stackoverflow.com/questions/2702206

  •  01-10-2019
  •  | 
  •  

Frage

Ich arbeite für ein Unternehmen mit rund 350 Mitarbeitern, und wir sind im Prozess des Erwachsenwerdens. Unsere aktuelle Codebasis ist nicht sehr gut strukturiert und suchen wir beide, wie es unmittelbar zu verbessern (durch Objekte in Namensräume zu organisieren, Bedenken zu trennen, etc.) und zu einem Modell Driven Architecture Ansatz zu bewegen, wo wir modellieren und Design alles zuerst mit uml dann Code aus diesem Modell erzeugen. Wir haben gesucht stark an Sparx Systems Enterprise Architect (EA) (die UML 2.0-fähig) und wir betrachten auch die Werkzeuge in VS 2010. Ich weiß, es gibt auch andere Tools gibt (Rational XDE eins ist), aber ich nicht wirklich tun denken wir $ 1500 + pro Lizenz an dieser Stelle verbringen.

Ich bin nicht auf der Suche nach Antworten auf dem Werkzeug ist besser als die andere, aber mehr für Erfahrungen aus einer Cowboy-Programmierumgebung zu bewegen (das heißt, wenig Planung und Design, springt gerade in und startet Codierung) zu einer modellgetriebenen Architektur. Im Rückblick war es hilfreich, um Ihre Organisation? Was sind die Schmerzpunkte? Was sind die Risiken? Was sind die Vorteile?

War es hilfreich?

Lösung

  

Unsere aktuelle Code-Basis ist nicht strukturiert   sehr gut, und wir suchen sowohl bei   wie es unmittelbar zur Verbesserung der [...]   und der Übergang zu einem Modell getrieben   Architektur-Ansatz, wo wir modellieren   und Design alles zuerst mit uml,   Code generiert dann von diesem Modell.

Erstens, es ist toll, dass Sie und Ihr Unternehmen erkennen, dass es einige Mängel in der Software-Entwicklungsprozess und dass es eine Bereitschaft zu verbessern.

Es scheint so, jedoch, dass es ziemlich viel Arbeit vor Ihnen, und viele Dinge in verschiedenen Richtungen zu verbessern. Mein erster Rat wäre, nicht zu ändern, um zu versuchen alles auf einmal. Die Menschen sind auf Veränderungen der Regel nur ungern, und jeder braucht neue Änderungen einige Zeit zu verdauen. Es ist auch sehr wichtig, ein gemeinsames Verständnis darüber zu schaffen, was werden muss einzurichten. Dieses gemeinsame Verständnis wird nicht an einem Tag erstellt werden. Eine solche Änderung ein mittel- oder langfristiges Engagement erfordern .

Dann in Bezug auf MDA, ist es wichtig zu bemerken, dass es einige Disziplin erfordert . Abhängig von Ihrem Team, könnte auch der erste Teil der Arbeit an diesen ersten in einer Art und Weise, den nächsten Schritt vorzubereiten, die MDA einzuführen wäre. Ich sage das, weil Sie sagen, Sie einen „Cowboy“ Prozess haben, die Mittel, um Menschen wahrscheinlich verwendet werden, um zu tun, was sie wollen -. Es ist ein no-go für MDA

Dann kommt die Einführung von MDA selbst. Es gibt verschiedene Art und Weise MDA zu tun (und ich werde über thsat hier nicht erweitern), aber die immer noch vorherrschende Art und Weise, es zu tun, ist die so genannte Round-Trip Engineering . Das größte Problem dann ist das Modell zu halten und die Quelle synchronisiert.

(Meine Meinung ist, dass MDA führt zu einem positiven Return on Investment nur dann, wenn das Modell für mehrere Projekte wiederverwendet werden kann. Dies bedeutet, dass Sie die Dinge identifiziert haben müssen, dass Sie tun, immer und immer wieder, und eine ausreichende freie Sicht auf das Problem der Lage sein, ein ausreichend vollständiges Modell und Transformationen zu erstellen, dass Sie über Projekt wiederverwenden können ich nicht glauben, dass MDA funktioniert, wenn jedes Projekt ist völlig anders,. die Zeit, um das Modell rechts und die Transformation ausgegeben, etc. größer sein als die Arbeit nur mit Code und Dokumentation.)

Ein weiterer appraoch ist nicht MDA zu tun vollständig - Sie erzeugen keinen Code aus dem Modell - aber das Bewusstsein der Menschen über die Modellierung und Design-Problem zu erhöhen, z.B. mit UML. Auf diese Weise werden Sie nicht Round-Trip-Problem konfrontiert, aber immer noch den Reif Ihres Software-Entwicklungsprozesses verbessern.

Andere Tipps

Wir haben das einmal mit einem 3 MLOC Logistikplanern System, und es gut funktioniert. Allerdings erkannten wir früh, dass UML würde nicht ausreichen. Es war einfach zu stumpf den Detaillierungsgrad für die Spezifikation erforderlich zu erfassen. Der beste Weg, war eigentlich zu verwenden Pseudo-Code (jeder wurde mit ihm trotzdem für die Kommunikation Ideen)! Das ist, wie die Erkenntnis gemacht wurde. Mit Filz UML wie ein Schritt weg von Klarheit.

Wie die Ideen begannen zu einer Lösung wurde ein Versionskontrollsystem, um die Änderungen des Pseudo-Code zu verfolgen eingesetzt zu verengen (und Anwendungsfälle usw.). Also, jeder in der Gruppe folgte die Änderungen. Bitweise Teile wurden in tatsächlichen Code übersetzt neben der Dokumentation und Verweise auf Motivationen und Diskussionen.

Am Ende der transision von Modell zu Code war sehr glatt. Der wirklich schöne Teil war, imho, die Verwendung VCS, die man sogar den ursprünglichen Pseudo-Code erlaubt, um zu sehen, ohne Umgebung zu wechseln.

schrieb ich meine Bachelorarbeit über Model Driven Software Development und ich möchte Sie warnen, dass es wirklich wichtig ist, einen guten Ansatz zu verwenden, um zu tun, was Ihr Unternehmen beabsichtigt. Es gibt viele Dinge, die schief gehen könnte, wie z.B. direkt generierten Code bearbeiten, nur einmal zu erzeugen in der Lage becaause manuell bearbeitet Code nach der Generierung gelöscht werden würde, müssen Sie einige Domain-Analyse machen einen guten Meta-Modell zu erstellen und eine gute Code-Generierung Framework verwenden ... Bitte mich nicht verstehen falsch, ich glaube, MDSD ist groß, aber nur darauf achten, wie Sie es tun. Das Original MDA und Bücher über sie legen nahe, wirklich schlecht appproaches, die zu teuer sind und zu spröde. Ich schlage vor, Sie auf voelter.de Website suchen, wo man Papiere, Präsentationen und Podcasts von Markus Voelter finden, die in diesem Bereich ein sehr erfahrener Berater ist.

Für mich ist der Schlüssel Aspekt pragmatisch manchmal sein. Modellierung sollte keine boolean Aktivität sein (wir nicht entweder Modell oder nicht-Modell). Wir sollten die Modellierungsebene / Präzision auf die Eigenschaften des Projektes (siehe zum Beispiel, was die Leute auf agile Modellierung Arbeit tun) anpassen können und das Unternehmen. Zu wenig oder zu viel Modellierung problematisch sein kann (mit zu wenig Sie nicht die Vorteile sehen kann, zu viel fo Ihr Unternehmen werden overkilling kann, besonders, wenn Sie den Übergang beginnen, oder Sie haben nicht die erforderlichen Werkzeuge)

In meinem Portal / Blog ( http://modeling-languages.com ) diskutieren wir oft über die Vorteile der Modellierung oder wie Modellierung verwendet werden. Sie finden es vielleicht interessant

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top