객체 지향 모델링 시 클래스의 속성 및 연산(메서드)과 클래스 간 정적인 관계를 표현한 다이어그램
클래스 이름, 속성, 연산(메서드), 접근 제어자, 관계
객체 Object
자신 고유의 데이터(Attribute)를 가지며, 클래스에서 정의한 행위(Behavior)를 수행한다.
이름, 타입, 매개변수들과 연관된 행위를 호출하는데 요구되는 제약사항들을 명시하는 클래스의 행위적 특징
객체에 요청하여 행동에 영향을 줄 수 있는 서비스
-
private : 클래스 내부 접근만 허용+
public : 클래스 외부 접근 허용#
protected : 동일 패키지/파생 클래스에서 접근 가능~
default : 동일 패키지 클래스에서 접근 가능
클래스가 서로 개념적으로 연결된 선
2개 이상의 사물이 서로 관련되어 있는 상태를 표현
양방향 관계의 경우 화살표 생략
실선으로 표현, 방향성은 화살표
하나의 클래스가 또 다른 클래스를 사용하는 관계
다른 클래스의 멤버 함수 사용
사물 사이에 서로 연관은 있으나, 필요에 따라 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계를 표현
하나의 클래스에 있는 멤버 함수의 인자가 변함에 따라 다른 클래스에 영향을 미칠 때의 관계
점선으로 표현, 영향을 주는 사물이 영향을 받는 사물 쪽으로 점선 화살표
하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지를 표현
일반적인 개념을 부모(상위), 구체적인 개념을 자식(하위)
구체적(하위)인 사물에서 일반적(상위)인 사물 쪽으로 속이 빈 화살표를 연결
extends
메서드 사용
화살표로 표현
추상 클래스나 인터페이스를 상속받아 자식 클래스가 추상 메서드를 구현할 때 사용
사물이 할 수 있거나, 해야 하는 기능(행위, 인터페이스)으로 서로를 그룹화할 수 있는 관계 표현
implements
메서드 사용
점선 화살표로 표현
추상 클래스
<<abstract>>
- 객체 인스턴스를 생성하지 않고, 단지 유사 클래스들의 공통된 특징을 정의하고, 하나 이상의 추상 메서드와 일반 필드 및 일반 메서드를 포함하는 클래스
- 동일한 부모를 가지는 클래스를 묶는 개념으로 상속을 받아서 기능을 확장시키는 것이 목적
인터페이스
<<interface>>
- 기능을 모아놓은 클래스로 추상 메서드와 상수만을 포함하는 추상 클래스
- 구현하는 모든 클래스에 대해 특정한 메서드가 반드시 존재하도록 강제하는 역할
영구적이고, 집합 관계보다 더 강한 관계로 구성
포함되는 쪽(Part; 부분)에서 포함하는 쪽(Whole; 전체)으로 속이 채워진 마름모를 연결
집합 관계의 특수한 형태로, 포함하는 사물의 변화가 포함되는 사물에게 영향을 미치는 관계를 표현
종속적이다.
전체와 부분을 나타낸다.
채워진 마름모 & 화살표
하나의 객체에 여러 개의 독립적인 객체들이 구성되는 관계
하나의 사물이 다른 사물에 포함되어 있는 관계 표현
포함되는 쪽(Part; 부분)에서 포함하는 쪽(Whole; 전체)으로 속이 빈 마름모를 연결
독립적이다.
전체와 부분을 나타낸다.
빈 마름모 & 화살표