1 지저분해지는 코드

2 수정하기 좋은 구조를 가진 코드

변경사항이 자주 일어나는 부분 을 별도의 인터페이스 로 분리한다.

객체지향 기법을 적용하면 소프트웨어를 더 쉽게 변경할 수 있는 유연함을 얻을 수 있게 되고 이는 곧 요구사항의 변화를 더 빠르게 수용할 수 있다는 것을 뜻한다.

3 소프트웨어의 가치

소프트웨어의 가치는 사용자가 요구하는 기능을 올바르게 제공하며 변화에 맞출 수 있는 것에 있다.