analisis dan implementasi design by contract menggunakan java

advertisement
Tugas Akhir - 2009
ANALISIS DAN IMPLEMENTASI DESIGN BY CONTRACT MENGGUNAKAN JAVA
MODELLING LANGUAGE
Chindia Ferdinansari¹, Dana Sulistyo Kusumo², Kusuma Ayu Laksitowening³
¹Teknik Informatika, Fakultas Teknik Informatika, Universitas Telkom
Abstrak
Design by Contract merupakan suatu metodologi untuk membangun software yang bertujuan
untuk mengecek kebenaran program/software. Metode ini terdiri dari preconditions,
postconditions dan invariant. Java Modelling Language adalah bahasa yang mengspesifikasikan
kelas-kelas atau interface-interface secara detail dengan menambahkan keterangan/anotasi ke
dalam file java. Java merupakan bahasa pemrograman berorientasi-objek Bahasa ini merupakan
bahasa yang dapat berjalan pada lebih dari satu platform, namun bahasa java tidak diciptakan
khusus untuk menangani metode DBC.
Tugas akhir ini menganalisis tentang pengimplementasian Design by Contract menggunakan Java
Modelling Language. Sebagai studi kasus, tugas akhir ini akan menggunaka Aplikasi Toko Bunga.
Program dibuat dengan bahasa pemrograman Java dan menggunakan JML 5.6. Penerapan DBC
dengan JML pada aplikasi dapat mengspesifikasikan atribut dan behavior dari method. Selain itu,
error-error yang mungkin terjadi pada aplikasi dapat ditangani, sehingga correctness dari sebuah
program akan terjaga.
Kata Kunci : Design by Contract, Java Modelling Language, Java.
Abstract
Design by Contract is a method for developing software to check reliability of a program/software.
This method includes precondition, postcondition and invariant. Java Modelling Language is a
formal behavioral interface specification language for class and interface specifically by adding
annotation to java file. Java is multi platform language, but java is not made to handle DBC
specially.
This final project analyze how to implement Design by Contract using Java Modelling Language.
As a case study, this final project use Flower Shop application. This program is made with Java
and JML 5.6. Implementation of DBC JML in application can specify field and behavior of method.
In addition, errors that can happen in application can handle, hence one can make sure the
correctness of the application.
Keywords : Design by Contract, Java Modeling Language, Java.
Fakultas Teknik Informatika
Powered by TCPDF (www.tcpdf.org)
Program Studi S1 Teknik Informatika
Tugas Akhir - 2009
1. Pendahuluan
1.1
Latar Belakang
Perkembangan pemrograman semakin lama semakin pesat. Tujuan utama dari
setiap program adalah reliabilitas, yaitu kebenaran,ketepatan dan kekuatannya
dalam penanganan terhadap kesalahan user. Suatu program dikatakan benar jika
sesuai dengan spesifikasi. Salah satu cara untuk meminimalkan error dalam
program adalah metode Design-by-Contract.
Design-by-Contract(DBC) adalah suatu metodologi pengecekkan kebenaran
program/software. Dalam pembuktiannya, DBC menggunakan precondition dan
postcondition. Precondition adalah kondisi yang harus dipenuhi sebelum
memanggil sebuah method, sedangkan postcondition adalah kondisi yang harus
dipenuhi setelah method dipanggil. Prinsip dari DBC adalah bahwa kelas dan
kliennya(pemanggil kelas) mempunyai contract satu sama lain. Klien harus
menjamin kondisi sebelum pemanggilan method (precondition), dan kelas pun
harus menjamin kondisi setelah pemanggilan method (postcondition). Jika predan postcondition dimasukkan dalam sebuah form sehingga compiler dapat
melakukan pengecekkan, maka pelanggaran/kesalahan dapat dideteksi lebih cepat.
Java Modelling Language (JML) adalah bahasa yang meng-spesifikasikan
kelas-kelas atau interface-interface secara detail dengan menambahkan
keterangan/anotasi ke dalam file java. JML menjelaskan dua aspek penting dalam
java, yaitu behavior dan interface dari file java. Interface terdiri dari definisi
konstanta dan deklarasi method. JML dapat mendokumentasikannya dalam
anotasi. Dari segi behavior, contohnya, preconditions dan postconditions untuk
method-method seperti dalam DBC. Diantara preconditions dan postconditions,
dapat juga disisipkan anotasi yang dicampur dengan kode program java. JML
dapat digunakan sebagai alat yang dapat diandalkan untuk DBC.. Tersedia banyak
tools yang mendukung JML, seperti The JML compiler(jmlc) dan The extended
static checker(escj/ava2).
1.2 Perumusan Masalah
Perumusan masalah dari Tugas Akhir ini berdasarkan latar belakang masalah yang
dipaparkan diatas adalah :
 Apakah Java Modelling Language dapat diterapkan untuk konsep Design
by Contract ?
 Apa dan bagaimana pengimplementasian DBC menggunakan JML dalam
aplikasi?
 Apakah dan bagaimana pengaruh DBC dengan JML terhadap hasil
aplikasi?
1
Fakultas Teknik Informatika
Program Studi S1 Teknik Informatika
Tugas Akhir - 2009
Konsep yang telah diterapkan diatas akan diterapkan pada aplikasi Toko
Bunga. Aplikasi ini berfungsi untuk membantu pengelolaan bunga yang ada di
toko bunga dan dijalankan oleh pemilik dari toko bunga. Aplikasi ini berbasis
Java dan bersifat stand-alone. Ruang Lingkup dari tugas akhir ini adalah :





Aplikasi dijalankan oleh admin
Aplikasi ini bersifat stand-alone
Aplikasi ini menitikberatkan pada pengimplementasian DBC dengan JML
dengan bahasa Java
JML yang dipakai disatukan dengan program Java
JML yang digunakan dalam tugas akhir ini adalah versi 5.6
1.3 Tujuan
Tujuan pengerjaan Tugas Akhir ini berdasarkan rumusan masalah di atas adalah :
 Menerapkan Design-by-Contract dengan Java Modelling Language
 Membangun aplikasi dengan menerapkan DBC dengan JML.
 Menganalisis hasil implementasi dari segi correctness, behavior
specification dan manfaat serta kelebihan penggunaan metode DBC
dengan JML.
1.4 Metodologi Penyelesaian Masalah
Metode penelitian yang diterapkan pada pengerjaan Tugas Akhir ini adalah :
 Studi literatur, yaitu dengan mencari informasi dan referensi baik itu dari
buku, paper, jurnal, artikel maupun dari Internet yang berkaitan dengan
topik Design by Contract(DBC) dan Java Modelling Language(JML).
 Mempelajari konsep-konsep dari DBC dan JML
 Membangun aplikasi berbasis java yang mengimplementasikan DBC
dengan JML.
 Menganalisa hasil.
 Penyusunan laporan pengerjaan serta dokumentasi Tugas Akhir.
2
Fakultas Teknik Informatika
Powered by TCPDF (www.tcpdf.org)
Program Studi S1 Teknik Informatika
Tugas Akhir - 2009
5. KESIMPULAN DAN SARAN
5.1.
Kesimpulan
 DBC dapat diimplementasikan dengan menggunakan JML pada
perangkat lunak.
5.2.

JML dapat menangani error yang terjadi sehingga correctness dari
sebuah program dapat dijaga. Hal ini dibuktikan dengan adanya
pesan yang menunjukkan adanya pelanggaran dalam contract yang
telah ditentukan. Dengan adanya hal ini, developer dapat membuat
penanganan terhadap error tersebut, sehingga tingkat correctness
dari sebuah program dapat ditingkatkan.

JML dapat mengspesifikasikan behavior dari program java yang
dibuktikan dengan kemampuannya dalam mendeskripsikan atau
mengspesifikasikan atribut dan method baik dari segi syntactic
maupun dari behavior-nya.

Implementasi DBC dengan JML mempunyai beberapa manfaat,
yaitu, JML menggunakan sintaks seperti Java dalam notasinya,
sehingga programmer Java diharapkan dengan mudah untuk
membaca, mempelajari dan membuatnya. Disamping itu, deskripsi
JML dapat digunakan sebagai dokumentasi yang dapat dicek oleh
tools yang tersedia, sehingga dapat membantu proses debug.

Implementasi DBC menggunakan JML 5.6 tidak dapat
mengkompilasi file program yang mempunyai user interface berbasis
grafik (swing, awt, vector,dll) sehingga penulisan contract dilakukan
pada kelas-kelas yang merepresentasikan data-data aplikasi (Model).
Oleh karena itu, sebaiknya program dibuat dengan memisahkan
kelas-kelas yang berisi user interface(view) dan kelas-kelas yang
berisi data-data yang terlibat(model).

Urutan pengecekkan contract pada JML yang diimplementasikan
pada constructor pengecekkan invariant dilakukan pada akhir
pemanggilan constructor. Untuk pengecekkan precondition dan
postcondition sama seperti biasanya, yaitu precondition sebelum
pemanggilan dan postcondition setelah pemanggilan.
Saran
JML adalah proyek yang masih terus mengalami perkembangan dan
kedepannya masih akan ada pengembangan pada JML. Salah satunya pada
kegunaan JML setelah implementasi, yaitu sebagai dokumentasi yang dikenal
sebagai jmldoc. Dalam tugas akhir ini, penulis tidak mengimplementasi dan
menganalisis hal tersebut.
36
Fakultas Teknik Informatika
Powered by TCPDF (www.tcpdf.org)
Program Studi S1 Teknik Informatika
Tugas Akhir - 2009
Daftar Pustaka
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
Booch, Grady., James Rumbaugh dan Ivar Jacobson. 1998. The Unified
Modeling Language User Guide. Addison Wesley.
Burdy, Lilian., Yoonsik Cheon, David R.Cok. dkk. An overview of JML tools
and applications.
Cok, David. 2004. Introduction to JML. University of Nijmegen;Eastment
Kodak Company.
Deitel, H.M. 2004. Java How To Program 6 th Edition. Prentice Hall. New Jersey
USA.
Dharwiyanti, Sri. Satria Wahono, Romi. 2003. Pengantar Unified Modelling
Language (UML). http://www.ilmukomputer.com
Diyar, M. Mahar. 2007. Implementation Of Design By Contract Using Aspect
Oriented Programming With Java Programming Language.Case Study :
Cd And Dvd Collection Application.Teknik Informatika, IT Telkom
Bandung.
Jai kaur, Puneet. Verma, Amandeep. Thapar, Simrandeep. 2007. Software
Quality Metric for Object-Oriented Environments. Proceeding of National
Conference and Challenges & Opportunities in Information Technology
(COIT-2007)
Keeton, Bryan. Cavaness, Chuck, and Friesen, Geoff. 2000 Special Edition
Using Java 2 Standard Edition. Que Corporation. USA.
Leavens, Gary T. dan Yoonsik Cheon. 2006. Design by Contract with JML.
[10] Leavens, Gary T., Erik Poll. Curtis Clifton, dkk. JML Reference Manual.
[11] Leavens, Gary T., Albert L. Baker dan Clyde Ruby. 1999. JML : A Notation for
Detailed Design.
[12] Leavens, Gary T. , Joseph R. Kiniry dan Erik Poll. 2007. JML Tutorial.
http://jmlspecs.org
[13] Meyer, Bertrand. 1992. Applying “Design by Contract”. Computer(IEEE) vol 25
halaman 40-51.USA.
[14] ______________.2003.Building bug-free O-O software: An Introduction to
Design by Contract. Eiffel Software Inc.www.eiffel.com.
[15] Poll, Erik. Program Verification using JML and ESC/Java2. Radboud University
Nijmigen.
[16] Raghavan, Arun D. dan Gary T. Leavens. Desugaring JML Method
Specifications.
37
Fakultas Teknik Informatika
Powered by TCPDF (www.tcpdf.org)
Program Studi S1 Teknik Informatika
Download