구현1. 어플리케이션의 모델을 정의2. 변경되는 동작을 정의한다.3. 시스템 구조적 측면들을 정의한다.4. 시스템 서비스를 정의한다.5. metaobjects 를 정의한다.6. MOP 를 정의한다.7. 기본레벨을 정의한다. 장점소스 코드를 임의로 수정할 수 없다.소프트웨어 시스템의 변경이 쉽다.다양한 종류의 변경을 지원한다. 단점메타 레벨에 수정을 가할 경우 손상이 발생할 수 있다.컴포넌트의 개수가 급격히 증가 할 수 있다.효율성이 떨어진다.소프트웨어의 잠재적인 모든 변화를 지원할 수 없다.모든 언어가 리플렉션을 지원하지 않는다.