Artificial Intelligence Methods for Software Engineering