PlantUML 클래스 다이어그램 조견표

6087 단어 plantumluml
PlantUML 에서 클래스 다이어그램을 그릴 때 자주 사용하는 기법을 정리하고 있습니다.

목차



  • 필드, 메소드 표현
  • 가시성 정의
  • Static, Abstract
  • 빈 필드, 메서드 생략


  • 수업 간의 관계
  • 상속 Extension
  • 구현 Implements
  • 집계 Aggregation
  • 구성 Composition
  • 의존 Dependency
  • 내부 클래스 Inner Class


  • 관계 라벨
  • 라벨, 화살표 추가
  • 다중도

  • 패키지
  • 참고문헌

  • 1. 필드, 메소드 표현



    1. 가시성 정의



    가시성은 다음과 같이 표현됩니다.- : private# : protected~ : package private+ : public
    @startuml
    
    class ClassA {
     -fieldA : int
     #fieldB : String
     ~methodA() : void
     +methodB() : String
    }
    
    @enduml
    

    각 가시성은 기호로 표현됩니다.



    명령skinparam classAttributeIconSize 0에서 가시성 기호화를 해제할 수 있습니다.
    업무로 사용하는 경우, 기호로는 전해지지 않는 경우가 있으므로 오프로 해 두는 것이 좋을지도 모릅니다.
    @startuml
    skinparam classAttributeIconSize 0
    
    class ClassA {
     -fieldA : int
     #fieldB : String
     ~methodA() : void
     +methodB() : String
    }
    
    @enduml
    



    2. Static, Abstract



    정적, 추상적 표현은 {static} , {abstract} 한정자를 사용합니다.
    @startuml
    
    class ClassA {
     {static} +fieldA : String
     {abstract} +methodA() : void
    }
    
    @enduml
    



    3. 빈 필드, 메서드 생략



    명령 hide empty members 빈 필드 메서드를 생략할 수 있습니다.
    그림의 크기를 생략 할 수 있기 때문에 마음에 듭니다.
    ※이후 이 커맨드를 사용합니다.
    @startuml
    hide empty members
    
    class ClassA  {
    }
    
    class ClassB  {
    field
    }
    
    class ClassC  {
    method()
    }
    
    class ClassD  {
    field
    method()
    }
    
    @enduml
    



    2. 클래스 간의 관계



    1. 상속 Extension



    UML에서는 일반화, Generalization으로 표현되지만, 익숙한 상속으로 표현하고 있습니다.
    @startuml
    hide empty members
    
    abstract class AbstractClassA {
    }
    
    class ClassA {
    }
    
    AbstractClassA <|-- ClassA
    
    @enduml
    



    2. 구현 Implements



    UML에서는 실현, Realization이라고 표현되지만, 익숙한 구현으로 표현하고 있습니다.
    @startuml
    hide empty members
    
    Interface InterfaceA {
    }
    
    class ClassA {
    }
    
    InterfaceA <|.. ClassA
    
    @enduml
    



    3. 집계 Aggregation



    아이가 부모로부터 독립적으로 존재할 수 있는 관계를 나타냅니다.
    @startuml
    hide empty members
    
    Class House {
    }
    
    class Persion {
    }
    
    House o-- Persion
    
    @enduml
    



    4. 구성 Composition



    아이가 부모로부터 독립적으로 존재할 수 없는 관계를 나타냅니다. 일반적으로 강한 집계로 표현됩니다.
    @startuml
    hide empty members
    
    Class Persion {
    }
    
    class Head {
    }
    
    Persion *-- Head
    
    @enduml
    



    5. 의존 Dependency



    하나가 다른 하나를 사용하거나 의존하는 관계를 사용 관계 또는 종속성이라고합니다.
    @startuml
    hide empty members
    
    Class GasStation {
    }
    
    class Car {
    }
    
    GasStation <.. Car
    @enduml
    



    6. 내부 클래스 Inner Class



    내부 클래스는 다음과 같이 나타냅니다.
    @startuml
    hide empty members
    
    Class OuterClass {
    }
    
    class InnerClass {
    }
    
    OuterClass +-- InnerClass
    
    @enduml
    



    3. 관계 라벨



    1. 라벨, 화살표 추가



    클래스 간 관계에 : text를 추가하여 레이블을 추가할 수 있습니다.: text > 다음 화살표를 붙일 수 있습니다.
    @startuml
    hide empty members
    
    Class ClassA {
    }
    
    class ClassB {
    }
    
    class ClassC {
    }
    
    ClassA -- ClassB : text
    ClassB -- ClassC : text >
    
    @enduml
    



    2. 다중도



    다중도는 관계의 양단에 ""로 기재합니다.
    @startuml
    hide empty members
    
    Class ClassA {
    }
    
    class ClassB {
    }
    
    ClassA "1..*" -- "*" ClassB
    
    @enduml
    



    4. 패키지


    @startuml
    hide empty members
    
    package PackageA {
        Class ClassA {
        }
    
        package PackageB {
            Class ClassB {
            }
        }
    }
    
    @enduml
    



    참고문헌



    이 기사는 다음 정보를 참고했습니다.
  • PlantUML 클래스 다이어그램
  • PlantUML로 클래스 다이어그램 만들기
  • 디자인 패턴과 함께 배우는 객체 지향의 마음
  • 좋은 웹페이지 즐겨찾기