CBSE, UML Component, dan EJB
Reisha Humaira (2005) mengkaji beberapa konsep pada component-based software engineering (CBSE). Selanjutnya, dikaji pula UML Components sebagai suatu metode pengembangan sistem berbasis komponen serta EJB sebagai teknologi yang mendukung pembangunan sistem berbasis komponen. Analisis dilakukan terhadap kesesuaian antara konsep-konsep dalam UML Components dengan konsep-konsep dalam CBSE serta pemetaannya ke dalam teknologi yang tersedia, dalam hal ini EJB.
Lima workflow awal dari UML Components, yakni Requirements, Specification, Provisioning, Assembly, dan Test dikerjakan untuk menentukan spesifikasi dan membangun komponen-komponen yang dibutuhkan pada suatu inventory management system yang generik. Komponen-komponen yang berhasil dibuat, selanjutnya dimanfaatkan untuk membangun dua aplikasi inventory management system yang berbeda, yaitu e-Service Center dan Symphony Inventory System. Kedua perangkat lunak dibangun pada platform J2EE. Pembangunan kedua aplikasi menggunakan cara yang berbeda. Aplikasi pertama dibangun dengan JSP dan Java Servlets sementara aplikasi kedua dibangun dengan Visual Web JSF.
Menurut saya, ini adalah TA yang komprehensif, lengkap sekali. Dari konsep, metode, teknologi, hingga diimplementasikan jadi perangkat lunak; didukung dengan penulisan buku TA yang rapi dan runtut. All about component-based…
Teknologi Komponen: .NET
.NET adalah model komponen yang baru dari Microsoft yang tidak lagi bergantung pada COM. Model komponen ini mendefinisikan sebuah bahasa internal yang disebut Microsoft Intermediate Languate (MSIL) mirip Java Byte Code serta memiliki Common Language Runtime (CLR) mirip dengan JVM (Java Virtual Machine). CLR memungkinkan kita untuk membuat komponen dalam berbagai bahasa.
Komponen pada .NET dikompilasi menjadi sebuah assembly (logically), yang terdiri dari IL Code (kode biner dalam bahasa intermediate), metadata (termasuk data interface, class, base class, method signatures, properties, events, member variables, dan custom attributes), dan manifest (data tentang assembly itu sendiri).
File assembly secara fisik berbentuk DLL atau EXE. Pada dasarnya, sebuah assembly terdiri dari sebuah DLL atau EXE fisik saja, namun .NET memungkinkan sebuah assembly untuk terdiri dari lebih dari satu DLL. Untuk assembly yang demikian, maka harus ada file-file yang disebut module yang menyimpan IL Code beserta metadata yang menjelaskannya, serta sebuah DLL utama yang menyimpan manifest-nya.
(dari hasil eksplorasi Ridho Akhiro dkk di kuliah Sistem Berbasis Komponen)
Teknologi Komponen: COM dan DCOM
COM (Component Object Model) adalah spesifikasi mencakup implementasi yang dikembangkan Microsoft Corporation, yang menyediakan framework untuk integrasi komponen. Framework ini mendukung interoperability dan reusability objek-objek terdistribusi yang memungkinkan developer membangun sistem dengan melakukan assembly berbagai komponen dari berbagai vendor. Komponen-komponen tersebut akan berkomunikasi melalui COM.
COM mendefinisikan API (application programming interface) untuk membuat komponen maupun untuk mendukung interaksi antar komponen. Untuk bisa berinteraksi, komponen harus punya struktur biner yang sesuai dengan spesisikasi Microsoft. Selama mempunyai struktur biner yang sesuai, maka komponen yang dibangun dengan bahasa pemrograman yang berbeda akan dapat berkomunikasi.
COM dikembangkan menjadi DCOM (Distrubuted COM) untuk mendukung interaksi antar komponen yang terdistribusi (berlokasi di mesin yang berbeda). Dengan DCOM, komponen yang beroperasi di berbagai platform yang berbeda akan dapat berinteraksi.
COM dan DCOM merepresentasikan teknologi low-level untuk interaksi komponen, sedangkan OLE, ActiveX, dan MTS merepresentasikan higher-level application services yang dibangun di atas COM dan DCOM.
Batasan antar berbagai teknologi Microsoft kadang-kadang kurang jelas. Orang seringkali menggunakan terminologi “OLE technologies” yang mencakup COM, atau “Active Platform” sebagai web solution yang lengkap.
Building a component-based software…
Component-based software dibangun dengan cara melakukan assembly komponen-komponen pembentuknya. Benar, pendekatan yang diambil memang mengadopsi assembly komponen-komponen hardware sehingga jadi produk hardware yang utuh. Akan tetapi, di dunia software ternyata tidak sesederhana itu. Seringkali, untuk memasang satu komponen dengan komponen lainnya, dibutuhkan kode tambahan, yang disebut sebagai “glue code“. Membuat glue code sendiri bisa menyerap banyak effort (waktu dan biaya). Ya, komponen software ternyata lebih sulit untuk di-assemble dibandingkan dengan Lego blocks…
Constructing software systems from components is more like having a bathtub full of Tinkertoy, Lego,
Erector, Lincoln Log, Block City, and six other incompatible kits, picking out parts that fit specific functions and expecting them to fit together… (Mary Shaw, Architectural Issues in Software Reuse: It’s Not Just the Functionality, It’s the Packaging)
Nah, CBSE berusaha mendefinisikan berbagai teknik agar pembangunan perangkat lunak berbasis komponen dapat dilakukan dengan se-ideal mungkin…
Building a reusable component…
Untuk membangun komponen software yang bisa diguna-ulang (reuse) dibutuhkan waktu dan usaha yang lebih besar dibandingkan dengan waktu dan usaha untuk membangun komponen software untuk memenuhi kebutuhan yang lebih spesifik. Ya, komponen yang siap diguna-ulang harus cukup generik agar bisa digunakan untuk kasus yang cukup bervariasi. Untuk itulah dibutuhkan waktu dan usaha yang lebih besar. Kita harus pastikan bahwa spesifikasi interface komponen tersebut cukup memadai untuk berbagai kebutuhan.
Waktu dan usaha yang lebih juga dibutuhkan untuk mendokumentasikan spesifikasi komponen. Apalagi jika kita ingin menjual komponen software tersebut. Kebutuhan akan dokumentasi yang jelas dan lengkap akan lebih besar lagi…
Jadi, harus kita pastikan bahwa komponen generik yang kita buat itu memang akan memberikan nilai tambah karena akan digunakan berkali-kali, atau akan kita jual, sehingga waktu dan usaha yang besar tidak jadi sia-sia…
Teknologi Komponen: EJB
Enterprise JavaBean (EJB) merupakan arsitektur komponen terdistribusi untuk development dan deployment aplikasi bisnis berbasis komponen yang dikeluarkan oleh Sun Microsystem. EJB pertama kali diperkenalkan pada tahun 1997. Tahun 2006 Sun Microsystem merilis Enterprise JavaBean (EJB) versi 3.0. Spesifikasi EJB ditulis oleh JCP (Java Community Process) yang terdiri dari beberapa perusahaan seperti SUN, IBM dan Borland. Berikut adalah sekilas tentang perkembangan EJB:
- EJB 1.0 – 2.0; adalah framework standar aplikasi enterprise meliputi transaksi dan sekuriti; standarisasi style pemrograman untuk objek terdistribusi, awal dari paradigma komponen untuk penggunaan ulang kode
- EJB 2.1 (2003); ada penambahan fasilitas seperti pooling, penambahan protokol selain RMI, mis. Web Services
- EJB 3.0 (2006); ada perubahan framework sehingga menjadi jauh lebih mudah digunakan, menggunakan model POJO, dan menggunakan teknik anotasi untuk deployment yang lebih mudah
Komponen pada teknologi ini disebut juga EJB atau singkatnya bean. Ada tiga tipe komponen yaitu: entity bean, session bean, dan message-driven bean. Interface pada teknologi ini ada tiga jenis: home interface, local interface, dan remote interface.
Tertarik ? Silahkan eksplor lebih lanjut. Tutorial online-nya cukup lengkap di situsnya Sun Java.
Adaptasi Komponen S/W
Idealnya, komponen S/W bisa langsung digunakan tanpa harus dilakukan modifikasi. Akan tetapi, seringkali terjadi kondisi dimana komponen yang akan kita gunakan perlu dimodifikasi, perlu diadaptasi. Teorinya, ada tiga kategori cara adaptasi komponen, yaitu:
- white box; kita bisa memodifikasi source code-nya sehingga sesuai dengan kebutuhan. Ini bisa dilakukan jika source code komponen memang tersedia.
- grey box; kita bisa memodifikasi komponen dengan memanfaatkan API yang disediakan oleh pembuat komponennya. Modifikasi ini akan lebih mudah, karena kita tidak perlu paham terlalu detil mengenai implementasi komponen tersebut.
- black box; komponen seperti ‘kotak hitam’; kita harus menggunakan apa adanya. Adaptasi dilakukan dengan pre-processing terhadap data masukan atau post processing terhadap data keluaran komponen. Kita membuat ‘adapter’ agar komponen bisa match dengan kebutuhan kita tanpa dimodifikasi.
Itu teorinya. Kenyataannya ? Silahkan berbagi pengalaman…
Integrasi vs Komposisi Komponen
Integrasi komponen adalah menggabungkan satu komponen dengan komponen lainnya. Seperti halnya komponen H/W, yang kita lakukan adalah ‘memasangkan’ interface suatu komponen dengan interface komponen lainnya. Asalkan match secara sintaks, maka kita sudah berhasil melakukan integrasi komponen.
Komposisi komponen ‘lebih’ daripada integrasi komponen. Pada komposisi komponen, kita sudah memprediksi apakah hasil komposisi kita nantinya akan mempunyai properti yang kita harapkan ?
Percuma kita melakukan integrasi komponen, kalau saat di-run, perilaku S/w tidak sesuai dengan yang kita harapkan. Untuk keperluan komposisi komponen, spesifikasi komponen (interface) harus lebih dari sekedar spesifikasi sintaks saja. Harus ditambah dengan spesifikasi semantiknya…
Tahukah kamu ? (12)
Ide dikembangkannya CBSE adalah untuk perbaikan konsep reuse (guna ulang). Untuk meningkatkan produktivitas, kita disarankan untuk reuse apa yang sudah pernah kita buat sebelumnya. Akan tetapi, konsep reuse ini kurang jelas. Apa yang boleh di-reuse, bagaimana caranya, seberapa besar kita bisa memodifikasi apa yang di-reuse, dst…
Pada CBSE, reuse diperjelas lingkupnya, yaitu pada level komponen. Kita bisa memandang komponen S/W sebagai kotak hitam yang tinggal kita pasang melalui interface-nya. Kita tidak perlu tahu isi kotak hitamnya. Yang perlu kita tahu hanyalah spesifikasi komponennya (yaitu spesifikasi interface-nya) agar kita bisa melakukan integrasi dan komposisi komponen dengan tepat…
CD vs CBD
CD (component development) adalah istilah untuk pembangunan komponen S/W, sedangkan CBD (component-based development) adalah istilah untuk pembangunan S/W dengan cara integrasi dan komposisi komponen. Keduanya (CD dan CBD) berada dalam lingkup CBSE (component-based software engineering). CD akan menghasilkan komponen-komponen S/W yang nantinya siap digunakan dalam CBD.
Sekali lagi, sekarang bukan jamannya membuat S/W dari awal (tangan kosong). Jika perlu, kita bisa beli COTS (commercial of the shelf), komponen S/W yang komersial. Atau, kalian mau jualan komponen S/W ??
-
Archives
- November 2009 (5)
- October 2009 (15)
- September 2009 (12)
- August 2009 (5)
- July 2009 (4)
- June 2009 (7)
- May 2009 (14)
- April 2009 (7)
- March 2009 (7)
- February 2009 (18)
- January 2009 (15)
- December 2008 (13)
-
Categories
- analysis
- aspect oriented
- CBSE
- critical system
- design
- digital learning
- e-business
- ecosystem
- final project
- fun
- health informatics
- introduction
- lecture
- maintenance
- method
- oop
- others
- programming
- project
- project management
- quality
- real time system
- requirement
- research
- service computing
- soa
- software architecture
- software metrics
- software process
- software product
- software quality
- software standard
- technology
- testing
- tools
- Uncategorized
- webE
-
RSS
Entries RSS
Comments RSS