[소프트웨어 분석 및 설계] 4. 클래스 다이어그램(Class Diagram)
Class
: attributes와 이것들에 대한 operations들로 이뤄진 것.
클래스 다이어그램이 뭔데...?
: 시간에 따라 변하지 않는 System의 정적인 면을 보여주는 대표적인 UML 구조 다이어그램.
Attribute
: 객체의 데이터 Property이자 데이터의 추상적인 저장소
- 표현법:
접근제어자+이름: 속성타입[배열 개수] = 초기 값
+: public visibility
-: private visibility
#: protected visibility
~: package visibility
Operation
: 클래스에서의 기능을 담당하는 메소드같은 부분.
- 표현법:
접근제어자+이름(매개변수): 반환 타입
Relationship(관계)
1) Dependency(의존)
: 의존 관계로 임시적인 관계이며, 가운데 <<invoke>>를 씀으로서 클래스 간의 참조 관계를 보임.
2-1) Association(연관)
: 지속적인 관계에서의 두 클래스 간의 참조 관계를 보임.
- 화살표를 쓸 경우엔 한쪽에서의 참조만 가능하고 화살표가 없을 경우엔 서로 참조가 가능하다.
+ Link
: Association과 같은 관계이나 클래스 간의 관계가 아닌 인스턴스 간의 관계이다.
- {xor} 제약
: 여러 연관 가능성이 있을 때 쓰는 표시.
- Cardinality 제약 (대응 수 제약)
: 각 연관 관계는 그 대응 수 범위를 표시될 수 있다.
- {ordered}
: {}안에 Property 문자열을 적은 채 옵션으로 줄 수도 있음.
3) Aggregation / Composition(집합 / 합성)
: 집합은 Whole(전체)과 Part(부분)의 필수 포함 관계는 아닌 포함관계이고, 합성은 필수 포함관계이다.
4) Inheritance(상속)
- Realization(실체화)
: 실체화 대상에 <<interface>>를 써서 표시. plug-in 객체는 required interface이다.