3. Pemakaian ulang perangkat lunak harus diperhitungkan
pada saat perancangan perangkat lunak.
Pemakaian ulang yang oportunistik mungkin dilakukan
pada saat pemrograman, ketika ditemukan komponen
yang memenuhi persyaratan.
Pemakaian ulang yang sistematik menuntut proses
perancangan yang memepertimbangkan bagaimana
desain yang sudah ada dapat dipakai ulang.
Dhawarahmah 3
4. Rekayasa perangkat lunak yang berbasis pemakaian
ulang merupakan pendekatan terhadap pengembangan yang
mencoba memaksimasi pemakaian ulang perangkat lunak
yang ada.
Dhawarahmah 4
5. Contoh unit perangkat lunak yang dipakai ulang
yang bisa berukuran berbeda:
1. Pemakaian ulang sistem aplikasi. Seluruh sistem aplikasi
dapat dipakai ulang dengan menggabungkannya tanpa
perubahan dengan sistem lain.
2. Pemakaian ulang komponen. Komponen dari suatu
aplikasi yang ukurannya berkisar dari subsistem sampai
satu objek tunggal dapat dipakai ulang.
3. Pemakaian ulang fungsi. Komponen perangkat lunak
yang mengimplementasi satu fungsi.
Dhawarahmah 5
6. Keuntungan yang jelas dari pemakaian ulang
perangkat lunak adalah diperkecilnya biaya pengembangan
secara keseluruhan. Komponen- komponen perangkat lunak
yang harus dispesifikasi, dirancang, diimkplementasi, dan
divalidasi menjadi berkurang. Namun demikian reduksi
biaya merupakan salah satu keuntungan potensial dari
pemakaian ulang. Berikut keuntungan lainnya:
Dhawarahmah 6
7. KEUNTUNGAN KETERANGAN
Keandalan bertambah Komponen yang dipakai ulang, yang
telah digunakan pada sistem yang telah
berjalan, seharusnya lebih dapat
diandalkan dari pada komponen baru.
Komponen ini telah dicoba & diuji
pada berbagai lingkungan. Kesalahan
perancangan & implementasi
ditemukan & dihilangkan pada
pemakaian awal komponen tersebut,
sehingga memperkecil jumlah
kegagalan pada pemakaian ulang.
Dhawarahmah 7
8. KEUNTUNGAN KETERANGAN
Resiko Proses diperkecil Jika suatu koponen telah ada, ketidak
pastian biaya pemakaian ulang Menjadi
lebih kecil daripada biaya
pengembangan . Ini merupakan faktor
penting untuk manajemen proyek
karena memperkecil ketidak pastian
dalam estimasi biaya proyek. Hal ini
terutama berlaku ketika komponen-
komponen yang relatif besar seperti
subsistem dipakai ulang
Dhawarahmah 8
9. KEUNTUNGAN KETERANGAN
Pemakaian Spesialis yang efektif Spesialis aplikasi tidak melakukan
pekerjaan yang sama pada berbagai
proyek , tapi mereka dapat
mengembangkan komponen-
komponen yang dapat dipakai ulang,
yang mengengkapsulasi pengetahuan
mereka.
Pemenuhan Standar Beberapa standar, seperti standar
interface, dapat diimplementasi sebagai
satu set komponen standar. Sebagai
contoh, komponen yang dapat dipakai
ulang dapat dikembangkan untuk
implementasi menu sebagai interface
user.
Dhawarahmah 9
10. KEUNTUNGAN KETERANGAN
Pengembangan yang dipercepat Membawa suatu sistem ke pasar secepat
mungkin seringkali lebih penting dari
biaya pengembangan secara
keseluruhan. Pemakaian ulang
komponen mempercepat produksi
karena waktu pengembangan & waktu
validasi akan dipersingkat.
Dhawarahmah 10
11. Komponen yang dapat dipakai ulang dan sesuai.
Pemakaian ulang komponen harus pasti bahwa
komponen- komponen tersebut akan bekerja sebagaimana
dispesifikasi & akan andal.
Komponen tersebut harus memiliki dokumentasi yang
berhubungan untuk membantu pemakai ulang
memahaminya & mengadaptasi ke aplikasi yang baru.
Dhawarahmah 11
12. MASALAH KETERANGAN
Biaya pemeliharaan yang membengkak Jika source kode komponen tidak
tersedia maka biaya pemeliharaan
dapat bertambah besar, karena elemen
sistem yang dipakai ulang bisa makin
tidak kompatibel dengan perubahan
sistem.
Tidak adanya dukungan alat bantu Toolset CASE tidak mendukung
pengembangan dengan pemakaian
ulang. Integrasi alat bantu ini dengan
sistem librari komponen mungkin sulit
atau bahkan tidak mungkin.
Dhawarahmah 12
13. MASALAH KETERANGAN
Sindrom tidak dibuat di sini Beberapa perekayasa perangkat lunak
kadang lebih suka menulis kembali
komponen karena mereka percaya
bahwa mereka dapat membuat suatu
komponen yang dipakai ulang.
Mempertahankan library komponen Memenuhi library komponen dan
menjamin bahwa pengembang
perangkat lunak dapat memakai library
ini mungkin akan mahal.
Menemukan dan mengadaptasi Komponen perangkat lunak harus
komponen yang dapat dipakai ulang ditemukan pada suatu library, dipahami
dan kadangkala diadaptasi untuk
bekerja pada lingkungan yang baru.
Perekayasa harus cukup yakin dapat
menemukan komponen di library
sebelum secara rutin memasukkan
pencarian komponen sebagai bagian
dari proses pengembangan normal
mereka.
Dhawarahmah 13
14. Keberhasilan pemakaian Visual Basic dan Visual C++
dengan komponen-komponen dan Java dengan Javabeans
telah menunjukkan nilai pemakaian ulang. Rekayasa
perangkat lunakberbasis komponen telah diterima luas
sebagai pendekatan dengan efektif terhadap biaya terhadap
pengembangan perangkat lunak.
Dhawarahmah 14
15. Namun tidak sedikit biaya dan masalah yang
berhubungan dengan pemakain ulang, hal ini dapat
menghambat dilakukannya pemakaian ulang & bisa berarti
bahwa pengurangan biaya pengembangan pemakaian ulang
mungkin lebih kecil, kesulitan ini berarti bahwa pemakaian
ulang yang sistematis tidak dapat terjadi begitu saja tetapi
harus direncanakan & diperkenalkan melalui program
pemakaian ulang diseluruh organisasi.contoh kasus:
Dhawarahmah 15
17. Alternatif bagi pandangan berorientasi komponen
pemakaian ulang adalah pandangan generator.
Pada pendekatan terhadap pemakaian ulang
ini, pengetahuan yang dapat dipakai ulang ditangkap pada
sistem generator program yang dapat diprogram dalam
bahasa berorientasi domain.
Deskripsi aplikasi menspesifikasi dengan cara yang
abstrak, komponen yang dapat dipakai ulang yang mana
yang akan digunakan, bagaimana penggabungannya, &
parameterisasinya.
Dengan menggunakan informasi ini, suatu sistem
perangkat lunak operasional dapat dibangkitkan( Gambar
diatas).
Dhawarahmah 17
18. Pemakaian ulang berbasis generator efektif dalam hal biaya
tetapi bergantung pada identifikasi abstraksi domain
stereotipis.
Keuntungan utamanya adalah bahwa lebih muda bagi
end-user untuk mengembangkan program dengan
menggunakan generator dibandingkan dengan pendekatan
berbasis komponen lainnya terhadap pemakaian ulang.
Akan tetapi kebutuhan akan pemahaman yang dalam dari
konsep aplikasi domain & model domain cukup membatasi
kemampuan penerapan teknik ini.
Dhawarahmah 18
19. Pengembangan berbasis komponen muncul pada
akhir tahun 1990-an sebagai pendekatan berbasis
pemakaian ulang terhadap pengembangan sistem
perangkat lunak.
Motovasinya adalah kefrustrasian pengembangan
berorientasi objek tidak berkembang menjadi
pemakaian ulang yang ekstensif sebagaimana yang
diperkirakan pada awalnya.
Komponen lebih abstrak dari kelas objek & dapat
dianggap sebagai penyedia layanan yang berdiri
sendiri.
Dhawarahmah 19
20. Penggambaran suatu komponen sebagai penyedia
layanan menekankan dua karakteristik kritis dari
komponen yang dapat dipakai ulang:
1. Komponen merupakan entitas yang dapat dieksekusi dan
independen.
2. Komponen mengeluarkan interface mereka dan semua
interaksi melalui interface tersebut.
Dhawarahmah 20
21. Komponen didefinisikan oleh interfacenya dan dalam
kasus yang paling umum dapat dianggap memiliki interface
dua interface yang berhubungan, ditunjukkan pada gambar:
GAMBAR: INTERFACE KOMPONEN
Dhawarahmah 21
22. Interface provides, yaitu interface yang mendefinisikan
layanan yang disediakan oleh komponen tersebut.
Interface requires, yaitu interface yang menspesifikasi
layanan apa yang harus tersedia dari sistem yang memakai
komponen. Jika tidak tersedia maka komponen tidak akan
bekerja.
Dhawarahmah 22
23. Komponen-komponen bisa eksis pada tingkat abstraksi yang
berbeda-beda, dari subrutin library yang sederhana sampai
seluruh aplikasi seperti Microsoft Excel (Meyer 1999)
mengidentifikasi lima tingkat abstraksi:
1. Abstraksi fungsional, komponen mengimplementasi satu
fungsi.
2. Pengelompokan kasual, komponen merupakan
sekumpulan entitas yang berhubungan longgar yang
mungkin berupa deklarasi data, fungsi, dsb.
3. Abstraksi Data. Komponen merepresentasikan abstraksi
data atau kelas perangkat lunak bahasa berorientasi
objek.
Dhawarahmah 23
24. 4. Abstraksi Cluster, komponen merupakan sekumpulan
kelas yang berhubungan yang bekerja sama. Kelas ini
kadang- kadang dinamakan kerangka kerja.
5. Abstraksi Sistem, komponen merupakan sistem yang
sepenuhnya berdiri sendiri. Pemakaian ulang abstraksi
tingkat sistem kadang kala disebut pemakaian ulang
COTS.
Dhawarahmah 24
25. Pada pengembangan yang didorong oleh pemakaian
ulang, persyaratan sistem dimodifikasi menurut komponen
pemakaian ulang yang tersedia. Desain juga didasarkan atas
komponen-komponen yang tersedia itu. Namun demikian,
biaya pengembangan yang lebih kecil, pengiriman sistem
yang lebih cepat, dan keandalan sistem yang bertambah
seharusnya dapat mengkompensasi hal ini.
Dhawarahmah 25
26. Salah satu pendekatan efektif bagi pemakaian ulang
didasarkan sekitar kerabat aplikasi.
Sebuah kerabat aplikasi atau jalur produk merupakan
satu set aplikasi yang memiliki arsitektur spesifik
domain.
Inti umum dari kerabat aplikasi adalah dapat dipakai
ulang setiap kali dibutuhkan aplikasi baru.
Dhawarahmah 26
27. Spesialisasi platform, di mana berbagai versi aplikasi
dikembangkan untuk berbagai platform.
Spesialisasi konfigurasi, di mana berbagai versi aplikasi
dibuat untuk menangani berbagai peranti periferal.
Spesialisasi profesional, di mana berbagai versi aplikasi
dibuat untuk pelanggan dengan persyaratan yang berbeda.
Dhawarahmah 27
28. Pola rancangan diturunkan dari ide yang dikemukakan
oleh cristopher Alexander, yang mengusulkan bahwa ada
pola tertentu pada rancangan pembangunan yang umum
sekaligus memuaskan & efektif.
Pola merupakan deskripsi & inti solusinya sehingga solusi
tersebut dapat dipakai ulang pada setting yang berbeda.
Pola dapat dipakai pada saat analisis mengembangkan
model sistem sebagaimana pada saat proses perancangan.
Pada perancangan perangkat lunak, pola rancangan telah
dihubungkan dengan desain berorientasi objek. Pola ini
seringkali bergantung pada karakteristik objek untuk
memberikan generilitas.
Prinsip umumnya dapat diterapkan pada semua
pendekatan perangkat lunak.
Dhawarahmah 28
29. Gamma et al, mendefinisikan empat elemen yang
penting pada pola rancangan:
Nama yang merupakan referensi yang bermakna terhadap
pola.
Deskripsi area masalah yang menjelaskan kapan pola
tersebut dapat diterapkan.
Deskripsi solusi yang mendeskripsikan bagian-bagian
solusi perancangan,hubungannya & tanggung jawabnya.
Pernyataan konsekuensi-hasil & pertukaran-penerapan
pola tersebut.
Dhawarahmah 29