Вы находитесь на странице: 1из 21

PROPOSAL

PROGRAM INSENTIF RISET TERAPAN 2007-2009 Kementerian Negara Riset dan Teknologi Republik Indonesia

Pengembangan Alat Bantu Sertifikasi untuk Perangkat Lunak Berbasis Komponen (Component Software)

Peneliti Utama:

Ade Azurat
e-mail: ade@cs.ui.ac.id
Digitally signed by Ade Azurat DN: CN = Ade Azurat, C = ID, O = Fasilkom UI Reason: I am the author of this document Location: Fasilkom UI, Depok Date: 2007.01.09 08:58:08 +07'00'

FAKULTAS ILMU KOMPUTER UNIVERSITAS INDONESIA Kampus UI Depok, Depok 16424, Jawa Barat Telp. 021-7863419 Fax 021-7863415 1

1. Abstrak Di era teknologi informasi ini, kebutuhan akan perangkat lunak meningkat. Namun produktifitas perangkat lunak masih jauh dari yang bisa diharapkan. Salah satu yang disepakati dapat meningkatkan produktifitasnya adalah pendekatan perangkat lunak berbasis komponen yang mencoba meniru keberhasilan produktifitas alat-alat elektronika. Penerapannya hingga saat ini masih sangat terbatas, salah satu penyebabnya adalah tidak adanya standarisasi dan tidak adanya sertifikasi baik secara teknis maupun secara legal. Penelitian ini merupakan kelanjutan penelitian sebelumnya yang telah menghasilkan usulan standarisasi untuk perangkat lunak berbasis komponen. Penelitian ini masih dalam tahapan penyusun aspek teknis. Penelitian ini bertujuan membangun sertifikasi yang dibutuhkan untuk dapat menerapkan standarisasi tersebut sehingga pendekatan perangkat lunak berbasis komponen dapat benar-benar dimanfaatkan dan menghasilkan produktifitas yang diharapkan. Salah satu tolak ukur keberhasilan penelitian ini adalah dihasilkannya prototype alat bantu yang mulai dapat diperkenalkan pada industri perangkat lunak indonesia untuk mulai menerapkan sertifikasi perangkat lunak yang di dunia pun belum banyak dikuasai. Keberhasilan industri perangkat lunak Indonesia dalam mengadopsi teknologi ini akan membuka peluang besar untuk merebut pasar perangkat lunak dunia. 2. Pendahuluan Produksi alat-alat elektronika atau perangkat keras yang berbasis komponen berkembang sangat pesatnya. Pada software, hingga saat ini belum terwujud. Software masih sering dibangun dari scratch. Hal ini menyebabkan banyak hal dasar terpaksa di buat ulang yang mengurangi produktiftas dari pengembangan software. Salah satu laporan dari NIST-ATP menunjukkan bahwa produktifitas pengembangan software tidak meningkat dalam 10 tahun terakhir[ATP95]. Kondisi ini walaupun sudah membaik namun masih jauh dari yang diharapkan. Solusi-solusi yang ditawarkan ternyata belum terbukti dalam 10 tahun berjalan [Hei+05]. Component software yang merupakan kelanjutan dari Object-Oriented Paradigma, telah disinyalir akan menjadi trend pengembangan software pada dekade yang akan datang [Syz02]. Sebenarnya konsep yang mendasari pengembangan component software adalah 2

cukup sederhana yaitu membangun software dengan meng-komposisikan komponenkomponen yang tersedia atau perlu dibuat. Sebagian mendefinisikan komponen sebagai: sebuah unit komposisi yang dapat digunakan oleh pihak ketiga tanpa perlu mengetahui detail implementasinya, cukup melalui specifikasi yang menyertai komponen tersebut. Dalam bidang elektronika, hal ini sudah lama diterapkan dan cukup mapan. Penjualan komponen elektronika dan penjualan alat-alat elektronika yg dibangun dari komponenkomponen tersebut sudah sangat umum. Produktifitas dari kreasi alat elektronika pun sangat pesat. Vendor-vendor besar telah mengantisipasi hal ini sejak pertengahan tahun 90an. Microsoft misalnya telah mengembangankan konsep COM dan DOT NET [MS]. Sun Miscrosystem Inc. telah mengembangkan Javabeans dan EJB. Sebuah standard framework yg disebut CORBA juga sudah disusun oleh consortium dari vendor-vendor besar tingkat dunia. Hal ini menunjukkan besarnya perhatian dari vendor-vendor besar tersebut untuk mencoba memimpin dalam trend teknologi baru walaupun ternyata aplikasinya tidak seperti pada produksi alat-alat elektronika (Hardware). Ada beberapa permasalahan penerapan konsep komponen pada perangkat lunak. (Analisa lebih detail mengenai hal ini dapat dilihat di [Szy02]. Salah satunya adalah standarisasi untuk sertifikasi komponen dan pengujian kebenaran dari komposisi komponen. Standarisasi yang ditawarkan oleh konsorsium yang mengembangangkan CORBA, baru sebatas standarisasi syntactic. Standarisasi tersebut baru mengatur bagaimana satu komponen bisa dikomposisikan dengan komponen lain sehingga aplikasi baru bisa dihasilkan. Dalam pengembangan aplikasi yang reliable kebutuhannya tidak hanya sampai di syntactic, namun juga mencakup standarisasi semantic. Standarisasi semantic menjamin bahwa komposisi yang dihasilkan berfungsi sesuai dengan yang diharapkan dan tidak saling mengganggu kerja masing-masing komponen. Dengan standarisasi semantic, kebenaran perangkat lunak berbasis komponen yang dihasilkan dapat dijamin kebenarannya secara formal matematis. Dengan bantuan formal matematis, jaminan kebenaran dapat lebih akurat dan lengkap dibandingkan dengan pengujian melalui testing [CW96]. Hasil riset dari [Bro03,JZX03,JLX03,LHL04,Fil02] mengajukan beberapa formalisasi yang mengindikasikan standarisasi dari sisi semantic. Namun hasil riset tersebut kurang memperhatikan aspek-aspek pragmatis dalam pengembangan formalisasi untuk 3

perangkat lunak berbasis komponen seperti yang disinyalir oleh [Szy02,MR03]. Standarisasi yang di ajukan dalam [AP05b,AP06] merupakan kompromi dari sisi pragmatis dan sisi teoritis. Dari sisi pragmatis dibutuhkan standarisasi yang memudahkan pengembangan perangkat lunak dari sisi tingkat kesulitan maupun biaya/waktu, sementara dari sisi teoritis dibutuhkan standarisasi yang menjamin kebenaran dan keakuratan perangkat lunak untuk dapat di uji secara formal matematis. Standarisasi yang ditawarkan [AP05b] menjanjikan kemudahan pengembangan dan penyelesaian untuk permasalahan yang di kategorikan sebagai progress property [AP06]. Permasalah progress property ini merupakan permasalahan klasik yang masih terbuka (open problem)[Pau01,Lam89,JZX03] , yang berasal dari akar sub bidang ilmu pemograman terdistribusi (Concurrent Programming)[Sch97]. Untuk dapat menerapkan usulan standarisasi [AP05b] dibutuhkan design sertifikasi yang bisa di pakai oleh industri perangkat lunak. Sertifikasi ini berfungsi sebagai jaminan bahwa sebuah komponen yang dihasilkan telah mengikuti standarisasi yang diusulkan sehingga jaminan kebenarannya bisa dipertanggungjawabkan [Szy02,MLP+01]. Karena standarisasi semantic ini akan digunakan untuk pembuktian kebenaran secara formal matematis, maka sertifikasi-nya juga akan berbentuk formal matematis pula. Tentunya bila design sertifikasi ini telah dikembangkan, perlu ada sosialisasi dan sertifikasi dalam bentuk hukum, tidak hanya untuk indonesia namun juga untuk international. Hingga saat ini belum ada design sertifikasi semantic yang diakui dan digunakan bersama oleh para pengembang komponen perangkat lunak dunia, sehingga legalitas sertifikasi tersebut juga belum bisa dibentuk. Legalitas ini penting agar teknologi sertifikasi semantic yang dihasilkan dapat diterapkan dengan jaminan hukum sehingga kerja-sama antar para pengembang komponen perangkat lunak bisa terjalin dan mempercepat proses pengembangan perangkat lunak. Kondisi ini membuka peluang bagi indonesia untuk melakukan lompatan teknologi yang dapat membawa mengangkat posisi Indonesia di pasar perangkat lunak dunia. Dalam tahapan proposal penelitian ini aspek legalitas merupakan asumsi yang ditetapkan untuk memfokuskan penelitian pada permasalah teknis terlebih dahulu sesuai dengan kapabilitas yang dimiliki team pengusul proposal saat ini. Selain itu, nanti setelah adanya bentuk hasil penelitian yang lebih konkret (tidak hanya teoritikal) dalam bentuk prototype, diharapkan kerjasama dengan bidang ilmu hukum akan lebih mudah dilakukan. 4

Metode formal matematis bukan lah hal yang umum dikuasai oleh pengembang perangkat lunak saat ini walaupun idenya telah sejak lama didengungkan oleh ahli-ahli ilmu komputer dunia [hoare, knuth, kaldewaij, Abrial]. Ketersediaan alat bantu untuk memudahkan penerapan formal matematis mutlak diperlukan agar metode ini dapat diterapkan di industri perangkat lunak. Alat bantu pengembangan perangkat lunak berbasis komponen sebenarnya sudah cukup banyak dipasaran antara lain, Visual Studio+supernova [Microsoft], SUN ONE [Sun Microsystem], Sunscript [SSC], dan Uniface[uni]. Sebagian sudah cukup intensive digunakan. Namun diantara alat-alat bantu tersebut, belum ada yang memiliki fasilitas untuk menguji kebenaran aplikasi yang dihasilkan, dan menguji apakah sertifikasi semantic yang dimiliki tiap-tiap komponen sudah sesuai atau tidak[MLP+01,MR03]. Proses pengujian tersebut saat ini dipercayakan kepada ahli yang relatif terbatas dan cukup mahal. Padahal, bila bisa disepakati sertifikasi semantic maka proses tersebut bisa dilakukan secara formal matematis sehingga bisa dilakukan secara automatis dengan lebih cepat dan murah [AP05b,AP06,HOL93,CW96]. Ada beberapa aliran pengembangan perangkat lunak berbasis komponen [CLI01,Szy02,Bro03,LHL04,PVSW03,PSW00]. Saat ini belum ada yang diakui secara de facto menjadi aliran utama. Penelitian ini akan mengikuti dasar-dasar yang telah ditetapkan [Szy02] dan membatasi komponen bukan sebagai object [LHL04,JZX03]. Aliran yang diajukan oleh [Bro03] yang lebih dekat dengan bidang ilmu elektronika, dirasa penulis akan cukup sulit diterapkan dalam dunia perangkat lunak, yang sebagaimana disebutkan dalam [Szy02] memiliki beberapa konsep dasar yang berbeda. Sementara abstraksi yang ditawarkan dalam [CLI01] kurang memberikan landasan teoritis untuk dapat menerapkan formal matematis dalam melakukan pengujian sertifikasi. Untuk selanjutnya dalam penelitian ini, konsep perangkat lunak berbasis komponen akan membatasi pada konsep yang di jelaskan dalam [Szy02]. Hasil SW03,PSW00] merupakan landasan bagi [AP05] yang mengangkat konsep kompenen lebih dekat lagi pada aspek pengembangan perangkat lunak dengan menggabungkan aspek pragmatis dalam formalisasinya. Walaupun demikian aspek teoritis dalam hal pengujian sertifikasi yang dikerjakan dapat dikonversikan kepada aliran lainnya. Dalam hal teknologi, penelitian ini membatasi pada teknologi berbasis java yaitu javabean [Sun Microsystem]. Secara teoritis, teknologi yang ditawarkan tidaklah berbeda, namun pengerjaan studi kasus untuk berbagai teknologi akan banyak memakan 5

waktu karena banyaknya detail yang harus dilakukan. Untuk itu saat dirasa perlu untuk memilih salah satu basis teknologi yang paling dikuasai untuk melakukan eksperimen. Bila telah selesai hasil tersebut akan dapat lebih mudah di konversikan untuk teknologi lain tanpa banyak aktifitas penelitian yang perlu dilakukan lagi. Pemilihan javabean dibandingkan dengan .NET, CORBA atau Component Pascal (Oberon) , lebih dikarenakan oleh banyaknya pengguna java di Indonesia dan kemudahan untuk menggunakan java secara free untuk non komersil. Target utama dari penelitian ini adalah menganalisa design sertifikasi seperti apa yang dapat diterapkan untuk solusi standarisasi yang telah disedia oleh [AP05b,AP06]. Sebagai tolak ukurnya perlu dihasilkan sebuah prototype alat bantu pengembangan perangkat lunak berbasis komponen yang menerapkan standarisasi [AP05b] dan memberikan fasilitas untuk melakukan pengujian sertifikasi semantic dari design yang dihasilkan. Dengan alat bantu tersebut design sertifikasi dapat diterapkan dalam permasalahan industri dan pelaku industri indonesia dapat mulai mencoba sambil tersebut memberikan usulan perbaikan sebagai prasyarat untuk memasukan tahapan ketiga. Proses ini diharapkan dapat menyiapkan indonesia kelak dalam menyongsong era pengembangan perangkat lunak yang diproyeksikan kelak berbasis komponen [Szy02]. Penelitian ini merupakan tahapan kedua rangkaian besar penelitian yang bertujuan memperkuat daya saing Indonesia dalam industri perangkat lunak. Bagian pertama, disponsori oleh research grant Hibah B Fakultas Ilmu Komputer Universitas indonesia dengan hasil utama adalah usulan standarisasi [AP05b] dan solusi untuk permasalahan progress property [AP06] yang keduanya telah dijelaskan sebelumnya. Beberapa publikasi hasil analisa [Han05], studi kasus [RA05a] hasil penelitian lainnya juga dapat ditemukan di (homepage: http://www.cs.ui.ac.id/kuliah/riset/hibah-B/VVCS/). Tahapan pertama telah memberikan landasan teoritis yang memadai, tahapan kedua ini adalah menyiapkan dan memperbaiki landasan teoritis tersebut lebih dekat kepada penerapan. Tahapan kedua ini merupakan bagian yang paling berat. Banyak penelitian dasar tidak bisa diterapkan karena kurang memperhatikan dan menyesuaikan dengan sasaran. Tahapan ketiga nanti adalah mulai menyiapkan produk yang siap dipasarkan dan memulai sosialisasi dan pelatihan-pelatihan. Selain itu secara parallel aspek-aspek nonteknis seperti aspek legalitas seperti disebutkan sebelumnya sudah dapat dilakukan secara parallel. Tahapan keempat adalah bagian evaluasi untuk mengevaluasi kelemahan 6

dan permasalahan yang ada dan menyiapkan ide-ide baru untuk melakukan loncatanloncatan teknologi selanjutnya. Loncatan-loncatan teknologi yang dilandasi ide-ide mutakhir merupakan kunci awal keberhasilan riset. Sekedar mengikuti perkembangan teknologi tidak lah cukup, karena negara-negara maju yang telah mendahului Indonesia juga terus mengembangkan teknologi, sehingga indonesia akan terus berada dibelakang. Bila Indonesia dapat melakukan loncatan teknologi dalam sertifikasi dan alat bantu perangkat lunak berbasis komponen, maka Indonesia berpeluang mencuri pasar perangkat lunak yang saat ini dikuasai secara dominan oleh negara-negara maju. 3. Perumusan Masalah Permasalahan yang hendak dipecahkan berawal dari rendahnya produktifitas pengembangan perangkat lunak. Dikatakan bahwa produktifitas perangkat lunak dalam dekade terakhir tidak meningkat dan tingkat kegagalan perangkat lunak mencapai angka lebih dari 70% [ATP95]. Hampir bersamaan publikasi tersebut disampaikan, mulai didengungkan konsep pemikiran perangkat lunak berbasis komponen yang diilhami oleh keberhasilan produktifitas alat-alat elektronik yang berbasis komponen. Beberapa vendor besar seperti Microsoft ataupun SUN mengusulkan teknologi baru yaitu .NET dan EJB. Teknologi ini cukup pesat berkembang. Namun permasalahan produktifitas dan tingkat kegagalan tersebut belum sepenuhnya terselesaikan[Syz02].

Permasalahan utama terletak pada standarisasi produk komponen dan mekanisme pengujian kebenaran dari penggabungan komponen-komponen. Kedua masalah tersebut bukan lah dua hal yang bisa dipisahkan begitu saja karena standarisasi produk mempengaruhi mekanisme pengujian kebenaran. Pengujian kebenaran membutuhkan adanya standarisasi produk yang akan diuji, karena tanpa adanya standarisasi yang dipatuhi tiap-tiap komponen, makanya pengujian nya tidak akan memiliki satu tolak ukur yang sama yang dapat dibandingkan untuk di nilai. Dengan demikian, penyelesaian yang dicari adalah penyelesaian bersama bagi kedua masalah tersebut.

Dalam [Syz02,MR03] disinyalir kebutuhan akan pendekatan formal matematis untuk menyelesaikan permasalahan tersebut diatas. Namun pendekatan formal matematis

walaupun telah lama sejak 1969 oleh [Hoa69], ternyata masih sulit untuk dapat diterapkan dalam praktek pengembangan perangkat lunak sehari-hari. Ketidakpraktisan merupakan alasan utama selain dibutuhkan tingkat penguasaan teoritis yang memadai [CW96], hal ini mempersulit penerapan beberapa hasil formalisasi yang telah dikembangkan sebelumnya[Bro03,LHL04,Fil02,HMW01]. Dibutuhkan adanya jalan tengah antara landasan teori yang kuat dan aspek pragmatis dalam pengembangan perangkat lunak berbasis komponent[HEI+05,MR03].

Dari hasil penelitian sebelumnya [AP05b,AP06] telah dihasilkan suatu standarisasi yang didasari oleh kompromi antara aspek teori dan aspek pragmatis. Dalam [AP05b], diusulkan adanya 6 kesepakatan dalam pengembangan perangkat lunak berbasis komponen yang didasari oleh metode formal, sehingga pengujiannya juga dapat dilakukan secara formal dan otomatis. Kesepakatan tersebut telah dipetakan sebagai batasan minimal yang harus dipenuhi oleh pengembang perangkat lunak agar komponen yang dihasilkannya dapat diuji secara formal matematis sehingga lebih dapat diakui kebenarannya (reliability). Namun demikian kesepakatan tersebut tidak memaksa pengembang, kebebasan diberikan kepada pengembang. Pengembang yang mengikuti seluruh kesepakatan mendapatkan jaminan kebenaran komponen yang 'sempurna'. Kesepakatan tersebut juga telah dibuat mengikuti pragmatis dari pola pengembang perangkat lunak. Namun permasalahan masih tersisa mengenai bagaimana menyatakan bahwa sebuah komponen yang dihasilkan pengembang telah mengikuti standarisasi formal matematis tersebut. Tentunya pihak pengembang tidak ingin membuka seluruh design atau source code komponen nya kepada pihak lain.

Dalam [Syz02,LHL04,MLR+03,MLP01] disinyalir akan kebutuhan sertifikasi atau kontrak yang harus dipenuhi. Ide utamanya adalah bahwa setiap komponen yang dihasilkan harus disertai oleh sebentuk sertifikat, yang menyatakan bahwa komponen tersebut telah memenuhi standarisasi tertentu. Permasalahan sertifikasi ini menjadi sulit karena standarisasi yang diberikan dilandasi oleh formal matematis, sehingga sertifikat dari penerapan formal matematis harus lah dinyatakan secara formal matematis juga

agar dapat dilakukan mengikuti mekanisme yang ada. Kesesuaian antara sertifikat dan standarisasi yang dipenuhi sebuah komponen, harus dapat di uji secara formal matematis pula. Selain itu harus ada pemetaan antara sertifikat yang dinyatakan dalam formal matematis terhadap format umum dalam bahasa pemograman yang bisa digabungkan bersama dengan produk yang dihasilkan. Kemudian agar konsep sertifikat ini dapat diterima, harus ada semacam alat bantu untuk pembuatan sertifikat, dan pengujian sertifikat. Alat bantu tersebut sangat perlu untuk menghindari permasalahan tingkat kesulitan formal matematis, yang sebenarnya tak perlu sepenuhnya dikuasai oleh pengembang. Alat bantu ini akan menyederhanakan beberapa hal secara otomatis dan memetakan formal matematis kedalam bentuk yang lebih umum bagi para pengembang yang bahasa pemograman, dalam hal ini bahasa pemograman java untuk java bean.

Sebagaimana disebutkan di bagian pendahuluan, aspek legalitas juga memainkan peranan sangat penting, namun hal ini belum menjadi fokus pada penelitian kali ini. Pada tahapan ini, kerja sama dengan bidang ilmu hukum juga masih terlalu dini.

Pada akhirnya penelitian ini berusaha memecahkan permasalahan dengan tahapantahapan penyelesaian masalah: 1. Design sertifikasi untuk standarisasi yang diusulkan dalam [AA05] 2. Landasan teori yang menyatakan kesesuaian antara sertifikasi dengan standarisasi yang dipenuhi oleh sebuah komponen. 3. Algoritma untuk melakukan pengujian sertifikasi secara otomatis berdasarkan landasan teori tersebut. 4. Prototype alat bantu penerapan sertifikasi, termasuk pembuatan sertifikat dan pengujian sertifikat. Prototype ini merupakan tolak ukur apakah algoritma yang dihasilkan dapat benar di implementasikan dalam bentuk prototype dan memberikan hasil seperti yang diharapkan. Pengujian prototype dapat dilihat dari evaluasi terhadap studi kasus yang dikerjakan.

4. Metodologi Mengacu pada [Gor02], bidang penelitian ini masuk dalam kategori Experimental Computer Science. Metodologi yang umum untuk ketegori tersebut adalah modelling dan experimental, selain tentunya tetap melakukan studi literatur. Tahapan modelling telah dilalui oleh penelitian sebelumnya dengan menghasilkan model standarisasi semantic secara formal matematis. Kini saatnya menguji-nya. Pengujiannya dilakukan dengan mencoba membuat sebuah design sertifikasi yang sesuai, dan melihat apakah design tersebut dapat diterapkan dalam aplikasi. Percobaan dilakukan secara iterative (pengulangan), maksudnya percobaan dimulai dengan design awal yang sangat sederhana. Kemudian, dilihat hasilnya, bagian design sertifikasi perlahan-lahan diperbaiki kemudian dicoba lagi dengan studi kasus yang sama, hingga dirasa layak sebagai prototype. Percobaan secara iterative ini, dibatasi pada tiga pengulangan saja. Pertama, adalah inisialisasi design yang dibuat akan sangat sederhana ada kemungkinan tidak perlu diselesaikan karena ada kemungkinan langkah percobaan yang diambil tidak akan menuju sasaran. Kedua adalah bagian kelengkapan, percobaan kali ini mengambil pelajaran percobaan sebelumnya, melengkapi dan melanjutkan. Ketiga, menyempurnakan percobaan selanjutnya berdasarkan evaluasi kriteria kelayakan.

Tentunya diperlukan penentuan kriteria kelayakan untuk mengevaluasi setiap tahapan percobaan. Pada tahapan penelitian kali ini, kriteria kelayakan ini akan diambil dari literatur, untuk tahapan selanjutnya (setelah 3 tahun), kriteria ini akan diambil dari hasil survey terhadap pengguna dilapangan. Studi kasus yang akan digunakan dalam tiap percobaan adalah sama dengan penelitian sebelumnya, hal ini perlu dipertahankan untuk menjaga kesinambungan hasil penelitian sehingga tidak perlu mengerjakan hal yang sama berulang kali lagi. Studi kasus tersebut adalah: 1. Aplikasi perdagangan bursa saham. 2. Aplikasi pemilihan umum secara elektronik. 3. Aplikasi simulasi pengendalian lalu lintas. 10

Untuk kebutuhan penelitian, aplikasi yang dikembangkan sebatas prototype tidak sampai pada aplikasi yang siap digunakan. Beberapa detail proses yang tidak relevan terhadap penelitian ini seperti proses enkripsi akan dilakukan secara symbolic dan blackbox. Namun demikian aplikasi yang dihasilkan harus cukup untuk mengilustrasikan aplikasi yang sesungguhnya. Dari pengalaman tersebut akan diterapkan sertifikasi dan dilihat pengujian terhadap sertifikasi tersebut dapat berjalan. Studi kasus tersebut akan dikembangkan dengan teknologi javabeans. 5. Rancangan (Design) Riset Penelitian secara umum terbagi tiga tahapan. Tahapan pertama merupakan tahapan inisialisasi. Diawali dengan mendesign bentuk sertifikasi yang sederhana untuk standarisasi yang dikembangkan dalam penelitian sebelumnya[AP05b]. Materi percobaan berupa studi kasus akan disiapkan sesuai dengan bentuk standarisasi tersebut. Dengan bentuk sertifikasi sederhana dan studi kasus yang sudah siap, proses percobaan bisa dimulai. Percobaan yang dilakukan adalah melihat bagaimana design sertifikasi benar-benar dapat menjamin penerapan standarisasi dari sebuah komponen. Metode perhitungan dan pembuktian akan diujikan berdasarkan Logika higher order (Higher Order Logic)[Hol88]. Landasan teori pengujian kesesuaian sertifikasi dengan standarisasi akan didasari pada metode tersebut. Bersamaan dengan itu, kerangka dasar dari prototype juga sudah dapat mulai dikembangkan. Untuk mengevaluasi percobaan ini, dibutuhkan kriteria evaluasi. Kriteria evaluasi ini akan diperoleh dari proses studi literatur mengenai pola pengembangan perangkat lunak berbasis komponen.

11

Pada tahapan kedua, hasil inisialisasi pada tahapan pertama akan di evaluasi. Berdasarkan evaluasi tersebut, mulai lah dibuat sebuah design sertifikasi yang relatif matang dan cenderung menyeluruh. Design sertifikasi ini masih harus di uji, studi kasus yang sama akan diterapkan lagi, dan dilihat bagaimana design serfitikasi yang baru lebih baik dari yang lama, dan apakah permasalahan yang ditemukan pada tahapan pertama telah berhasil terselesaikan atau belum. Juga harus diperhatikan apakah kriteria evaluasi telah terpenuhi. Bersamaan dengan ini, algoritma untuk melakukan pengujian kesesuaian sertifikasi dan standarisasi di susun berdasarkan hasil percobaan yang telah dilakukan melalui inductive reasoning. Dari hasil beberapa percobaan pada ketiga studi kasus akan dirangkum menjadi algoritma yang dapat diterapkan untuk berbagai studi kasus. Pada tahapan ketiga, design sertifikasi disempurnakan, tidak perlu ada penambahan design baru, cukup menyempurnakan beberapa yang penting. Algoritma yang telah disusun di implementasikan dalam prototype, dan kemudian menguji apakah prototype dapat melakukan seperti yang diharapkan oleh algoritma tersebut. Hal ini dievaluasi dengan melakukan pengujian serftifikasi melalui prototype dan melalui penerapan algoritma secara manual. 6. Hasil yang Diharapkan Hasil yang diharapkan dari penelitian ini adalah: 1. Design sertifikasi untuk standarisasi semantic pengembangan perangkat lunak berbasis komponen. 2. Algoritma untuk melakukan pengujian kesesuaian sertifikasi dan standarisasi dari sebuah komponen. 3. Contoh-contoh aplikasi javabean yang telah menerapkan standarisasi, sertifikasi dan telah teruji.

12

4. Prototype untuk membantu pengembangan perangkat lunak berbasis komponen yang menyediakan fasilitas untuk pembuatan sertifikasi dan pengujian sertifikasi terhadap standarisasi yang ditetapkan. Hak Cipta untuk prototype tersebut akan didaftarkan ke lembaga hukum di indonesia. 5. Publikasi: Publikasi yang diharapkan (tema dan sasaran publikasi dapat berubah): 1. Tema: Analisa pola pengembangan perangkat lunak berbasis komponen (Survey Paper). (Seminar Nasional Riset Teknologi Informasi, 2007) 2. Tema: Teori Pengujian Sertifikasi perangkat lunak berbasis komponen. (Seminar Nasional Riset Teknologi Informasi, 2007) 3. Tema: Penerapan Sertifikasi pada studi kasus Aplikasi Bursa Saham. Technical Report Fasilkom UI 2008 4. Tema: Penerapan Sertifikasi pada studi kasus Aplikasi E-Voting. Technical Report Fasilkom UI 2008 5. Tema: Penerapan Sertifikasi pada studi kasus Aplikasi Simulasi Lalu Lintas. Technical Report Fasilkom UI 2008 6. Tema: Sertifikat untuk perangkat lunak berbasis komponen. (Journal Ilmu Komputer dan Teknologi Nasional, Fasilkom-UI, 2008) 7. Tema: Automated certification check for component based software. Quality in Software 2008 8. Tema: Mechanization for component software certification. (Int. Conf. on Theorem Prover Higher Order Logics (TPHOLS) 2009). 9. Tema: Tool support for certification of reliable component software. Journal Object Technology, ISSN 1660-1769 , ETH Zurich, Swiss. 2010. (tidak ada biaya pencetakan, online journal) 13

10. Buku hasil riset (draft lengkap). Judul: Teori dan Penerapan Sertifikasi perangkat

lunak berbasis komponen. Buku ini diharapkan berisi tidak hanya hasil riset, namun juga rangkuman dari landasan ilmu pengetahuan untuk memahami riset ini sehingga bisa mengulangi lagi dan meningkatkan lagi. Diharapkan buku ini bisa menjadi salah satu buku acuan riset untuk mhs tingkat S2 atau S3 dalam bidang perangkat lunak berbasis komponen dan bidang formal method atau pun theoritical computer science.

7. Personil Pelaksana Penelitian (Peneliti dan Teknisi) No 1 Investigators Name Investigator: Ade Azurat Bidang ke ahlian Formal Method, Program verification, Component software, concurrency, theorem prover. Hr/wk Tugas dan Target 20 Analisa dan pembuatan design tool. Penerapan formalisasi. Design sertifikasi dan algoritma pengujian. Penulis Paper 7,8,9 dan co-author paper 2,6. Editor Utama Publikasi 10 Penyusunan sertifikasi aplikasi studi kasus. Mendesign sertifikasi. Penulis paper 1, 2, 6, 10 Pembuatan design prototype dan algoritma pengujian sertifikasi. Koordinator pengembangan prototype. Co-author paper 6,7,8, 10 Analisa landasan teori dan pembuatan design sertifikasi dan algoritma pengujian. Co-author paper 2, 6, 7, 10

Member/ investigator: Staff/Mhs S3 Member/ investigator: Staff/Mhs S2/ S3

Program verification, Formal method, javabeans. Component software, Java programming

20

20

Member: Mhs S1tingkat akhir

Program verification, Formal method, javabeans.

15

14

Member: Mhs S1tingkat akhir

Component software, Java programming

15

Member Student Team Mhs S1

Program verification

10

Member: Student Team Mhs S1

Component software, Java programming

10

Pembuatan design prototype. Koordinator pengembangan prototype. Standarisasi dan serfifikasi aplikasi bursa saham. Co-author paper 1, 3, 7, 10 Studi literatur mengenai perangkat lunak berbasis komponen. dan penerapan sertifikasi pada studi kasus evoting dan lalu lintas. Penulis paper 1 dan paper 4,5. Pengembangan Prototype alat bantu. Penulis manual dan white paper untuk prototype. Penulis paper 3, dan co-author paper 7. (6 bulan x 4 pekan)

Total man/hour per week Total man/hour per semester

110 2640

Catatan: Aplikasi studi kasus bursa saham adalah studi kasus yang lebih sulit dibanding dua studi kasus lainnya. Hasil penelitian sebelumnya masih kurang memuaskan, sehingga kali ini perlu alokasi personil yang lebih banyak untuk studi kasus ini. Publikasi oleh Peneliti Utama yang berhubungan dan hasil publikasi penelitian sebelumnya: [AP02a] A. Azurat and I.S.W.B. Prasetya. A preliminary report on xMECH. Technical Report CS-UU-2002-008, Institute of Information and Computing Science, University of Utrecht, 2002. [AP02b] A. Azurat and I.S.W.B. Prasetya. A survey on embedding programming logics in a theorem prover. Technical Report CS-UU-2002-007, Institute of Information and Computing Science, University of Utrecht, 2002. [AP05b] A. Azurat and I.S.W.B. Prasetya. Towards reliable component software: Light-weight formalism. In Proceedings of 8th International Conference on Quality in Research, 15

August 2005, 2005. ISSN 1411-1284. [AP06] A. Azurat and I.S.W.B. Prasetya. Development agreements for decomposition of progress property in component software. Submitted to FACS Prague, Czech, 2006. [APS00] A. Azurat, I.S.W.B. Prasetya, and S.D. Swierstra. Embedding programming logics in hol theorem prover. Jurnal Ilmu Komputer dan Teknologi Informasi, Volume 2, Nomer 1, Mei 2000 [APS02] A. Azurat, I.S.W.B. Prasetya, and S.D.Swierstra. Mechanizing logic in an aspect oriented attribute grammar system. Submitted to LPAR 2006, 2002. [APV+05] A. Azurat, I.S.W.B. Prasetya, T.E.J. Vos, H. Suhartanto, B. Widjaja, L.Y. Stefanus, R. Wenang, S. Aminah, and J. Bong. Towards automated verification of database scripts. In Joe Hurd, Edward Smith, and Ashish Darbari, editors, Theorem Proving in Higher Order Logics: Emerging Trends Proceedings, pages 159176, 2005. Also available as Tech. Report No. PRG-RR-05-02, Oxford University Computing Laboratory. [Azu00] Ade Azurat. A framework for verification of concurrent systems. In Proceedings of The 5th ISSM, Paris-France, October 2000 , pages 293296 [Azu05] A. Azurat. External embedding: Sebuah metode untuk verifikasi program. Journal MTI Fasilkom UI , June 2005. [PAS01] I.S.W.B. Prasetya, A. Azurat, and S.D. Swierstra. Sebuah framework untuk mekanisasi multi logika. Jurnal Ilmu Komputer dan Teknologi Informasi , Volume 1, Nomor 2, Oktober 2001. [PAVL05] I.S.W.B Prasetya, A. Azurat, T. Vos, and A.v Leeuwen. Building verification condition generators by compositional extensions. In Proceeding of 3rd IEEE International Conference on Software Engineering and Formal Methods Koblenz, Germany September 5-9, 2005 . IEEE Computer Society Press, 2005. [PPM+ 05] R.W. Purbojati, I.S.W.B Prasetya, S. Maizir, B. Wibowo, and A. Azurat. LinguSQL: A verification and transformation tool for database application. In 16

Seminar Nasional Ilmu Komputer dan Teknologi Informasi (SNIKTI) , 2005. ISSN: 1411-1071. [PVAS03] I.S.W.B Prasetya, T.E.J. Vos, A. Azurat, and S.D.. Swierstra. !UNITY: A HOL theory of general UNITY. In D. Basin and B. Wolff, editors, Emerging Trends Proceedings of 16th International Conference, Theorem Proving in Higher Order Logics (TPHOL), pages 159176, 2003. Also available as tech. report No. 187 of Inst. fur Inf.,Albert-Ludwig-Univ. Freiburg, Germany. Available on-line at http://www.informatik.uni-freiburg.de/tr. [PVAS05] I. S. W. B. Prasetya, Tanja E. J. Vos, A. Azurat, and S. Doaitse Swierstra. | A unity-based framework towards component based systems. In Teruo Higashino, editor, Principles of Distributed Systems, 8th International Conference, OPODIS 2004, Grenoble, France, December 15-17, 2004, Revised Selected Papers, volume 3544 of Lecture Notes in Computer Science, pages 5266. Springer, 2005. [SPW+05] H. Suhartanto, I.S.W.B Prasetya, B. Widjaja, L. Y. Stefanus, A. Azurat, S. Aminah, and J. Bong. Technology for specifying and generating critical data processsing programs. In Proceedings of 8th International Conference on Quality of Research, 2005. ISSN 1411-1284. Publikasi oleh team penelitian sebelumnya: [RA05a] Rakhmad Azhari, E-Voting, Journal MTI Fasilkom UI, Mei 2005. [RA05b] Rakhmad Azhari, Verification in Component Software, KNSI 2005 Bandung. [Han05] Hanson H, Dependent Component, KNSI 2005, Bandung.

8. Jadwal Penelitian Jadwal penelitian dinyatakan dalam termin per 6 bulan (semester). Penelitian dirancang untuk 3 tahun atau 6 semester dan mengacu pada rancangan riset Bab 5. Mengingat penelitian dilakukan dilingkungan universitas, maka jadwal pelaksanaan disesuaikan dengan tugas dan aktifitas akademik. Untuk melihat beban kerja, disertai informasi perkiraan beban dalam perhitungan man/hour per week.

17

1. Semester Ganjil tahun pertama: 1. Studi literatur untuk menghasilkan kriteria evaluasi percobaan (200 man/hour) 2. Mempelajari hasil penelitian sebelumnya, bagi anggota team yg mhs. (200 man/hour) 3. Menyiapkan studi kasus dengan standarisasi yang dihasilkan penelitian sebelumya agar siap di ujikan pada percobaan sertifikasi. (600 man/hour) 4. Menyusun design awal sertifikasi (inisialisasi) (1000 man/hour) 5. Studi literatur dan menyusun landasan teori untuk proses pengujian sertifikasi. (400 man/hour) 6. Penyusunan Paper 1 dan Penyusunan draft awal Paper 2. (240 man/hour) 2. Semester Genap, tahun pertama: 1. Penerapan sertifikasi awal terhadap studi kasus. (1200 man/hour) 2. Pengembangan kerangka dasar untuk prototype. (500 man/hour) 3. Penyusunan metode perhitungan dan pengujian sertifikasi didasari oleh landasan teori yang telah disusun sebelumnya. (800 man/hour) 4. Penyempurnaan Paper 2. (140 man/hour) 3. Semester Ganjil, tahun kedua: 1. Evaluasi penerapan sertifikasi awal.(400 man/hour) 2. Design sertifikasi yang menyeluruh menggunakan hasil evaluasi. (1200 man/hour) 3. Pengembangan algoritma dari metode-metode perhitungan dan pengujian sertifikasi. (800 man/hour) 4. Penyusunan draft awal paper 6. (240 man/hour) 4. Semester Genap, tahun kedua: 1. Penerapan sertifikasi menyeluruh pada studi kasus. (900 man/hour)
2. Pengembangan algorithma (lanjutan) dengan memperhatikan aspek efisiensi agar

dapat lebih umum diterapkan pada berbagai kasus (scalable) (900 man/hour) 3. Penyusunan technical report mengenai penerapan sertifikasi pada studi kasus (paper 2, 3, 4) (600 man/hour) 4. Penyempurnaan paper 6 dan Penyusunan paper 7 (240 man/hour) 5. Semester Ganjil: Tahun ketiga

18

1. Revisi Sertifikasi. (800 man/hour) 2. Implementasi algoritma didalam prototype. (600 man/hour) 3. Penyempurnaan prototype (interface, example). (1000 man/hour) 4. Penyusunan paper 8 (240 man/hour) 6. Semester Genap: Tahun Ketiga 1. Pengujian akhir fungsionalitas prototype dan revisi akhir. (400 man/hour) 2. Pengujian akhir implementasi algoritma dalam prototype dibandingkan

perhitungan manual untuk ketiga studi kasus. (600 man/hour) 3. Penyusunan manual dan whitepaper dari prototype, dan persyaratan pendaftaran hak cipta. (140 man/hour) 4. Penyusunan paper 9. (300 man/hour). 5. Penyusunan draft awal buku hasil riset lengkap (publikasi 10). (1200 man/hour).

9. Referensi [ATP95] News: ATP Focused Program: Component Based Software. National Institute of Standard and Technology, USA, 1995, http://www.nist.gov/public_affairs/results/atpbox2.html [BDK99] JavaBeans Architecture: BDK, Sun Microsystems, Inc. http://java.sun.com/products/javabeans/software/bdk_download.html [Bro03] M. Broy. Multi-view modelling of software sytems. In Hung Dang Van and Zhiming Liu, editors, Proceedings of the Workshop on Formal Aspects of Component Software (FACS) , 2003. Also as UNU/IIST Report no. 284. [CHJ+05] Ivica Crnkovic, Heinz W. Schmidt, Judith A. Stafford, Kurt C. Wallnau: Automated Component-Based Software Engineering. Journal of Systems and Software 74(1): 1-3 (2005) [CL01] Ivica Crnkovic and Magnus Larsson. Challenges of component-based development. Journal of Software Systems , December 2001. [Crn02] Gordana Dodig Crnkovi. Scientific methods in computer science. 19

In Conference for the Promotion of Research in IT at New Universities and at University Colleges in Sweden , 2002. [CW96] Edmund M. Clarke and Jeannette M. Wing. Formal methods: State of the art and future directions. Technical Report CMU-CS-96-178, Carnegie Melon University, Pittsburgh, USA, September 1996. [Fil02] Juliana Kster Filipe. A logic-based formalization for component. Journal Object Technology, 1(3):231248, 2002. [GPB02] Dimitra Giannakopoulou, Corina S. Pasareanu, and Howard Barringer. Assumption generation for software component verification. In Julian Richardson, Wolfgang Emmerich, and Dave Wile, editors. 17th IEEE International Conference on Automated Software Engineering (ASE 2002), 23-27 September 2002, Edinburgh, Scotland, UK. IEEE Computer Society, 2002. [Hei+05] George T. Heineman, Ivica Crnkovic, Heinz W. Schmidt, Judith A. Stafford, Clemens A. Szyperski, Kurt C. Wallnau: Component-Based Software Engineering, 8th International Symposium, CBSE 2005, St. Louis, MO, USA, May 14-15, 2005, Proceedings Springer 2005 [Hoa69] C.A.R. Hoare. An axiomatic basis for computers programs. Commun. Ass. Comput. Mach. , 12:576583, 1969. [HOL93] MJC Gordon, TF Melham, Introduction to HOL: A Theorem Proving Environment for higher order logic. Cambridge University Press, 1993 [HMW01] Richard G. Hamlet, Dave Mason, and Denise M. Woit. Theory of software reliability based on components. In Proceedings of the 23rd International Conference on Software Engeneering (ICSE-01), pages 361370. IEEE Computer Society, 2001. [JZX03] He Jifeng, Liu Zhiming, and Li Xiaoshan. Component calculus. Technical Report 285, UNU-IIST, September 2003. [JLX03] H. Jifeng, Z. Liu, and L. Xiaoshan. Contract-oriented component software development. Technical Report 276, UNU-IIST, P.O.Box 3058, Macau, 2003. [LHL04] Zhiming Liu, Jifeng He, and Xiaoshan Li. 20

Contract oriented development of component In Jean-Jacques Levy, Ernst W. Mayr, and John C. Mitchell, editors. Exploring New Frontiers of Theoretical Informatics, IFIP 18th World Computer Congress, TC1 3rd International Conference on Theoretical Computer Science (TCS2004), 22-27 August 2004, Toulouse, France . Kluwer, 2004. pages 349366. [Lam89] Leslie Lamport. A simple approach to specifying concurrent system. Communications of the ACM, 32(1):3245, January 1989. [MLP+01] John Morris, Gareth Lee, Kris Parker, Gary A. Bundell, and Chiou Peng Lam. Software component certification. Computer, IEEE. 34(9):3036, September 2001. [MR03] Piotr Makowski and Anders P. Ravn, Component based development - Wheres the Place for Formalization? UNU/IIST, 2003. [PVSW03] I.S.W.B. Prasetya, T.E.J. Vos, S.D. Swierstra, and B. Widjaja. A theory for composing distributed components based on temporary interface. In Hung Dang Van and Zhiming Liu, editors, Proceedings of the Workshop on Formal Aspects of Component Software (FACS), 2003. Also as UNU/IIST Report no. 284. [PSW00] I.S.W.B. Prasetya, S.D. Swierstra, and B. Widjaja. Component-wise formal approach to design distributed Technical Report UU-CS-2000-01, Inst. of Information Science, Utrecht Univ., 2000. Download: www.cs.uu.nl/staff/wishnu.html. [Pau01] Lawrence C. Paulson. Mechanizing a theory of program composition for UNITY. ACM Transactions on Programming, Vol. 25 No. 5. 2001, page 626-656. [Szy02] Clemens Szyperski, Dominik Gruntz and Stephan Murer, Component Software - Beyond Object-Oriented Programming, Addison-Wesley / ACM Press, 2002. ISBN 0-201-74572-0 [Sch97] F.B. Scheneider, On Concurrent Programming. Springer-Verlag New York, Inc., 1997.

21

Вам также может понравиться