Anda di halaman 1dari 5

Component-based Software Engineering (CBSE)

Garmish, Jerman, 1968, konferensi NATO tentang rekayasa perangkat lunak yang bertitel Mass
Produced Software Components merupakan cikal bakal lahirnya sebuah paradigma baru dalam
hal rekayasa perangkat lunak sekaligus membuka kesempatan bisnis dengan omset jutaan dollar.

Douglas McIlroy mencetuskan ide pertama kali bahwa software seharusnya dibangun dari
komponen-komponen. Kemudian konsep ini dikembangkan lagi oleh Brad Cox dari Stepstone
dengan Software IC-nya. Di awal 1990-an, IBM memimpin dengan System Object Model
(SOM) yang kemudian ditiru oleh Microsoft melalui OLE dan COM.

Konsep ini berkembang lebih lanjut hingga dikenal luas dengan istilah Component-based
software engineering (CBSE). CBSE adalah cabang dari ilmu rekayasa perangkat lunak yang
fokus pada dekomposisi sistem menjadi fungsional atau logikal komponen. CBSE dilakukan
dengan memisahkan aspek fungsional dari keseluruhan sistem, kemudian mengembangkan
masing-masing aspek fungsional tersebut secara independen namun tetap mengacu pada grand-
desain. Seandainya ada kesalahan, error, atau bug pada sebuah aspek maka perbaikan hanya
diberlakukan pada satu aspek tersebut. Manfaat yang didapatkan antara lain mempermudah
standarisasi, maintenance dan refactoring.

Komponen Software diartikan sebagai elemen sistem yang menawarkan predifined service dan
dapat berkomunikasi dengan komponen lain. Reusability adalah karakteristik paling penting dari
sebuah komponen. Komponen didesain dan diimple-mentasikan agar dapat digunakan pada
program aplikasi yang lain. Komponen biasa ditulis dengan bahasa pemrograman aras rendah
untuk mendapatkan fleksibilitas dan mempertahankan kecepatan.

Untuk membuat komponen software yang reusable secara efektif, maka komponen harus :
- Didokumentasikan secara lengkap.
- Testing secara menyeluruh.
- Check validasi dengan beragam inputan.
- Menerima feedback error yang berguna.
- Dibangun dengan hati-hati sebab penggunaannya tidak kasat mata.
- kanisme kompensasi yang menguntungkan untuk developer.

Suatu saat pengembangan komponen sampai pada state matang dan dapat dijadikan template
untuk membangun fungsionalitas aplikasi yang serupa. Template itu bisa dijadikan investasi di
kemudian hari bahkan bisa dijual terpisah.

CBSE akan semakin dasyat bila dipadukan dengan Extreme Programming (XP). XP menuntut
komunikasi antar developer dan user secara intensif dan komunikasi internal antar developer
secara komprehensif, sehingga akan lebih representatif apabila tahap pengembangan sistem
dilakukan di lokal yang mendukung proses komunikasi tersebut. Untuk sesama tim developer,
proses konstruksi sistem harus dilakukan secara bersama-sama di tempat yang sama, karena
hampir semua kegiatan development dalam konstruksi dikerjakan secara paralel dan pipelining.

Akan lebih efektif apabila developer pernah menangani proyek pengembangan sistem yang
sejenis dari klien-klien terdahulu sehingga dapat memberikan usulan model pengimplementasian
sistem baru, di samping alasan bahwa developer telah memiliki template aplikasi sistem tersebut
untuk dijadikan prototype sistem baru. Hal ini akan berimplikasi kepada kemudahan dalam
konstruksi sistem karena dikembangkan berdasarkan template yang sudah ada. Template
mempermudah developer membangun aplikasi dan juga mempermudah komunikasi ide-ide.
Dengan mekanisme template atau prototyping melalui komponen-komponen, proses
development semakin ringan karena bisa jadi pengembangan aplikasi cukup dilakukan hanya
dengan melakukan code refactoring.

Bisnis di bidang komponen software cukup menjanjikan hal ini dipicu oleh trend kebutuhan user
untuk menghasilkan aplikasi yang profesional dengan koding yang minimal. Dari sisi developer,
manfaat yang terlihat jelas adalah penghematan waktu dan biaya untuk proyek-proyek aplikasi
dengan tema yang hampir sama.
















Component-Based Software Engineering (CBSE) adalah proses yang menekankan perancangan
dan pembangunan software dengan menggunakan komponen software yang sudah ada. CBSE
terdiri dari dua bagian yang terjadi secara paralel yaitu software engineering (component-based
development) dan domain engineering seperti yang digambarkan pada Gambar 2:
1. domain engineering menciptakan model domain bagi aplikasi yang akan digunakan untuk
menganalisis kebutuhan pengguna. Identifikasi, pembangunan, pengelompokan dan
pengalokasikan komponen-komponen software supaya bisa digunakan pada sistem yang ada dan
yang akan datang.
2. software engineering (component-based development) melakukan analisis terhadap domain
model yang sudah ditetapkan kemudian menentukan spesifikasi dan merancang berdasarkan
model struktur dan spesifikasi sistem, kemudian melakukan pembangunan software dengan
menggunakan komponen-komponen yang sudah ditetapkan berdasarkan analisis dan rancangan
yang dihasilkan sebelumnya hingga akhirnya menghasilkan software.






















Rekayasa perangkat lunak berbasis komponen (dalam bahasa Inggris disebut component
based software engineering atau CBSE) adalah proses yang menekankan perancangan dan
pembangunan software dengan menggunakan komponen software yang sudah ada. CBSE
berkaitan dengan sistem pengembangan perangkat lunak dari bagian-bagian (komponen) yang
dapat digunakan kembali, pengembangan komponen, perbaikan dan pemeliharaan sistem dengan
cara kustomisasi atau penggantian komponen.

Seperti dikutip oleh Herri Setiawan dan Edi Winarko, menurut I Kaur (2009) CBSE umumnya
mewujudkan prinsip-prinsip pengembangan perangkat lunak fundamental berikut: (1)
Independent Software Development, yaitu sistem perangkat lunak besar yang memisahkan
pengembang dan pengguna komponen melalui abstrak dan spesifikasi implementasi-netral
antarmuka perilaku komponen; (2) Reusability, yaitu merancang dan merakit komponen yang
sudah ada (di dalam atau di seluruh domain) dalam mengembangkan komponen baru; (3)
Software Quality, yaitu penjaminan kualitas perangkat lunak yang terukur; dan (4)
Maintainability, yaitu pengembangan yang mudah atas sebuah sistem.

CBSE terdiri dari dua bagian yang terjadi secara paralel yaitu software engineering (component-
based development) dan domain engineering. Software engineering melakukan analisis terhadap
domain model yang sudah ditetapkan kemudian menentukan spesifikasi dan merancang
berdasarkan model struktur dan spesifikasi sistem, kemudian melakukan pembangunan software
dengan menggunakan komponen-komponen yang sudah ditetapkan berdasarkan analisis dan
rancangan yang dihasilkan sebelumnya hingga akhirnya menghasilkan software. Sedangkan
domain engineering menciptakan model domain bagi aplikasi yang akan digunakan untuk
menganalisis kebutuhan pengguna. Identifikasi, pembangunan, pengelompokan dan
pengalokasikan komponen-komponen software supaya bisa digunakan pada sistem yang ada dan
yang akan datang.

Prinsip penggunaan kembali perangkat lunak dapat mempercepat pengembangan sistem.
Sebelumya, teknik rekayasa perangkat lunak berorientasi obyek sudah menggunakan prinsip ini,
namun masih mempunyai keterbatasan (seperti penggunaan kembali yang tidak fleksibel,
tingkah laku sistem yang tertanam dalam implementasi, dan adanya ketergantungan konteks).
Berawal dari sini kemudian muncul pendekatan CBSE.

Meski demikian, pengembangan yang berbasis komponen juga sangat berkaitan dengan
teknologi berorientasi objek. Pada pemrograman berorientasi objek, banyak class yang dibangun
dan menjadi komponen dalam suatu software. Class tersebut bersifat reusable (bisa digunakan
kembali). Secara umum proses yang terjadi dalam model ini ada tiga. Pertama, mengidentifikasi
class-class yang akan digunakan kembali dengan menguji class tersebut dengan data yang akan
dimanipulasi dengan aplikasi/software dan algoritma yang baru. Selanjutnya, class yang dibuat
pada proyek sebelumnya disimpan dalam class library, sehingga bisa langsung diambil dari
library yang sudah ada. Jika ternyata ada kebutuhan class baru, maka class baru dibuat dengan
metode berorientasi objek. Terakhir, membangun software dengan class-class yang sudah
ditentukan atau class baru yang dibuat, integrasikan.

Dalam arsitektur perangkat lunak berorientasi objek, koneksi (dalam perintah pengiriman pesan)
ditempatkan di dalam objek. Hal ini memiliki sejumlah kelemahan, sebagai contoh bahwa
enkapsulasi objek dan arsitektur tidak jelas mengenai entitasnya. Walaupun metode interface
objek dapat didefinisikan sebelum implementasi, koneksi hanya didefinisikan bila objek dibuat.
Jadi, kemungkinan arsitektur telah berkembang sebagai sistem yang dibangun dan tidak
ditetapkan sebagai suatu rencana atau garis besar sistem. Perubahan sederhana dengan merubah
hanya satu objek, misalnya yang dapat menyebabkan perubahan arsitektur. Seharusnya 2 objek
akan dipertukarkan, semua pemanggilan metode dari objek lain ke metode yang disediakan 2
objek harus diubah di dalam kode enkapsulasi objek ini. Hal ini tidak mempunyai dukungan
yang cukup untuk kenyamanan dalam perubahan atau ekstensi.

Perangkat lunak berbasis komponen adalah spesialisasi dari perangkat lunak berorientasi objek.
Model komponen yang saat ini dikembangkan di IAS didasarkan pada konsep berorientasi objek
seperti hirarki, enkapsulasi dan komposisi. Bagian dalam komponen-komponen bahkan mungkin
dapat dimodelkan seperti berorientasi objek selama hal tersebut menunjukkan perilaku black-box
pada interface.

Dengan demikian, dapat disimpulkan bahwa CBSE merupakan pengembangan dari rekayasa
perangkat lunak berorientasi objek dengan beberapa tambahan yang memungkinkannya lebih
kompatibel dengan kebutuhan terkini.

Anda mungkin juga menyukai