Friday, January 30, 2009

About Component Based Software Engineering

Di bidang elektronik, biasanya terdapat papan untuk ditaruh komponen-komponen seperti resistor, IC, transistor dan lain-lain. Dan dengan rangkaian tertentu, bisa menghasilkan alat yang memiliki fungsionalitas macam-macam.

Senada dengan konsep diatas, pada dunia Software Engineering juga terdapat Component-Based Software. Component itu sendiri dapat diartikan sebagai suatu unit yang executable yang berdiri sendiri dalam hal produksi, akuisisi, dan deployment yang dapat disusun menjadi suatu fungsionalitas.

Hal ini sebenarnya sudah dilakukan. Contoh paling jelas adalah OS. Misalnya Linux. Berikan component tertentu (install suatu program), maka ia akan dapat memainkan lagu dengan format mp3, yang mana pada awalnya tidak bisa. Atau contoh lainnnya Netbeans. Berikan plugin tertentu, dan tiba-tiba ia dapat menjadi tools untuk keperluan UML.

Membangun suatu perangkat lunak dengan memakai konsep component ini memiliki keuntungan yang sangat baik untuk menghasilkan perangkat lunak yang berkualitas. Programming pada dasarnya adalah suatu Art yang terkemas dalam bentuk logis. Sebagai art, memiliki kemungkinan wujud yang tidak berbatas, sedangkan bentuk logisnya mengharuskan ia dapat berjalan dengan sempurna (hei, salah titik ato koma saja, compile error kan? :p). Ketika dua aspek itu bertemu, maka muncullah ketidaksempurnaan yang biasa disebut dengan Bug. Lalu apa hubungannya dengan komponen? extensive testing diperlukan untuk menghilangkan Bug, dan dengan pembangunan komponen, sebelum akhirnya dilepaskan ke pasaran, komponen tersebut sudah di test keabsahannya.

Meski banyak penggunaannya, kenyataannya perkembangan Component-Based Software kurang begitu bagus. Hal ini dikarenakan tidak adanya suatu ketentuan yang menyeluruh akan bagaimana prosedur pembangunan, pembuatan, dan pen-deploy-an suatu komponen, masing-masing vendor memiliki aturannya sendiri. Contohnya Microsoft dengan .Net-nya, Sun dengan Java-nya, Adobe dengan AIR-nya, dan lain-lain, Sehingga menyebabkan bidang Software Engineering tidak memiliki standar baku seperti halnya bidang elektronik.

1 comment: