← Back to NASA Technology Projects
Specification Editing and Discovery Assistant
Completed
TRL 7 (started at 2, targeting 7)
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.
Benefits
The product will be used to assist NASA personnel in evaluating the safety and robustness properties of software in production or under review, including embedded Next-Generation avionics and space software. The product will support the needs of both software-development teams and IV&V groups. An example application is the annotation of a widely used library (e.g. the Core Flight Software library) to aid in its verification. Our first potential (NASA) adopters are GrammaTech's current NASA customers. The tool will be a natural companion to heuristic bug-finding and style-checking tools GrammaTech completed for NASA JPL (a JPL SBIR Success Story used for the Mars Science Laboratory software.
The natural market for SPEEDY is safety-critical embedded software development organizations. Such government and commercial organizations are a large part of GrammaTech's current customer base. We will initially focus our marketing efforts on specific current customers who manufacture or review avionics systems, medical devices, and other particularly safety-critical embedded systems (e.g. automotive software) – e.g., Bechtel, FDA, Halliburton, Lockheed-Martin, Honeywell. A second tier of relevant customers are development groups doing security analyses, security certification, and reverse engineering for understanding or maintenance.
Details
| Technology area | Software, Modeling, Simulation, and Information Processing > Modeling > Software Modeling and Model Checking |
| Program | Small Business Innovation Research/Small Business Tech Transfer (SBIR/STTR) |
| Lead organization | GrammaTech, Inc., Ithaca, NY |
| Start date | 2013-05-23 |
| End date | 2013-11-23 |
Project contacts
Listed on TechPort itself — the most direct way to ask about this specific project.
How to get involved
This is a mature technology (TRL 7) — the realistic path in is usually NASA's Technology Transfer Program: licensing an existing NASA patent, or a Space Act Agreement to use NASA facilities/expertise directly. NASA also runs a startup licensing program with no upfront fee for companies formed to commercialize a specific NASA technology.
None of these are guaranteed paths for this specific project — TechPort itself doesn't have an "apply" button. Reaching out to the contact(s) above with a specific question is usually the fastest way to find out what's actually open.