80 likes | 199 Vues
This comprehensive work by Douglas R. Smith from Kestrel Institute focuses on advanced tools and methodologies to enhance software reliability. Covering topics like Meta-Object Facility (MOF), Model-Driven Architecture (MDA), and Software Factories, the text delves into design patterns, aspect-oriented programming, and specification analysis. It provides insights into verification, refinement, and consistency of requirements, alongside examples like JavaCard and AutoFilter. A must-read for software engineers and researchers aiming at high assurance in software development.
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)