Menu

Saturday 19 December 2015

Reuse Perangkat Lunak

 
Dalam pengembangan perangkat lunak ada beberapa metode pendekatan yang digunakan, seperti : Waterfall, reuse, prototyping, spiral. Masing-masing dari metode tersebut memiliki kelebihan dan kekurangan masing-masing, hal tersebut tentu disesuaikan dengan waktu, budget dan pengalaman dari developer dalam mengembangkan sebuah software.
Penggunaan kembali perangkat lunak (software reuse) adalah proses menggunakan system perangkat lunak dari perangkat lunak yang ada dari pada membangun system perangkat lunak dari awal. Ini sederhana namun memiliki visi yang kuat dan diperkenalkan pada tahun 1968.
Dengan kata lain software reuse adalah integrasi dan penggunaan asset perangkat lunak dari sebuah system yang dikembangkan sebelumnya. Tahapan yang dilakukan untuk pengembangan software reuse, adalah :
  


Tahapan tersebut terdiri dari :
  • Spesifikasi Kebutuhan. Dilakukan untuk memenuhi kebutuhan yang diinginkan dan mendefinisikan kebutuhan yang diperlukan untuk mengatasi masalah yang terjadi pada system sebelumnya.
  • Analisis komponen. Hal ini dilakukan untuk meyakini bahwa spesifikasi kebutuhan telah didefinisikan dan user telah menyelaraskan terhadap kriteria spesifikasi kebutuhan yang baik.
  • Modifikasi kebutuhan. Kebutuhan dianalisis menggunakan informasi tentang komponen yang didapat, kemudian dimodifikasi untuk merefleksikan komponen yang ada. Jika modifikasi tidak mungkin dilakukan, maka kegiatan analisis komponen bisa diulang untuk mencari solusi alternatif.
  • Perancangan system. Proses ini dapat didefinisikan sebagai penggambaran, pembuatan sketsa atau pengaturan dari beberapa komponen yang sudah ada sebelumnya menjadi satu kesatuan yang utuh dan berfungsi, perancangan system dapat menentukan bagaimana suatu system akan menyelesaikan apa yang mesti diselesaikan.
  • Pengembangan dan integrasi. Teknisi mengidentifikasikan bagaimana data dikonstruksikan, bagaimana fungsi-fungsi diimplementasikan sebagai sebuah arsitektur perangkat lunak, bagaimana rancangan diterjemahkan dalam bahasa pemograman.
  • Validasi system. Tahap ini system diuji kelayakannya untuk menjamin bahwa system berjalan sesuai dengan apa yang diinginkan user.


Kelebihan Software Reuse
  • Meningkatkan kepercayaan. Software yang akan digunakan kembali telah di tes dan dicoba pada sistemnya, sehingga lebih bisa dipercaya dari software baru. awal pembuatan dari software mendeteksi berbagai kesalahan desain dan implementasi. Ini kemudian diperbaiki, yang megurangi tingkat kegagalan saat software di gunakan kembali.
  • Mengurangi resiko. Jika sotware telah ada, ada pengurangan biaya dalam pembuatan software. Ini adalah factor yang penting untuk manajemen proyek untuk mengurang estimasi biaya proyek disisi kesalahan software. Hal ini lebih terlihat saat sejumlah besar komponen software digunakan kembali.
  • Lebih efektif untuk para spesialis. Para spesialis tidak perlu melakukan pekerjaan yang sama pada proyek berbeda. Para spesialis bisa menggunakan software sebelumnya dengan mengkapsulasi program mereka.
  • Standar pelaksanaan. Beberapa standar, seperti standar user interface, bisa diimplementasikan sebagai standard reusable component. Sebagai contoh interface menu bisa diimplementasikan memggunakan reusable component, semua aplikasi menyajikan format menu yang sama. Standar interface ini meningkatkan keyakinan user untuk mengurangi kesalahan ketika medapati interface yang familiar.
  • Percepatan pengembangan.       Membawa software ke pasaran secepat mungkin adalah lebih penting dari semua biaya pengembangan. Reuse softrware dapat mempercepat produksi karena waktu pengembangan dan pengesahan software bisa dikurangi.
Kekurangan Software Reuse
  • Meningkatkan biaya perawatan. Biaya perawatan mungkin akan bertambah saat reuse elemen dari suatu sistem memjadi semakin tidak sesuai dengan perubahan system.
  • Kekurangan tool pendukung. Toolset mungkin tidak support pembangunan software dengan model reuse. Ini mungkin sulit atau tidak mungkin untuk mengintegrasi tool – tool ini dengan sistem component library.
  • Sindrome Not-Invented-here. Beberapa software engineer kadang – kadang lebih suka menulis ulang reuse component sebagian dengan alasan dapat meningkatkan kegunaan reusable component, sebagian melakukan dengan kepercayaan bahwa fakta menulis original software adalah lebih menantang dari menggunakan software orang lain.
  • Membuat dan merawat komponen library. Menyusun sejumlah reusable componenet library dan menjamin pengembang bisa mengunakan library ini bisa menjadi mahal. Teknik umum kita untuk mengklasifikasi, mengkatalog, dan megambil komponen software adalah belum tepat.
  • Menemukan, mengerti dan mengadaptasikan komponen reusable. Komponen software harus ditemukan di library, dimengerti dan, kadang, diadaptasikan untuk bekerja di lingkungan baru. Engineer harus yakin untuk menemukan komponen di library sebelum mereka akan menyertakan komponen sebagai bagian dari proses pembangunan software mereka.

PENERAPAN SOFTWARE REUSE
  • Pemakaian ulang sistem aplikasi. Seluruh sistem aplikasi dapat dipakai ulang dengan menggabungkannya tanpa perubahan dengan sistem lain atau dengan mengembangkan aplikasi yang dapat berjalan pada platform yang berbeda atau dapat dikhususkan untuk keperluan pelanggan tertentu. Contohnya pada penggunaan kembali Linux yang disesuaikan dengan kebutuhan penggunanya.
  • Pemakaian ulang komponen. Komponen dari suatu aplikasi yang ukurannya berkisar dari subsistem sampai satu objek tunggal dapat dipakai ulang.Sebagai contoh, sistem pengenal pola yang dikembangkan sebagai suatu bagian sistem pengolahan teks dapat dipakai ulang pada system manajemen basis data.  Ada 3 persyaratan kritis dalam perancangan dan pengembangan perangkat lunak dengan pemakaian ulang berbasis Komponen :
  1. Komponen yang dapat dipakai ulang dan sesuai harus mungkin ditemukan. Organisasi membutuhkan dasar berupa komponen yang dapat dipakai ulang yang terdapat pada katalog dan dokumen yang disusun dengan baik. Jika memang ada, komponen-komponen pada katalog ini harus mudah ditemukan.
  2. Pemakaian ulang komponen harus pasti bahwa komponen-komponen tersebut akan bekerja sebagaimana dispesifikasi dan akan handal. Idealnya, semua komponen pada katalog organisasi harus disertifikasi untuk meyakinkan bahwa komponen-komponen tersebut telah memenuhi standar kualitas tertentu.
  3. Komponen tersebut harus memiliki dokumentasi yang berhubungan untuk membantu pemakai ulang memahaminya dan mengadaptasinya ke aplikasi yang baru. Dokumentasi harus mencakup informasi mengenai di mana komponen-komponen ini telah dipakai ulang dan jika ada, masalah-masalah pemakaian ulang yang telah ditemukan.
  • Pemakaian ulang fungsi.  Komponen ulang yang mengimplementasi satu fungsi, seperti fungsi matematika dapat dipakai ulang.Bentuk pemakaian ulang ini berdasarkan pada library standar atau yang umum dipakai selama ini.
 Beberapa pendekatan pengembangan sistem diperkenalkan untuk mengatasi kelemahan pada system sebelumnya. Masing-masing pendekatan memiliki kelebihan dan kekurangan tersendiri. Metode reusable misalnya, sangat cocok untuk pengembangan sistem dimana kita sudah memiliki sistem yang similar. Dengan mengetahui pendekatan ini kita bisa memilih metode yang paling tepat untuk mengembangkan sistem sesuai dengan situasi dan kondisi yang ada.