Design considerations for engineering autonomous underwater vehicles