UML - 클래스 다이어그램

Clean Code Big Poo·2025년 6월 3일
0
post-thumbnail

Overview

UML 기초를 보고 정리하기

UML

  • Unified Modeling Language
  • 그래픽 표기법
  • 여러 다이어그램 정의
    • 클래스 D, 패키지 D, 객체 D, 시퀀스 D, 액티비티 D, 컴포넌트 D, 배치 D
  • 소프트웨어 시스템 표현, 설계에 사용
  • 의사소통 도구로 활용하기에 좋음

클래스 다이어그램

  • 객체의 타입을 표현
  • 타입간의 정적 관계 기수
  • 설계할 때 자주 사용하는 다이어그램 중 하나

클래스, 속성, 오퍼레이션

  • 필요한 것만 선택적으로 표시한다.
  • 속성: 클래스의 필드
  • 오페레이션: 클래스의 메소드

속성

가시성 이름 : 타입 = 기본값

가시성
+ : public
- : private
# : protected
~ : package

예시
-id: String
- : private
id : 이름
String : 타입

오퍼레이션

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

예시
+changeShippingAddress(newAdd: Address)
+ : public
changeShippingAddress : 이름
(newAdd: Address): 매개변수 목록
return : void

예시
+totalAmounts():long
+ : public
totalAmounts : 이름
(): 매개변수 목록
return : long

연관 (association)

  • 두 클래스간 연관이 있다.
  • 양 단에 역할명을 작성할 수 있다.

연관 탐색(nevigation)

  • Order 에서 OderLine으로 탐색이 가능하다.

의존(dependency)

  • Controller 클래스가 Handler 클래스에 의존한다.

인터페이스, 추상 클래스

  • <<인터페이스>>
    • <<>> : stereoType 이라고 부름
  • AbstractList
    • 이탤릭체로 표시하면 추상 클래스
  • Interface를 어떤 클래스가 구현하는 것은 realization이라고 부름
  • 관계 : AbstractList 가 <<인터페이스>> 를 realization하고 있다.
  • 관계 : ArrayList가 AbstractList를 상속하고 있다.

Aggregation, Composition

  • Composition 이 좀 더 강한 소유를 뜻함.
  • Aggregation 다른 클래스와 공유가 가능한 약한 소유를 뜻함.
  • 관계 : Player 가 Team에 강하게 소속되어 있지 않음. 여러 팀에 소속되는 것도 가능

정리

  • 클래스 다이어그램은 정적인 구조를 표현
  • 전달하고자 하는 내용 위주로 표시
    • 반드시 모든 것을 다 표시해야 하는 것은 아님
      • UML 으로 완벽하게 표현할 수도 없음

0개의 댓글