Kurze Antwort… weil modellgetrieben oft mit der Codegenerierung zusammenhängt und Code zerbrechlich ist; Was wir brauchen, ist Code-Eliminierung und modellgetrieben ist sicherlich der richtige Weg.
Einige haben die Frage mit der Begründung zurückgewiesen, es gebe keinen goldenen Hammer und die Softwareentwicklung sei von Natur aus komplex.
Ich stimme ihnen voll und ganz zu, dass es keinen goldenen Hammer gibt, aber ich denke nicht, dass das Modellfahren eine Suche nach goldenen Hämmern oder silbernen Kugeln ist!
Ich möchte mit der Komplexität weiter gehen; Es gibt zwei Arten von Komplexität, die ich organische oder natürliche Komplexität nenne, Komplexität, die dem Geschäft und seinen Prozessen innewohnt, aber wir haben auch zeremonielle Komplexität.
Komplexität, die sich Tag für Tag in die Systemanweisungen einschleicht. Zeremonielle Komplexität - unnötige Komplexität - ergibt sich im Wesentlichen aus der unkontrollierten Verwirrung von technischem Code mit geschäftsorientiertem Code, aber auch aus dem Mangel an Struktur und Einheitlichkeit im System.
Heutzutage ist die gesamte Komplexität, die die Entwicklung von Informationssystemen verfolgt und Versagen und Taille verursacht, eine zeremonielle Komplexität. Komplexität, die beseitigt werden kann.
Zeremonielle Komplexität ist Verschwendung, Verschwendung durch Code, Wert weniger, Änderung nachteiliger, unveränderlicher Code; Code, der auf ein Minimum reduziert werden muss.
Wie geht das? Einfach, schreibe es einfach nicht und erstelle es nicht!
Notwendiger, unveränderlicher technischer Code; Code, der zum Lesen / Schreiben, Anzeigen, Kommunizieren verwendet wird. Hier kommen Modelle ins Spiel, indem sie die logische Struktur von Daten beschreiben - ich würde relational hinzufügen -. Modelle können die allgemeine Handhabung von Standard-Lesen / Schreiben, -Anzeigen und -Kommunikation ermöglichen Daten.
Es ist wie bei einem Betriebssystem, Sie schreiben es nicht für jedes Projekt neu, das Sie verwenden. Was also benötigt wird, ist eine technische Engine, die unveränderliche Aspekte von Software in einem gegebenen Modell behandelt. Ich nenne es eine AaaS-Engine (Architecture as a Service).
Was unnötigen Code angeht, so ist es unnötiger Code und kann ihn auch ungeschrieben lassen.
Das hinterlässt uns den notwendigen, geschäftsorientierten Code, der geschrieben werden sollte, die erforderlichen geschäftsorientierten Daten, die entworfen und die erforderliche Benutzeroberfläche und Erfahrung, die entworfen und vorgestellt werden sollten.
Indem wir fragilen Code eliminieren, können wir Architecture as a Service als neues Paradigma für die Softwareentwicklung verstehen, das viel mehr auf Modellierung und Design als auf Code basiert.