요구사항을 찾고 세분화 한다.기능을 알맞은 객체로 할당한다.기능을 구현하는 데 필요한 데이터를 객체에 추가한다.해당 데이터를 이용하는 기능을 구현한다. (기능은 최대한 캡슐화)객체 간에 어떻게 메소드 호출을 주고받을지 결정한다.클래스는 단 한개의 책임(기능)을 가져야