Agile Formal Methods Reiner H¨ ahnle 6th International KeY Symposium Nomborn 15th June 2007 Agile FM KeY Workshop 2007 1 / 8
Agile Methods “Agile software developmentis a conceptual framework for undertaking software engineering projects that embraces and promotes evolutionary change throughout the entire life-cycle of the project.” Agile FM KeY Workshop 2007 2 / 8
Agile Methods “Agile software developmentis a conceptual framework for undertaking software engineering projects that embraces and promotes evolutionary change throughout the entire life-cycle of the project.” Some Examples ◮ Extreme Programming (1996) ◮ Feature Driven Development (1999) Agile FM KeY Workshop 2007 2 / 8
Agile Methods “Agile software developmentis a conceptual framework for undertaking software engineering projects that embraces and promotes evolutionary change throughout the entire life-cycle of the project.” Some Examples ◮ Extreme Programming (1996) ◮ Feature Driven Development (1999) ◮ And, inevitably: Agile Unified Process (2001) Agile FM KeY Workshop 2007 2 / 8
Agile Methods: Principles Partial List of Agile Method Principles ◮ Rapid, continuous delivery of useful and working software ◮ Working software is the principal measure of progress ◮ Even late changes in requirements are welcome ◮ Regular adaptation to changing circumstances ◮ Close, daily, cooperation between business people and developers ◮ Continuous attention to technical excellence and good design ◮ Simplicity Agile FM KeY Workshop 2007 3 / 8
Formal vs. Agile Methods Most people associate Formal Methods with heavy design methods! Agile FM KeY Workshop 2007 4 / 8
Formal Methods with Agile Character Recent Formal Methods are more agile than older ones ◮ Design-by-Contract (Eiffel, JML, Spec#) ◮ Extended Static Checking based on Contracts (ESC/Java, Boogie) ◮ Automatic Test Generation (see Christoph’s talk) Agile FM KeY Workshop 2007 5 / 8
Formal and Agile Methods Formal Methods align very well with some Agile Method Principles! Agile FM KeY Workshop 2007 6 / 8
Formal and Agile Methods Formal Methods align very well with some Agile Method Principles! ◮ Rapid, continuous delivery of useful and working software ◮ Working software is the principal measure of progress Automatic test generation — Bug finding Agile FM KeY Workshop 2007 6 / 8
Formal and Agile Methods Formal Methods align very well with some Agile Method Principles! ◮ Rapid, continuous delivery of useful and working software ◮ Working software is the principal measure of progress Automatic test generation — Bug finding ◮ Continuous attention to technical excellence and good design Precise specification — Verification Agile FM KeY Workshop 2007 6 / 8
Formal and Agile Methods Formal Methods align very well with some Agile Method Principles! ◮ Rapid, continuous delivery of useful and working software ◮ Working software is the principal measure of progress Automatic test generation — Bug finding ◮ Continuous attention to technical excellence and good design Precise specification — Verification ◮ Simplicity Is a prerequisite for feasibility of verification! Agile FM KeY Workshop 2007 6 / 8
Towards an Agile Formal Method Analyse Design Implement Generate Tests Debug Validate
Towards an Agile Formal Method Formal Analyse Design Implement Specify Generate Tests Debug Validate
Towards an Agile Formal Method Formal Analyse Design Implement Specify Generate Counter Examples Generate Tests Debug Validate
Towards an Agile Formal Method Formal Analyse Design Implement Specify Generate Counter Examples Generate Tests Symbolic Execution Debugger Validate
Towards an Agile Formal Method Formal Analyse Design Implement Specify Generate Counter Examples Generate Tests Verify Symbolic Execution Debugger
Towards an Agile Formal Method Formal Analyse Design Automated Implement Specify Generate Counter Examples Generate Counter Examples Generate Tests Generate Tests Verify Verify Symbolic Execution Debugger Symbolic Execution Debugger Agile FM KeY Workshop 2007 7 / 8
Agile Formal Methods: Prerequisites ◮ Tight integration into one tool, preferably Eclipse ◮ source code/specification editor ◮ test generation ◮ counter example generation ◮ symbolic execution debugging ◮ verification ◮ High degree of automation Full automation for everything but verification ◮ Full coverage of target language Agile FM KeY Workshop 2007 8 / 8
Agile Formal Methods: Prerequisites ◮ Tight integration into one tool, preferably Eclipse ◮ source code/specification editor ◮ test generation ◮ counter example generation ◮ symbolic execution debugging ◮ verification ◮ High degree of automation Full automation for everything but verification ◮ Full coverage of target language KeY seems very suitable to achieve this! Agile FM KeY Workshop 2007 8 / 8
Recommend
More recommend