Understanding large software systems is difficult. Traditionally, automated tools are used to assist program understanding. However, the representations constructed by these tool...
Requirements for product families are expressed in terms of commonality and variability. This distinction allows early identification of an appropriate software architecture and ...
Andreas Classen, Patrick Heymans, Robin C. Laney, ...
We argue that finding vulnerabilities in software components is different from finding exploits against them. Exploits that compromise security often use several low-level details...
Vinod Ganapathy, Sanjit A. Seshia, Somesh Jha, Tho...
High performance scientific computing software is of critical international importance as it supports scientific explorations and engineering. Software development in this area is...
Robert Palmer, Steve Barrus, Yu Yang, Ganesh Gopal...
Java bug finders perform static analysis to find implementation mistakes that can lead to exploits and failures; Java compilers perform static analysis for optimization. If Java...