Daftar Isi
Bab 1. Pendahuluan.......................................2
Latar Belakang: Apa dan Mengapa............2
Kasus-kasus kecelakaan akibat software / Hardware bugs
Proses Disain...............................................5
Formal Specification...................................6
Formal Synthesis.........................................7
Formal Verification......................................8
EquivalEnce Checker...............................8
Model Checking.......................................9
Theorem Proving.....................................9
Tools.......................................................10
Contoh Verifikasi....................................11
Formal Methods di Bidang Software........11
Penutup Pendahuluan...............................12
Bab 2. Formal Specification........................12
Referensi......................................................12
B A B 1 . P E N D A H U LU A N
LATA R B E L A KA N G : A PA D A N M E N G A PA
Perbedaan arti kata free ini sering membingungkan orang. Gerakan free software
movement mengacu kepada makna kata bebas (freedom), meskipun kebanyakan software
yang dihasilkan oleh gerakan ini bersifat gratis. Namun fokus dari gerakan ini bukan pada
gratisnya, akan tetapi pada kebebasannya.
2
terbunuh
Besaran
angka
karena
sambaran
petir
(setiap
1 in 9 billion
(233)
228
261
230
234
2170
EMBED Visio.Drawing.4
Specification
validation
verification
manual design
user
synthesis
(automatic)
validation
Implementation
1
translation
Implementation
2
Implementation
Pengertian dan beda antara validasi dan verifikasi sering tidak jelas dan penggunaannya
sering rancu.
4
(ambiguous).
Untuk
Petri nets
Synchronized Transitions,
Selain notasi atau bahasa di atas, ada juga formalism yang lebih umum
(populer) digunakan dalam disain perangkat lunak dan tidak dalam disain
perangkat keras, seperti antara lain:
VDM
tidak terlalu tinggi. Untuk sistem yang kompleks, kesalahan mudah terjadi
(error prone).
Proses pembuatan implementasi secara otomatis disebut automatic
synthesis. Untuk menjamin kebenaran hasil proses sintesa, maka proses
synthesis tersebut harus dibuktikan kebenarannya. Jika alat untuk
melakukan synthesis secara otomatis dan proses synthesis yang digunakan
ini dapat dibuktikan benar maka hasil yang diperoleh dapat dikatakan
correct by construction. Biasanya hal ini dilakukan untuk sistem yang
berangkat dari sebuah sistem yang dispesifikasikan secara formal,
kemudian dilakukan refining sehingga dapat diperoleh hasil yang lebih
detail, dan dilakukan secara berulang-ulang sampai akhirnya menjadi
implementasi dalam level abstraksi yang diinginkan (misalnya sampai
menjadi level layout transistor). Setiap langkah dalam proses refining dijaga
oleh sebuah mekanisme (misalnya oleh sebuah theorem prover) sehingga
tidak dapat melakukan proses refining yang salah.
F O R M A L V E R I F I C AT I O N
equivalence checker
model checking
theorem proving
EQUIVALENCE CHECKER
i3
i2
i1
i4
i3
i2
i4
10
THEOREM PROVING
Vendor
Keterangan
Structure
Prover II
Verysys Design
Automation
Equivalence checker
<http://www.verysys.co
m>
Formality
Synopsys
<http://www.synopsys.c
om>
Design
VERIFYer
Chrysalis Symbolic
Design
Equivalence checker.
<http://www.chrysalis.co
m>
Affirma Check
Cadence Design
Systems
<http://www.cadence.co
m>
Tuxedo-LEC
Verplex Systems
<http://www.verplex.co
m>
Lynx
Avant! Corp
<http://www.avanticorp.
11
com>
Mentor Graphics
Corp.
<http://www.mentorg.co
m>
FormalCheck
Bell
Labs
Automation
Design
SMV
Murphi
http://sprout.stanford.edu/dill/mur
phi.html
HOL
PVS
Isabelle
http://www.cl.cam.ac.uk/Research
/HVG/Isabelle/
Larch Prover
EHDM, EVES,
Nqthm, Nuprl,
OBJ, RAISE,
STP, VDM,
Veritas, Z
dan lain-lain
Deskripsi
tentang
theorem
provers tersebut belum dipelajari
dan/atau tempat dalam laporan ini
tidak memungkinkan.
12
CONTOH VERIFIKASI
13
BAB 2. FORMAL
S P E C I F I C AT I O N
Formal specification terkait dengan pendeskripsian sistem secara formal
sehingga menghilangkan abiguity dan dapat diproses dengan menggunakan
komputer. Tujuannya adalah agar tidak terjadi salah pengertian antara
desainer dan implementor terhadap sistem yang dideskripsikan. Ada
beberapa formalism untuk mendeskripsikan sistem. Dalam laporan ini akan
dibahas Communicating Sequential Processes (CSP) yang dikembangan
oleh C.A.R. Hoare.
more to be written
REFERENSI
1. Bruce Schneier, Applied Cryptography: Protocols, Algorithms, and
Source Code in C, second edition, John Wiley & Sons, Inc., 1996.
2. Lauren Ruth Wiener, Digital Woes: Why We Should Not Depend on
Software, Addison-Wesley, 1993.
3. Ivars Peterson, Fatal Defect: Chasing Killer Computer Bugs, Times
Books, 1995.
4. Budi Rahardjo, Formal Verification of Asynchronous Systems, PhD
thesis, University of Manitoba, 1996.
5. C.
A.
R.
Hoare,
Communicating
Sequential
Processes,
Communication of the ACM, 21(8), hal. 666-677, Agustus, 1978.
6. C. A. R. Hoare, Communicating Sequential Processes, Prentice-Hall,
1995.
7. G. J. Holzmann, Design and Validation of Computer Protocols,
Prentice-Hall, 1991.
8. R. Milner, A Calculus of Communicating Systems, Springer-Verlag,
1980. Lecture Notes in Computer Science vol. 92.
9. M. Gordon, Why higher-order logic is a good formalism for
specifying and verifying hardware, in G. Milne and P. A.
Subrahmanyam, eds., Formal Aspects of VLSI Design, hal. 153-177,
Elsevier Science Publishers, B.V., 1986.
14
15
BUDI RAHARDJO
PUSAT PENELITIAN ANTAR UNIVERSITAS
BIDANG MIKROELEKTRONIKA
INSTITUT TEKNOLOGI BANDUNG
16