Saturday, April 09, 2005

Software design: Harus pakai MDA dan UML?

Ini cerita cepat...

Dulu pertama kali belajar UML (Unified Modeling Language) tidak begitu mudah apalagi saya belajar programming bersamaan dengan belajar mendesain software (tentu saja dengan menggunakan UML). Yang saya rasa pertama kali dengan UML adalah bingung, karena terlalu banyak dan saya tidak tahu kalau kita tidak perlu menggunakan semua digram untuk mendesign software atau sistem. Dan yang membuat saya bingung juga adalah kata "Languange" sehingga saya pikir UML seperti bahasa pemrograman. Saya heran kenapa mereka tidak membuat nama dengan "Diagram". Dengan banyaknya jenis diagram dalam UML membuat belajar lebih lama, berbeda ketika mendesain software hanya dengan flowchart atau DFD (data flow diagram) saja.

UML sepertinya berusaha meng-cover semua kebutuhan untuk desain software, bahkan saya pikir malah tidak hanya software, sehingga begitu banyak model yang digunakan.

Kemudian ketika mendesain dengan metode MDA (Model Driven Architecture), ternyata hambatannya adalah sinkronisasi antara kode riil dengan model awal yang kita buat. Kadang-kadang kita bekerja cepat dan efektif dengan menggubah langsung kode program dengan desain yang masih ada di kepala. Saat kita sedang coding kemudian ingin membuat sebuah class, kita kembali ke diagram, membuat kotak, bla bla bla, kemudian kembali ke kode. Proses yang tidak efektif kan? Adalagi dengan masalah code yang di-generate oleh tool MDA yang pernuh komentar atau template-nay tidak sesuai dengan yang kita inginkan. Kita harus belajar lebih banyak dari tool untuk bisa mulai memprogram. Belum lagi masalah harga tool yang mahal.

Fiuhh... apa sih MDA itu? Saya bingung pertama kali saya dengar MDA karena saya pikir MDA itu adalah sebuah high level architecture system, ternyata bukan. Ternyata dengan definisi mudahnya MDA itu adalah metode membuat software dengan menggunakan berfokus pada modeling dahulu kemudian coding. Dengan fokus pada modeling berarti banyak pekerjaan kita adalah modeling, kemudian dengan modeling tersebut kita bisa generate code (menggunakan tools) sehingga model yang kita buat lebih bersifat powerful. Agar model yang kita buat lebih powerful lagi, maka dibuatlah metadata (yang open) sehingga tidak tool spesific. Agar lebih powerful lagi, maka disyaratkan model tersebut harus language-independent atau platform-independent. Dan saya sadar, ternyata saya sudah melakukan MDA tanpa tau kalau metode yang saya pakai itu adalah MDA.

Oke, jangan bingung-bingung dengan cara bagaimana kita membuat software. Begitu banyak metodologi yang kadang-kadang tidak terlalu jauh beda. Dan jangan bingung dengan begitu banyaknya jargon-jargon yang aneh-aneh dan telalu berlebihan. Kita gak sendirian kalau kita tidak mengimplementasikan MDA atau menggunakan UML.

No comments:

Followers