본문 바로가기

c c++ mfc

UML Sequence Diagram에서 Boundary, Control, Entity 클래스가 하는 역할은?

반응형

오늘은 UML Sequence Diagram을 그릴 때 좀 헷갈리는 부분이 있어 정리하려고 합니다.

보통 수명선(LifeLine)이라고 이렇게 그리는데요.

생명선(Lifeline)

점선은 시간의 경과를 나타내는 거고 그 위의 네모는 객체를 나타냅니다. 그런데 저 객체 자리에 다음과 같이 다른 것들을 그릴 수 있습니다.

Actor, Boundary, Control, Entity

얘네들은 언제 사용하는 것일까요?

 

1. Actor (사용자)

먼저 Actor는 너무 분명하죠. 프로그램을 사용하는 사용자입니다. 이견의 여지가 없죠.

UML 시퀀스 다이어그램에서 Actor는 시스템과 상호작용하는 외부 참여자를 표현하고, 시스템 사용 시나리오를 정의하며, 시스템의 경계와 범위를 설정하는 데 사용됩니다.

Actor

 

2. Boundary(경계)

다음으로 Boundary. 해석 그대로 시스템의 경계를 모델링하는 클래스입니다. 주로 사용자 인터페이스 화면과 같은 시스템 경계를 나타냅니다. Boundary 클래스는 시스템 내부와 외부 요소 간의 통신을 관리하는 역할을 하기도 하죠. 우리가 흔히 얘기하는 Interface를 얘기하는거 같기도 합니다.

Boundary

예를 들면, 로그인 화면, 주문 화면, 결제 화면, 메뉴 등의 사용자 인터페이스 화면을 Boundary 클래스로 모델링할 수 있습니다. 사용자가 입력한 데이터를 시스템 내부 요소에 전달하고, 시스템 내부 요소의 결과를 사용자에게 출력하는 역할을 합니다.

 

3. Control(제어)

Control클래스는 응용 프로그램 논리의 많은 부분을 구현하며 사용자와 저장된 데이터 간의 연결 요소 역할을 합니다. 즉 우리가 흔히 말하는 Business Logic이 이 부분입니다. Boundary클래스로부터 사용자의 요청을 받아 뒤에 설명할 Entity클래스에서 데이터를 가져와 조작/가공/처리하는 Business Logic이 Control Class입니다.

 

Control

4. Entity(존재자? 실재? 개체?)

Entity 클래스는 시스템의 핵심 데이터를 나타내는 클래스입니다. Entity 클래스는 시스템의 비즈니스 로직을 구현하는 데 필요한 데이터를 제공합니다. Boundary 클래스는 사용자 요청을 받아 Control 클래스에 전달하고, Control 클래스가 Entity 클래스의 데이터를 활용하여 처리한 결과를 Boundary 클래스에 전달합니다.

Entity

Entity 클래스의 설계는 시스템의 전체적인 구조와 성능에 큰 영향을 미치므로, 설계 시 주의 깊게 고려해야 합니다.

 

5. 예제

예를들어 어떤 쇼핑몰에 가입된 고객이 마일리지를 조회하는 시퀀스를 그려보면 다음과 같다. 예제가 너무 간단한 것 같은데요. 실제로는 아래 그림의 Boundary, Control, Entity 사이에 사용자가 작성한 객체들이 더 포함되게 될 것입니다.

예시

 

시퀀스 다이어그램은 특정 행동이 어떠한 순서로 어떤 객체와 어떻게 상호작용을 하는지 표현하는 행위 다이어그램입니다. 현재 존재하는 시스템이 어떠한 시나리오로 움직이고 있는지를 나타내는데 장점을 가지고 있습니다.

거기에 위와 같은 요소들로 다이어그램을 더 디테일하게 그린다면 자신에게나 다이어그램을 보는 다른 개발자들에게도 큰 도움이 될 것입니다.

반응형