Daniel jackson & sarfraz khurshid lcs retreat ·martha’s vineyard · june 2k unintentional naming.

Slides:



Advertisements
Similar presentations
Challenges in increasing tool support for programming K. Rustan M. Leino Microsoft Research, Redmond, WA, USA 23 Sep 2004 ICTAC Guiyang, Guizhou, PRC joint.
Advertisements

Delta Debugging and Model Checkers for fault localization
Introduction to Formal Methods for SW and HW Development 09: SAT Based Abstraction/Refinement in Model-Checking Roberto Sebastiani Based on work and slides.
SAT Based Abstraction/Refinement in Model-Checking Based on work by E. Clarke, A. Gupta, J. Kukula, O. Strichman (CAV’02)
An Introduction to the Model Verifier verds Wenhui Zhang September 15 th, 2010.
Counting the bits Analysis of Algorithms Will it run on a larger problem? When will it fail?
Xiushan Feng* ASIC Verification Nvidia Corporation Automatic Verification of Dependency 1 TM Jayanta Bhadra
1 Symbolic Execution for Model Checking and Testing Corina Păsăreanu (Kestrel) Joint work with Sarfraz Khurshid (MIT) and Willem Visser (RIACS)
1/20 Generalized Symbolic Execution for Model Checking and Testing Charngki PSWLAB Generalized Symbolic Execution for Model Checking and Testing.
Inpainting Assigment – Tips and Hints Outline how to design a good test plan selection of dimensions to test along selection of values for each dimension.
Logic as the lingua franca of software verification Ken McMillan Microsoft Research TexPoint fonts used in EMF: A A A A A Joint work with Andrey Rybalchenko.
Introduction To System Analysis and Design
1 A UML Class Diagram Analyzer Tiago Massoni Rohit Gheyi Paulo Borba Software Productivity Group Informatics Center – UFPE October 2004.
Constraint Logic Programming Ryan Kinworthy. Overview Introduction Logic Programming LP as a constraint programming language Constraint Logic Programming.
1 CS 177 Week 12 Recitation Slides Running Time and Performance.
Identifying "Good" Architectural Design Alternatives with Multi-Objective Optimization Strategies By Lars Grunske Presented by Robert Dannels.
Visual Web Information Extraction With Lixto Robert Baumgartner Sergio Flesca Georg Gottlob.
Computing Over­Approximations with Bounded Model Checking Daniel Kroening ETH Zürich.
Introduction : ‘Skoll: Distributed Continuous Quality Assurance’ Morimichi Nishigaki.
CS 267: Automated Verification Lecture 13: Bounded Model Checking Instructor: Tevfik Bultan.
Self-Organizing Adaptive Networks Hari Balakrishnan MIT Laboratory for Computer Science
Introduction To System Analysis and design
Abstract Types Defined as Classes of Variables Jeffrey Smith, Vincent Fumo, Richard Bruno.
An Introduction to Programming and Object-Oriented Design Using Java By Jaime Niño and Fred Hosch Slides by Darwin Baines and Robert Burton.
Lesson 1b: Computer Systems and Program Development CPS118.
Introduction To System Analysis and Design
Design of a real time strategy game with a genetic AI By Bharat Ponnaluri.
Chapter 9: Rules and Expert Systems Lora Streeter.
Inferring Specifications to Detect Errors in Code Mana Taghdiri Presented by: Robert Seater MIT Computer Science & AI Lab.
Lecture Topics: 11/17 Page tables TLBs Virtual memory flat page tables
Predicate Abstraction of ANSI-C Programs Using SAT By Edmund Clarke, Daniel Kroening, Natalia Sharygina, Karen Yorav Presented by Yunho Kim Provable Software.
ReiserFS Hans Reiser
Analyzing relational logic Daniel Jackson, MIT WG 2.3 · Newcastle April 2000.
1 CS 177 Week 12 Recitation Slides Running Time and Performance.
1. 2 Preface In the time since the 1986 edition of this book, the world of compiler design has changed significantly 3.
“Isolating Failure Causes through Test Case Generation “ Jeremias Rößler Gordon Fraser Andreas Zeller Alessandro Orso Presented by John-Paul Ore.
Shape analysis with SAT Daniel Jackson & Mandana Vaziri Software Design Group, MIT LCS Schloss Ringberg · February 21, 2000.
Scientific Debugging. Errors in Software Errors are unexpected behaviors or outputs in programs As long as software is developed by humans, it will contain.
Technical Interviews CONDUCTING TECHNICAL INTERVIEWS 1.CREATING OBJECTIVES Hire the Best Technical Talent Technical Skills are Critical Technical Skills.
Daniel jackson static analysis symposium ·santa barbara · june 2k logic,model s& analysis.
Chapter 1 OBJECT-ORIENTED ANALYSIS AND DESIGN Objectives Describe the book goals and scope Define OOA/D (Object-Oriented Analysis and Design) Illustrate.
Methods of Software Development Karl Lieberherr Spring 2007.
Conceptualization Relational Model Incomplete Relations Indirect Concept Reflection Entity-Relationship Model Incomplete Relations Two Ways of Concept.
The Alloy Analyzer June 14 th Alloy small modelling notation that can express a useful range of structural properties is easy to read and write.
CompSci On the Limits of Computing  Reasons for Failure 1. Runs too long o Real time requirements o Predicting yesterday's weather 2. Non-computable.
Design and implementation of an intentional naming system William Adjie-WinotoElliot Schwartz Hari BalakrishnanJeremy Lilley MIT Laboratory for Computer.
Object Design More Design Patterns Object Constraint Language Object Design Specifying Interfaces Review Exam 2 CEN 4010 Class 18 – 11/03.
Finding bugs with a constraint solver daniel jackson. mandana vaziri mit laboratory for computer science issta 2000.
ALLOY: A Formal Methods Tool Glenn Gordon Indiana University of Pennsylvania COSC 481- Formal Methods Dr. W. Oblitey 26 April 2005.
Benjamin Unit Testing & Test-Driven Development for Mere Mortals.
Lecture 9: Query Complexity Tuesday, January 30, 2001.
Mechanisms for Requirements Driven Component Selection and Design Automation 최경석.
Design Concepts ch-8
Software Development.
Modular Alternatives to Testing
Multidimensional Access Structures
C++ coding standard suggestion… Separate reasoning from action, in every block. Hi, this talk is to suggest a rule (or guideline) to simplify C++ code.
Chapter 1 OBJECT-ORIENTED ANALYSIS AND DESIGN
The Software Development Cycle
New applications of program synthesis
课程名 编译原理 Compiling Techniques
Unit Testing & Test-Driven Development for Mere Mortals
Unit Testing & Test-Driven Development for Mere Mortals
Aspect Validation: Connecting Aspects and Formal Methods
Unit Testing & Test-Driven Development for Mere Mortals
Developing and testing enterprise Java applications
Slides based on those originally by : Parminder Jeet Kaur
The Software Development Cycle
overview today’s ideas relational databases
Presentation transcript:

daniel jackson & sarfraz khurshid lcs retreat ·martha’s vineyard · june 2k unintentional naming

2 alloy project hypothesis ·better software? base on clear & simple concepts why models? ·smaller & more flexible than code ·can analyze exhaustively alloy ·a RISC modelling notation ·for structural properties ·SAT-based analyzer elaborate model run analysis interpret results model & issues

3 architecture translate problem translate solution mapping boolean formula boolean solution SAT solver design problem result

4 intentional naming case study why INS? ·naming vital to infrastructure ·INS more powerful than Jini, COM, etc ·the Kaashoek challenge … what? ·analyzed lookup operation ·based model on SOSP paper & Java code ·a few weeks in April ·Khurshid did all the work

5 intentional naming attribute/value pairs  city: cambridge  hierarchical specs  city: cambridge, building: ne43, room: 524   service: camera, resolution: hi   service: printer, postscript: level2  lookup ·database maps spec to set of records ·query is set of specs ·lookup returns records meeting all specs

6 building camera service ne43 query n1 n0 building camera service ne43printer database tree representation n0 n1 n0

7 strategy model database & queries ·characterize by constraints ·generate samples check properties ·obvious no record returned when no attributes match ·claims “wildcards are equivalent to omissions” ·essential additions to DB don’t reduce query results discuss and refine …

8 alloy model: state model INS { domain {Attribute, Value, Record} state { Root : fixed Value! valQ : Attribute? -> Value? attQ : Value? -> Attribute valDB : Attribute? -> Value attDB : Value? -> Attribute rec : Value + -> Record lookup : Value -> Record }

9 alloy model: constraints // no cycles in query inv Q4 {no v | v in v.+nextQ} // if query and DB share a leaf value, lookup returns its records inv Lookup1 {all v | no v.attQ || no v.attDB -> v.lookup = v.rec} // adding a record doesn’t reduce results assert LookupOK7 {AddRecord -> Root.lookup in Root.lookup'}

10 checking assertions select scope run check counter? fix model slow? real? incr scope prop fails prop holds YY N N Y N 3 attrs, vals, recs

11 results 12 assertions checked ·when query is subtree, ok ·found known bugs in paper ·found bugs in fixes too ·monotonicity violated

12 counterexample type mono n1 service printer databasequery service printer type mono size A4 n1 n0 size A4

13 time & effort costs  2 weeks modelling, ~100 lines Alloy cf. 900 lines testing code  all bugs found in < 10 secs with scope of 4 2 records, 2 attrs, 3 values usually enough cf. a year of use  exhausts scope of 5 in 30 secs max space of approx 10^20 cases

14 lessons ·quick & easy prototyping ·more effective than testing ·assertions easily invented ·visualization a big help  ·model not modular ·algorithm a bit tricky ·can’t express paths

15 related experiences case studies ·microsoft COM: no encapsulation ·collaborative arrival planner: ghost planes ·PANS phone: light gets stuck other users ·alloy taught in courses at 5 universities ·case studies at: DERA, AT&T, FS, U.Southampton, Imperial, Oxford typical dimensions ·model: 20 – 200 lines ·space: 30 – 300 bits

16 helping oxygen? ·rapid experimentation ·articulating essence ·simplifying design

17 musings why does Alloy help? lazy specification refining design ideas  catching showstopper bugs modelling on the rise? ·tool as trojan horse (SDL, SPIN, SMV) ·design patterns phenomenon ·shop floor to drafting office, c.1850