Cognitive Techniques for Analysis of Complex Software Systems

The 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 because we are able to leverage a great deal of existing technology and expertise.

The software we propose to develop will reduce the time required to develop and debug large software-based systems, especially those that are highly dynamic and adaptive. It will be applicable across a wide range of markets including aerospace and defense, finance, engineering, and medical.

Key words: Data Mining, Machine Learning, Software Analysis, Flaw Detection, Temporal Property Discovery


Areas | Products | Sponsors | Publications | News | About Us © 2007-2012, GrammaTech, Inc. All rights reserved.
The Synthesizer Generator, Ada-ASSURED, Ada-Utilities, and SmashProof are trademarks of GrammaTech, Inc. CodeSurfer and CodeSonar are registered trademarks of GrammaTech, Inc.