클래스 다이어그램
📌 클래스 다이어그램
: 시간에 따라 변하지 않는 시스템의 정적인 면을 보여주는 UML 구조 다이어그램.
시스템을 구성하는 클래스들 사이의 관계 표현.
💡 클래스
: 동일한 속성과 행위를 수행하는 객체의 집합.
클래스 다이어그램 - UML 클래스 표현
📌 UML 클래스 표현
① 맨 위 : 클래스 이름.
② 중간 : 속성.
③ 맨 아래 : 연산.
Course |
-id: String -name: String -numOfStudents: Integer |
+addStudent(student: Student): void +deleteStudent(id: Integer): void |
접근 제어자 | 표시 | 설명 |
public | + | 어떤 클래스의 객체에서든 접근 가능. |
private | - | 해당 클래스에서 생성된 객체들만 접근 가능. |
protected | # | 해당 클래스와 동일 패키지에 있거나 상속 관계에 있는 하위 클래스 객체들만 접근 가능. |
package | ~ | 동일 패키지에 있는 클래스의 객체들만 접근 가능. |
표시 | |
속성 | [+, -, #, ~]이름: 타입[다중성 정보] [=초기값] |
연산 | [+, -, #, ~]이름(인자1: 타입1, ..., 인자n: 타입n): 반환 타입 |
💡 [ ] : 생략 가능.
클래스 다이어그램 - UML에서 제공하는 클래스들 사이의 관계
📌 UML에서 제공하는 클래스들 사이의 관계
관계 | 설명 |
연관 관계 (association) |
클래스들이 개념상 서로 연결되었음을 나타냄. 보통 한 클래스가 다른 클래스에서 제공하는 기능을 사용할 때 표시. 실선(양방향)이나 화살표로 표시. |
일반화 관계 (generalization) |
상속 관계. 속이 빈 화살표로 표시. |
집합 관계 (composition, aggregation) |
클래스들 사이의 전체 또는 부분 같은 관계를 나타냄. 집약 관계, 합성 관계가 존재. |
의존 관계 (dependency) |
한 클래스가 다른 클래스에서 제공하는 기능을 사용할 때 표시. 두 클래스의 관계가 한 메서드를 실행하는 동안과 같은, 짧은 시간만 유지됨. 점선 화살표로 표시. |
실체화 관계 (realization) |
책임들의 집합인 인터페이스와 이 책임들을 실제로 실현한 클래스들 사이의 관계를 나타냄. 빈 삼각형을 점선으로 표시한 화살표로 표시. |
클래스 다이어그램 - UML에서 제공하는 클래스들 사이의 관계 - 연관 관계
📌 연관 관계(association)
: 클래스들이 개념상 서로 연결되었음을 나타냄.
보통 한 클래스가 다른 클래스에서 제공하는 기능을 사용할 때 표시.
실선(양방향)이나 화살표로 표시.
📌 다중성
: 연관된 객체 수.
다중성 표기 | 의미 |
1 | 1 |
* | 0 또는 그 이상 |
0..* | 0 또는 그 이상 |
1..* | 1 이상 |
0..1 | 0 또는 1 |
2..5 | 2 또는 3 또는 4 또는 5 |
1, 2, 6 | 1 또는 2 또는6 |
1, 3..5 | 1 또는 3 또는 4 또는 5 |
클래스 다이어그램 - UML에서 제공하는 클래스들 사이의 관계 - 일반화 관계
📌 일반화 관계(generalization)
: 상속 관계.
속이 빈 화살표로 표시.
클래스 다이어그램 - UML에서 제공하는 클래스들 사이의 관계 - 집합 관계
📌 집합 관계(composition, aggregation)
: 클래스들 사이의 전체 또는 부분 같은 관계를 나타냄.
집약 관계, 합성 관계가 존재.
📌 집합 관계와 합성 관계
집함 관계 | 설명 |
집약 관계 | - 한 객체가 다른 객체를 포함하는 것. - 전체 객체와 부분 객체의 생명 주기가 다름. - 부분 객체를 여러 전체 객체가 공유할 수 있음. - 빈 마름모로 표시. |
합성 관계 | - 부분 객체가 전체 객체에 속하는 관계. - 전체 객체가 없어지면 부분 객체도 없어짐. - 부분 객체를 여러 전체 객체가 공유할 수 없음. - 채워진 마름모로 표시. |
클래스 다이어그램 - UML에서 제공하는 클래스들 사이의 관계 - 의존 관계
📌 의존 관계(dependency)
: 한 클래스가 다른 클래스에서 제공하는 기능을 사용할 때 표시.
두 클래스의 관계가 한 메서드를 실행하는 동안과 같은, 짧은 시간만 유지됨.
점선 화살표로 표시.
📌 한 클래스가 다른 클래스를 사용하는 경우
① 클래스의 속성에서 참조할 때
② 연산의 인자로 사용될 때
③ 메서드 내부의 지역 객체로 참조될 때
클래스 다이어그램 - UML에서 제공하는 클래스들 사이의 관계 - 실체화 관계
📌 실체화 관계(realization)
: 책임들의 집합인 인터페이스와 이 책임들을 실제로 실현한 클래스들 사이의 관계를 나타냄.
빈 삼각형을 점선으로 표시한 화살표로 표시.
'Java > 디자인 패턴' 카테고리의 다른 글
[Java/디자인 패턴] 객체지향 원리 (0) | 2022.11.02 |
---|---|
[Java/디자인 패턴] UML (0) | 2022.10.31 |
댓글