要件定義は、業務に必要な機能を整理し、どこまでをシステム化するかを具体的に定めます。利用者と開発者が対象範囲を共有するための基礎です。
外部設計や内部設計は要件の実現方法を具体化し、プログラミングは実装します。先に何が必要かを決めなければ適切に設計できません。