つまり、いままでの話をまとめると、
要求仕様後、仕様変更可能かどうかは、
開発に選定した言語、フレームワーク、API等の環境からくる制約の範囲内であれば、変更可能であるといえる(ただし、コストはかかる)。
DIは、この制約をできるだけなくすよう、柔軟に対応できるようにした。
フレームワークは、多くの場合、制約は増えるが(ハリウッドの法則)、
その代わり、生産性を上げたり、多くの人が開発できるようにしている。
APIは、生産性を上げるが、制約は増えるかどうかは一概には言えない。
したがって、フレームワークを採用する場合には、
(要求仕様後、フレームワークに逆らうような仕様変更はできなくなるので)
要求仕様決定時までに慎重に設計する必要がある。
APIも、なんらかの拘束をかけるようなものの場合は、
要求仕様決定時までに慎重に設計する必要がある。