Artificial Intelligence Software Design