Contoh Soal UTS Rekayasa Berkomponen (RBK)

1. Apa yang dimaksud dengan Komponen Software? Berikan definisi Komponen Software.
Sebuah komponen perangkat lunak adalah elemen perangkat lunak yang sesuai dengan model komponen dan dapat mandiri dan digunakan terdiri tanpa modifikasi sesuai dengan standar komposisi. 
 2. Apa artinya blackbox dan abstraksi whitebox? 
Blackbox dan abstraksi whitebox mengacu pada visibilitas implementasi "Belakang" nya antarmuka. Dalam klien abstraksi blackbox tahu ada rincian di luar antarmuka dan yang spesifikasi. Dalam abstraksi whitebox, antarmuka masih mungkin menegakkan enkapsulasi dan batas apa klien dapat dilakukan, tetapi pelaksanaan whitebox adalah sepenuhnya tersedia dan dengan demikian dapat dipelajari untuk meningkatkan pemahaman tentang apa abstraksi dapat dilakukan. 

Black box: interface luar
white box : percode  
3. Untuk setiap Enterprise JavaBean (EJB), pengembang harus menentukan jenis kacang itu. Apa saja 3 jenis Enterprise JavaBeans? 
Sesi Kacang: kacang Sesi dimaksudkan untuk memungkinkan penulis aplikasi untuk mudah menerapkan bagian dari kode aplikasi di middleware dan untuk menyederhanakan akses ke kode ini. Siding kacang dibagi menjadi dua jenis: Sesi Bean Stateless dan Bean Sesi Negara penuh Pesan didorong kacang: Pesan Beans Driven (juga dikenal sebagai MDB atau Pesan Beans). Pesan Kacang Driven adalah bisnis benda yang eksekusi dipicu oleh pesan bukan oleh pemanggilan metode. 
Entity Beans (usang): versi sebelumnya EJB juga menggunakan jenis kacang dikenal sebagai Bean Entity. Ini didistribusikan benda bernegara persisten. Kacang di mana mereka kontainer berhasil negara terus-menerus dikatakan akan menggunakan Kontainer-Managed Kegigihan (CMP), sedangkan kacang yang dikelola negara mereka sendiri dikatakan akan menggunakan Bean-Managed Persistence (BMP). Dalam EJB 3.0, Badan Kacang digantikan oleh Java Persistence API. 
Enterprise Java Beans ( EJB ) adalah komponen server­side yang menyimpan business logic dan dapat diakses secara remote. Session beans ditujukan untuk menangani interaksi dengan aplikasi client. Ada dua jenis session beans, yaitu stateless dan stateful. Stateless, sesuai dengan namanya, tidak menyimpan  variabel yang sedang digunakan user. Variabel apapun yang dipassing ke stateless session beans akan hilang pada saat method selesai dijalankan. Stateful, sebaliknya, mirip dengan aplikasi web yang mengaktifkan dukungan session. Stateful session beans dapat menyimpan data user.   
Entity beans, tidak ditujukan untuk dipanggil langsung dari aplikasi client. Entity beans adalah solusi EJB untuk menyimpan data ke database. Aplikasi yang menggunakan entity beans tidak perlu menulis sendiri SQL query untuk memanipulasi database. Semua kode dan koneksi ke database ditangani oleh EJB container. 
Message Driven Beans adalah EJB yang ditujukan untuk melakukan messaging. Ini biasanya digunakan untuk proses yang membutuhkan waktu lama, sehingga client yang memanggilnya tidak perlu menunggu sampai selesai untuk dapat melanjutkan pekerjaannya. 
4. Jelaskan pola Facade desain EJB. Buatlah gambar. Nama dan menjelaskan setiap item dalam gambar Anda dan menunjukkan tujuan utamanya. Ingatlah untuk menyatakan jenis setiap EJB Anda gunakan.
Semua beans yang ada pada kontainer hanya bisa diakses oleh  klien lewat antarmuka yang oleh masing-masing beans.  Sebelum melakukan koneksi dengan suatu  beans, klien harus  mendapatkan referensi jarak jauh (remote interface) dari beans yang bersangkutan.
Antarmuka jarak jauh ini bisa didapatkan secara  tidak langsung leWat kontainer dengan memanggil terlebih dahulu  Home Interface dari bean yang bersangkutan. Setelah pemanggilan atas Home Interface maka pada aplikasi  klien akan diberikan referensi (berupa remote interface) dari EJB  Object yang bersangkutan. EJB Object ini berupa proxy dari bean (misalnya  session beans) yang dipanggil leWat Home Interface.  Seluruh pemanggilan method (istilah lainnya prosedur/fungsi)  akan diteruskan oleh EJB Object kepada  Session Beans  yang dimaksud. Session Beans dapat memanggil Entity Beans secara  lokal dalam kontainer jika memang diperlukan manipulasi data  dalam basis data.