Datasets / Specification Editing and Discovery Assistant Project


Specification Editing and Discovery Assistant Project

Published By National Aeronautics and Space Administration

Issued más de 9 años ago

US
beta

Summary

Type of release
a one-off release of a single dataset

Data Licence
Not Applicable

Content Licence
Creative Commons CCZero

Verification
automatically awarded

Description

The project will prototype a specification editing and discovery tool (SPEEDY) for C/C++ that will assist software developers with modular formal verification tasks by - providing active user interface guidance in writing and editing software specifications, integrated into a common, open IDE (Eclipse) and - providing automated suggestions of specifications for given contexts, - built on an architecture that will unify source and machine code verification. The innovation is significant because - having machine-checkable specifications enables more automation of sound verification and less approximation in heuristic problem detection, - user interface features and underlying automation will aid all developers in generating, editing and checking specifications, and - the architecture will apply to both source code analysis alone and also to unified source and machine code verification for embedded systems. The prototype will be an extension and integration of (a) current specification languages, (b) previous Eclipse plug-ins GrammaTech has created, (c) recent research on UI aids to developers in writing specifications, (d) existing automated algorithms for suggesting specifications based on code analysis, and (e) existing tools and techniques for automatically checking logical encodings of C/C++ code and specifications. The tool will be packaged as a plug-in to Eclipse's C/C++ development environment. The result will be a tool that facilitates using formal methods by all software developers, improving efficiency and accuracy. The resulting specifications will also serve as machine-readable documentation of the software, simplifying and accelerating the task of independent V&V.