05.소프트웨어에서 표현되는 모델

연관관계

모델 내의 모든 탐색 가능한(traversavle) 연관관계에 대해 그것과 동일한 특성을 지닌 
메카니즘이 소프트웨어에도 있다.

연관관계를 좀더 쉽게 다루는 방법
1. 탐색방향을 부여한다.
2. 한정자를 추가해서 사실상 다중성을 줄인다
3. 중요하지 않은 연관관계를 제거한다.

ENTITY (엔티티, 참조객체라고도함 )

어떤 객체를 일차적으로 해당 객체의 식별성으로 정의할 경우 그 객체를 ENTITY 라 한다.
ENTITY 에는 모델링과 설계상의 특수한 고려사항이 포함돼 있다. ENTITY 는 자신의 생명주기
동안 형태와 내용이 급격하게 바뀐수도 있지만 연속성은 유지해야 된다. 또한 사실상 ENTITY
를 추적하려면 ENTITY에 식별성이 정의돼 있어야 한다. ENTITY의 클래스 정의와 책임, 속성,
연관관계는 ENTITY에 포함된 특정 속성보다는 ENTITY의 정체성에 초점을 맞춰야한다.
ENTITY가 그렇게까지 급격하게 변형되지 않거나 생명주기가 복잡하지 않더라도 의미에 따라
ENTITY를 분류한다면 모델이 더욱 투명해지고 구현은 견고해질 것이다.


한 객체가 속성보다는 식별성으로 구분될 경우 모델 내에서 이를 해당 객체의 주된 정의로 삼아라.
클래스 정의를 단순하게 하고 생명주기의 연속성과 식별성에 집중하라. 객체의 형태나 이력과 관계없이
각 객체를 구별하는 수단을 정의하라. 객체의 속성으로 객체의 일치 여부를 판단하는 요구사항에 주의하라.
각객체에 대한 유일한 결과를 반환하는 연산을 정의하라. 이러한 연산은 객체에 유일함을
보장받는 기호를 덧붙여서 정의할 수 있을지도 모른다. 이같은 식별 수단은 외부에서 가져오거나 시스템에서 
자체적으로 만들어 내는 임의의 식별자 일 수도 있지만, 모델에서 실별성을 구분하는 방법과 일치해야 한다. 
모델은 동일하다는 것이 무슨의미 인지 정의해야 한다.