16 - formal methods

16 - formal methods - Formal Methods There are two key...

Info iconThis preview shows pages 1–2. Sign up to view the full content.

View Full Document Right Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: Formal Methods There are two key issues when building software systems: 1. Validation are we building the right product? 2. Verification are we building the product right? Validation is done during requirements analysis with the feedback of the customer. Verification is done during testing of the product. Rigorous testing needs working code in order to run test cases. But we have also seen that even with testing we will never be able to prove the absence of bugs. Therefore, for sensitive systems, particularly where human lives are at stake we need something else => Formal Methods. A formal methods approach to software design implies writing a product specification in some formal notation such as first order logic. This in turn implies that the formal specification has a mathematical semantics or interpretation which allows us to rigorously inspect the specification for clarity (unique interpretation of each statement) and consistency (no contradictory statements). In addition, due to the mathematical nature of formal specification we can actually prove system properties to hold. For example we can formally show that a system will behave in a certain way given a particular class of inputs. This goes well beyond what test cases can do....
View Full Document

Page1 / 4

16 - formal methods - Formal Methods There are two key...

This preview shows document pages 1 - 2. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online