Dichotomies: Software Research vs Practice Peter Lee Carnegie Mellon University HCMDSS Workshop, June 2005 Peter Lee Carnegie Mellon University HCMDSS.

Slides:



Advertisements
Similar presentations
Automated Theorem Proving Lecture 1. Program verification is undecidable! Given program P and specification S, does P satisfy S?
Advertisements

The ideal of program correctness Tony Hoare CAVSeattleAugust 2006.
Computer Science CPSC 322 Lecture 25 Top Down Proof Procedure (Ch 5.2.2)
Omnibus: A clean language and supporting tool for integrating different assertion-based verification techniques Thomas Wilson, Savi Maharaj, Robert G.
Certified Typechecking in Foundational Certified Code Systems Susmit Sarkar Carnegie Mellon University.
Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
Foundational Certified Code in a Metalogical Framework Karl Crary and Susmit Sarkar Carnegie Mellon University.
March 4, 2005Susmit Sarkar 1 A Cost-Effective Foundational Certified Code System Susmit Sarkar Thesis Proposal.
The ideal of program correctness Tony Hoare BudapestSeptember 2006.
HCMDSS Breakout Session Requirements Specifications for Certifiable Design Peter Lee, George Pappas, Peter Coronado, Robert Galloway, Purush Iyer, Robert.
The Design and Implementation of a Certifying Compiler [Necula, Lee] A Certifying Compiler for Java [Necula, Lee et al] David W. Hill CSCI
Code-Carrying Proofs Aytekin Vargun Rensselaer Polytechnic Institute.
Engineering Judgement Martyn Thomas Visiting Professor of Software Engineering Oxford University Computing Laboratory
Formal Methods in Software Engineering Credit Hours: 3+0 By: Qaisar Javaid Assistant Professor Formal Methods in Software Engineering1.
1 Knowledge, Action and Systems Some emerging foundational issues in Computing … Can Information Studies Help? Eric Yu Faculty of Information Studies University.
Chapter 1: An Introduction to Computer Science Invitation to Computer Science, C++ Version, Third Edition.
Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.
Programmability with Proof-Carrying Code George C. Necula University of California Berkeley Peter Lee Carnegie Mellon University.
Software Requirements
Copyright © 2006 The McGraw-Hill Companies, Inc. Programming Languages 2nd edition Tucker and Noonan Chapter 18 Program Correctness To treat programming.
1 Introduction to Formal Methods Introduction to Formal Methods; Preconditions, Postconditions, and Invariants Revisited; Z language Example (Pressman)
High Confidence Medical Device Software and Systems: A programming languages and tools perspective Mark P Jones Department of Computer Science & Electrical.
A Tale of Three Disciplines and a Revolution Name: Parameswara reddy Course: CS551 Instructor: Yugi lee.
School of Computer ScienceG53FSP Formal Specification1 Dr. Rong Qu Introduction to Formal Specification
1 The Problem o Fluid software cannot be trusted to behave as advertised unknown origin (must be assumed to be malicious) known origin (can be erroneous.
Extensible Code Verification Kun Gao (Senior EECS) with Professor George Necula, Evan Chang, Robert Schneck, Adam Chlipala An individual receives code.
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
The IMRaD Structure Dr. Lam TECM Why is this important? Your project, duh Consumers of research You form opinions based on research (whether you.
1 ICS 122: Software Specification and Quality Engineering Spring 2002Lecturers: H. Muccini and D. J. Richardson Lecture 13: Summary The three aspects:
The IMRaD Structure Dr. Lam TECM Why is this important? Your project, duh Consumers of research You form opinions based on research (whether you.
GENERAL CONCEPTS OF OOPS INTRODUCTION With rapidly changing world and highly competitive and versatile nature of industry, the operations are becoming.
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
Overview of Computing. Computer Science What is computer science? The systematic study of computing systems and computation. Contains theories for understanding.
Course: Software Engineering © Alessandra RussoUnit 1 - Introduction, slide Number 1 Unit 1: Introduction Course: C525 Software Engineering Lecturer: Alessandra.
Team Skill 6: Building the Right System From Use Cases to Implementation (25)
(C) P. H. Welch Software Engineering Chapter 3.
 Dr. Syed Noman Hasany.  Review of known methodologies  Analysis of software requirements  Real-time software  Software cost, quality, testing and.
Proof Carrying Code Zhiwei Lin. Outline Proof-Carrying Code The Design and Implementation of a Certifying Compiler A Proof – Carrying Code Architecture.
Overview of Formal Methods. Topics Introduction and terminology FM and Software Engineering Applications of FM Propositional and Predicate Logic Program.
WSMX Execution Semantics Executable Software Specification Eyal Oren DERI
Declarative vs Procedural Programming  Procedural programming requires that – the programmer tell the computer what to do. That is, how to get the output.
White-box Software Isolation with Fully Automated Black- box Proofs Jiaqi Tan Rajeev Gandhi, Priya Narasimhan PARALLEL DATA LABORATORY Carnegie Mellon.
© Andrew IrelandDependable Systems Group On the Scalability of Proof Carrying Code for Software Certification Andrew Ireland School of Mathematical & Computer.
3.2 Semantics. 2 Semantics Attribute Grammars The Meanings of Programs: Semantics Sebesta Chapter 3.
1 Theme 2: Thinking Like a Tester, Continued. 2 Thinking Like a Tester Lesson 20: “Testing requires inference, not just comparison of output to expected.
Formal Methods.
Data Structures and Algorithms Dr. Tehseen Zia Assistant Professor Dept. Computer Science and IT University of Sargodha Lecture 1.
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
From Hoare Logic to Matching Logic Reachability Grigore Rosu and Andrei Stefanescu University of Illinois, USA.
SAFE KERNEL EXTENSIONS WITHOUT RUN-TIME CHECKING George C. Necula Peter Lee Carnegie Mellon U.
Formal Methods in Software Engineering1 Today’s Agenda  Mailing list  Syllabus  Introduction.
Requirements Engineering Methods for Requirements Engineering Lecture-31.
Software Engineering, COMP201 Slide 1 Software Requirements BY M D ACHARYA Dept of Computer Science.
Lectures 2 & 3: Software Process Models Neelam Gupta.
Ch  ICT is used in many ways in the provision and management of healthcare services:  Hospital administration  Medical training  Maintenance.
Testing Integral part of the software development process.
ESFOR Panel Application Developers’ Wish Lists for Automated Theorem Provers.
CENG 424-Logic for CS Introduction Based on the Lecture Notes of Konstantin Korovin, Valentin Goranko, Russel and Norvig, and Michael Genesereth.
Classifications of Software Requirements
Chapter 5 – Requirements Engineering
Creating high confidence, highly dependable, critical software
State your reasons or how to keep proofs while optimizing code
Programming Languages 2nd edition Tucker and Noonan
Creating high confidence, highly dependable, critical software
Principles of Programming Languages
Department of Computer Science Abdul Wali Khan University Mardan
Towards a Unified Theory of Operational and Axiomatic Semantics
Programming Languages 2nd edition Tucker and Noonan
Presentation transcript:

Dichotomies: Software Research vs Practice Peter Lee Carnegie Mellon University HCMDSS Workshop, June 2005 Peter Lee Carnegie Mellon University HCMDSS Workshop, June 2005

“We are like the barber-surgeons of earlier ages, who prided themselves on the sharpness of their knives and the speed with which they dispatched their duty  either shaving a beard or amputating a limb. Imagine the dismay with which they greeted some ivory-towered academic who told them that the practice of surgery should be based on a long and detailed study of human anatomy, on familiarity with surgical procedures pioneered by great doctors of the past, and that it should be carried out only in a strictly controlled bug-free environment, far removed from the hair and dust of the normal barber’s shop.”  Sir Tony Hoare

Normal vs radical design Many of the most promising research ideas today require re-inventing (parts of) the world.  M. Jackson

“It’s hard to read through a book on the principles of magic without glancing at the cover periodically to make sure it isn’t a book on software design.”  Bruce Tognazzini

Dichotomies State of research vs practice radical vs normal design inspiration vs process verification/analysis vs testing “shall not” vs “shall” specifications intrinsic vs extrinsic properties State of research vs practice radical vs normal design inspiration vs process verification/analysis vs testing “shall not” vs “shall” specifications intrinsic vs extrinsic properties

Some “radical” concepts Use of formal (usually mathematics or logic based) specification languages Systematic derivation of implementations from specifications, or else formal analysis/verification of implementations against specifications Emphasis on provable soundness of methods Use of formal (usually mathematics or logic based) specification languages Systematic derivation of implementations from specifications, or else formal analysis/verification of implementations against specifications Emphasis on provable soundness of methods

Example: PCC Define possible machine states S and semantics Step(S) Define the “safety policy” on states, SP(S) Define safe execution: Safe(S) = ∀ n. SP(Step n (S)) Prove safety, P : Safe(S) Deliver proof-carrying code, (S 0, P) Define possible machine states S and semantics Step(S) Define the “safety policy” on states, SP(S) Define safe execution: Safe(S) = ∀ n. SP(Step n (S)) Prove safety, P : Safe(S) Deliver proof-carrying code, (S 0, P)

Implications Formal specification involves inspiration and technology, not just carefully managed software process Verification/derivation sometimes entails use of “radical” programming languages and specially- trained programmers Provable soundness implies conservatism, either less ambitious programs/components or theorems Formal specification involves inspiration and technology, not just carefully managed software process Verification/derivation sometimes entails use of “radical” programming languages and specially- trained programmers Provable soundness implies conservatism, either less ambitious programs/components or theorems

“If you have ‘process’ without ‘inspiration,’ all you end up with is well-documented crap.”  John C. Sommerer

Bridging the radical and normal In recent years, major advances in type theory, model checking, code certification, and automated theorem proving have reinvigorated interest in practical applications SLAM, Praxis, ESC, PCC,... Potentially lots of low-hanging fruit in the area of medical device software Potentially also a context for fundamental (less directly applied) research In recent years, major advances in type theory, model checking, code certification, and automated theorem proving have reinvigorated interest in practical applications SLAM, Praxis, ESC, PCC,... Potentially lots of low-hanging fruit in the area of medical device software Potentially also a context for fundamental (less directly applied) research

Medical devices Medical devices are interesting: many have yet to be invented, and hence re- invention of the software technology may be more of a possibility their embedded nature can make them smaller, less ambitious in some design requirements, and hence more susceptible to radical methods they have to work correctly, and so perhaps in some cases there is no choice Medical devices are interesting: many have yet to be invented, and hence re- invention of the software technology may be more of a possibility their embedded nature can make them smaller, less ambitious in some design requirements, and hence more susceptible to radical methods they have to work correctly, and so perhaps in some cases there is no choice

Dichotomies in specifications How we think about specifying our systems can have powerful consequences Example: Current practice is based primarily on “shall” statements completeness? missing behavior in normal vs failure modes missing “shall not” statements much of the “low-hanging fruit” is in tools and methods for verifying “shall not” statements How we think about specifying our systems can have powerful consequences Example: Current practice is based primarily on “shall” statements completeness? missing behavior in normal vs failure modes missing “shall not” statements much of the “low-hanging fruit” is in tools and methods for verifying “shall not” statements

Intrinsic vs extrinsic properties Most of the research on radical methods today focuses on intrinsic properties of software e.g., “this program shall not instruct the pump to give more than 2 doses of insulin per day” But as a practical / engineering matter, we need also to understand the extrinsic properties e.g., “this device will not kill the patient through an overdose of insulin” Most of the research on radical methods today focuses on intrinsic properties of software e.g., “this program shall not instruct the pump to give more than 2 doses of insulin per day” But as a practical / engineering matter, we need also to understand the extrinsic properties e.g., “this device will not kill the patient through an overdose of insulin”

Extrinsic properties Intrinsic properties are extremely powerful, providing what amounts to an “atomic” or “genomic” view of software But we may need, also, a science of the extrinsic, for much the same reason we need the laws of thermodynamics [Analogy due to Mary Shaw] This is particularly important in future medical devices, which will need to work in networked environments, with knowledge of human system Intrinsic properties are extremely powerful, providing what amounts to an “atomic” or “genomic” view of software But we may need, also, a science of the extrinsic, for much the same reason we need the laws of thermodynamics [Analogy due to Mary Shaw] This is particularly important in future medical devices, which will need to work in networked environments, with knowledge of human system

Summary High confidence software requires radical concepts, and this has been the primary focus of much of today’s most important research Medical device software may be a good context for bridging the dichotomy between radical and normal software development In addition to its traditional focus on intrinsic properties of software, a science of the extrinsic should also be considered High confidence software requires radical concepts, and this has been the primary focus of much of today’s most important research Medical device software may be a good context for bridging the dichotomy between radical and normal software development In addition to its traditional focus on intrinsic properties of software, a science of the extrinsic should also be considered