UML이란?
UML이라는 것은 시스템에 존재하는 클래스, 클래스 안의 필드, 메소드,
서로 협력하거나 상속하는 클래스 사이의 연결 관계를 나타내
는 그림이라고 정의가 되어있는데, 간단하게 말해서 모델을 만드는 언어이다.
그림으로 그려서 만들어 놓으면 딱히 코드가 없거나 모르는 사람과도 소통하기가 쉽고
서로 간의 의견교환에도 용이하다.
SteeringBehaviors에서 각 요소들을 조금 해석해보면
대강 이런식으로 해석이 될수가 있다.
1. 상단 : 클래스명
2. 하단 : 매서드
-, Private : 외부에 노출이 되지 않는 한정자
+, Public : 외부에 노출이 되는 한정자
#, Protected : 클래스나 상속된 클래스에서 접근가능한 한정자
3가지 부분으로 되있는 것도 있는데
2. 중단 : 데이터(멤버변수)
3. 하단 : 행동양식(매서드)
그 다음 클래스 간의 관계를 살펴보면
1. Generalization (일반화)
쉽게 말해서 상속관계를 나타내는 것이다.
위의 그림에서 보면 Vehicle -> MovingEntity -> BaseGameEntity 이렇게 상속이 된다.2. Realization (실체화)
명제, 정의만 있는 메서드를 오버라이딩하여 실제 기능으로 구현하는것이다.
3. Dependency (의존)
어떤 클래스가 다른 클래스를 참조하는것이다.
위의 그림에서 보면 SteeringBehaviors에 있는 내용들이 GameWorld에서 참조된다.
4. Association (연관), Directed Association (직접연관)
보통 다른 객체의 참조를 가지는 필드를 의미합니다.
직접연관은 화살표를 이용해서 가리키는 쪽으로 참조를 하는것을 의미하고, 그냥 연관은 화살표로 명시를 해주지 않았으므로 한쪽으로 또는 양쪽모두다 참조할수 있다는 것을 의미한다.
5. Aggregation (집합, 집합연관)
전체와 부분의 관계를 나타냅니다. Association과 비슷하지만 집합이라는 의미도 가지고 있으므로 좀더 넓은 의미를 가진다고 볼수있다.
6. Composition (합성, 복합연관)
Aggregation 보다 강한 집합이라고 할수있다. 부분이 전체에 종속적이고, 전체의 소유이다.
위의 그림에서는 SteeringBehaviors, Vehicle, GameWorld순으로 종속관계에 있다.
댓글 없음:
댓글 쓰기