호댕의 iOS 개발

[UML] Unified Modeling Language 본문

Software Engineering/iOS

[UML] Unified Modeling Language

호르댕댕댕 2021. 11. 6. 13:14

우리는 코드를 설명할 때 다양한 방법을 사용할 수 있다. 

 

보통 다음과 같은 방법을 사용할 것이다. 

  1. 코드를 직접 보여주며 설명한다. 
  2. 줄글로 설명한다. 
  3. 도표를 사용해 설명한다. (시각화, 도식화, 추상화)  

UML은 여기서 3번에 해당하는 방법이다. 

그렇다면 왜 UML을 언어라고 표현한 것일까? 

 

그 이유는 바로 UML이 커뮤니케이션을 위해 구조화하고 양식화하는 방법이기 때문이다. 

UML은 시스템이 디자인 된 것을 표준화된 방식으로 도식화하는 것이다. 즉, 도식화를 활용하여 시스템이 어떻게 디자인했는지 전달(커뮤니케이션)하는 방법인 것이다. 

 

UML Diagrams는 크게 2가지로 구분할 수 있다. 

 

그렇다면 구조 다이어그램과 행위 다이어그램에서 가장 대표적인 다이어그램을 하나씩 살펴보자.

 

구조 다이어그램

Class Diagram

클래스 다이어그램의 경우 타입 간의 의존 관계를 파악하고, 순환 의존을 찾을 수 있다. 

여기서 의존이란 하나의 객체에서 다른 객체를 사용하는 것이라고 생각할 수 있다. 

  • 일반화 (Generalization) : 상속 관계를 보여준다. 이 때 하위 클래스에서 super class로 화살표를 보낸다.
  • 실체화 (Realization) : 인터페이스를 구현받아서 그것을 override하는 것을 의미 
  • 의존 (Dependency) : 하나의 객체가 다른 객체를 사용함. 사용당하는 객체 쪽으로 화살표를 보낸다. 
  • 연관 (Association)
    • 직접 연관 (Direct Association) : 클래스의 속성에서 직접 사용함. 
    • 집합 (Aggregation) : 전체 객체가 사라져도 부분 객체가 사라지지 않는 관계 (생명주기가 의존적이지 않음)
    • 합성 (Composition) : 전체 객체가 사라지면 부분 객체도 사라지는 관계 (부분 객체의 생명주기를 전체 객체가 관리

그렇다면 직접 연관과 의존의 차이는 무엇일까?

 

의존의 경우 참조하는 객체나 클래스를 사용하게 되면 관계가 사라진다. 

이에 반해 직접 연관의 경우 사용한 후에도 관계가 계속 유지된다. 

 

즉, 주로 의존의 경우 함수의 파라미터로 사용된다. 반면 직접 연관의 경우 타입의 프로퍼티로 연관이 되어 있다.

 

행위 다이어그램

요소 간 변화와 흐름, 주고 받는 데이터에 대해 표현한다. 

Sequence Diagram

실선: 요청하는 메세지

점선: 리턴되는 메세지

Comments