Tools and Behavioral Abstraction A Direction for Software - - PowerPoint PPT Presentation

tools and behavioral abstraction
SMART_READER_LITE
LIVE PREVIEW

Tools and Behavioral Abstraction A Direction for Software - - PowerPoint PPT Presentation

Tools and Behavioral Abstraction A Direction for Software Engineering K. Rustan M. Leino Research in Software Engineering (RiSE) Microsoft Research, Redmond Future of Software Engineering symposium ETH, Zurich, Switzerland 23 November 2010


slide-1
SLIDE 1

Tools and Behavioral Abstraction

A Direction for Software Engineering

  • K. Rustan M. Leino

Research in Software Engineering (RiSE) Microsoft Research, Redmond

Future of Software Engineering symposium ETH, Zurich, Switzerland 23 November 2010

slide-2
SLIDE 2

with the right features that is easy to use that is hard to misuse

accidentally maliciously

can be developed effectively

  • n schedule

free of defects

can be maintained

to add features to adapt to new environments to preserve/transfer knowledge between developers

slide-3
SLIDE 3

Big changes in recent decades

and in decades to come

Tools help developers…

find simple errors, like type errors build programs

  • ptimize programs

keep track of program versions run tests symbolically debug generate tests semantically analyze programs

slide-4
SLIDE 4

Run time Compile time Design time  closer to the time of program construction

slide-5
SLIDE 5

Karatsuba, BinarySearch, Schorr-Waite

slide-6
SLIDE 6

try, test, fix

slide-7
SLIDE 7

try, verify, fix

slide-8
SLIDE 8

Microsoft applies lots of semantic tools

…to already written software. For programs being constructed, less so.

slide-9
SLIDE 9

Need to: Have motivation

Must have vested interest in correctness

Understand concepts

Teach concepts using tools!

Understand tools

slide-10
SLIDE 10

Our tools can understand our programs but we don’t understand our tools! ,

slide-11
SLIDE 11
  • 0. Auto-active verification
  • 1. Verification debugging
  • 2. Short turn-around time
slide-12
SLIDE 12

Formula

slide-13
SLIDE 13

Between fully automatic and interactive verification Automatic reasoning engine Interaction at the level of the source

slide-14
SLIDE 14

MathTheorem

slide-15
SLIDE 15

Deciphering error messages can be difficult

Program errors Specification errors or omissions Misunderstanding constructs Tool incompleteness

slide-16
SLIDE 16

Verification debugging

Insert

slide-17
SLIDE 17

Time to get a failed proof must be short (Time to re-run a proof does not matter)

slide-18
SLIDE 18

Find specifications for code

Really?

Code from specifications

slide-19
SLIDE 19

Duplicates

slide-20
SLIDE 20

Abstraction by occlusion

Procedural abstraction Data abstraction Parameterization

Behavioral abstraction

slide-21
SLIDE 21

Description at multiple stages Multiple forms of descriptions Change of representation Executable code Ceaseless analysis Automation

slide-22
SLIDE 22

User interface Early simulation Prioritizing analysis Allowing informality Refinements into dynamically allocated state Supporting program evolution

slide-23
SLIDE 23

Ingredients of the future of software engineering

More tools Behavioral abstraction Systems for systematic development