Agile Formal Methods Reiner H ahnle 6th International KeY - - PowerPoint PPT Presentation

agile formal methods
SMART_READER_LITE
LIVE PREVIEW

Agile Formal Methods Reiner H ahnle 6th International KeY - - PowerPoint PPT Presentation

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


slide-1
SLIDE 1

Agile Formal Methods

Reiner H¨ ahnle 6th International KeY Symposium Nomborn 15th June 2007

Agile FM KeY Workshop 2007 1 / 8

slide-2
SLIDE 2

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

slide-3
SLIDE 3

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

slide-4
SLIDE 4

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

slide-5
SLIDE 5

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

slide-6
SLIDE 6

Formal vs. Agile Methods

Most people associate Formal Methods with heavy design methods!

Agile FM KeY Workshop 2007 4 / 8

slide-7
SLIDE 7

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

slide-8
SLIDE 8

Formal and Agile Methods

Formal Methods align very well with some Agile Method Principles!

Agile FM KeY Workshop 2007 6 / 8

slide-9
SLIDE 9

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

slide-10
SLIDE 10

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

slide-11
SLIDE 11

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

slide-12
SLIDE 12

Towards an Agile Formal Method

Analyse Design Implement Generate Tests Debug Validate

slide-13
SLIDE 13

Towards an Agile Formal Method

Analyse Design Implement Generate Tests Debug Validate Formal Specify

slide-14
SLIDE 14

Towards an Agile Formal Method

Analyse Design Implement Generate Tests Debug Validate Formal Specify Generate Counter Examples

slide-15
SLIDE 15

Towards an Agile Formal Method

Analyse Design Implement Generate Tests Symbolic Execution Debugger Validate Formal Specify Generate Counter Examples

slide-16
SLIDE 16

Towards an Agile Formal Method

Analyse Design Implement Generate Tests Symbolic Execution Debugger Verify Formal Specify Generate Counter Examples

slide-17
SLIDE 17

Towards an Agile Formal Method

Analyse Design Implement Generate Tests Symbolic Execution Debugger Verify Formal Specify Generate Counter Examples Automated Generate Tests Generate Counter Examples Symbolic Execution Debugger Verify

Agile FM KeY Workshop 2007 7 / 8

slide-18
SLIDE 18

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

slide-19
SLIDE 19

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