🔥 공대생은 성장 중/일잘하기

클래스 다이어그램 정리

민돌v 2024. 4. 30. 17:16

최범균님의 - UML 기초 01 - 클래스 다이어그램 유튜브 강의를 정리한 글입니다.
link : https://www.youtube.com/watch?v=HG0dwNnTsII&list=PLwouWTPuIjUgd-1167R5\_6gTBsp\_9cfu3

 


1. 클래스 다이어그램이란

  • 객체의 타입을 표현
  • 타입 간의 정적 관계 기술
  • 전달하고자 하는 내용 위주로 표시
    • 반드시 모든 것을 다 표시하는 것이 아님
    • UML로 완벽하게 표현할 수도 없음

클래스 다이어그램 구성


2. 클래스 다이어그램 구조

  • 클래스 이름
  • 속성
  • 오퍼레이션

1) 속성 표기법

  • 가시성 이름 : 타입 = 기본값
  • 가시성 : +(public), -(private), #(protected), ~(package)

2) 오퍼레이션 표기법

  • 가시성 이름 (매개변수 목록) : 리턴타입


3. 연관관계 (association)

✔️ 클래스 다이어그램에서 객체 간의 구조적 관계를 선으로 표현하는 방법

  • 실선 : 연관을 가짐
  • 방향 : 연관 방향
  • 이름 : 연관 이름
  • 역할명 : 각 클래스간의 연관관계의 역할명을 가질 수 있음
  • 숫자 : 객체간 다중성을 숫자로 표현가능

 


1) 연관 탐색 (Navigation)

  • 실선에 화살표를 이용해서 탐색 가능 방향 지정
  • 양쪽에 모두 지정하지 않으면 양방향 탐색 의미 (보통은 둘다 표시하지 않음)

  • ex) 
    • order 객체가 orderLine 객체를 접근할 수 있다.
    • orderLine은 order 객체에 접근할 수 없다.

2) 의존 (Dependency)

✔️ 사용 관계를 표현

  • A가 변할 때 A를 사용하는 B도 변한다면 → B가 A에 의존
  • 점선으로 표시

  • ex)
    • Controller 클래스가 Handler 클래스에 의존한다.
    • Controller 클래스의 render( ) 메소드는 Template 클래스에 의존한다.

3) 인터페이스, 추상 클래스

  • 인터페이스 : 꺽쇠 2개(스테레오 타입)로 인테페이스임을 알림 
  • 추상 클래스 : 클래스 이름이 Italic 채 (기울기) 인 것으로 표현
    • 구현 : 점선
    • 일반화,상속 : 실선

 


4) aggreagtion (소유), compostion (구성)

 

✔️ composition : 조금더 강력한 소유를 뜻함 (검은 마름모)

  • OrderLine 의 여러 객체는 Order 가 강력한 소유 (compostion)
  • Order 가 삭제될 떄 모든 OrderLine이 삭제됨

✔️  aggreagtion : 조금 더 약한관계

  • Player 는 여러 Team 에 공유될 수 있음 (약한 관계)


실습..!
혹여 틀린점이 있다면 댓글로 알려주시면 감사드리겠습니다 :)