80 likes | 195 Views
Tools for Producing Reliable Software: Synthesis and Analysis. Douglas R. Smith. Kestrel Institute Palo Alto, California. Industry Directions. OMG – Meta-Object Facility (MOF), Model-Driven Architecture (MDA), Abstract Syntax Tree Models (ASTM), …
E N D
Tools for Producing Reliable Software:Synthesis and Analysis Douglas R. Smith Kestrel Institute Palo Alto, California
Industry Directions • OMG – Meta-Object Facility (MOF), Model-Driven Architecture (MDA), • Abstract Syntax Tree Models (ASTM), … • Microsoft – Software Factories, Visual Studio • Design Patterns • Frameworks • SEI Software Product Lines • Aspect-Oriented Programming
Requirements Inspection andTesting actual needs versus stated requirements Verification consistency of specs Analyze Libraries of Specifications Compose Validate Specification Evolve Libraries of Design theories, Refinements, Refinement Generators Compose Refine Code Verification consistency of refinements Code Generation by Refinement
High Assurance Generative Programming • Examples • JavaCard (Kestrel) • AutoBayes (NASA Ames) • AutoFilter (NASA Ames) • Other domain-specific generators • that potentially could generate proofs: • Planware (Kestrel) • Ptolemy (UC Berkeley) • Cryptol (Galois Connections) • … Specs/Models Generate Code + proofs
Refinement: Specs CodeGenerating correct-by-construction code from specifications • Specification/Modeling languages and support • Libraries of Domain Theories • Consistency checking Specification • Libraries of Design Theories • system architectures & design patterns • algorithm theories • policy classes and enforcement mechanisms • datatype refinements • program optimization transformations • Inference support • static analysis • checking consistency • constraint propagation/solving • witness-finding • property checking • … Refinement Code
solvers, constructive theorem-provers libraries of design theories and refinement generators architectures design patterns policy enforcement mechanisms algorithm theories datatype refinements optimization transforms rational reconstruction of benchmarks participation in standardization activities Potential Contributions
Automation versus Abstraction Specware B KIDS Designware Planware AutoBayes AutoFilter Requirement Specification JavaCard Cryptol Program Specification Manual (ad-hoc refinements) Semi-automatic Automatic (domain-specific)