Progressive Model Generation for Adaptive Resilient System Software
Navy STTR FY2013A - Topic N13A-T014 ONR - Mr. Steve Sullivan - [email protected] Opens: February 25, 2013 - Closes: March 27, 2013 6:00am EST N13A-T014 TITLE: Progressive Model Generation for Adaptive Resilient System Software TECHNOLOGY AREAS: Information Systems OBJECTIVE: Develop a tool for automated and progressive model extraction for supporting automated system reasoning. DESCRIPTION: This STTR topic solicits the development of a tool which progressively and interactively extracts abstracted model for the program and program components, of programs (software) as it is being developed. The extracted model is targeted toward supporting system reasoning. Large and complex systems of software, such as the ones used by DoD, are difficult to completely verify and secure. These systems are vulnerable to compromises which take advantage of its weaknesses and flaws. As breaches and compromises have become a fact of computing life, it is important that our computing systems can adapt and operate effectively under such conditions. There is a need for a system which can continuously assess its own state/health, capabilities and limitations, and adapt to the situation, at cyber speed, toward maximizing the potential success of the missions. In the heart of such system there is a comprehensive and timely system reasoning infrastructure. A comprehensive system reasoning requires knowledge/model as a reference for observing system behavior. Ideally, each of the system components has a knowledge/model associated with it, and the aggregate of these component models constitutes the overall system knowledge/model. An effective way for acquiring these models is to progressively and interactively extract it during program development process (coding). The objective to this solicitation is to design and develop a tool which extracts the abstract knowledge/model of the program as it is being developed (coded). This software development tool should be applicable to one or more widely used programming languages, within common software development frameworks. The interactive process for in-progress extraction of knowledge/model of a program also enhances software developers� understanding and awareness of their works, and hence improving the correctness, security and robustness of the resulting code. PHASE I: Architectural analysis and design for a tool which provides automated and progressive capture of program abstraction/model for an open-source software development environment of choice. Develop a proof of concept prototype for the tool. PHASE II: Develop a full functioning prototype of a tool which performs automated and progressive capture of program abstraction/model for an open-source software development environment of choice. Demonstrate the efficacy for the tool. PHASE III: Besides supporting progressive and interactive model extraction for system reasoning, the interactive process for the in-progress extraction of knowledge/model of a program also enhances software developers� understanding and awareness of their works, and hence improving the correctness and robustness of the resulting code. For the above reason alone, this tool will be valuable for the general software developing public. It should find its role in, and can be ported into, various open-source and proprietary software development environments for enhancing the programmers� awareness of their work (code), and hence the correctness, security and robustness of the resulting software. This tool should also be applicable and portable to development environments of many different programming languages for many different application spaces, such as high performance computing, mobile devices, embedded systems, finance applications, cloud computing, the web and service oriented applications, etc. PRIVATE SECTOR COMMERCIAL POTENTIAL/DUAL-USE APPLICATIONS: Besides supporting progressive and interactive model extraction for system reasoning, the interactive process for the in-progress extraction of knowledge/model of a program also enhances software developers� understanding and awareness of their works, and hence improving the correctness and robustness of the resulting code. For the above reason alone, this tool will be valuable for the general software developing public. It should find its role in, and can be ported into, various open-source and proprietary software development environments for enhancing the programmers� awareness of their work (code), and hence the correctness, security and robustness of the resulting software. This tool should also be applicable and portable to development environments of many different programming languages for many different application spaces, such as high performance computing, mobile devices, embedded systems, finance applications, cloud computing, the web and service oriented applications, etc. REFERENCES: 2. "Program, Enhance Thyself!" � Demand-Driven Pattern-Oriented Program Enhancement http://www.cs.vt.edu/~gback/papers/autoenhance-aosd2008.pdf 3. Programmers Apprentice http://csg.csail.mit.edu/CSGArchives/memos/Memo-231.pdf 4. H.E. Shrobe, et.al., AWDRAT: A cognitive middleware system for information survivability, AI Magazine, Vol.28, No. 3, Fall 2007. 5. SBIR OSD12-IA2 Multi-Abstractions System Reasoning Infrastructure toward Achieving Adaptive Computing Systems KEYWORDS: Software development environment, code quality, automated model extraction, on-the-fly code analysis, model for system reasoning.
|