Saya tahu bahwa Symbolic Model Checking adalah state space traversal berdasarkan representasi set negara dan hubungan transisi sebagai rumus seperti dalam CTL menggunakan model seperti Kripke Model. Saya tahu teorinya. Tetapi saya merasa sulit untuk memahami aplikasi yang sebenarnya. Di mana tepatnya itu digunakan? Apa sebenarnya yang dilakukannya dan bagaimana cara kerjanya?
Dapatkah seseorang menjelaskan dengan contoh nyata dan menghubungkan teori dengan praktik?
Jawaban:
Pemeriksaan Model Simbolik adalah Pengecekan Model yang berfungsi pada status simbolik. Yaitu, mereka mengkodekan negara bagian ke dalam representasi simbolik, biasanya Memerintahkan Binary Decision Diagram (OBDDs).
Pertanyaannya adalah apa yang mereka lakukan dan bagaimana cara kerjanya.
Pertama-tama Anda memiliki kode sumber untuk beberapa aplikasi. Anda kemudian mengubah kode sumber Anda menjadi beberapa grafik transisi-negara seperti Struktur Kripke. Negara diisi dengan proposisi atom yang menggambarkan apa yang benar di negara tertentu. Dalam Model Simbolik Memeriksa proposisi atom dikodekan sebagai OBDD untuk menghemat ruang dan meningkatkan kinerja.
Pemeriksa Model kemudian mulai pada beberapa keadaan awal, dan mengeksplorasi keadaan, mencari kesalahan dalam grafik transisi-negara. Jika menemukan kesalahan, ia akan sering menghasilkan test case yang menunjukkan kesalahan. Ia menggunakan OBDD simbolis untuk menavigasi ruang negara secara optimal. Seandainya saya bisa menjelaskan lebih banyak di sana tetapi masih belajar.
Tapi pada dasarnya itu. Anda memiliki program yang dikonversi menjadi model formal (grafik transisi-negara), dan kemudian Anda menggunakan optimasi simbolis untuk menavigasi ruang keadaan untuk mencari kesalahan (dengan membandingkannya dengan spesifikasi LTL / CTL). Dan jika kesalahan ditemukan, Pemeriksa Model memberi Anda beberapa hal untuk membantu mendokumentasikan dan menyelesaikannya.
sumber
Pemeriksaan model simbol dapat sangat berguna untuk memverifikasi kebenaran komunikasi dan protokol keamanan. Sebagai contoh:
Ini bekerja dengan menulis deskripsi simbolis dari semua fungsi primitif dan algoritma protokol, dan kemudian memiliki pemeriksa model simbolis, seperti ProVerif , melintasi ruang keadaan dan berusaha untuk mendeteksi kombinasi keadaan yang menghasilkan hasil yang tidak menguntungkan. Dalam kasus ProVerif, model simbolik dijelaskan menggunakan kalkulus Pi yang diterapkan sebagai bahasa pemodelan. Ini memungkinkan uraian protokol dalam sintaks yang fungsional, seperti ML.
sumber