Reading list: Software Design