Refactor++ Software Engineering Tool

Award Information
Agency: Department of Energy
Branch: N/A
Contract: DE-FG02-11ER90159
Agency Tracking Number: 97658
Amount: $149,869.00
Phase: Phase I
Program: SBIR
Awards Year: 2011
Solicitation Year: 2011
Solicitation Topic Code: 62 c
Solicitation Number: DE-FOA-0000413
Small Business Information
13171 Pond Springs Road, Austin, TX, 78729-7012
DUNS: 884365610
HUBZone Owned: N
Woman Owned: N
Socially and Economically Disadvantaged: N
Principal Investigator
 Ira Baxter Baxter
 (512) 250-1018
Business Contact
 Ira Baxter
Title: Mr.
Phone: (512) 250-1018
Research Institution
C++ is a key software technology for programming embedded systems and sophisticated applications, widely used for mathematical modeling codes fundamental to modern physics and engineering. Such codes are complex, often requiring high performance, and are built over long periods as scientists come and go. A significant problem that delays obtaining results for science applications is the scientist & apos;s task of understanding and modifying such applications. Often, functional changes to the code require structural modifications, commonly called refactorings. C++ is notoriously difficult to manipulate mechanically. Existing C++ refactoring tools are unreliable and have inappropriate functionality for use with C++ modeling codes. Thus they are unusable in practice for these applications. In this SBIR proposal, Semantic Designs (SD) will develop Refactor++, an effective C++ refactoring tool using SD & apos;s C++ front end and its DMS program transformation foundation. Refactor++ will operate on large, complex, real C++ modeling codes supporting all facilities of C++ including preprocessing, the proposed C++0x standard, OpenMP and MPI libraries. Analysis and transformation of multi-million line C++ code bases demands considerable random-access storage and is computationally expensive. SD will research and implement state of the art global flow analysis algorithms relevant to C++0x and will develop parallelism constructs, that are key to supporting accurate analysis and refactorings.SD will implement a number of traditional refactorings (Rename, Move) and some focused specifically on scientific computing (Abstract to Template, Parallelize Blocks, De-clone, Infer Pre/Post conditions). Because of the synergy of flow analysis to support refactoring with program analysis, SD will provide additional program analysis tools to the scientist, from where is X used? to what computations feed into X (program slices) and why can & apos;t I parallelize A and B? SD will produce Refactor++ by integrating this analysis and refactoring capability with interactive editing under several popular editors/IDEs widely used for C++ development platforms in the physics world. Commercial Applications and Other Benefits: Scientists, physicists and software engineers using this tool will be able to modify and enhance their applications with less effort and higher reliability. Refactor++ will help them produce more understandable code, shorten their development cycles, and develop codes that are more readily enhanced and maintained over their long lifetimes. Scientists will be better equipped to acquire a deeper understanding of fundamental physics.

* Information listed above is at the time of submission. *

Agency Micro-sites

SBA logo
Department of Agriculture logo
Department of Commerce logo
Department of Defense logo
Department of Education logo
Department of Energy logo
Department of Health and Human Services logo
Department of Homeland Security logo
Department of Transportation logo
Environmental Protection Agency logo
National Aeronautics and Space Administration logo
National Science Foundation logo
US Flag An Official Website of the United States Government