Pertanyaan Tingkat kesehatan dan kelengkapan sistem


Pertama beberapa terminologi (dipinjam dari sini, halaman 14):

SEBUAH positif program adalah program dengan kesalahan.

SEBUAH negatif program adalah program tanpa kesalahan.


Jadi ada empat jenis program:

Program positif, dianalisis sebagai positif -> true positive (TP).

Program positif, dianalisis sebagai negatif -> salah negatif (FN).

Program negatif, dianalisis sebagai positif -> false positive (FP).

Program negatif, dianalisis sebagai negatif -> true negative (TN).


Suatu sistem suara, jika tidak pernah menerima program yang positif.

Suatu sistem lengkap, jika tidak pernah menolak program negatif.


Jadi dilihat dari apa yang saya tulis di atas:

A complete system accepts FN and TN programms.
A sound system also accepts FN and TN programms.

Seorang rekan mengatakan kepada saya sistem suara juga menerima program KB. Bisakah seseorang mengkonfirmasi ini dan menjelaskan mengapa mereka melakukannya?


4
2018-01-29 16:33


asal


Jawaban:


Buku itu menjelaskannya seperti ini:

Tingkat kesehatan mencegah kesalahan dan kelengkapan palsu mencegah kesalahan positif.

Jadi agar sistem menjadi suara, itu tidak perlu mencegah positif palsu, tetapi hanya negatif palsu. Untuk mencegah positif palsu, itu harus lengkap.

Buku ini menjelaskan lebih lanjut dengan menggunakan sistem tipe sebagai contoh:

Dalam bahasa modern, sistem ketik suara (mereka mencegah apa yang mereka klaim) tetapi tidak lengkap (mereka   tolak program yang tidak perlu ditolak). Kesehatan adalah penting karena memungkinkan pengguna bahasa dan bahasa   pelaksana mengandalkan X tidak pernah terjadi. Kelengkapannya akan menyenangkan, tetapi semoga itu jarang dalam prakteknya   bahwa sebuah program ditolak secara tidak perlu dan dalam kasus-kasus tersebut, semoga mudah bagi programmer untuk memodifikasi   program seperti itu ketik-cek.

Sistem tipe tidak lengkap karena hampir semua hal yang mungkin ingin Anda periksa secara statis, tidak mungkin   untuk menerapkan pemeriksa statis yang diberikan program apa pun dalam bahasa Anda (a) selalu berakhir, (b) adalah suara,   dan (c) selesai. Karena kita harus menyerah, (c) sepertinya pilihan terbaik (programmer tidak suka   kompiler yang mungkin tidak berhenti).


8
2018-01-29 16:49



Katakanlah pemilik rumah mengatur sistem alarm untuk mendeteksi pencuri. Pemilik yang tidak suka alarm palsu karena penyebab lain daripada gangguan ilegal membuat sistem kurang sensitif, dalam hal ini, ketika alarm berbunyi, itu berarti "alarm berarti ada penyusup" dengan bahaya tidak mendeteksi pencuri terampil. Pemilik yang berhati-hati dan hati-hati yang dapat hidup dengan alarm palsu tetapi tidak pernah menginginkan gangguan mungkin membuat sistem lebih sensitif. Dalam hal ini, "tidak ada alarm berarti tidak ada gangguan".

Sistem pertama yang tidak pernah menerima false positive (false alarm, dalam contoh ini) disebut sound system, dan itu berarti tidak ada kesalahan tipe 1. Sistem kedua yang tidak pernah melewatkan intrusi, dengan kata lain, tidak pernah menerima negatif palsu, disebut sistem lengkap, dan itu berarti tidak ada kesalahan tipe 2. Kesehatan tidak menjamin kelengkapan, dan sebaliknya. Dengan sensitivitas yang sempurna dari sistem alarm, tidak ada alarm palsu atau gangguan yang hilang untuk membuat sistem terdengar dan selesai.

Halaman ini (http://ubccpsc311.blogspot.jp/2010/11/7-ways-to-approach-soundness-and.html) memberikan tujuh perspektif tentang kesehatan dan kelengkapan. Juga lihat Kesehatan dan Kelengkapan suatu algoritma, yang mengatakan bahwa algoritma lengkap selalu menemukan jawaban ketika algoritma suara tidak pernah memberikan jawaban yang salah (tidak pernah mengembalikan hasil yang salah). Ini https://softwareengineering.stackexchange.com/questions/140705/what-does-it-mean-to-say-an-algorithm-is-sound-and-complete mungkin juga bisa membantu.

Isi dari Pendekatan terpadu untuk rekayasa perangkat lunak menunjukkan perspektif lain pada contoh penganalisa statis.

enter image description here

Di dalam buku, soundness captures the occurrence of false positives, dengan kata lain, dengan sistem suara yang sempurna, tidak ada laporan kesalahan ketika benar-benar peringatan: less soundness implies more false positives.

Setelah mengatakan itu, saya pikir komentar penulis dapat menjadi salah ketik, dan seharusnya ditulis sebagai "suara mencegah kesalahan positif ...". Mungkin, di bidang penulis, kesehatan berarti sebaliknya daripada biasanya digunakan, tapi saya tidak yakin.

Cara yang baik untuk memahami definisi ini adalah mencegah kesehatan   negatif palsu dan kelengkapan mencegah kesalahan positif.

Juga, saya pikir komentar OP juga membingungkan:

A system is sound, if it never accepts a positive program.
A system is complete, if it never rejects a negative program.

Deskripsi yang lebih baik / benar bisa

A system is sound, if it never accepts a false positive program.
A system is complete, if it never accepts a false negative program.

3
2018-03-02 01:40