클래스 다이어그램

Ahri·2022년 5월 10일
0

클래스 다이어그램

클래스의 구성요소 및 클래스간의 관계를 표한하는 대표적인 UML

UML (Unified Modeling Language)

도메인을 모델로 표현해주는 대표적인 모델링 언어
의사소통, 설계, 전체 시스템의 구조 및 클래스의 의존성 파악 등을 위해 사용됨

클래스 다이어그램의 클래스 표현하는 기본요소

1. 클래스

1) 접근제어자

+ : public
- : private
# : protected

2) 속성

접근제어자 이름:타입 = 기본값

ex) private String name = "";
--> - name : String = ""

3) 메소드

접근제어자 이름(파라미터 속성): 리턴값 {abstract : 추상메소드일 경우만}

ex) public String getName(String name) 
-> + getName(String) : String 

ex) public abstract String getName(String name) 
-> + getName(String) : String {abstract}

2. 스테레오 타입

UML에서 제공하는 기본요소 외의 추가적인 확장요소

<< interface >> 
<< abstract >>
<< component >>

3. 클래스 간의 관계


(출처 : https://www.nextree.co.kr/p6753/)

1) Generalization ( 일반화 ) : 상속 (실선, 비어있는 화살표)

public class Subject {
    private String code;
    private String name;

    public void study() {
        System.out.println("공부");
    }
}

public class English extends Subject {
    @Override
    public void study() {
        System.out.println("영어공부");
    }
}

2) Realization ( 실체화 ) : interface 실제로 구현 (점선, 비어있는 화살표)

public interface Subject {
    public void study();
}

public class English implements Subject {
    @Override
    public void study() {
        System.out.println("영어공부");
    }
}

3) Dependency ( 의존 ) : 어떤 클래스가 다른 클래스 참조. 메서드 내에서 다른 클래스의 객체를 생성하거나 사용, 리턴받아 사용하는 것 (점선, 화살표)

public class English {
    public Schedule createSchedule() {
        return new Schedule(); //create << create >> 으로 표현
    }
  // 그외에도 <<local>>, <<parameter>> 로도 사용 가능함
}

4) Association ( 연관 ) : 다른 객체의 참조 (양방향일 경우 실선만, 방향성이 있으면 화살표)

Aggregation ( 집합 ) : 연관의 집합관계를 나타내는 것. Collection이나 Array를 이용하는 관계. 코드상으로 분리하기 애매하므로 생략함 (실선, 빈다이아몬드)

1 : 1개의 표현
* : 0 ~ n 개의 표현
n...m : n 부터 m까지 연관관계를 맺음

public class English {
    public List<Schedule> scheduleList;
}

5) Composition ( 합성 ) : 강한 결합의 관계. 참조하는 클래스의 라이프 사이클이 종속적 (실선, 채워진 다이아몬드)

English 클래스가 사용하지 않는 경우가 발생했을때 Schedule도 참조가 불가능한 상태가 됨

참고 사이트

https://sabarada.tistory.com/72
https://www.nextree.co.kr/p6753/

0개의 댓글