Apa sebenarnya rekayasa perangkat lunak model driven (MDSE)?

10

Saya menemukan akronim MDSE hari ini di infoq , dan informasi yang saya dapat temukan yang tidak jelas dan uraiannya penuh dengan kata kunci:

MDSE adalah tentang memungkinkan para insinyur perangkat lunak untuk bekerja pada tingkat abstraksi di mana persyaratan, arsitektur, dan informasi desain dipesan secara maksimal (dalam hal informasi "entropi") dan dipertahankan. (Sebut ini "produk pekerjaan desain"). Lebih lanjut, MDSE harus menyediakan sarana bagi para insinyur untuk memverifikasi dan memvalidasi desain mereka terutama dari segi "produk kerja desain" mereka.

Dan ternyata, semua orang melakukannya: (dari artikel lagi)

Kami berada di awal era MDSE. Dalam 5 - 10 tahun ke depan kita akan melihat perubahan yang signifikan menuju MDSE, sejauh saya percaya bahwa pada akhir periode ini mungkin 60 - 80% dari perangkat lunak akan dirancang menggunakan teknik berbasis model.

Saya ingin memiliki deskripsi konkret, bebas buzzword tentang MDSE. Apakah itu menggambar kotak UML dan menghasilkan kode dengan itu, seperti yang mereka lakukan di tahun 90-an dengan Rational Rose?

(Sementara itu, jika ada yang punya contoh perangkat lunak yang dihasilkan menggunakan teknik-teknik itu, saya benar-benar ingin melihat contoh nyata).

Laurent Bourgault-Roy
sumber
2
Ini terdengar mirip dengan Desain Berbasis Domain. Pada dasarnya, masukkan logika bisnis ke dalam model Anda. Kata kunci yang terkait: Fat Model, Skinny Controller.
Greg Burghardt
Saya menduga deskripsi bebas kata kunci tidak mungkin karena tampaknya menjadi bagian integral dari esensi konsep.
whatsisname

Jawaban:

1

"model driven software engineering (MDSE)" adalah janji pemasaran dari produsen alat perangkat lunak bahwa "segera" bagian-bagian penting dari perangkat lunak dapat dihasilkan dari model-perangkat lunak.

Mitra wawancara dalam artikel yang Anda rujuk , Robert Howe adalah produsen alat (lihat http://www.verum.com/ untuk detail)

Tetapi bertentangan dengan janji pabrikan-alat mdse belum menjadi mainstream.

Sistem toko internet hybris adalah contoh kerja dari "MDSE": Anda sebagai pengembang perangkat lunak memelihara xml-model-file ("* -items.xml") dan pembuat kode / juru bahasa menghasilkan db-modell / kode java untuk kegigihan / guis keluar dari itu. Jika Anda memerlukan atribut tambahan, tambahkan saja ke model xml dan setelah generator / interpreter menyelesaikannya, Anda dapat menggunakan atribut tersebut untuk mengimplementasikan logika bisnis.

k3b
sumber
0

IMHO "model driven " adalah berlebihan besar, terutama bila digunakan bersama dengan kata kunci seperti "desain" atau "rekayasa perangkat lunak" (alih-alih "pengembangan"). Itu mungkin ditemukan oleh beberapa orang yang memiliki kesalahpahaman "desain perangkat lunak" dilakukan dengan menggambar sebagian besar model grafis dengan UML, seperti seorang arsitek menggambar cetak biru untuk sebuah rumah, dan "coding" sama seperti meletakkan batu bata untuk rumah, mengikuti cetak biru. (Saya harap saya tidak perlu menjelaskan di sini mengapa ini salah, jika Anda memiliki pendapat yang berbeda, silakan baca "Code as Design" oleh Jack Reeves terlebih dahulu sebelum menurunkan saya.)

Ini adalah model mental yang bagus untuk orang-orang yang menyebut diri mereka "arsitek", "analis bisnis", "desainer", "insinyur perangkat lunak", yang telah mempelajari lima tahun ilmu komputer, tetapi hanya setengah tahun pengalaman pemrograman nyata (maksimal ), dan sekarang mencari pekerjaan di industri perangkat lunak yang termasuk "merancang perangkat lunak" tanpa coding. Saya kira inilah alasan sebenarnya mengapa kata kunci "model driven" ini sangat populer.

Jangan salah, saya penggemar berat model dan generator kode untuk mengurangi kebutuhan untuk menulis kode boilerplate secara manual. Di beberapa area terbatas seperti, misalnya, database, (data) model memang bisa menjadi instrumen yang baik untuk berkomunikasi dengan orang-orang domain. Membuat sketsa aliran data antara komponen dengan model adalah IMHO salah satu teknik paling penting untuk membawa struktur ke dalam sistem perangkat lunak (sayangnya, orang-orang UML lupa menolak untuk memasukkan diagram aliran data dalam notasi mereka; sebagai gantinya, mereka menambahkan banyak hal yang berlebihan, hal-hal yang tidak perlu yang tidak ada yang digunakan dalam praktek).

Tapi saya akan menyebut ini "model pengembangan perangkat lunak yang didukung ", bukan " rekayasa perangkat lunak model didorong ", yang semoga jelas bahwa pemodelan hanya mendukung kegiatan utama dalam pengembangan, alih-alih menjadi kegiatan utama itu sendiri.

Doc Brown
sumber
Hummm ... Jawaban yang sangat reduktif, berdasarkan pendapat buruk tentang beberapa profesional TI ...
Rénald
@ Rénald: baiklah, tidak ada jawaban saya yang tidak berdasarkan pengalaman pribadi. Dan saya tidak mengatakan bahwa tidak ada arsitek berpengalaman, BA atau desainer di luar sana - tetapi ketika mereka benar-benar berpengalaman, mereka mungkin tidak percaya pada janji-janji palsu MDSE.
Doc Brown
-1

Ini mengingatkan saya pada banyak model Fat, konsep pengendali kurus .
Ide utama dari konsep ini adalah untuk menempatkan sebanyak mungkin logika bisnis ke dalam model dan menjaga pengontrol dan tampilan yang sangat sederhana.
Secara pribadi, saya menemukan ini ide yang sangat menarik, meskipun saya belum punya kesempatan untuk menggunakannya.
Anehnya, 8 dari 10 tautan teratas di pencarian google berbicara menentangnya.
Tetapi, jika Anda memikirkan model bukan sebagai kelas tunggal, tetapi fasad dari beberapa kelas internal, sangat masuk akal untuk menjaga logika bisnis dalam model.

Daniel
sumber
1
Saya tidak berpikir itu berarti model seperti dalam MVC, tetapi 'pemodelan' seperti dalam desain sistem.
gbjbaanb