Anda di halaman 1dari 5

VALIDASI PERANGKAT LUNAK DENGAN METODE HYBRID BERBASIS UML

M.Sukrisno Mardiyanto sukrisno@informatika.org Teknik Informatika STEI ITB


ABSTRAK Kecermatan proses verifikasi dan validasi perangkat lunak merupakan kunci keberhasilan penjaminan mutu (kualitas) perangkat lunak. Proses validasi model dinamis perangkat lunak sangat menentukan kehandalan perangkat lunak, karena validasi pada tahapan analisis dan desain akan dapat mengurangi resiko kesalahan yang fatal pada tahap implementasi. Keberhasilan validasi model dinamis ditentukan oleh kecermatan analisis dengan dukungan metode formal dan kakas verifikasi dan validasi model perangkat lunak. Arah perkembangan validasi model perangkat berbasis UML menjadi kajian utama, dimana potensi perpaduan dengan metode formal yang berorientasi objek (antara lain Object-Oriented Petri Net dan Object Z) berpeluang untuk dikembangkan menjadi metode formal yang bersifat hybrid. Kata kunci : Validasi Perangkat Lunak, metode formal, UML, Petri Net, bahasa Z 1. PENDAHULUAN Dalam pembangunan perangkat lunak, langkah penting yang mutlak dilakukan dalam rangka menjamin mutu (kualitas) perangkat lunak adalah proses verifikasi dan validasi (Verification & Validation) yang dilaksanakan pada setiap tahapan pembangunan. Verifikasi dan validasi pada tahap desain (perancangan) bertujuan untuk mengeliminasi dan menghindari kesalahan pada saat implementasi. Proses validasi model sistem perangkat lunak pada tahap ini menjadi sangat penting pada pembangunan perangkat lunak yang tergolong critical system dan/atau critical mission, olehkarena kesalahan yang terjadi dapat menimbulkan bencana dan berakibat fatal. Olehsebab itu proses verifikasi dan validasi hasil desain perangkat lunak menjadi sangat penting. Pemodelan sistem perangkat lunak pada tahap desain direpresentasikan dalam bentuk model statis dan model dinamis. Model statis menggambarkan arsitektur sistem perangkat lunak, berupa struktur kendali modul-modul perangkat lunak dan model pemrosesan dalam setiap model. Sedangkan model dinamis lebih menggambarkan model kelakuan sistem (system behavior) termasuk interaksi dengan pengguna dan lingkungannya. Proses validasi model dinamis membutuhkan tingkat ketelitian dan kepastian yang tinggi dalam menghindari kesalahan desain. Untuk itu perlu dukungan kakas (tools) yang mampu menganalisis kemungkinan kesalahan dan menguji hasil desain secara cermat. Beberapa metode desain (design methods) dan kakas analisis (analysis tools) telah dikembangkan dan digunakan dalam proses validasi model dinamis. Dalam makalah ini permasalahan penggunaan merode pembangunan perangkat lunak akan dibatasi pada metode analisis dan desain berorientasi objek berbasis UML (Unified Modeling Language). Sedangkan pembahasan kakas analisis untuk validasi model dinamis bertumpu pada kemampuan analisis yang dimiliki oleh Petri Net dan bahasa formal Z (dan/atau sejenisnya). Dengan penggabungan kemampuan dari Petri Net dan bahasa formal Z (dan sejenisnya) diperoleh suatu metode validasi Hybrid yang diharapkan berkemampuan analisis yang lebih baik dan dapat menjawab kebutuhan kakas validasi perangkat lunak yang handal. Di samping itu dengan adanya upaya pembakuan notasi dan format dari Petri Net serta bahasa formal yang sejenis akan memudahkan interkoneksi dan interoperasi antar kakas verifikasi dan validasi perangkat lunak. 2. VERIFIKASI DAN VALIDASI PERANGKAT LUNAK DAN PERMASALAHANNYA 2.1 Verifikasi dan Validasi Perangkat Lunak.

Prosiding Konferensi Nasional Teknologi Informasi & Komunikasi untuk Indonesia 3-4 Mei 2006, Aula Barat & Timur Institut Teknologi Bandung

276

Ada perbedaan makna yang mendasar dalam pemahaman tentang proses verifikasi dan validasi seperti diekspresikan dalam pertanyaan berikut : - Verification : Are we building the product right ? - Validation : Are we building the right product ? Arti verifikasi dalam hal ini lebih ditekankan pada kebenaran pelaksanaan proses pembangunan perangkat lunak, sedangkan validasi lebih ke arah pembuktian bahwa perangkat lunak yang dibangun sudah benar (correct). Dalam industri perangkat lunak, proses validasi dapat dilakukan sepanjang langkah pembangunan perangkat lunak, mulai dari tahapan analisis sampai dengan tahapan implementasi (coding & testing). Dalam makalah ini permasalahan yang dibahas difokuskan ke masalah validasi perangkat lunak pada tahapan desain (perancangan). 2.2 Metode Formal untuk Validasi Perangkat Lunak Proses validasi perangkat lunak pada tahapan desain lebih sulit dilakukan dibandingkan dengan proses validasi pada tahapan implementasi yang dilakukan dalam tahap ujicoba perangkat lunak (software testing). Hal ini diakibatkan oleh adanya tingkat abstraksi yang lebih tinggi dalam pemodelan perangkat lunak pada hasil desain. Olehsebab itu proses validasi pada tahapan ini membutuhkan alat bantu (kakas) yang mampu mendukung pelaksanaan validasi secara cermat, yakni berupa metode formal (formal methods). Metode formal tersebut umumnya dilengkapi : a. Notasi matematis dalam bentuk tekstual, grafis atau tabular. b. Proses yang mendeskripsikan bagaimana membuat artifak perangkat lunak (software artifact) berupa : spesifikasi perangkat lunak, desain perangkat lunak, program, dan sebagainya. c. Kakas untuk memeriksa dan membuktikan kebenaran artifak perangkat lunak tersebut secara formal. Secara umum metode formal diklasifikasikan berdasarkan spesikasi bahasa formal, teknik verifikasi dan teknik validasi yang diterapkan. Dalam praktek validasi dikenal 2 kelas bahasa spesifikasi formal, yakni: (1). Model-based specification language, dimana model sistem dibuat berdasarkan konstruksi matematis seperti kumpulan (sets) dan urutan (sequences) , sedangkan pengoperasian sistem dinyatakan dalam bentuk perubahan status dari sistem. Bahasa formal

yang termasuk kelas ini adalah : CSP, Petri Net dan bahasa Z. (2). Algebra-based specification language, dimana sistem dinyatakan dalam terminologi operasi dan hubungan antar operasi tersebut. Yang termasuk kelas ini adalah bahasa Larch dan Lotos. Tabel 2.1 di bawah ini memperlihatkan peta klasifikasi bahasa spesifikasi formal tersebut [14].
TABEL 2.1. Klasifikasi Bahasa Spesifikasi Formal Jenis Proses Jenis Bahasa Spesifikasi Sekuensial Konkuren Model-based Z, VDM, B CSP, Petri Net Algebra-based Larch, OBJ Lotos

Dalam perkembangan metodologi pembangunan perangkat lunak ber-orientasi objek terjadi konvergensi dalam penggunaan metode formal yang mengarah ke Unified Modeling Language (UML) sebagai standar pemodelan perangkat lunak. Demikian pula yang terjadi dengan bahasa formal lain yang mengkonsiderasi metode ber-orientasi objek, seperti halnya : Object Petri Net dan bahasa Object-Z. 2.3 Permasalahan Perangkat Lunak Verifikasi dan validasi

Permasalahan yang dihadapi dalam melakukan validasi model dinamis perangkat lunak secara umum adalah : a. Keterbatasan model dinamis berbasis diagram (diagrammatic notation) dalam proses validasi hasil rancangan (desain) perangkat lunak yang disebabkan oleh kelemahan semantik notasi yang digunakan, sehingga tidak mampu mendeskripsikan kelakuan sistem (system behavior) yang rumit b. Kerumitan (kompleksitas) bahasa spesifikasi formal berbasis aljabar (algebraic) akibat penggunaan notasi matematis dan format yang spesifik, sehingga menyulitkan penerapannya. c. Dalam proses analisis model perangkat lunak, kemungkinan adanya jumlah kasus analisis yang sangat besar akibat ledakan state space dari model yang dianalisis. Sehingga diperlukan upaya untuk membatasi atau menghindari terjadinya hal tersebut. Guna menanggulangi permasalahan di atas telah dilakukan analisis lebih mendalam terhadap pengembangan metode validasi model dinamis melalui penelitian yang memadukan keunggulan dari berbagai metode formal ke dalam suatu metode hybrid. Makalah ini memaparkan arah
277

Prosiding Konferensi Nasional Teknologi Informasi & Komunikasi untuk Indonesia 3-4 Mei 2006, Aula Barat & Timur Institut Teknologi Bandung

strategi perpaduan metode formal tersebut ke bentuk metode hybrid berbasis UML.

yang melengkapi model dinamis dan model statis sehingga UML memiliki semantik yang lebih kuat [16]. 3.2 Metode validasi Model Dinamis berbasis UML Validasi model dinamis perangkat lunak yang menggunakan UML sebagai metode formal menerapkan salahsatu dari pendekatan berikut : 1. Pemetaan model dinamis UML ke dalam bahasa deskripsi formal bernotasi diagram, misalnya General Stochastic Petri Net (GSPN). Penerjemahan (translasi) deskripsi formal UML ke dalam bahasa spesifikasi formal bernotasi aljabar, misalnya bahasa Z. Transformasi model dinamis UML ke bentuk yang executable (misal : xUML, vUML [9]).

3. VALIDASI MODEL DINAMIS PERANGKAT LUNAK BERBASIS UML 3.1 Pemodelan dinamis perangkat lunak dengan UML
UML merupakan kakas analisis dan desain perangkat

lunak yang dikembangkan oleh James Rumbaugh, Grady Booch dan Ivar Jacobson [6]. Saat ini UML secara de facto sudah menjadi kakas standar dalam metode pembangunan perangkat lunak ber-orientasi objek. Dalam hal ini UML dapat diklasifikasikan sebagai metode semiformal. Model dinamis perangkat lunak dituangkan dalam bentuk representasi grafis berupa : Diagram status (statechart diagram), Diagram Interaksi (interaction diagram), Diagram Kolaborasi (collaboration diagram) dan Diagram Aktivitas (activity diagram). Fungsi dari masing-masing diagram dideskripsikan pada Tabel 3.2.
TABEL 3.2. Deskripsi Diagram dalam UML [6]

2.

3.

Selanjutnya hasil proses pemetaan, penerjemahan atau transformasi tersebut kemudian dijadikan masukan dari Model Checker atau Theorem Prover.

Diagram Statechart Diagram Interaction Diagram Collaboration Diagram Activity Diagram

Deskripsi fungsi
- Specify the sequences of states an object goes through during its lifetime in response to events, together with its response to events. - Models the behavior of a single object. Shows an interaction, consisting of a set of objects and their relationships, including the messages (or events) that may be dispatched among them. An interaction diagram that emphasized the structural organization of the objects that send and receive messages. - Depict high-level business process - Model the logic of complex logic within the system.

4. VALIDASI PERANGKAT LUNAK DENGAN METODE HYBRID BERBASIS UML Sejumlah penelitian dalam rangka validasi model dinamis berbasis UML yang dipadukan dengan berbagai metode formal lain telah dan tengah dilakukan, antara lain :
a. vUML [9] :

Penerapan diagram-diagram tersebut dalam pemodelan dinamis secara visual memudahkan pemahaman bagi pengguna, namun belum sepenuhnya memenuhi syarat sebagai metode formal, karena : - Belum dapat memberikan interpretasi / makna yang pasti dan konsisten, - Tidak sepenuhnya mampu mendukung validasi model perangkat lunak secara formal. Oleh sebab itu UML, yang masih tergolong semi-formal, perlu dilengkapi dengan deskripsi formal berbentuk notasi aljabar, guna menghindari kerancuan (ambiguty) yang mungkin terjadi dalam deskripsi berbasis bahasa alami (natural language). Sebagai salahsatu bentuk realisasinya telah dikembangkan Object Constraint Language (OCL)

merupakan suatu kakas verifikasi model dinamis dari UML yang memanfaatkan kakas analisis SPIN [17] sebagai model checker. vUML dilengkapi pula dengan error analyzer yang secara otomatis akan memperbaiki model yang divalidasi dan secara simultan memberi umpan balik bagi pengguna. adalah sebuah kakas verifikasi dan validasi model perangkat lunak, khususnya untuk sistem konkuren, yang berbasis Petri Net ber-orientasi objek (Concurrent Object-Oriented Petri Net). merupakan bahasa formal berorientasi objek dari hasil pengembangan bahasa Z. ZOOM menyediakan fasilitas validasi model dinamis, yakni kakas transformasi (berupa Code Synthetizer) dan

b. CO-OPN [7] :

c. ZOOM [18] :

Prosiding Konferensi Nasional Teknologi Informasi & Komunikasi untuk Indonesia 3-4 Mei 2006, Aula Barat & Timur Institut Teknologi Bandung

278

kakas analisis (berupa : theorem prover, static analyzer dan unit test generator). Berdasarkan pengkajian berbagai metode validasi model dinamis perangkat lunak berbasis UML yang telah dipaparkan di atas, dapat digambarkan arah perpaduan model yang menggunakan bahasa spesifikasi berbasis model (model-based specification language) yang menerapkan notasi diagramatik (diagrammatic notation) dan notasi aljabar (algebraic notation) seperti diilustrasikan pada Gambar 4.1.

kehandalan yang lebih baik dibanding jika masingmasing metode formal diterapkan terpisah. 5. PENUTUP Kajian terhadap peluang perpaduan dari beberapa metode formal berbasis model dan ber-orientasi objek bertujuan untuk meningkatkan kemampuan analisis model dinamis perangkat lunak yang berbasis UML melalui sinergi kekuatan analisisnya. Untuk mendukung realisasi metode Hybrid tersebut perlu dikembangkan kakas validasi model dinamis perangkat lunak yang dapat menangani analisis model dengan representasi diagramatik dan/atau representasi dalam notasi aljabar, serta berkemampuan validasi secara timbal balik ( model cross validation). Dalam penelitian selanjutnya metode formal berbasis model Concurrent Object-oriented Petri Net dan Object-Z dipilih sebagai kasus kajian lebih lanjut dalam mengembangkan metode Hybrid berbasis UML.

Metode Hybrid OO

Object Petri Net vUML


Petri Net

Object Z

Bahasa Z

Mapping

Model dinamis UML

6. REFERENSI Translation [1] Abrial, J.R., B-Tool Reference Manual, version 1.1, 1997 [2] Arcoverde, Adilson, et al., Petri Nets tools integration through Eclipse,--, [3] Back, Ralph-Johan, et al., Formalizing UML Uses Cases in the Refinement Calculus, TUC Technical Report no.279, Turku Center for Computer Science, Finland, May 1999. [4] Bause, Falko, et al., Abstract Petri Net Notation, --,1994 [5] Bjorner, Dines, et al., UML-ising Formal Techniques, Third INT Workshop, Barcelona, March 2004. [6] Booch, G.,Jacobson, Ivar, Rumbaugh, James, The Unified Modeling Language User Guide, Addison Wesley, 1999. [7] Buch, Didier, Concurrent Object-Oriented Petri Nets, ---, [8] Gogolla, Martin, Benefits and Problems of Formal Methods, --, 2003. [9] Lillius, Johan, Paltor, Ivan Porres, vUML : A tool for verifying UML Models, TUCS Technical report no.272, may 1999. [10]Merseguer, Jose, et al., A Compositional semantics for UML state machine aimed at performance evaluation, ---, 2002.

OCL
Gambar 4.1 Metode Hybrid berbasis UML

Kekuatan dari bahasa spesifikasi berbasis model yang menggunakan notasi grafis, seperti halnya Petri Net dan model dinamis UML, ada pada kemampuannya dalam pemodelan kelakuan sistem yang bersifat konkuren dan pemodelan sinkronisasi proses. Sedangkan kekuatan spesifikasi bahasa formal bernotasi aljabar (algebraic based), antara lain : bahasa Z dan VDM, terletak pada kecermatan deskripsi formal dari model perangkat lunak dan kemampuan analisis matematis dalam pembuktian kebenaran model. Penggabungan ke dua jenis metode formal tersebut dapat men-sinergi-kan kekuatannya melalui validasi model bersilang (model cross validation) sebagai dasar prinsip kerja model checker dari metode Hybrid. Sebagai syarat keberhasilan proses cross validation, dibutuhkan kemampuan interpretasi timbal balik antara kedua bahasa spesifikasi tersebut. Selanjutnya metode validasi langsung yang dianut vUML dapat digunakan sebagai perangkat eksekutor model hasil validasi (sebagai bagian dari simulasi model dinamis). Metode Hybrid berbasis UML yang merupakan hasil perpaduan tersebut diharapkan memiliki keunggulan dan

Prosiding Konferensi Nasional Teknologi Informasi & Komunikasi untuk Indonesia 3-4 Mei 2006, Aula Barat & Timur Institut Teknologi Bandung

279

[11] Saldhana, John Anil, et al., Formalizing of Object Behavior and Interactions from UML Models, --, 2000. [12] Silva, Jose Reinaldo, dos Santos, Eston A., Applying Petri Nets to Requirement Validation, Proceeding of COBEM 2003, 17th International Congress of Mechanical Engineering, Sao Paulo, November 2003. [13] Sheldon, Frederick, A Review of Some Rigorous Software design and Analysis Tools, Sofware Focus, vol.4, no.2, John Wiley & Sons, 2002. [14] Sommerville, Ian, Software Engineering, 7th edition, Addison Wesley, 2004 [15] Soon-Kyeong,K., Carrington,D., Formalizing UML Class diagram using Object-Z, Proceeding of 2nd International Conference of the UML : Beyond the standard, LNCS, Springer, 1999. [16] --, Object Constraint Language Specification, version 1.1, September 1997. [17] SpinRoot, The Model Checker SPIN, http://spinroot.com/spin.html , February 20, 2006 [18] ZOOM Project, Z-based Object Oriented Modeling, http://se.cs.depaul.edu/ise/zoom/zoom.html, March 29, 2006.

Prosiding Konferensi Nasional Teknologi Informasi & Komunikasi untuk Indonesia 3-4 Mei 2006, Aula Barat & Timur Institut Teknologi Bandung

280