클래스 다이어그램 작성법

Goal

  • 클래스 다이어그램을 이해할 수 있다.
  • 클래스 다이어그램을 작성할 수 있다.



[들어가기 전]

클래스 다이어그램이란

시간에 따라 변하지 않는 시스템의 정적인 면을 보여주는 대표적인 UML 구조 다이어그램

클래스

관계

1. 연관 관계

2. 일반화 관계

3. 집합 관계

  1. 집약 관계(aggregation)
    • 한 객체가 다른 객체를 포함하는 것
      • ‘부분’을 나타내는 객체를 다른 객체와 공유할 수 있다.
    • ‘전체’를 가리키는 클래스 방향에 빈 마름모로 표시
    • 전체 객체의 라이프타임과 부분 객체의 라이프 타임은 독립적이다.
      • 전체 객체가 메모리에서 사라진다 해도 부분 객체는 사라지지 않는다.
    • 예시
      • 생성자에서 참조값을 인자로 받아 필드를 세팅한다.
        public class Computer {
         private MainBoard mb;
         private CPU c;
         // 생성자
         public Computer(MainBoard mb, CPU c) {
         this.mb = mb;
         this.c = c;
         }
        }
        
  2. 합성 관계(composition)
    • 부분 객체가 전체 객체에 속하는 관계
      • ‘부분’을 나타내는 객체를 다른 객체와 공유할 수 없다.
    • ‘전체’를 가리키는 클래스 방향에 채워진 마름모로 표시
    • 전체 객체의 라이프타임과 부분 객체의 라이프 타임은 의존적이다.
      • 전체 객체가 없어지면 부분 객체도 없어진다.
    • 예시
      • 생성자에서 필드에 대한 객체를 생성한다.
        public class Computer {
         private MainBoard mb;
         private CPU c;
         // 생성자
         public Computer() {
         this.mb = new MainBoard();
         this.c = new CPU();
         }
        }
        

4. 의존 관계

5. 인터페이스와 실체화 관계

References