Cognitive Techniques for Analysis of Complex Software Systems
Small Business Information
317 N. Aurora Street, Ithaca, NY, 14850
AbstractThe problem of finding flaws in large complex software systems is acute and getting worse because many systems are employing new cognitive techniques to increase their capabilities. Such techniques are typically highly dynamic and concurrent, which increases the complexity of the system and makes it correspondingly harder to debug. Traditional approaches fail because they are incapable of handling such levels of complexity. Often the cause of many complex flaws can be traced to errors in how the components of the system communicate and interact. Recently new methods have emerged that use sophisticated data mining and machine-learning techniques to automatically locate the source of flaws. These work by learning the rules for legal interactions between components by observing the behavior of the system during normal operations. These rules can then be automatically checked either statically or dynamically. We propose to create a prototype of a system that uses these techniques. It will learn temporal properties from traces, and feed the resulting rules to a static checker. The checker will report if any part of a component may violate these rules. This is feasible in Phase I because we are able to leverage a great deal of existing technology and expertise.
* information listed above is at the time of submission.