Not to be confused with Verificationism.

Not to be confused with Verificatio

Not to be confused with Verificationism.
"Verifiability" redirects here. For the Wikipedia policy, see Wikipedia:Verifiability.

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed. (June 2009)
In the context of hardware and software systems, formal verification is the act of proving or disproving the correctness of intended algorithms underlying a system with respect to a certain formal specification or property, using formal methods of mathematics.[1]

Formal verification can be helpful in proving the correctness of systems such as: cryptographic protocols, combinational circuits, digital circuits with internal memory, and software expressed as source code.

The verification of these systems is done by providing a formal proof on an abstract mathematical model of the system, the correspondence between the mathematical model and the nature of the system being otherwise known by construction. Examples of mathematical objects often used to model systems are: finite state machines, labelled transition systems, Petri nets, timed automata, hybrid automata, process algebra, formal semantics of programming languages such as operational semantics, denotational semantics, axiomatic semantics and Hoare logic.[2]

Contents [hide]
1 Approaches to formal verification
1.1 Formal verification for software
2 Verification and validation
3 Industry use
4 See also
5 References
Approaches to formal verification[edit]
One approach and formation is model checking, which consists of a systematically exhaustive exploration of the mathematical model (this is possible for finite models, but also for some infinite models where infinite sets of states can be effectively represented finitely by using abstraction or taking advantage of symmetry). Usually this consists of exploring all states and transitions in the model, by using smart and domain-specific abstraction techniques to consider whole groups of states in a single operation and reduce computing time. Implementation techniques include state space enumeration, symbolic state space enumeration, abstract interpretation, symbolic simulation, abstraction refinement.[citation needed] The properties to be verified are often described in temporal logics, such as linear temporal logic (LTL) or computational tree logic (CTL). The great advantage of model checking is that it is often fully automatic; its primary disadvantage is that it does not in general scale to large systems; symbolic models are typically limited to a few hundred bits of state, while explicit state enumeration requires the state space being explored to be relatively small.

Another approach is deductive verification. It consists of generating from the system and its specifications (and possibly other annotations) a collection of mathematical proof obligations, the truth of which imply conformance of the system to its specification, and discharging these obligations using either interactive theorem provers (such as HOL, ACL2, Isabelle, or Coq), automatic theorem provers, or satisfiability modulo theories (SMT) solvers. This approach has the disadvantage that it typically requires the user to understand in detail why the system works correctly, and to convey this information to the verification system, either in the form of a sequence of theorems to be proved or in the form of specifications of system components (e.g. functions or procedures) and perhaps subcomponents (such as loops or data structures).

Formal verification for software[edit]
Formal verification of software programs involves proving that a program satisfies a formal specification of its behavior. Subareas of formal verification include deductive verification (see above), abstract interpretation, automated theorem proving, type systems, and lightweight formal methods. A promising type-based verification approach is dependently typed programming, in which the types of functions include (at least part of) those functions' specifications, and type-checking the code establishes its correctness against those specifications. Fully featured dependently typed languages support deductive verification as a special case.

Another complementary approach is program derivation, in which efficient code is produced from functional specifications by a series of correctness-preserving steps. An example of this approach is the Bird-Meertens Formalism, and this approach can be seen as another form of correctness by construction.

These techniques can be sound, meaning that the verified properties can be logically deduced from the semantics, or unsound, meaning that there is no such guarantee. A sound technique yields a result only once it has searched the entire space of possibilities. An example of an unsound technique is one that searches only a subset of the possibilities, for instance only integers up to a certain number, and give a "good-enough" result. Techniques can also be decidable, meaning that their algorithmic implementations are guaranteed to terminate with an answer, or undecidable, meaning that they may never terminate. Because they are bounded, unsound techniques are often more likely to be decidable than sound ones.

Verification and validation[edit]
Main article: Verification and validation
Verification is one aspect of testing a product's fitness for purpose. Validation is the complementary aspect. Often one refers to the overall checking process as V & V.

Validation: "Are we trying to make the right thing?", i.e., is the product specified to the user's actual needs?
Verification: "Have we made what we were trying to make?", i.e., does the product conform to the specifications?
The verification process consists of static/structural and dynamic/behavioral aspects. E.g., for a software product one can inspect the source code (static) and run against specific test cases (dynamic). Validation usually can be done only dynamically, i.e., the product is tested by putting it through typical and atypical usages ("Does it satisfactorily meet all use cases?").

Industry use[edit]
The growth in complexity of designs increases the importance of formal verification techniques in the hardware industry.[3][4] At present, formal verification is used by most or all[citation needed] leading hardware companies, but its use in the software industry is still languishing.[citation needed] This could be attributed to the greater need in the hardware industry, where errors have greater commercial significance.[citation needed] Because of the potential subtle interactions between components, it is increasingly difficult to exercise a realistic set of possibilities by simulation. Important aspects of hardware design are amenable to automated proof methods, making formal verification easier to introduce and more productive.[5]

As of 2011, several operating systems have been formally verified: NICTA's Secure Embedded L4 microkernel, sold commercially as seL4 by OK Labs;[citation needed] OSEK/VDX based real-time operating system ORIENTAIS by East China Normal University;[citation needed] Green Hills Software's Integrity operating system;[citation needed] and SYSGO's PikeOS.[6][7]

The CompCert C compiler is a formally verified C compiler implementing the majority of ISO C.
0/5000
จาก: -
เป็น: -
ผลลัพธ์ (ไทย) 1: [สำเนา]
คัดลอก!
Not to be confused with Verificationism."Verifiability" redirects here. For the Wikipedia policy, see Wikipedia:Verifiability.This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed. (June 2009)In the context of hardware and software systems, formal verification is the act of proving or disproving the correctness of intended algorithms underlying a system with respect to a certain formal specification or property, using formal methods of mathematics.[1]Formal verification can be helpful in proving the correctness of systems such as: cryptographic protocols, combinational circuits, digital circuits with internal memory, and software expressed as source code.The verification of these systems is done by providing a formal proof on an abstract mathematical model of the system, the correspondence between the mathematical model and the nature of the system being otherwise known by construction. Examples of mathematical objects often used to model systems are: finite state machines, labelled transition systems, Petri nets, timed automata, hybrid automata, process algebra, formal semantics of programming languages such as operational semantics, denotational semantics, axiomatic semantics and Hoare logic.[2]Contents [hide] 1 Approaches to formal verification1.1 Formal verification for software2 Verification and validation3 Industry use4 See also5 ReferencesApproaches to formal verification[edit]One approach and formation is model checking, which consists of a systematically exhaustive exploration of the mathematical model (this is possible for finite models, but also for some infinite models where infinite sets of states can be effectively represented finitely by using abstraction or taking advantage of symmetry). Usually this consists of exploring all states and transitions in the model, by using smart and domain-specific abstraction techniques to consider whole groups of states in a single operation and reduce computing time. Implementation techniques include state space enumeration, symbolic state space enumeration, abstract interpretation, symbolic simulation, abstraction refinement.[citation needed] The properties to be verified are often described in temporal logics, such as linear temporal logic (LTL) or computational tree logic (CTL). The great advantage of model checking is that it is often fully automatic; its primary disadvantage is that it does not in general scale to large systems; symbolic models are typically limited to a few hundred bits of state, while explicit state enumeration requires the state space being explored to be relatively small.Another approach is deductive verification. It consists of generating from the system and its specifications (and possibly other annotations) a collection of mathematical proof obligations, the truth of which imply conformance of the system to its specification, and discharging these obligations using either interactive theorem provers (such as HOL, ACL2, Isabelle, or Coq), automatic theorem provers, or satisfiability modulo theories (SMT) solvers. This approach has the disadvantage that it typically requires the user to understand in detail why the system works correctly, and to convey this information to the verification system, either in the form of a sequence of theorems to be proved or in the form of specifications of system components (e.g. functions or procedures) and perhaps subcomponents (such as loops or data structures).Formal verification for software[edit]Formal verification of software programs involves proving that a program satisfies a formal specification of its behavior. Subareas of formal verification include deductive verification (see above), abstract interpretation, automated theorem proving, type systems, and lightweight formal methods. A promising type-based verification approach is dependently typed programming, in which the types of functions include (at least part of) those functions' specifications, and type-checking the code establishes its correctness against those specifications. Fully featured dependently typed languages support deductive verification as a special case.Another complementary approach is program derivation, in which efficient code is produced from functional specifications by a series of correctness-preserving steps. An example of this approach is the Bird-Meertens Formalism, and this approach can be seen as another form of correctness by construction.These techniques can be sound, meaning that the verified properties can be logically deduced from the semantics, or unsound, meaning that there is no such guarantee. A sound technique yields a result only once it has searched the entire space of possibilities. An example of an unsound technique is one that searches only a subset of the possibilities, for instance only integers up to a certain number, and give a "good-enough" result. Techniques can also be decidable, meaning that their algorithmic implementations are guaranteed to terminate with an answer, or undecidable, meaning that they may never terminate. Because they are bounded, unsound techniques are often more likely to be decidable than sound ones.Verification and validation[edit]Main article: Verification and validationVerification is one aspect of testing a product's fitness for purpose. Validation is the complementary aspect. Often one refers to the overall checking process as V & V.Validation: "Are we trying to make the right thing?", i.e., is the product specified to the user's actual needs?Verification: "Have we made what we were trying to make?", i.e., does the product conform to the specifications?The verification process consists of static/structural and dynamic/behavioral aspects. E.g., for a software product one can inspect the source code (static) and run against specific test cases (dynamic). Validation usually can be done only dynamically, i.e., the product is tested by putting it through typical and atypical usages ("Does it satisfactorily meet all use cases?").Industry use[edit]The growth in complexity of designs increases the importance of formal verification techniques in the hardware industry.[3][4] At present, formal verification is used by most or all[citation needed] leading hardware companies, but its use in the software industry is still languishing.[citation needed] This could be attributed to the greater need in the hardware industry, where errors have greater commercial significance.[citation needed] Because of the potential subtle interactions between components, it is increasingly difficult to exercise a realistic set of possibilities by simulation. Important aspects of hardware design are amenable to automated proof methods, making formal verification easier to introduce and more productive.[5]As of 2011, several operating systems have been formally verified: NICTA's Secure Embedded L4 microkernel, sold commercially as seL4 by OK Labs;[citation needed] OSEK/VDX based real-time operating system ORIENTAIS by East China Normal University;[citation needed] Green Hills Software's Integrity operating system;[citation needed] and SYSGO's PikeOS.[6][7]
The CompCert C compiler is a formally verified C compiler implementing the majority of ISO C.
การแปล กรุณารอสักครู่..
ผลลัพธ์ (ไทย) 2:[สำเนา]
คัดลอก!
เพื่อไม่ให้สับสนกับ verificationism.
"ตรวจสอบได้" redirects ที่นี่ สำหรับนโยบายวิกิพีเดียดูที่วิกิพีเดีย:. ตรวจสอบได้บทความนี้ต้องการศึกษาข้อมูลเพิ่มเติมสำหรับการตรวจสอบ กรุณาช่วยปรับปรุงบทความนี้โดยการเพิ่มแหล่งข้อมูลที่เชื่อถือได้ วัสดุอ้างอิงอาจถูกท้าทายและลบออก (มิถุนายน 2009) ในบริบทของระบบฮาร์ดแวร์และซอฟแวร์การตรวจสอบอย่างเป็นทางการกระทำของการพิสูจน์หรือหักล้างความถูกต้องของขั้นตอนวิธีการจุดมุ่งหมายพื้นฐานของระบบที่เกี่ยวกับสเปคบางอย่างที่เป็นทางการหรือสถานที่ให้บริการโดยใช้วิธีการอย่างเป็นทางการของคณิตศาสตร์. [1] อย่างเป็นทางการ การตรวจสอบจะมีประโยชน์ในการพิสูจน์ความถูกต้องของระบบเช่น:. โปรโตคอลการเข้ารหัสวงจรผสมวงจรดิจิตอลที่มีหน่วยความจำภายในและซอฟแวร์แสดงเป็นรหัสที่มาการตรวจสอบของระบบเหล่านี้จะทำโดยการให้หลักฐานที่เป็นทางการในแบบจำลองทางคณิตศาสตร์นามธรรมของ ระบบการติดต่อระหว่างแบบจำลองทางคณิตศาสตร์และลักษณะของระบบที่เป็นที่รู้จักกันเป็นอย่างอื่นโดยการก่อสร้าง ตัวอย่างของวัตถุทางคณิตศาสตร์มักจะใช้กับระบบรูปแบบคือเครื่องสถานะ จำกัด ป้ายระบบการเปลี่ยนแปลง, มุ้ง Petri, ออโตหมดเวลาออโตไฮบริดพีชคณิตกระบวนการความหมายอย่างเป็นทางการของการเขียนโปรแกรมภาษาเช่นความหมายของการดำเนินงานความหมาย denotational ความหมายจริงและตรรกะโฮร์ [2] เนื้อหา [ซ่อน] 1 แนวทางการตรวจสอบอย่างเป็นทางการ1.1 การตรวจสอบอย่างเป็นทางการสำหรับซอฟต์แวร์ตรวจสอบ 2 และการตรวจสอบการใช้งานอุตสาหกรรม 3 4 ดูเพิ่มเติม5 อ้างอิงแนวทางการตรวจสอบอย่างเป็นทางการ [แก้ไข] วิธีการหนึ่งและก่อตัวเป็นรูปแบบการตรวจสอบซึ่งประกอบด้วยระบบที่ครบถ้วนสมบูรณ์ การสำรวจของแบบจำลองทางคณิตศาสตร์ (นี้เป็นไปได้สำหรับรุ่นที่ จำกัด แต่ยังสำหรับรุ่นที่ไม่มีขีด จำกัด บางอย่างที่ไม่มีที่สิ้นสุดชุดของรัฐสามารถแสดงได้อย่างมีประสิทธิภาพโดยใช้ขีดนามธรรมหรือการใช้ประโยชน์จากความสมมาตร) นี้มักจะประกอบด้วยการสำรวจทุกรัฐและการเปลี่ยนในรูปแบบโดยใช้เทคนิคที่เป็นนามธรรมมาร์ทและเฉพาะโดเมนที่จะต้องพิจารณากลุ่มทั้งของรัฐในการดำเนินการเดียวและลดเวลาในการคำนวณ เทคนิคการใช้งานรวมถึงการนับพื้นที่รัฐนับพื้นที่รัฐสัญลักษณ์ตีความนามธรรมจำลองสัญลักษณ์การปรับแต่งเป็นนามธรรม. [อ้างจำเป็น] คุณสมบัติที่จะได้รับการตรวจสอบแล้วมักจะอธิบายใน Logics ชั่วคราวเช่นตรรกะชั่วคราวเชิงเส้น (LTL) หรือตรรกะต้นไม้คำนวณ ( CTL) ประโยชน์ที่ดีของการตรวจสอบรูปแบบคือการที่มันมักจะเป็นไปโดยอัตโนมัติอย่างเต็มที่ ข้อเสียเปรียบหลักของมันก็คือว่ามันไม่ได้ในระดับทั่วไปกับระบบขนาดใหญ่ รูปแบบสัญลักษณ์จะถูก จำกัด มักจะไปไม่กี่ร้อยบิตของรัฐในขณะที่การนับรัฐอย่างชัดเจนต้องใช้พื้นที่รัฐการสำรวจจะมีขนาดเล็กค่อนข้าง. อีกวิธีหนึ่งคือการตรวจสอบการอนุมาน มันประกอบไปด้วยการสร้างจากระบบและข้อกำหนด (และอาจจะเป็นคำอธิบายประกอบอื่น ๆ ) คอลเลกชันของภาระผูกพันพิสูจน์ทางคณิตศาสตร์, ความจริงของที่บ่งบอกถึงความสอดคล้องของระบบข้อกำหนดของตนและการปฏิบัติภาระหน้าที่เหล่านี้โดยใช้ทั้ง provers ทฤษฎีบทโต้ตอบ (เช่น HOL, ACL2 อิสซาเบลหรือ Coq) provers ทฤษฎีบทอัตโนมัติหรือ satisfiability ทฤษฎีโมดูโล (SMT) แก้ วิธีนี้มีข้อเสียว่ามันมักจะต้องใช้ในการทำความเข้าใจในรายละเอียดว่าทำไมระบบการทำงานอย่างถูกต้องและการถ่ายทอดข้อมูลไปยังระบบการตรวจสอบนี้ทั้งในรูปแบบของการลำดับของทฤษฎีบทจะพิสูจน์หรือในรูปแบบของข้อกำหนดของ ส่วนประกอบของระบบ (เช่นฟังก์ชั่นหรือขั้นตอน) และส่วนประกอบย่อยบางที (เช่นลูปหรือโครงสร้างข้อมูล). การตรวจสอบอย่างเป็นทางการสำหรับซอฟต์แวร์ [แก้ไข] การตรวจสอบอย่างเป็นทางการของโปรแกรมซอฟแวร์ที่เกี่ยวข้องกับการพิสูจน์ว่าโปรแกรมที่ตอบสนองความต้องการสเปคอย่างเป็นทางการของพฤติกรรมของมัน subareas ของการตรวจสอบอย่างเป็นทางการรวมถึงการตรวจสอบการอนุมาน (ดูด้านบน) ตีความนามธรรมทฤษฎีบทพิสูจน์อัตโนมัติ, ระบบการพิมพ์และวิธีการอย่างเป็นทางการที่มีน้ำหนักเบา วิธีการตรวจสอบชนิดที่ใช้ในการเขียนโปรแกรมที่มีแนวโน้มจะพึ่งพิมพ์ซึ่งในรูปแบบของฟังก์ชั่นรวม (อย่างน้อยส่วนหนึ่งของ) รายละเอียดฟังก์ชั่นเหล่านั้นและประเภทการตรวจสอบรหัสกำหนดความถูกต้องของตนกับข้อกำหนดเหล่านั้น โดดเด่นอย่างเต็มที่พิมพ์ภาษา dependently สนับสนุนการยืนยันนิรนัยเป็นกรณีพิเศษ. วิธีการเสริมอีกประการหนึ่งคือรากศัพท์โปรแกรมซึ่งในรหัสที่มีประสิทธิภาพผลิตจากคุณสมบัติการทำงานโดยชุดของขั้นตอนถูกต้องรักษา ตัวอย่างของวิธีนี้คือนก Meertens เจ้าระเบียบและวิธีการนี้สามารถมองเห็นเป็นรูปแบบของความถูกต้องโดยการก่อสร้างอีก. เทคนิคเหล่านี้อาจจะเป็นเสียงที่มีความหมายว่าการตรวจสอบคุณสมบัติที่สามารถสรุปได้ว่ามีเหตุผลมาจากความหมายหรือไม่มั่นคงซึ่งหมายความว่า มีการรับประกันดังกล่าว เทคนิคเสียงผลเป็นผลเพียงครั้งเดียวก็มีการดำเนินการพื้นที่ทั้งหมดของความเป็นไป ตัวอย่างของเทคนิคที่ไม่ปลอดภัยเป็นหนึ่งที่ค้นหาเพียงส่วนหนึ่งของความเป็นไปได้เช่นเพียงจำนวนเต็มขึ้นไปจำนวนหนึ่งและให้ "ดีพอ" ผล เทคนิคนี้ยังสามารถเป็น decidable หมายความว่าการใช้อัลกอริทึมของพวกเขาได้รับการรับรองในการยุติที่มีคำตอบหรือ undecidable หมายความว่าพวกเขาอาจจะไม่เคยบอกเลิก เพราะพวกเขาจะกระโดดเทคนิคมั่นคงมักจะมีแนวโน้มที่จะเป็น decidable กว่าเสียง. การตรวจสอบและการตรวจสอบ [แก้ไข] บทความหลัก: การตรวจสอบและการตรวจสอบการตรวจสอบเป็นหนึ่งในด้านของการทดสอบการออกกำลังกายของผลิตภัณฑ์เพื่อวัตถุประสงค์ การตรวจสอบเป็นสิ่งที่เกื้อกูล บ่อยครั้งที่หนึ่งหมายถึงกระบวนการตรวจสอบโดยรวม V & V. การตรวจสอบ: "พวกเราจะพยายามที่จะทำให้สิ่งที่ถูกต้อง" คือเป็นผลิตภัณฑ์ที่ระบุความต้องการที่แท้จริงของผู้ใช้หรือไม่การตรวจสอบ: "มีเราทำสิ่งที่เรากำลังพยายามที่จะ ให้? "คือไม่สินค้าที่สอดคล้องกับข้อกำหนด? กระบวนการตรวจสอบประกอบด้วยคงที่ / โครงสร้างและแบบไดนามิก / ด้านพฤติกรรม เช่นสำหรับผลิตภัณฑ์ซอฟต์แวร์หนึ่งสามารถตรวจสอบแหล่งที่มาของรหัส (คงที่) และเรียกใช้กับกรณีทดสอบที่เฉพาะเจาะจง (ไดนามิก) การตรวจสอบมักจะสามารถทำได้เฉพาะแบบไดนามิกคือผลิตภัณฑ์ที่ได้รับการทดสอบโดยการใส่มันผ่านการใช้งานทั่วไปและผิดปรกติ ("มันตอบสนองความพอใจกรณีการใช้งานทั้งหมด?"). ใช้อุตสาหกรรม [แก้ไข] การเจริญเติบโตในความซับซ้อนของการออกแบบที่เพิ่มความสำคัญของ เทคนิคการตรวจสอบอย่างเป็นทางการในอุตสาหกรรมฮาร์ดแวร์. [3] [4] ในปัจจุบันการตรวจสอบอย่างเป็นทางการจะถูกใช้โดยส่วนใหญ่หรือทั้งหมด [อ้างจำเป็น] บริษัท ชั้นนำฮาร์ดแวร์ แต่การใช้ในอุตสาหกรรมซอฟแวร์ยังคงอิดโรย. [อ้างจำเป็น] นี้สามารถทำได้ นำมาประกอบกับความต้องการที่มากขึ้นในอุตสาหกรรมฮาร์ดแวร์ที่ข้อผิดพลาดที่มีความสำคัญในเชิงพาณิชย์มากขึ้น. [อ้างจำเป็น] เพราะการมีปฏิสัมพันธ์ที่ลึกซึ้งอาจเกิดขึ้นระหว่างส่วนประกอบมันเป็นเรื่องยากมากขึ้นที่จะออกกำลังกายชุดมีเหตุผลเป็นไปได้โดยการจำลอง ลักษณะสำคัญของการออกแบบฮาร์ดแวร์คล้อยตามวิธีการพิสูจน์โดยอัตโนมัติทำให้การตรวจสอบอย่างเป็นทางการได้ง่ายขึ้นที่จะแนะนำและประสิทธิผลมากขึ้น [5]. ในฐานะของ 2011, ระบบปฏิบัติการหลายคนได้รับการยืนยันอย่างเป็นทางการ: NICTA ของการรักษาความปลอดภัยแบบฝังตัว microkernel L4 ขายในเชิงพาณิชย์เป็น seL4 โดยตกลง Labs [ต้องการอ้างอิง] OSEK / VDX ตามเวลาจริงระบบปฏิบัติการกลุ่มประเทศตะวันออกโดยภาคตะวันออกของจีนมหาวิทยาลัยครู; [อ้างจำเป็น] Integrity กรีนฮิลส์ซอฟแวร์ระบบปฏิบัติการ; [อ้างจำเป็น] และ PikeOS SYSGO [6] [7]. คอมไพเลอร์ C CompCert เป็นคอมไพเลอร์มีการยืนยันอย่างเป็นทางการ C การดำเนินการส่วนใหญ่ของ ISO C.








































การแปล กรุณารอสักครู่..
ผลลัพธ์ (ไทย) 3:[สำเนา]
คัดลอก!
ไม่ต้องวุ่นวายกับ verificationism .
" การพิสูจน์ความจริงได้ " การเปลี่ยนเส้นทางที่นี่ สำหรับวิกิพีเดียนโยบายดูวิกิพีเดีย : การพิสูจน์ความจริงได้

บทความนี้ต้องการเพิ่มเติม citations สำหรับการตรวจสอบ กรุณาช่วยปรับปรุงบทความนี้ได้โดยเพิ่มแหล่งอ้างอิงที่น่าเชื่อถือ ภาษาไทยวัสดุอาจจะท้าทายและลบออก ( มิถุนายน 2009 )
ในบริบทของระบบฮาร์ดแวร์และซอฟต์แวร์ระบบตรวจสอบการกระทำทารุณที่พิสูจน์ความถูกต้องของขั้นตอนวิธี หรือมีพื้นฐานระบบด้วยความเคารพบางอย่างเป็นทางการสเปคหรือคุณสมบัติ การใช้วิธีการทางคณิตศาสตร์ [ 1 ]

อย่างเป็นทางการการตรวจสอบจะเป็นประโยชน์ในการพิสูจน์ความถูกต้องของระบบเช่นการเข้ารหัสโปรโตคอลชนิดวงจรวงจรดิจิตอลที่มีหน่วยความจำภายในและซอฟต์แวร์แสดงเป็นรหัสที่มา

การตรวจสอบของระบบเหล่านี้จะกระทำโดยการให้หลักฐานอย่างเป็นทางการในนามธรรม แบบจำลองทางคณิตศาสตร์ของระบบ การติดต่อ ระหว่างแบบจำลองทางคณิตศาสตร์และลักษณะของระบบหรือที่เรียกกันโดยการก่อสร้าง ตัวอย่างของวัตถุทางคณิตศาสตร์มักจะใช้แบบจำลองระบบ : เครื่องรัฐจำกัดที่มีการเปลี่ยนระบบทฤษฎีเพทริเน็ตหมดเวลาออโตมาตาแบบจำกัด พีชคณิตอรรถศาสตร์ของภาษาโปรแกรมกระบวนการที่เป็นทางการ เช่น ความหมาย การดำเนินงาน denotational ความหมาย ความหมายเชิงสัจพจน์และตรรกะฮอร์ [ 2 ]

เนื้อหา [ ซ่อน ]
1 แนวทางการตรวจสอบ
1.1 อย่างเป็นทางการ ตรวจสอบสอบและการตรวจสอบความสมเหตุสมผลของซอฟต์แวร์
2
3
4 เห็นอุตสาหกรรมใช้ ยังอ้างอิง

5แนวทางการตรวจสอบอย่างเป็นทางการ [ แก้ไข ]
วิธีการหนึ่งและสร้างเป็นแบบจำลองการตรวจสอบซึ่งประกอบด้วยการสำรวจอย่างเป็นระบบครบถ้วนสมบูรณ์ของการใช้แบบจำลองทางคณิตศาสตร์ ( นี้เป็นไปได้สำหรับรุ่น จำกัด แต่ยังสำหรับรุ่นที่เซตอนันต์อนันต์บางรัฐสามารถได้อย่างมีประสิทธิภาพแทนการนำโดยใช้นามธรรม หรือประโยชน์ของความสมมาตร )นี้มักจะประกอบด้วยการสำรวจสภาพและการเปลี่ยนแปลงในรูปแบบ โดยใช้สมาร์ทและโดเมนเทคนิคนามธรรมเฉพาะการพิจารณากลุ่มทั้งหมดของสหรัฐฯ ในปฏิบัติการเดียว และลดเวลาในการคำนวณ เทคนิคการใช้งาน ได้แก่ สภาพพื้นที่ สภาพพื้นที่ การใช้สัญลักษณ์ การตีความ โดยจำลองการนามธรรมสัญลักษณ์[ อ้างอิงที่จำเป็น ] คุณสมบัติที่จะตรวจสอบ มักอธิบายในลักษณะชั่วคราว เช่น ตรรกะ และเชิงเส้น ( LTL ) หรือการคำนวณต้นไม้ตรรกะ ( ซีทีแอล ) ประโยชน์ที่ดีของการตรวจสอบรูปแบบก็คือว่ามันมักจะเป็นอย่างอัตโนมัติ ข้อเสียเปรียบหลักของมันคือว่ามันไม่ได้ในระดับทั่วไปกับระบบขนาดใหญ่ รูปแบบสัญลักษณ์มักจะมี จำกัด ไม่กี่ร้อย บิต ของรัฐในขณะที่รัฐต้องชัดเจน แจงรัฐพื้นที่การสํารวจจะค่อนข้างเล็ก แบบ

อีกวิธีหนึ่งคือการตรวจสอบ ประกอบด้วยการสร้างจากระบบและคุณสมบัติของมัน ( และอาจบันทึกย่ออื่น ๆคอลเลกชันของพิสูจน์ทางคณิตศาสตร์ตามความจริงซึ่งบ่งบอกถึงโครงสร้างของระบบสเปคของและการปฏิบัติหน้าที่เหล่านี้โดยใช้ทฤษฎีบท provers โต้ตอบ ( เช่น จิต acl2 , อิซาเบล , หรือ , คุณภาพ ) , provers ทฤษฎีบทอัตโนมัติหรือโมดูโล่ทฤษฎีความสอดคล้อง ( SMT ) แก้ . วิธีการนี้มีข้อเสียที่มักจะต้องให้ผู้ใช้เข้าใจในรายละเอียดว่าระบบทำงานได้อย่างถูกต้อง และเพื่อถ่ายทอดข้อมูลนี้ให้ระบบการตรวจสอบทั้งในรูปแบบของลำดับของทฤษฎีที่จะพิสูจน์หรือในรูปแบบของการกำหนดองค์ประกอบของระบบ ( เช่นฟังก์ชันหรือกระบวนงาน ) และบางที subcomponents ( เช่นลูปหรือโครงสร้างข้อมูล )

อย่างเป็นทางการการตรวจสอบซอฟต์แวร์ [ แก้ไข ]
อย่างเป็นทางการของโปรแกรมซอฟต์แวร์ที่เกี่ยวข้องกับการตรวจสอบพิสูจน์ว่าโปรแกรมตรงตามสเปคอย่างเป็นทางการของ พฤติกรรมของพื้นที่ของการตรวจสอบ รวมถึงการตรวจสอบแบบนิรนัย ( ดูข้างต้น ) , แปลบทคัดย่อ , อัตโนมัติระบบการพิสูจน์ทฤษฎีบท ประเภท วิธีการทางการ และน้ำหนักเบา ประเภทของสัญญาที่ใช้วิธีการตรวจสอบ dependently พิมพ์โปรแกรมซึ่งในประเภทของฟังก์ชันรวม ( อย่างน้อยส่วนหนึ่งของฟังก์ชันเหล่านั้น ) รายละเอียดและประเภทของการตรวจสอบรหัสสร้างความถูกต้องของกับข้อมูลเหล่านั้น แนะนำอย่างเต็มที่ dependently พิมพ์สนับสนุนภาษาแบบการตรวจสอบเป็นกรณีพิเศษ อีกวิธี คือการเสริม

โปรแกรมซึ่งในรหัสที่มีประสิทธิภาพผลิตจากหน้าที่กำหนดโดยชุดของความถูกต้องรักษาขั้นตอนตัวอย่างของวิธีการนี้ คือ meertens นกแบบ และวิธีการนี้สามารถมองเห็นเป็นอีกรูปแบบหนึ่งของความถูกต้อง โดยการก่อสร้าง

เทคนิคเหล่านี้สามารถเสียง หมายถึง การตรวจสอบคุณสมบัติสามารถตรรกะอนุมานจากความหมาย หรือคนวิกลจริต ซึ่งหมายความ ว่า ไม่มีรับประกันเทคนิคเสียงผลผลิตผลเพียงครั้งเดียว มันมีการค้นหาพื้นที่ทั้งหมดของความเป็นไปได้ ตัวอย่างของเทคนิคไม่ปลอดภัยเป็นหนึ่งที่ค้นหาเฉพาะบางส่วนของความเป็นไปได้ สำหรับอินสแตนซ์เท่านั้นจำนวนเต็มไปจำนวนหนึ่ง และให้ " " ดีพอ " เทคนิคยังสามารถ decidable , ความหมายของขั้นตอนวิธีการใช้งานรับประกันเพื่อยุติกับคำตอบหรือ undecidable หมายความ ว่า พวกเขาอาจไม่ยุติ เพราะพวกเขาถูกล้อมรอบ เทคนิคผิดปกติมักจะมีแนวโน้มที่จะเป็น decidable กว่าเสียง . .

สอบและการตรวจสอบความสมเหตุสมผล [ แก้ไข ]
บทความหลัก : การตรวจสอบและการตรวจสอบการตรวจสอบ
แง่มุมหนึ่งของการทดสอบฟิตเนสเป็นผลิตภัณฑ์สำหรับวัตถุประสงค์ การตรวจสอบเป็นลักษณะแบบมักหมายถึงการรวมกระบวนการตรวจสอบเป็น V

V &ตรวจสอบ : " เราพยายามที่จะทำให้สิ่งที่ถูกต้อง ? คือ เป็นผลิตภัณฑ์ที่ระบุถึงความต้องการที่แท้จริงของผู้ใช้ ?
ยืนยัน : " เราทำในสิ่งที่เรากำลังพยายามทำ ? คือ ผลิตภัณฑ์ที่ไม่เป็นไปตามข้อกำหนด ?
กระบวนการตรวจสอบที่ประกอบด้วยโครงสร้างแบบไดนามิก / สถิต และพฤติกรรมด้าน เช่นสำหรับผลิตภัณฑ์ซอฟต์แวร์ที่สามารถตรวจสอบรหัสแหล่งที่มา ( คงที่ ) และใช้กับกรณีทดสอบที่เฉพาะเจาะจง ( แบบไดนามิก ) การตรวจสอบมักจะสามารถทำได้เฉพาะแบบไดนามิก เช่น ผลิตภัณฑ์มีการทดสอบโดยใส่ผ่านการใช้ทั่วไปและพิเศษ ( " มันน่าพอใจตอบสนองทุกกรณีใช้ ? " )

ใช้อุตสาหกรรม [ แก้ไข ]
การเติบโตในความซับซ้อนของการออกแบบเพิ่มความสำคัญของเทคนิคการตรวจสอบอย่างเป็นทางการในอุตสาหกรรมฮาร์ดแวร์ [ 3 ] [ 4 ] ปัจจุบัน อย่างเป็นทางการ การตรวจสอบจะถูกใช้โดยส่วนใหญ่หรือทั้งหมด [ อ้างอิงที่จำเป็น ] บริษัทฮาร์ดแวร์ชั้นนำ แต่การใช้งานในอุตสาหกรรมซอฟต์แวร์ที่ยังอิดโรย . [ อ้างอิงที่จำเป็น ] นี้สามารถนำมาประกอบกับมากขึ้นความต้องการในอุตสาหกรรมฮาร์ดแวร์ที่สำคัญข้อผิดพลาดมากกว่าเชิงพาณิชย์ . อ้างอิง [ จำเป็น ] เพราะศักยภาพของปฏิสัมพันธ์ระหว่างองค์ประกอบ สีสัน มันเป็นเรื่องยากที่จะเพิ่มมากขึ้นการออกกำลังกายชุดมีเหตุผลของความเป็นไปได้โดยจำลอง ลักษณะที่สำคัญของการออกแบบฮาร์ดแวร์จะซูฮกให้อัตโนมัติวิธีการพิสูจน์ , ทำให้การตรวจสอบง่ายขึ้น แนะนำและเป็นทางการมากขึ้น . [ 5 ]

เป็น 2011 ,หลายระบบปฏิบัติการได้รับการยืนยันอย่างเป็นทางการ : nicta L4 ไมโครเคอร์เนลที่มีขายในเชิงพาณิชย์เป็น sel4 โดยตกลง [ อ้างอิงที่จำเป็น ] osek Labs ; / vdx ใช้ระบบปฏิบัติการแบบเวลาจริง orientais โดยมหาวิทยาลัยจีนตะวันออก ; [ อ้างอิงที่จำเป็น ] เนินเขาสีเขียวของซอฟต์แวร์ของระบบปฏิบัติการ อ้างอิง [ จำเป็น ] และ sysgo เป็น pikeos [ 6 ] [ 7 ]

การ compcert C เป็นโปรแกรมอย่างเป็นทางการยืนยันการใช้ตัวแปลภาษาซีส่วนใหญ่ของ ISO C
การแปล กรุณารอสักครู่..
 
ภาษาอื่น ๆ
การสนับสนุนเครื่องมือแปลภาษา: กรีก, กันนาดา, กาลิเชียน, คลิงออน, คอร์สิกา, คาซัค, คาตาลัน, คินยารวันดา, คีร์กิซ, คุชราต, จอร์เจีย, จีน, จีนดั้งเดิม, ชวา, ชิเชวา, ซามัว, ซีบัวโน, ซุนดา, ซูลู, ญี่ปุ่น, ดัตช์, ตรวจหาภาษา, ตุรกี, ทมิฬ, ทาจิก, ทาทาร์, นอร์เวย์, บอสเนีย, บัลแกเรีย, บาสก์, ปัญจาป, ฝรั่งเศส, พาชตู, ฟริเชียน, ฟินแลนด์, ฟิลิปปินส์, ภาษาอินโดนีเซี, มองโกเลีย, มัลทีส, มาซีโดเนีย, มาราฐี, มาลากาซี, มาลายาลัม, มาเลย์, ม้ง, ยิดดิช, ยูเครน, รัสเซีย, ละติน, ลักเซมเบิร์ก, ลัตเวีย, ลาว, ลิทัวเนีย, สวาฮิลี, สวีเดน, สิงหล, สินธี, สเปน, สโลวัก, สโลวีเนีย, อังกฤษ, อัมฮาริก, อาร์เซอร์ไบจัน, อาร์เมเนีย, อาหรับ, อิกโบ, อิตาลี, อุยกูร์, อุสเบกิสถาน, อูรดู, ฮังการี, ฮัวซา, ฮาวาย, ฮินดี, ฮีบรู, เกลิกสกอต, เกาหลี, เขมร, เคิร์ด, เช็ก, เซอร์เบียน, เซโซโท, เดนมาร์ก, เตลูกู, เติร์กเมน, เนปาล, เบงกอล, เบลารุส, เปอร์เซีย, เมารี, เมียนมา (พม่า), เยอรมัน, เวลส์, เวียดนาม, เอสเปอแรนโต, เอสโทเนีย, เฮติครีโอล, แอฟริกา, แอลเบเนีย, โคซา, โครเอเชีย, โชนา, โซมาลี, โปรตุเกส, โปแลนด์, โยรูบา, โรมาเนีย, โอเดีย (โอริยา), ไทย, ไอซ์แลนด์, ไอร์แลนด์, การแปลภาษา.

Copyright ©2026 I Love Translation. All reserved.

E-mail: