Funded by: Army Research Lab
The Department of Defense (DoD) has mandated that new software applications should be developed through the usage of reusable components. This paradigm is different than the traditional custom application development methodology that was used previously. It is important to provide some manner in which software reuse can be widely employed without sacrificing the predictability of the systems that are created. The goal of this project is to provide a solution that can adequately re-verify black-box software COTS components.
We will rely upon software fault injection and anomaly predicate monitoring to identify COTS components that do not meet the specification that the candidate system expects it to meet. Next, we will apply cutting-edge machine learning algorithms to refine the conditions that cause a COTS component to trigger its anomaly predicate. When a system integrator is armed with a list of deviant components and the conditions that cause them to exhibit irregular behavior he can make intelligent decisions. The system integrator might choose to simply replace a problematic COTS component with another that supports the same interface. If component replacement is not an option, our methodology will provide the ability to automatically generate and manually specify software wrappers. The software wrappers generated by our methodology will help to better ensure that a suspect COTS component sucessfully integrates into the candidate system.
We will explore and develop the theoretical foundations of the methodology and also design and implement a prototype tool. The overall goal of the reverification methodology is to isolate problems in COTS components and provide alternatives that can mitigate the risk that these problematic components might introduce into an entire system. We look to describe and develop a pro-active and innovative approach that will allow for the confident usage of COTS software components in military, safety-critical, security-critical, and business information systems.