Model-driven architecture
Model-driven architecture (MDATM) adalah sebuah pendakatan perancangan perangkat lunak yang diluncurkan oleh Object Management Group (OMG) in 2001.
MDA mendukung rekayasa model-driven dari sistem perangkat lunak. MDA menyediakan sekumpulan panduan untuk menstrukturkan spesifikasi yang dinyatakan sebagai model. Pendekatan MDA mendefinisikan fungsionalitas sistem menggunakan sebuah platform-independent model (PIM) dengan memakai sebuah domain-specific language yang sesuai. Kemudian, diberikan sebuah platform definition model (PDM) berupa CORBA,.NET, the Web, dll., PIM diterjemahkan ke dalam
satu atau lebih platform-specific model (PSM) yang dapat dijalankan oleh komputer. PSM dapat menggukanan Domain Specific Language yang berbeda, atau sebuah General Purpose Language seperti Java, C#, PHP, Python, dll.. Kakas otomatis umumnya yang melakukan penerjemahan ini.
Organisasi OMG sekadar menyediakan spesifikasi kasar dan bukan implementasi, kadang-kadang merupakan jawaban atas Requests for Proposal (RFP). Implementasi datang dari perusahaan swasta atau kelompok open source.
Prinsip-prinsip MDA dapat juga diterapkan pada area lain sepertibusiness process modeling dimana PIM diterjemahkan ke dalam proses otomatis atau manual.
OMG memfokuskan Model-driven architecture pada rekayasa maju ("forward engineering"), yaitu, menghasilkan kode yang berasal dari abstraksi, spesifikasi pemikiran manusia. Grup ADTF (Analysis and Design Task Force) dari OMG memimpin usaha ini. Dengan sedikit candaan, grup tersebut memilih ADM (kebalikan dari MDA) sebagai nama dari studi reverse engineering. ADM kependekan dariArchitecture-Driven Modernization. Tujuan ADM adalah untuk menghasilkan
standard-standard bagi rekayasa balik berbasis model untuk sistem lawas ("legacy system"). Knowledge Discovery Metamodel (KDM) adalah salah satu yang dicapai oleh usaha tersebut, dan mendeskripsikan sistem nformasi ke dalam pengertian dari beragam aset (program, spesifikasi, data, file-file uji, skema basis data, dll.).
Salah satu tujuan dari MDA adalah memisahkan rancangan dari arsitektur. Sebagaimana konsep dan teknologi yang digunakan untuk mewujudkan rancangan, dan, konsep dan teknologi yang digunakan untuk mewujudkan arsitektur telah berubah sendiri-sendiri, saling lepas antar keduanya memungkinkan pengembang sistem untuk memilih yang terbaik dan yang paling tepat dalam kedua ranah.
Rancangan mengarah pada kebutuhan fungsional (use case) sedangkan arsitektur menyediakan infrastruktur yang diwujudkan melalui kebutuhan non-fungsional seperti skalabilitas, reliabilitas dan kinerja. MDA memandang bahwa platform independent model (PIM), yang merepresentasikan sebuah rancangan konseptual yang mewujudkan kebutuhan kebutuhan fungsional, akan bertahan terhadap perubahan dalam realisasi teknologi dan arsitektur perangkat lunak.
Hal yang penting dari model-driven architecture adalah pengertian transformasi model. Sebuah bahasa baku khusus untuk transformasi model yang telah didefinisikan oleh OMG disebut QVT.
Model MDA terkait pada banyak standard, termasuk Unified Modeling Language (UML), Meta-Object Facility (MOF), XML Metadata Interchange (XMI), Enterprise Distributed Object Computing (EDOC), Software Process Engineering Metamodel (SPEM), dan Common Warehouse Metamodel (CWM). Ingat bahwa istilah "arsitektur" dalam MDA tidak mengacu pada arsitektur dari sistem yang dimodelkan, tapi lebih kepada arsitektur dari berbagai standard dan bentuk model yang bertindak sebagai dasar teknologi bagi MDA.
Executable UML, sering disingkat xtUML atau xUML, adalah evolusi dari metode Shlaer-Mellor untuk UML, ini adalah pendekatan khusus untuk mengimplementasikan MDA. Executable UML secara grafis menyatakan sebuah sistem deterministik dengan menggunakan sebuahprofil dari UML. Model-model adalah testable, dan dapat dikompilasi ke dalam sebuah bahasa pemrograman yang abstraksi-nya lebih rendah untuk
menghasilkan implementasi spesifik. Executable UML mendukung MDA melalui spesifikasi platform-independent model, dan kompilasi dari platform-independent model ke dalam platform-specific model.
Object Management Group memiliki merek dagang MDA, demikian juga beberapa istilah yang mirip, termasuk Model Driven Development (MDD), Model Driven Application Development, Model Based Application Development, Model Based Programming, dan lainnya. Akronim utama yang belum dimiliki oleh OMG sampai saat ini adalah MDE. Akibatnya, komunitas riset menggunakan MDE untuk mengacu ide rekayasa model secara umum, tanpa harus patuh pada standar-standard yang dibuat OMG.
Di antara banyak konferensi tentang topik ini adalah ECMDA, European Conference on MDA dan juga MoDELS, dahalu merupakan rangkaian konferensi «UML» (sampai 2004), Italian Forum on MDA dengan bekerjasama dengan OMG. Ada juga beberapa konferensi dan "workshop" (di OOPSLA, utamanya ECOOP) yang memfokuskan diri pada aspek-aspek khusus dari MDA seperti transformasi model, komposisi, dan pembangkitan.