UML 다이어그램 (이해)

UML 다이어그램 (이해)

UML(Unified Modeling Language)은 소프트웨어 개발뿐만 아니라 많은 산업 전반의 비 소프트웨어 시스템에서도 중요한 역할을 담당합니다. UML이 시스템이나 프로세스의 동작 및 구조를 시각적으로 보여주는 방법이기 때문입니다. UML은 응용 프로그램 구조, 시스템 동작 및 기타 비즈니스 프로세스에서 잠재적인 오류를 찾아내는 데 도움을 줍니다.  

UML을 사용해야 하는 이유는 무엇일까요? 

UML은 1990년대에 세 명의 소프트웨어 엔지니어(Grady Booch, Ivar Jacobson 및 James Rumbaugh) 덕분에 세상에 나오게 되었습니다. 이 세 명의 소프트웨어 엔지니어가 프로세스와 방법론을 분리하면서도 날로 복잡해지는 소프트웨어 개발을 덜 혼란스러운 방식으로 나타내고자 했기 때문입니다. 오늘날까지도 UML은 개발자뿐만 아니라 산업 전반의 프로젝트 매니저, 기업 소유주, 기술 기업가 및 전문가에게는 따라야 할 표준입니다. 

UML의 장점은 무엇일까요? 

  • 복잡성 단순화 
  • 의사소통 라인을 열린 상태로 유지 
  • 소프트웨어 프로덕션 및 프로세스 자동화  
  • 지속적으로 발생하는 아키텍처 문제 해결 지원 
  • 업무의 질 향상 
  • 비용 절감 및 시장 출시 시간 단축 

UML 다이어그램의 유형  

UML 다이어그램의 유형은 구조 다이어그램과 작동 다이어그램으로 크게 나눌 수 있습니다. 그리고 이러한 카테고리에 포함되는 여러 가지 다이어그램이 있습니다. 이러한 파생이 생기는 이유는 셀 수 없이 많은 시나리오와 사람들이 다양한 종류의 다이어그램을 사용하기 때문입니다. 

고객과 프로젝트 매니저부터 기술 작가, 디자이너, 분석가, 코더, QA, 테스터까지 각각의 역할에 따라 니즈를 충족하는 특정한 다이어그램을 활용합니다. 이는 각각의 레이아웃에 따라 초점과 세부 정보 수준이 달라야 함을 의미합니다. UML의 목표는 모든 사람이 쉽게 이해할 수 있도록 다이어그램을 시각적으로 표현하는 것입니다.  

기본 UML 다이어그램
기본 UML 시퀀스 다이어그램의 예. 이용 가능한 템플릿: 다운로드

다음을 자세히 살펴보도록 하겠습니다. 

구조 다이어그램 

구조 다이어그램 은 소프트웨어 또는 시스템의 정적 구조를 나타내고, 추상화 및 구현의 다양한 계층도 보여줍니다. 구조 다이어그램을 사용해 데이터베이스 또는 응용 프로그램처럼 시스템을 구성하는 다양한 구조를 시각화하는 데 도움을 받을 수 있습니다. 구조 다이어그램은 구성 요소 또는 모듈의 계층과 구성 요소나 모듈이 서로 어떻게 연결되어 상호작용하는지를 보여줍니다. 이러한 도구는 지침을 제공하고 다른 모든 부분과 관련해 시스템의 모든 부분이 원래의 목적에 맞게 작동하도록 합니다. 

작동 다이어그램 

작동 다이어그램은 소프트웨어 시스템 또는 프로세스의 동적 측면에 초점을 맞춥니다. 작동 다이어그램은 시스템의 기능을 보여주고 모델링 대상 시스템에서 어떤 동작이 반드시 이루어져야 하는지를 강조합니다.  

각각의 카테고리에 포함되는 다양한 유형의 UML 다이어그램을 자세히 살펴보도록 하겠습니다. 

1. 구조 UML 다이어그램 

  • 클래스 다이어그램. 클래스 다이어그램은 소프트웨어 개발에서 가장 일반적인 유형으로 시스템의 논리적/물리적 설계를 설명하는 데 사용되고 클래스를 보여줍니다. 클래스 다이어그램은 상자를 사용해 클래스를 표시한다는 점에서 순서도와 비슷해 보입니다. 클래스 다이어그램은 다양한 클래스와 클래스가 어떻게 서로 관련되어 있는지를 시각적으로 보여줍니다. 각 클래스에는 다음으로 구성되는 세 개의 칸이 있습니다. 
  • 상단 섹션: 클래스 이름 
  • 중간 섹션: 클래스 특성 
  • 하단 섹션: 클래스 메서드 또는 작업 
UML 클래스 인터페이스 다이어그램
UML 클래스 인터페이스 다이어그램의 예. 이용 가능한 템플릿: 다운로드.
  • 개체 다이어그램. 개체 다이어그램은 정확성 측면에서 클래스 다이어그램을 재확인하는 방법으로 사용되는 경우가 많습니다. 다시 말해, 다이어그램이 현실에서 유용한지를 확인하는 것입니다. 개체 다이어그램은 시스템의 개체와 개체 간의 관계를 보여주며, 수정해야 하는 잠재적인 디자인 결함을 더 잘 보여줍니다. 
  • 구성 요소 다이어그램. 구성 요소 다이어그램은 구성 요소 흐름 다이어그램으로도 알려져 있으며, 요소의 논리적 그룹화와 관계를 보여줍니다. 다시 말해, 구성 요소 다이어그램은 복잡한 시스템을 더 작은 구성 요소로 나누어 복잡한 시스템을 더 단순하게 보여줍니다. 이러한 조각 각각은 직사각형 상자를 사용해 표시하며, 상자 안에 이름을 씁니다. 커넥터는 다양한 구성 요소 간의 관계/종속성을 정의합니다. 
  • 복합 구조 다이어그램. 복합 구조 다이어그램은 소프트웨어 개발 현장 밖에서 사용되는 경우가 거의 없습니다. 왜 그럴까요? 복합 구조 다이어그램이 클래스 다이어그램과 비슷하기는 하지만, 지나치게 세부적으로 여러 클래스의 내부 구조를 설명하고 클래스 간의 상호작용을 보여주기 때문입니다. 개발자가 아니라면, 최상위 보기가 제공하는 정보면 충분합니다. 
  • 배포 다이어그램. 배포 다이어그램은 하드웨어(노드) 및 소프트웨어(아티팩트) 구성 요소와 이러한 구성 요소 간의 관계를 보여줍니다. 배포 다이어그램은 각 소프트웨어 구성 요소가 배포되는 장소를 정확하게 시각적으로 보여줍니다. 
  • 패키지 다이어그램.(20년4회 실기출제) 패키지 다이어그램은 모델을 구성하는 패키지 간의 종속성을 표시하는 데 사용됩니다. 패키지 다이어그램의 주요 목표는 복잡한 시스템을 구성하는 다양한 대형 구성 요소 간의 관계를 보여주는 것입니다. 
  • 프로파일 다이어그램. 프로파일 다이어그램은 다이어그램보다 언어에 더 가깝습니다. 프로파일 다이어그램은 사용자 지정 스테레오 타입, 태그가 지정된 값 및 제약 조건을 정의해 UML 다이어그램의 새로운 속성과 의미 체계를 생성하는 데 도움을 줍니다. 이러한 프로파일을 사용해 다양한 플랫폼용 UML 메타 모델(예: Java Platform, Enterprise Edition(Java EE) 또는 Microsoft .NET Framework) 및 도메인(예: 비즈니스 프로세스 모델링, 서비스 지향 아키텍처, 메디컬 애플리케이션 등)을 사용자 지정할 수 있습니다. 

2. 작동 UML 다이어그램 

  • 활동 다이어그램. 활동 다이어그램은 처음부터 끝까지 단계별 프로세스를 표시합니다. 활동 다이어그램은 목표에 도달하기 위해서 반드시 이루어져야 하는 일단의 활동입니다. 한 가지 활동이 다음 활동으로 이어지는 방법과 활동이 어떻게 모두 연결되는지를 보여줍니다. 활동 다이어그램은 소프트웨어 개발 외에도 모든 비즈니스 환경에서 사용할 수 있습니다. 활동 다이어그램은 비즈니스 프로세스 매핑 또는 모델링이라고 불리기도 합니다. 
UML 사용 사례 다이어그램
기본 UML 사용 사례 다이어그램의 예. 이용 가능한 템플릿: 다운로드.
  • 사용 사례 다이어그램. 사용 사례 다이어그램은 시스템이 역할을 수행하는 방법이 아니라 어떤 역할을 수행하는지를 보여줍니다. 사용 사례는 “작업자”가 프로세스를 완료하기 위해 시스템을 사용할 때 발생하는 일단의 이벤트입니다. 작업자는 시스템 외부에서 시스템과 상호 작용하는 모든 사람 또는 사물(개인, 조직 또는 응용 프로그램)로 정의합니다. 따라서 사용 사례 다이어그램은 일단의 시퀀스를 시각적으로 설명하고 해당 시스템의 기능적 요구사항을 보여줍니다. 
  • 상호 작용 개요 다이어그램. 상호 작용 개요 다이어그램은 복잡하지만, 활동의 단계별 시퀀스를 보여준다는 점에서 활동 다이어그램과 비슷합니다. 하지만, 상호 작용 개요 다이어그램은 다양한 상호 작용 다이어그램으로 구성된 활동 다이어그램입니다. 상호 작용 다이어그램은 활동 다이어그램과 동일한 주석(초기, 마지막, 결정, 병합, 포크 및 조인 노드)을 사용할 뿐만 아니라 상호 작용, 상호 작용 사용, 시간 제약 조건 및 기간 제약 조건과 같은 요소를 추가로 사용합니다. 
  • 타이밍 다이어그램. 타이밍이 중요할 때 이 UML 다이어그램이 사용됩니다. 타이밍 다이어그램은 시퀀싱 또는 이벤트 다이어그램으로도 알려져 있으며, 개체가 서로 어떻게 상호 작용하거나 변경되는지를 보여주지 않습니다. 기능적으로 타이밍 다이어그램은 타임라인을 따라 개체와 작업자가 어떻게 행동하는지를 보여줍니다. 타이밍 다이어그램은 이벤트에 걸리는 시간과 기간 제약에 따라 발생하는 변화에 초점을 맞춥니다. 타이밍 다이어그램의 주요 부분에는 다음이 포함됩니다. 
    • 수명선: 개별 참가자 
    • 상태 타임라인: 파이프라인 내에서 수명선이 거치는 다양한 상태 
    • 기간 제약 조건: 제약 조건을 충족하는 데 필요한 시간 
    • 시간 제약 조건: 참가자가 무언가를 수행하는 데 필요한 시간 
    • 소멸 항목: 개체의 수명선이 끝나는 장소. 수명선의 소멸 항목 다음에 표시되는 항목은 없습니다. 
  • 상태 시스템 다이어그램. 상태표라고도 불리는 상태 시스템 다이어그램은 개체의 동작이 복잡하고, 세부 정보가 매우 중요할 때 사용합니다. 상태 시스템 다이어그램은 하나의 개체(또는 작업자)의 동작과 내부/외부 이벤트에 따라 동작이 어떻게 변화하는지를 설명하는 데 도움을 줍니다. 
  • 시퀀스 다이어그램. 디자인 커뮤니티를 포함해 다양한 커뮤니티에서 인기를 끌고 있는 시퀀스 다이어그램은 시각적으로 매력적이며, 모든 유형의 비즈니스 프로세스를 보여주는 데 유용합니다. 시퀀스 다이어그램은 단순하게 시스템의 구조를 드러내 메시지 시퀀스와 작업자와 개체 사이의 상호 작용을 발생 순서대로 보여줍니다. 시퀀스 다이어그램은 단순한 반복과 분기를 보여줍니다. 시퀀스 다이어그램은 멀티 태스킹에 유용합니다. 
  • 통신 다이어그램. 통신 또는 공동 작업 다이어그램은 시퀀스 다이어그램과 비슷합니다. 하지만, 통신 다이어그램은 개체 간의 통신을 강조합니다. 통신 다이어그램은 상호 작용에 참가하는 개체의 조직을 보여주고 보다 복잡한 반복과 분기가 특징입니다. 

데이터베이스 모델  

UML은 데이터베이스 모델링을 위한 표기법으로도 인기를 얻고 있습니다. 이러한 모델은 브레인스토밍, 자유 형식 다이어그램 작성 및 아이디어 공동 작업에 매우 유용한 시각적 도구입니다.  

UML에 데이터 모델링을 위한 사양은 없지만, 이는 특히, 데이터베이스의 데이터를 개체 지향적 프로그래밍에 사용할 수 있을 때 다이어그램 작성에 유용하게 사용할 수 있는 도구입니다.  

생성할 수 있는 다양한 유형의 데이터베이스 모델을 살펴보도록 하겠습니다.

  • 계층적 데이터베이스 모델. 오래되었지만 유용한 이 모델의 데이터는 나무와 같은 구조로 구성됩니다. 나무는 세그먼트라고 불리는 여러 개의 그룹으로 구성됩니다. 계층적 데이터베이스 모델은 일대다 관계를 사용합니다. 또한, 데이터 액세스를 예측할 수 있습니다. 
  • 네트워크 모델. 네트워크 모델은 그래프의 형태로 나타나며, 여기서 관계 유형은 원호, 개체 유형은 노드입니다. 다른 데이터베이스 모델과 달리 네트워크 모델의 스키마는 격자 또는 계층으로 한정되지 않습니다. 
  • 개체 지향 데이터베이스 모델. 개체 지향 데이터베이스 모델은 개체의 컬렉션 또는 다시 사용 가능한 소프트웨어 요소를 관련 기능 및 메서드와 함께 사용합니다. 예를 들어, 멀티미디어 데이터베이스에는 관계형 데이터베이스에 저장할 수 없는 이미지를 포함할 수 있습니다. 또는 하이퍼텍스트 데이터베이스를 사용해 다른 개체와 연결할 수 있습니다. 
  • 관계형 모델. 관계형 모델의 데이터는 관계 또는 열과 행으로 구성된 그리드와 같은 수학적 구조를 사용해 구조화됩니다. 관계형 모델은 기본적으로 표입니다. 
  • 개체 관계형 모델. 이름을 통해 알 수 있는 것처럼, 개체 관계형 모델은 위에서 언급한 두 가지 모델을 결합한 것입니다. 개체 관계형 모델은 개체, 클래스, 상속 및 기타 개체 지향 요소를 지원하지만, 데이터 유형, 표 형식 구조도 지원하며 관계형 데이터 모델과 비슷한 점이 더 많습니다. 
  • 엔터티 관계 모델. 엔터티 관계 모델은 엔터티 유형(사람, 장소 또는 사물)으로 구성되어 있습니다. 엔터티 관계 모델은 엔터티 유형 간에 존재할 수 있는 관계를 보여줍니다. 엔터티, 엔터티 속성을 정의하고 관계를 보여주는 방식으로 엔터티 관계 모델은 데이터베이스의 논리적 구조를 설명합니다. 
  • 문서 모델. 문서 모델은 원자화된 데이터가 아니라 문서 또는 반구조적 데이터를 저장 및 관리하도록 설계되어 있습니다. 문서 모델은 각각의 노드가 문서의 한 부분을 나타내는 개체인 트리 구조를 사용합니다. 
  • 엔터티-속성-값 모델. EAV 또는 오픈 스키마 모델은 데이터를 다음과 같은 세 개의 열로 기록합니다.  
  1. 엔터티(설명하는 대상)  
  2. 속성 또는 매개변수(예: 이름, 설명, 데이터 유형) 
  3. 속성의 값. 
  • 별모양 스키마. 별모양 스키마는 가장 단순한 버전의 차원 모델로 데이터가 차원과 사실에 따라 정렬됩니다. 별모양 스키마는 빅 데이터 세트 쿼리에 적합하기 때문에 비즈니스 인텔리전스 및 데이터 웨어하우징에 사용됩니다. 

소프트웨어를 통한 단순화 

데이터베이스 모델 또는 UML 다이어그램을 생성하는지와 관계없이  소프트웨어 도구를 사용하면 프로세스를 단순화하고 개선할 수 있습니다. 다음과 같은 장점을 제공하는 소프트웨어 도구를 선택했는지 확인하세요. 

  • 콘텐츠 생태계에 포함된 수천 개의 도형과 이미 만들어진 템플릿을 사용해 UML 2.5뿐만 아니라 BPMN 2.0 및 IEEE와 같은 산업 표준을 충족하는 전문적인 다이어그램 생성. 
  • 한 단계로 가능한 Excel 데이터 시각화를 포함해 데이터 오버레이, 아이콘, 색상 및 그래프를 사용해 데이터를 더 쉽게 이해할 수 있도록 만들어 생동감 넘치는 다이어그램 생성. 
  • 공동 작성, 댓글 달기 및 주석을 사용해 다른 사람과 공동 작업. 
  • 브라우저 또는 장치 응용 프로그램에서 장소에 구애받지 않고 한 가지 버전의 진실 전달 및 다이어그램 액세스. 

UML(Unified Modeling Laguage) 추가 해석?

->시스템 개발자가 자신의 비전을 구축하고 반영하는데 있어서 표준적이고 이해하기 쉬운 방법으로 할 수 있도록 도와주며, 자신의 설계 결과물을 다른 사람과 효과적으로 주고받으며 공유할 수 있는 메커니즘을 제공

시스템(System->비즈니스 문제에 대한 솔루션을 제공하는 소프트웨어와 하드웨어가 합쳐진 개념

시스템 개발(System development)->고객이 필요로 하는 시스템을 만드는 것

고객(client)->솔루션을 필요로 하는 사람

분석가(analyst)->고객의 문제를 문서화하여 개발자에게 전달

개발자(developer)->문제를 해결할 수 있는 소프트웨어를 만드는 사람

UML의 탄생->그래디 부치, 제임스 럼버, 이바 야콥슨

UML의 구성요소(뷰, 모델)

다이어그램의 목적 : 시스템을 여러 가지 시각에서 볼 수 있는 뷰(View)를 제공, 이러한 뷰의 집합을 모델(Model)이라고 함.

UML 모델 : 시스템 자체의 “목적 행동”을 설명하는 언어

다이어그램 종류

클래스 다이어그램

->자기만의 속성(attribute)과 일정한 행동(behavior)으로 구성, 이러한 행동은 오퍼레이션(operation)의 집합이라 함

클래스-> 비슷한 속성과 공통적인 행동 수단을 지닌 것들의 범주 혹은 그룹

(UML 클래스 아이콘)

객체 다이어그램

객체(Object)-> 클래스의 인스턴스 즉, 값이 매겨진 속성과 행동을 가지고 있는 개별적인 개체를 뜻함

표기법 : 사각형, 이름에 밑줄, 인스턴스의 이름은 콜론(:)의 왼편에 쓰며, 클래스의 이름은 콜론(:)의 오른편

 (UML 객체 아이콘)

유스 케이스 다이어그램

유스 케이스(use case)-> 사용자의 입장에서 본 시스템의 행동을 일컫음

행위자(actor)-> 사용자를 나타냄(사람모양)

유스 케이스(use case)-> 시스템의 행동(타원)

상태 다이어그램

객체는 시간에 따라 각기 다른 상태에 있을 수 있다. 시간에 따른 객체가 변하는 상태를 단계별로 나타내주는 것을 뜻함

시퀸스 다이어그램(Sequence Diagram)

->객체들끼리 주고받는 메시지의 순서를 시간의 흐름에 따라 보여주는 그림이다.

활동 다이어그램(Activity Diagram)

->유스 케이스 내부 혹은 객체의 동작중에 발생하는 활동(activity)은 대개 시퀸스 내에서 발견할 수 있다.

통신 다이어그램(Communication Diagram)

하나의 시스템을 구성하는 요소들은 다른 요소들과 손발을 맞추면서 시스템 전체의 목적을 이루어 나가는 것을 표현하기 위해 사용된다.

* Communication , Callaboration, Interaction -> 다 같은말로 사용된다.

컴포넌트 다이어그램(Component Diagram)

->시스템의 기능을 정의(한개 이상의 클래스를 구현하여 컴포넌트를 구성)

배포 다이어그램(Deployment Diagram)

->컴퓨터를 기반으로 하는 시스템의 물리적 구조를 나타낸 그림이다.

->컴퓨터와 부가장치, 각각의 연결 관계뿐만 아니라, 각각의 기계에 설치된 소프트웨어까지 표시한다.

복합체 구조 다이어그램

->클래스 모델을 만들 때 각 컴포넌트 클래스를 전체 클래스 안에 위치시킴으로써 클래스의 내부 구조가 어떤 것으로 이루어져 있는지 살펴보는데에 유용

교류 개요 다이어그램

->각 활동마다 객체 사이에 시간의 흐름을 갖는 메시지가 존재한다면 몇몇 활동 부분은 시퀸스 다이어그램이나 통신 다이어그램(혹은 두 다이어그램의 조합)으로 바뀌어야되는데 이것을 나타내준다.

타이밍 다이어그램

->UML 2.0의 타이밍 다이어그램에서 이러한 시간을 다루기 위해 사용한다. 한 상태에서 객체가 얼마나 오랜 시간을 지체하는지를 명시한다.

패키지 다이어그램(Package Diagram)

->다이어그램의 요소를 조직화하여 패키지형태로 나타내어준다.

이외의 것들

노트

->부가적인 설명을 넣기위해 사용한다.

->노트의 아이콘은 한쪽 귀가 접힌 사각형이며, 다이어그램 요소에 점선을 사용해 붙인다.

키워드 및 스테레오타입

->키워드는 UML 요소가 원래 의미가 아닌 새로운 다른 의미로 사용되었음을 나타내며 거듭이용표안에 위치한다.

->스테레오는 기존의 UML 요소를 기본으로 하여 다른 요소를 새로 만들 수 있게 하는 장치이다.

다이어그램이 종류가 많은 이유

->제대로 설계된 시스템 설계라면 가능한 시점의 모든 다이어그램이 포함되어 있어야 하고, 각각의 UML 다이어그램은 자신이 나타내고 있는 시점을 하나로 합칠 수 있는 수단을 제공해야 한다. 모든 참여자를 만족시키기 위해서이다.

UML 요약

->시스템 개발은 인간이 하는 것이기 때문에, 이해하기 쉬운 표기 방식이 없으면(대형 프로젝트의 경우에 더욱) 에러를 일으킬 가능성이 매우 높다.

->UML은 시스템 개발 세계에서 표준으로 인정받은 표기시스템이다.

->UML은 시스템 분석가에게 의뢰인, 프로그래머, 그리고 시스템 개발 과정에 참여한 모든 사람들이 각자의 시점에서 이해할 수 있는 다방면의 설계도를 그릴 수 있는 표준을 제공한다.

->UML 모델은 시스템이 “무엇을” 의도하고 있는지를 말해줄 뿐, “어떻게” 동작하는지를 말해주지는 않는다.

->[클래스, 객체, 유스케이스, 상태, 시퀸스, 활동, 통신, 컴포넌트, 배포, 복합체, 구조, 교류 개요, 타이밍, 패키지] 다이어그램

Start typing and press Enter to search

Shopping Cart