Anda di halaman 1dari 58

REKAYASA PERANGKAT

LUNAK 2

Disusun Oleh : Dr. Lily Wulandari


Pokok Bahasan
• Komponen dan model komponen
• Proses CBSE
• Komposisi komponen
Pengembangan Berbasis
Komponen
• Rekayasa perangkat lunak berbasis komponen (CBSE) adalah
pendekatan pengembangan perangkat lunak yang bergantung
pada penggunaan kembali entitas yang disebut 'komponen
perangkat lunak'.
• Itu muncul dari kegagalan pengembangan berorientasi objek
untuk mendukung penggunaan kembali yang efektif. Kelas
objek tunggal terlalu detail dan spesifik.
• Komponen lebih abstrak daripada kelas objek dan dapat
dianggap sebagai penyedia layanan yang berdiri sendiri.
Mereka bisa ada sebagai entitas yang berdiri sendiri.
CBSE penting
• Komponen independen ditentukan oleh
antarmuka mereka.
• Standar komponen untuk memfasilitasi integrasi
komponen.
• Middleware yang menyediakan dukungan untuk
interoperabilitas komponen.
• Proses pengembangan yang diarahkan untuk
digunakan kembali.
CBSE dan prinsip desain.
• Terlepas dari manfaat penggunaan kembali, CBSE
didasarkan pada prinsip desain rekayasa
perangkat lunak yang baik:
– Komponen bersifat independen sehingga tidak
saling mengganggu;
– Implementasi komponen disembunyikan;
– Komunikasi dilakukan melalui antarmuka yang
terdefinisi dengan baik;
– Platform komponen dibagikan dan mengurangi
biaya pengembangan.
Standar komponen
• Standar perlu ditetapkan agar komponen dapat
berkomunikasi satu sama lain dan saling beroperasi.
• Sayangnya, beberapa standar komponen bersaing
ditetapkan:
– Sun’s Enterprise Java Beans
– Microsoft COM dan .NET
– CCM CORBA
• Dalam praktiknya, berbagai standar ini telah menghambat
penggunaan CBSE. Tidak mungkin komponen yang
dikembangkan menggunakan pendekatan berbeda untuk
bekerja sama
Masalah CBSE
• Kepercayaan komponen - bagaimana sebuah
komponen yang tidak memiliki kode sumber dapat
dipercaya?
• Sertifikasi komponen - siapa yang akan mensertifikasi
kualitas komponen?
• Prediksi properti yang muncul - bagaimana properti
yang muncul dari komposisi komponen dapat
diprediksi?
• Trade-off persyaratan - bagaimana kita melakukan
analisis trade-off antara fitur satu komponen dan
lainnya?
Komponen-komponen
• Komponen menyediakan layanan tanpa
memperhatikan di mana komponen tersebut
dijalankan atau bahasa pemrogramannya
– Komponen adalah entitas yang dapat dieksekusi
independen yang dapat terdiri dari satu atau lebih
objek yang dapat dieksekusi;
– Antarmuka komponen dipublikasikan dan semua
interaksi melalui antarmuka yang dipublikasikan;
Definisi Komponen
• Councill dan Heinmann:
– Komponen perangkat lunak adalah elemen perangkat lunak
yang sesuai dengan model komponen dan dapat digunakan
dan disusun secara independen tanpa modifikasi sesuai
dengan standar komposisi.
• Szyperski:
– Komponen perangkat lunak adalah unit komposisi dengan
antarmuka yang ditentukan secara kesepakatan dan hanya
ketergantungan konteks eksplisit. Komponen perangkat
lunak dapat diterapkan secara independen dan tunduk pada
komposisi oleh pihak ketiga.
Karakteristik Komponen

Karakteristik Deskripsi
Komponen
Standar Standardisasi komponen berarti bahwa komponen yang digunakan
dalam proses CBSE harus sesuai dengan model komponen standar.
Model ini dapat mendefinisikan antarmuka komponen, metadata
komponen, dokumentasi, komposisi, dan penerapan.
Independen Sebuah komponen harus independen — itu harus memungkinkan
untuk membuat dan menerapkannya tanpa harus menggunakan
komponen spesifik lainnya. Dalam situasi di mana komponen
membutuhkan layanan yang disediakan secara eksternal, ini harus
secara eksplisit ditetapkan dalam spesifikasi antarmuka
'membutuhkan'.
Composable Agar komponen dapat disusun, semua interaksi eksternal harus
dilakukan melalui antarmuka yang ditentukan secara publik. Selain
itu, ia harus memberikan akses eksternal ke informasi tentang
dirinya sendiri, seperti metode dan atributnya.

10
Karakteristik Komponen

Karakteristik Deskripsi
Komponen
Dapat diterapkan Agar dapat diterapkan, komponen harus mandiri. Ini harus dapat
beroperasi sebagai entitas yang berdiri sendiri pada platform
komponen yang menyediakan implementasi model komponen. Ini
biasanya berarti bahwa komponen tersebut biner dan tidak harus
dikompilasi sebelum digunakan. Jika komponen diimplementasikan
sebagai layanan, itu tidak harus diterapkan oleh pengguna
komponen. Sebaliknya, ini digunakan oleh penyedia layanan.
Didokumentasikan Komponen harus didokumentasikan secara lengkap sehingga calon
pengguna dapat memutuskan apakah komponen tersebut
memenuhi kebutuhan mereka atau tidak. Sintaks dan, idealnya,
semantik dari semua antarmuka komponen harus ditentukan.

11
Komponen sebagai penyedia
layanan
• Komponennya adalah entitas independen yang
dapat dieksekusi. Itu tidak harus dikompilasi
sebelum digunakan dengan komponen lain.
• Layanan yang ditawarkan oleh komponen
tersedia melalui antarmuka dan semua interaksi
komponen berlangsung melalui antarmuka itu.
• Antarmuka komponen dinyatakan dalam
operasi berparameter dan status internalnya
tidak pernah diekspos.
Antarmuka Komponen
• Menyediakan antarmuka
– Mendefinisikan layanan yang disediakan oleh komponen ke komponen
lain.
– Antarmuka ini, pada dasarnya, adalah API komponen. Ini mendefinisikan
metode yang dapat dipanggil oleh pengguna komponen.

• Membutuhkan antarmuka
– Mendefinisikan layanan yang menetapkan layanan apa yang harus
disediakan agar komponen dapat dieksekusi seperti yang ditentukan.
– Ini tidak mengganggu independensi atau penerapan komponen karena
antarmuka 'memerlukan' tidak menentukan bagaimana layanan ini harus
disediakan.
Antarmuka komponen

Perhatikan notasi UML. Bola dan soketnya bisa disatukan


Model komponen pengumpul
data
Model komponen
• Model komponen adalah definisi standar untuk
implementasi, dokumentasi, dan penerapan
komponen.
• Contoh model komponen
– Model EJB (Enterprise Java Beans)
– COM + model (model .NET)
– Model Komponen Corba
• Model komponen menentukan bagaimana antarmuka
harus didefinisikan dan elemen yang harus
dimasukkan dalam definisi antarmuka.
Elemen dasar model komponen
Elemen model komponen
• Antarmuka
– Komponen ditentukan dengan menentukan antarmukanya. Model
komponen menentukan bagaimana antarmuka harus didefinisikan dan
elemen, seperti nama operasi, parameter dan pengecualian, yang harus
disertakan dalam definisi antarmuka.
• Pemakaian
– Agar komponen dapat didistribusikan dan diakses dari jarak jauh,
mereka harus memiliki nama atau pegangan unik yang terkait
dengannya. Ini harus unik secara global.
• Penyebaran
– Model komponen mencakup spesifikasi tentang bagaimana komponen
harus dikemas untuk penyebaran sebagai entitas independen yang
dapat dieksekusi.
Dukungan middleware
• Model komponen adalah dasar untuk middleware yang
menyediakan dukungan untuk menjalankan komponen.
• Implementasi model komponen menyediakan:
– Layanan platform yang memungkinkan komponen yang ditulis
sesuai dengan model untuk berkomunikasi;
– Layanan dukungan yang merupakan layanan independen aplikasi
yang digunakan oleh berbagai komponen.
• Untuk menggunakan layanan yang disediakan oleh model,
komponen disebarkan dalam wadah. Ini adalah
sekumpulan antarmuka yang digunakan untuk mengakses
implementasi layanan.
Layanan middleware yang ditentukan
dalam model komponen
Proses CBSE
• Proses CBSE adalah proses perangkat lunak yang mendukung
rekayasa perangkat lunak berbasis komponen.
– Mereka memperhitungkan kemungkinan penggunaan kembali dan
aktivitas proses berbeda yang terlibat dalam pengembangan dan
penggunaan komponen yang dapat digunakan kembali.
• Pengembangan untuk digunakan kembali
– Proses ini berkaitan dengan pengembangan komponen atau layanan
yang akan digunakan kembali dalam aplikasi lain. Biasanya melibatkan
generalisasi komponen yang ada.
• Pengembangan dengan penggunaan kembali
– Proses ini adalah proses mengembangkan aplikasi baru menggunakan
komponen dan layanan yang ada.
Proses CBSE
Proses pendukung
• Akuisisi komponen adalah proses memperoleh komponen
untuk digunakan kembali atau dikembangkan menjadi
komponen yang dapat digunakan kembali.
– Ini mungkin melibatkan mengakses komponen atau layanan yang
dikembangkan secara lokal atau menemukan komponen ini dari sumber
eksternal.
• Manajemen komponen berkaitan dengan pengelolaan
komponen perusahaan yang dapat digunakan kembali,
memastikan bahwa mereka dikatalogkan dengan benar,
disimpan, dan tersedia untuk digunakan kembali.
• Sertifikasi komponen adalah proses pemeriksaan komponen
dan menyatakan bahwa itu memenuhi spesifikasinya.
Poin-poin penting
• CBSE adalah pendekatan berbasis penggunaan kembali
untuk mendefinisikan dan menerapkan komponen yang
digabungkan secara longgar ke dalam sistem.
• Komponen adalah unit perangkat lunak yang
fungsionalitas dan dependensinya ditentukan sepenuhnya
oleh antarmukanya.
• Model komponen mendefinisikan serangkaian standar
yang harus diikuti oleh penyedia dan komposer
komponen.
• Proses CBSE utama adalah CBSE untuk digunakan
kembali dan CBSE dengan penggunaan kembali.
CBSE untuk digunakan kembali
• CBSE untuk digunakan kembali berfokus pada
pengembangan komponen.
• Komponen yang dikembangkan untuk aplikasi tertentu
biasanya harus digeneralisasikan agar dapat digunakan
kembali.
• Komponen kemungkinan besar dapat digunakan kembali
jika dikaitkan dengan abstraksi domain yang stabil (objek
bisnis).
• Misalnya, dalam abstraksi domain stabil rumah sakit
dikaitkan dengan tujuan fundamental - perawat, pasien,
perawatan, dll.
Perubahan untuk dapat
digunakan kembali
• Hapus metode khusus aplikasi.
• Ubah nama untuk membuatnya umum.
• Tambahkan metode untuk memperluas cakupan.
• Buat penanganan pengecualian konsisten.
• Tambahkan antarmuka konfigurasi untuk adaptasi
komponen.
• Integrasikan komponen yang diperlukan untuk
mengurangi ketergantungan.
Penanganan pengecualian
• Komponen tidak boleh menangani pengecualian sendiri, karena
setiap aplikasi akan memiliki persyaratannya sendiri untuk
penanganan pengecualian.
– Sebaliknya, komponen harus menentukan pengecualian apa yang dapat
muncul dan harus menerbitkannya sebagai bagian dari antarmuka.
• Namun, dalam praktiknya, ada dua masalah dengan ini:
– Mempublikasikan semua pengecualian menyebabkan antarmuka
membengkak yang lebih sulit untuk dipahami. Hal ini dapat membuat
calon pengguna komponen tidak tertarik.
– Operasi komponen mungkin bergantung pada penanganan
pengecualian lokal, dan mengubah ini mungkin berdampak serius pada
fungsionalitas komponen.
Komponen sistem lama
• Sistem warisan yang ada yang memenuhi fungsi
bisnis yang berguna dapat dikemas ulang sebagai
komponen untuk digunakan kembali.
• Ini melibatkan penulisan komponen pembungkus
yang mengimplementasikan menyediakan dan
memerlukan antarmuka kemudian mengakses
sistem lama.
• Meskipun mahal, ini bisa jauh lebih murah
daripada menulis ulang sistem lama.
Komponen yang dapat digunakan
kembali
• Biaya pengembangan komponen yang dapat
digunakan kembali mungkin lebih tinggi
daripada biaya setara tertentu. Biaya
peningkatan penggunaan kembali ekstra ini
harus menjadi biaya organisasi daripada biaya
proyek.
• Komponen generik mungkin kurang hemat
ruang dan mungkin memiliki waktu eksekusi
yang lebih lama daripada komponen
spesifiknya.
Manajemen komponen
• Manajemen komponen melibatkan memutuskan
bagaimana mengklasifikasikan komponen sehingga dapat
ditemukan, membuat komponen tersedia baik dalam
repositori atau sebagai layanan, memelihara informasi
tentang penggunaan komponen dan melacak versi
komponen yang berbeda.
• Perusahaan dengan program penggunaan kembali dapat
melaksanakan beberapa bentuk sertifikasi komponen
sebelum komponen tersedia untuk digunakan kembali.
– Sertifikasi berarti seseorang selain pengembang memeriksa
kualitas komponen.
CBSE dengan penggunaan
kembali
• CBSE dengan proses reuse harus menemukan
dan mengintegrasikan komponen yang dapat
digunakan kembali.
• Saat menggunakan kembali komponen, penting
untuk membuat trade-off antara persyaratan
ideal dan layanan yang sebenarnya disediakan
oleh komponen yang tersedia.
CBSE dengan penggunaan
kembali (2)
• Ini melibatkan:
– Mengembangkan persyaratan garis besar;
– Mencari komponen kemudian mengubah
persyaratan sesuai dengan fungsionalitas yang
tersedia.
– Menelusuri lagi untuk menemukan apakah ada
komponen yang lebih baik yang memenuhi
persyaratan yang direvisi.
– Menyusun komponen untuk membuat sistem.
CBSE dengan penggunaan
kembali
Proses identifikasi komponen
Masalah identifikasi komponen
• Kepercayaan. Anda harus bisa mempercayai pemasok suatu
komponen. Kondisi terbaik, komponen tidak terpercaya
mungkin tidak beroperasi seperti yang diiklankan; paling buruk,
itu bisa melanggar keamanan Anda.
• Persyaratan. Kelompok komponen yang berbeda akan
memenuhi persyaratan yang berbeda.
• Validasi.
– Spesifikasi komponen mungkin tidak cukup rinci untuk
memungkinkan pengujian komprehensif dikembangkan.
– Komponen mungkin memiliki fungsionalitas yang tidak diinginkan.
Bagaimana Anda bisa menguji ini tidak akan mengganggu aplikasi
Anda?
Validasi komponen
• Validasi komponen melibatkan pengembangan sekumpulan
kasus uji untuk suatu komponen (atau, mungkin, memperluas
kasus uji yang disertakan dengan komponen tersebut) dan
mengembangkan rangkaian pengujian untuk menjalankan
pengujian komponen.
– Masalah utama dengan validasi komponen adalah spesifikasi komponen
mungkin tidak cukup rinci untuk memungkinkan Anda mengembangkan
satu set lengkap pengujian komponen.
• Selain menguji bahwa komponen untuk digunakan kembali
melakukan apa yang Anda butuhkan, Anda mungkin juga harus
memeriksa apakah komponen tersebut tidak menyertakan kode
atau fungsi berbahaya yang tidak Anda perlukan.
Kegagalan peluncur Ariane -
kegagalan validasi?
• Pada tahun 1996, uji terbang pertama roket Ariane 5
berakhir dengan bencana ketika peluncur lepas
kendali 37 detik setelah lepas landas.
• Masalahnya adalah karena komponen yang
digunakan kembali dari versi peluncur sebelumnya
(Sistem Navigasi Inersia) yang gagal karena asumsi
yang dibuat saat komponen itu dikembangkan tidak
berlaku untuk Ariane 5.
• Fungsionalitas yang gagal di komponen ini tidak
diperlukan di Ariane 5
Komposisi komponen
• Proses perakitan komponen untuk membuat
suatu sistem.
• Komposisi melibatkan pengintegrasian
komponen satu sama lain dan dengan
infrastruktur komponen.
• Biasanya harus ditulis 'kode perekat' untuk
mengintegrasikan komponen.
Jenis komposisi
• Komposisi berurutan di mana komponen yang disusun
dijalankan secara berurutan. Ini melibatkan pembuatan
antarmuka yang disediakan untuk setiap komponen.
• Komposisi hierarkis di mana satu komponen memanggil
layanan yang lain. Antarmuka penyediaan dari satu
komponen terdiri dari antarmuka yang memerlukan
komponen lain.
• Komposisi aditif di mana antarmuka dua komponen
disatukan untuk membuat komponen baru. Menyediakan
dan membutuhkan antar muka komponen yang
terintegrasi merupakan kombinasi antar muka komponen
penyusun.
Jenis komposisi komponen
Ketidakcocokan antarmuka
• Ketidakcocokan parameter di mana operasi
memiliki nama yang sama tetapi jenis yang
berbeda.
• Ketidakcocokan operasi di mana nama operasi
di antarmuka yang dibuat berbeda.
• Ketidaklengkapan operasi di mana antarmuka
penyediaan dari satu komponen adalah bagian
dari antarmuka yang memerlukan komponen
lainnya.
Komponen dengan antarmuka
yang tidak kompatibel
Komponen adaptor
• Atasi masalah ketidakcocokan komponen
dengan menyesuaikan antarmuka komponen
yang dibuat.
• Jenis adaptor yang berbeda diperlukan
tergantung pada jenis komposisi.
• Sebuah addressFinder dan komponen mapper
dapat disusun melalui adaptor yang mengambil
kode pos dari sebuah alamat dan
meneruskannya ke komponen mapper.
Komposisi melalui adaptor
• Komponen postCodeStripper adalah adaptor
yang memfasilitasi komposisi urutan komponen
addressFinder dan mapper.
address = addressFinder.location (phonenumber) ;
postCode = postCodeStripper.getPostCode (address) ;
mapper.displayMap(postCode, 10000) ;
 
Adaptor yang menghubungkan
pengumpul data dan sensor
Komposisi perpustakaan foto
Semantik antarmuka
• Anda harus mengandalkan dokumentasi
komponen untuk memutuskan apakah
antarmuka yang kompatibel secara sintaks
benar-benar kompatibel.
• Pertimbangkan antarmuka untuk komponen
PhotoLibrary:
Dokumentasi Perpustakaan Foto

“Metode ini menambahkan foto ke perpustakaan dan


mengaitkan pengenal foto dan deskriptor katalog
dengan foto itu.”

"Apa yang terjadi jika pengenal fotonya sudah


dikaitkan dengan foto lain di perpustakaan?"

“Apakah deskriptor foto terkait dengan entri katalog


serta foto, yaitu jika saya menghapus foto, apakah saya
juga menghapus informasi katalog?”

48
Bahasa Batasan Objek
• Object Constraint Language (OCL) telah
dirancang untuk menentukan batasan yang
berhubungan dengan model UML.
• Ini didasarkan pada gagasan tentang
spesifikasi kondisi sebelum dan sesudah -
umum untuk banyak metode formal.
Deskripsi OCL dari antarmuka
Library Foto
Kondisi Library Foto
• Prasyarat untuk addItem menyatakan bahwa:
– Tidak boleh ada foto di lbrary dengan pengenal
yang sama dengan foto yang akan dimasukkan.
– Library harus ada — asumsikan bahwa membuat
library menambahkan satu item ke dalamnya
sehingga ukuran pustaka selalu lebih besar dari
nol.
Kondisi Library Foto
• Kondisi pasca untuk addItem menyatakan
bahwa:
– Ukuran library bertambah 1 (jadi hanya satu entri
yang dibuat).
– Jika Anda me-retrieve menggunakan pengenal
yang sama, maka Anda mendapatkan kembali foto
yang Anda tambahkan.
– Jika Anda mencari katalog menggunakan pengenal
itu, Anda mendapatkan kembali entri katalog yang
Anda buat.
Kondisi Library Foto
• Spesifikasi penghapusan memberikan informasi lebih
lanjut. Prasyarat menyatakan bahwa untuk
menghapus item,
– item harus ada di perpustakaan
– setelah dihapus, foto tidak lagi dapat diambil
– ukuran perpustakaan dikurangi 1.
– Namun, hapus tidak menghapus entri katalog— Anda
masih dapat mengambilnya kembali setelah fotonya
dihapus. Alasannya adalah mungkin ingin menyimpan
informasi di katalog tentang mengapa foto dihapus,
lokasinya yang baru, dan sebagainya.
Kompromi komposisi
• Saat membuat komponen, mungkin ditemukan konflik
antara persyaratan fungsional dan non-fungsional, dan
konflik antara kebutuhan pengiriman cepat dan evolusi
sistem.
• Perlu dibuat keputusan seperti:
– Komposisi komponen apa yang efektif untuk memenuhi
persyaratan fungsional?
– Komposisi komponen apa yang memungkinkan perubahan di
masa mendatang?
– Apa yang akan menjadi sifat yang muncul dari sistem yang
dibuat?
Pengumpulan data dan
komponen pembuatan laporan
Penjelasan Contoh
• Di sini, ada potensi konflik antara kemampuan
beradaptasi dan kinerja.
• Komposisi (a) lebih mudah beradaptasi tetapi komposisi
(b) mungkin lebih cepat dan lebih dapat diandalkan.
• Keuntungan komposisi (a) adalah pelaporan dan
pengelolaan data terpisah, sehingga ada lebih banyak
fleksibilitas untuk perubahan di masa mendatang. Sistem
manajemen data dapat diganti dan, jika diperlukan
laporan yang tidak dapat diproduksi oleh komponen
pelaporan saat ini, komponen tersebut juga dapat diganti
tanpa harus mengubah komponen manajemen data.
Penjelasan Contoh
• Dalam komposisi (b), komponen database dengan fasilitas
pelaporan built-in (misalnya, Microsoft Access) digunakan.
Keuntungan utama dari komposisi (b) adalah bahwa ada lebih
sedikit komponen, jadi ini akan menjadi implementasi yang
lebih cepat karena tidak ada overhead komunikasi komponen.
Selain itu, aturan integritas data yang berlaku untuk database
juga akan berlaku untuk laporan. Laporan ini tidak akan dapat
menggabungkan data dengan cara yang salah. Dalam
komposisi (a), tidak ada batasan seperti itu sehingga
kesalahan dalam laporan bisa terjadi.

04/28/11
Terima kasih

Anda mungkin juga menyukai