Rekayasa Software Berbasis Komponen

Sebuah model proses perangkat lunak adalah representasi abstrak dari suatu proses. Hal ini menyajikan gambaran tentang suatu proses dari beberapa perspektif tertentu. Dalam model proses software, terdapat beberapa model salah satunya adalah Reuse-based / oriented development: Sistem yang dirakit dari komponen yang ada atau merupakan rekayasa sofware berbasis komponen. Rekayasa software berbasis komponen didasarkan pada penggunaan kembali / reuse system yang sistematis di mana sistem terintegrasi dari komponen yang ada atau COTS (Commercial-off-the-shelf) systems.

Tahapan prosesnya meliputi: Analisis Komponen, modifikasi kebutuhan, perancangan sistem dengan penggunaan kembali / reuse yang sudah ada, kemudian pengembangan serta integrasi. Pendekatan ini mengalami peningkatan sejalan dengan penggunaan komponen standar telah muncul.

Beberapa tahun terakhir ini teknologi pengembangan perangkat lunak berbasis komponen telah menjadi sebuah paradigma baru dalam mengembangkan suatu aplikasi perangkat lunak terutama pada aplikasi terdistribusi. Keuntungan dari teknologi ini adalah untuk mengurangi waktu dan biaya pengembangan, serta meningkatkan derajat dari interoperabilitas, portabilitas dan maintainabilitas.

Desain berbasis komponen ini pun mempunyai sejumlah keuntungan untuk proyek perangkat lunak. Antara lain komponen dapat dilakukan proses developed, tested dan deployed secara individual. Hal ini dapat mempermudah dalam pengembangan dan meningkatkan kualitas serta efisiensi, Sebuah komponen bersifat reusable dan dapat disederhanakan dengan “dihubungkan” ke dalam aplikasi, penggunaan tools yang tepat dapat mengurangi jumlah basis code yang dibutuhkan saat menulis program sehingga dapat meningkatkan efisiensi dan kualitas, sistem berbasis komponen dapat disebarkan ke berbagai platform dimana setiap komponen dapat mempunyai berbagai implementasi: satu implementasi per execution environment, menggunakan teknik berbasis komponen yang dapat digabungkan di berbagai platform maka berbagai aplikasi dapat dieksekusi dalam platform yang sama sehingga memberikan ruang memori dan kinerja proses yang tercukupi, sistem berbasis komponen juga dapat dieksekusi silang ke berbagai piranti pemroses: General Purpose Processors (GPP), Digital Signal Processors (DSPs), menggunakan standar dalam pengembangan tools framework berbasis komponen dapat meningkatkan efisiensi dalam pengembangan workflows dan juga memastikan komponen COTS dimana project dapat menggunakan komponen satu dengan yang lain untuk melakukan kerjasama.

Rekayasa perangkat lunak berbasis komponen telah semakin diadopsi untuk pengembangan perangkat lunak. Pendekatan seperti  menggunakan komponen dapat digunakan kembali sebagai blok untuk membangun perangkat lunak, sehingga sering melibatkan pemeliharaan kegiatan, seperti upgrade komponen pihak ketiga atau menambahkan fitur baru. Biaya pemeliharaan konvensional perangkat lunak dapat sebesar dua-pertiga dari total biaya, dan kemungkinan bisa lebih untuk menjaga perangkat lunak berbasis komponen ini. Jadi, teknik perawatan yang efektif untuk perangkat lunak berbasis komponen sangat dibutuhkan.

Teknologi yang berorientasi obyek menyediakan kerangka kerja teknis untuk proses model berbasis komponen untuk software. Paradigma orientasi obyek menekankan pembuatan kelas yang mengenkapsulasi data dan algoritma yang digunakan untuk manipulasi data. Jika didesain dan dibuat dengan benar kelas orientasi obyek dapat digunakan kembali meski dengan berbagai aplikasi dan arsitektur yang berbasis komputer.

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. Tujuan metode desain berorientasi objek adalah mengembangkan sistem software yang terdiri dari interaksi antar objek yang mempunyai modular tinggi sehingga mudah untuk dimodifikasi, dikembangkan dan dipelihara. Model desain berorientasi objek mengalamati struktur aspek kelas dan objek dengan menghubungkan dan mengelompokkannya menjadi satu perilaku objek yang saling berhubungan atas perilaku dan interaksinya.

Permasalahan dalam metode berorientasi objek adalah mendorong para desainer untuk membuat keputusan tentang “struktur” pada tahap permulaan kemudian melakukan “proses” pada metode berorientasi objek dan karena itu mengikat desain tersebut menjadi implementasi sebelum detail model desain abstrak dapat selesai dikerjakan sepenuhnya.

Pendekatan berorientasi objek dapat membantu memudahkan dalam memecahkan permasalahn karena hal ini sangat baik untuk mendeskripsikan dari setiap entitas. Karena informasi dari encapsulation, perancangan berorientasi objek umumnya mengarah ke sistem dimana sistem data yang kurang atau mungkin rusak dalam hal error program. Error program mungkin juga akan lebih mudah untuk diubah walaupun ini tergantung pada sifat perubahan dilingkungannya. Namun, seperti yang dikatakan Fichman dan Kemerer menyebutkan bahwa decomposing sistem menjadi loosely pada objek yang di-couple, berarti bahwa tidak ada gambaran secara keseluruhan dari akhir pemrosesan dalam proses perancangan.

Alasan untuk menerapkan suatu model komponen pada perangkat lunak adalah keuntungan dari dasar arsitektur koneksi interfacenya. Dalam arsitektur perangkat lunak berorientasi obyek, 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.

Referensi : Dikutip dari berbagai sumber

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s