UML

2022. 9. 12. 00:15·디자인 패턴

 

UML(Unified Modeling Language, 통합 모델링 언어)

❤소프트웨어 엔지니어링 분야에서 시스템 설계 시각화에 대한 표준화된 방법을 제공하기 위한 범용 모델링 언어

❤소프트웨어 엔지니어들은 보통 UML사용보다는 각자의 방법으로 다이어그램을 생성한다. 그러나 이런 다이어그램에는 종종 UML의 요소가 포함된다.

❤크게 구조적 다이어그램, 행동 다이어그램으로 나뉜다.


구조적 UML 다이어그램

시스템의 정적 측면을 나타낸다.

모델링되는 시스템에 있어야 하는 사항과 구조를 강조한다.

소프트웨어 아키텍쳐(소프트웨어의 요소, 관계, 속성으로 구성되는 시스템의 구조)를 문서화하는데 광범위하게 사용된다.

  • 종류
    • 클래스 다이어그램
    • 구성 요소 다이어그램
    • 복합 구조 다이어그램
    • 배포 다이어그램
    • 개체 다이어그램
    • 패키지 다이어그램
    • 프로필 다이어그램

행동 UML 다이어그램

시스템의 동적 측면을 나타낸다.

모델링되는 시스템에서 발생하는 일과 기능을 강조한다.

시스템의 기능을 설명하는데 광범위하게 사용된다.

  • 종류
    • 활동 다이어그램
    • 통신 다이어그램
    • 상호 작용 개요 다이어그램
    • 시퀀스 다이어그램
    • 상태 다이어그램
    • 타이밍 다이어그램
    • 사용 사례 다이어그램

클래스 다이어그램 표기

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


Generalization(일반화)

❤일반화는 부모클래스와 자식 클래스간의 상속 관계를 나타낸다.

❤자식클래스에서 뻗어나온 실선이 부모클래스에 빈 삼각형으로 가르키는 그림


Realization(실제화)

❤인터페이스의 구현을 표현할 때 사용

❤인터페이스를 클래스처럼 표기하고 <<interface>>를 추가하는 방법, 빈 동그라미로 표현하는 방법 2가지가 있다.


Association(연관)

❤A클래스가 B클래스의 기능을 사용(참조)하는 경우는 화살표로 표기한다.

→참조당하는 쪽을 화살표로 표기한다.

❤A와 B가 서로 기능을 사용(참조)하는 경우는 실선으로 표기한다.


Dependency(의존)

❤A클래스가 B클래스의 기능을 사용(참조)하는 경우

→ 참조의 형태는 메서드 내에서 대상 클래스의 객체생성, 객체 사용, 메서드 호출, 객체 리턴, 매개변수로 사용하면서 해당 객체를 잠시만 사용하는 것

❤연관관계와 차이는 더 짧은 시간이라는 것

→ 긴 시간이면 연관관계

→ 함수 안에서 클래스를 생성하고 기능을 호출한 후, 클래스가 사라지면 의존관계이다.

출처 :&nbsp;https://www.nextree.co.kr/p6753/

❤다음과 같이 <<>>표기로 어떠한 목적의 의존관계인지 명시할 수도 있다.


Aggregation(집합)

❤A클래스가 B,C,D 클래스를 포함하는데, A클래스가 소멸되어도, B,C,D클래스는 소멸되지 않는다면 집약관계

❤포함하는 클래스에 빈 다이아몬드를 표시한다.

❤독립적으로 존재하는 클래스를 집약하여 기능을 하는 구조를 의미


Composition(합성)

❤A클래스가 B,C,D클래스를 포함하는데, A클래스가 소멸되면, B,C,D 클래스도 삭제되는 경우 합성관계

❤포함하는 클래스에 채운 다이아몬드를 표시한다.

❤객체의 기능을 여러 객체로 나누어 관리하는 구조를 의미

❤집합관계와의 차이는 합성관계가 더 강한 집합이라는 것

→ 포함하는 클래스(A)가 포함되는 클래스(B)의 전체 수명을 책임진다.(A클래스 안에서 B클래스의 인스턴스를 생성해야하고, 외부에서 B클래스를 생성하지 못하도록 A클래스에는 B클래스에대한 setter가 있으면 안된다.)

→ 포함되는 클래스의 인스턴스는 공유될 수 없다. (깊은 복사를 해야한다.)

'디자인 패턴' 카테고리의 다른 글

Abstract Factory 패턴  (0) 2022.09.12
Factory 패턴  (0) 2022.09.12
인터페이스  (0) 2022.09.12
Adapter 패턴  (0) 2022.09.12
Proxy 패턴  (1) 2022.09.12
'디자인 패턴' 카테고리의 다른 글
  • Factory 패턴
  • 인터페이스
  • Adapter 패턴
  • Proxy 패턴
가든_
가든_
  • 가든_
    Code Garden
    가든_
  • 전체
    오늘
    어제
    • 글 목록 (60)
      • 프로그래밍 언어 (11)
        • JAVA (0)
        • C++ (2)
        • C# (9)
      • 개발툴 (24)
        • Visual Studio (0)
        • Visual Studio Code (1)
        • Eclipse (1)
        • Unity (19)
        • Unreal (0)
        • Spring (1)
        • SpringBoot (0)
        • Vue (2)
      • 디자인 패턴 (6)
      • 백엔드 (4)
        • MySQL (1)
        • Servlet (3)
      • 프론트엔드 (4)
        • HTML (3)
        • CSS (0)
        • Javascript (1)
      • 알고리즘 (10)
        • 공식 (3)
        • 백준 (6)
        • SW Expert Academy (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Abstract Factory 패턴
    런타임 상수
    12738
    Proxy 패턴
    Unity
    상태공간트리
    Factory 패턴
    컴파일 상수
    swea2112
    Adapter 패턴
    오브젝터 어댑터
    스택
    Reflex
    다이어그램 그리기
    RDBM
    chatGPT
    클래스 어댑터
    MVC
    DI
    SetTile
    구조패턴
    Adaptee
    HTML
    ()=>
    FixedUpdate
    행동 UML 다이어그램
    c#
    구조적 UML 다이어그램
    UniRX
    Java
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
가든_
UML
상단으로

티스토리툴바