6
การตรวจสอบโปรแกรมอย่างเป็นทางการในทางปฏิบัติ
ในฐานะวิศวกรซอฟต์แวร์ฉันเขียนโค้ดจำนวนมากสำหรับผลิตภัณฑ์อุตสาหกรรม สิ่งที่ค่อนข้างซับซ้อนกับคลาส, เธรด, ความพยายามในการออกแบบบางอย่าง แต่ยังมีบางอย่างที่ทำให้ประสิทธิภาพลดลง ฉันทำการทดสอบจำนวนมากและฉันเหนื่อยกับการทดสอบดังนั้นฉันจึงสนใจในเครื่องมือพิสูจน์อย่างเป็นทางการเช่น Coq, Isabelle ... ฉันสามารถใช้สิ่งเหล่านี้เพื่อพิสูจน์อย่างเป็นทางการว่ารหัสของฉันปราศจากข้อบกพร่องและสามารถทำได้ ด้วยหรือ - แต่ทุกครั้งที่ฉันตรวจสอบหนึ่งในเครื่องมือเหล่านี้ฉันเดินออกไปโดยไม่มั่นใจว่าพวกเขาสามารถใช้งานได้สำหรับวิศวกรรมซอฟต์แวร์ทุกวัน ตอนนี้นั่นอาจเป็นฉันเท่านั้นและฉันกำลังมองหาตัวชี้ / ความคิดเห็น / ความคิดเกี่ยวกับที่ :-) โดยเฉพาะฉันได้รับความประทับใจว่าการทำให้หนึ่งในเครื่องมือเหล่านี้ใช้งานได้สำหรับฉันจะต้องใช้เงินลงทุนจำนวนมากในการกำหนดวัตถุวิธีการ ... ของโปรแกรมภายใต้การพิจารณาอย่างเหมาะสม จากนั้นฉันก็สงสัยว่านักปราชญ์จะไม่หมดพลังไอน้ำเพราะขนาดของทุกสิ่งที่มันต้องจัดการด้วยหรือไม่ หรือบางทีฉันอาจต้องกำจัดผลข้างเคียง (เครื่องมือพิสูจน์พวกนั้นดูเหมือนจะทำได้ดีกับภาษาที่ประกาศ) และฉันสงสัยว่ามันจะส่งผลให้ "รหัสที่พิสูจน์แล้ว" ซึ่งไม่สามารถใช้ได้เพราะมันจะไม่เร็วหรือ เล็กพอ นอกจากนี้ฉันไม่มีความหรูหราในการเปลี่ยนภาษาที่ฉันทำงานด้วยมันต้องเป็น Java หรือ C ++: ฉันไม่สามารถบอกเจ้านายของฉันได้ว่าฉันจะใช้รหัสใน OXXXml นับจากนี้ไปเพราะเป็นภาษาเดียวใน ซึ่งฉันสามารถพิสูจน์ความถูกต้องของรหัส ... ใครบางคนที่มีประสบการณ์มากขึ้นเกี่ยวกับเครื่องมือพิสูจน์ความคิดเห็นอย่างเป็นทางการ? อีกครั้ง - ฉันจะรักในการใช้เครื่องมือสอบมาตรอย่างเป็นทางการผมคิดว่าพวกเขาจะดี แต่ผมมีความประทับใจที่พวกเขาอยู่ในหอคอยงาช้างที่ฉันไม่สามารถเข้าถึงได้จากคูต่ำต้อยของ Java / C ++ ... (PS: …