본문 바로가기

프로그래밍

UML Overview

1990년대에 객체 지향적인 방법론에 대하여 OOAD, OMT, OOSE 등 많은 이론이 있었습니다. 1995년에 이들이 통합되어 Unified Method 0.8이 만들어졌고 이게 현재 모델링에 대한 사실상 표준으로 자리잡았습니다. 현재는 2015년에 릴리즈된 UML 2.5로 UML 2.0에서 정해진 내용들이 쓰이고 있습니다. 

 

UML은 세가지로 구분할 수 있습니다. 

1. Structure Diagrams : System에 있어야 하는 것들에 대한 다이어그램. 

2. Behavior Diagram : System에서 발생해야 하는 일들에 대한 다이어그램. 

3. Interaction Diagrams : 컨트롤과 데이터의 흐름에 대한 다이어그램.

Diagram의 종류

가장 많이 쓰이는 5가지 UML의 모습에 대해서 알아보겠습니다. 

1. Use-Case diagram

2. Class and object diagram

3. Activity Diagram

4. State Diagram

5. Sequence Diagram

1. Use-Case Diagram : 

* 사용자들이 시스템 내에서 사용하는 함수들 위주로 작성된 다이어그램입니다. 

* 사용자들의 사용에 의한 목적을 나타내며 작용하는 요소들을 파악할 수 있습니다. 

Figure 1. Use Case Diagram

2. Object Diagram, Class Diagram

Object Diagram은 시스템에 존재하는 객체, 속성의 구조에 대해서 나타낸 다이어그램입니다. 

Object Diagram

Instance Diagram이라고도 불리는 Object Diagram은 시스템의 객체들에 대한 상호작용을 링크로 나타냅니다. Object는 특성 시간에 값이 변경될 수 있으므로 다이어그램이 나타내는 것 또한 시간에 영향을 받습니다. 객체가 이름이 없을 경우 [빈공간] : [Class Name]으로 나타낼 수 있으며 객체에 대해서는 밑줄을 사용해서 Class와 구분이 되도록 합니다. 

 

 

Class Diagram

 

Class Diagram 객체 다이어그램과 다르게 요소가 3부분으로 나눠져 있습니다.  

이때, Class의 성질을 생각해보면 Public, Private, Protect 접근자를 나눌 수 있고

클래스가 공유하는 클래스 변수[Class Variable, Class Operation]가 있습니다. 

 

추가적인 정보를 나타내는 방법에 대해서 보도록 하겠습니다. (색깔은 의미 없습니다. )

+ : Public 을 나타냅니다. 

- : Private 을 나타냅니다.

# : Protected 를 나타냅니다. 

_ : 언더라인은 Class Variable, Class Operation을 나타냅니다. Static과 같은 의미입니다. 

 

세부적인 내용을 얼마나 세밀하게 설명하는지는 필요성에 따라서 차이가 납니다.  

 

여기까지는 Concrete Class 에 대해서 다뤘습니다. Abstract 선언이나 Abstract Method를 지니지 않은 객체에 해당하는 내용이므로, Abstract[Operation에 Body가 없는 경우]을 나타내는 방법에 대해서 보도록 하겠습니다. 

Abstract를 나타내는 방법. 세가지 모두 사용 가능하다. 

Abstract 키워드를 사용하거나, 이탤릭체로 쓰는 방법이 있습니다. 

세번 째 경우는, Abstract Operation이 없더라도 클래스명 옆에 abstract를 적어주는 경우 입니다. 

 

마지막으로 Interface를 나타내는 방법을 알아보겠습니다. 

UML에서는 Interface를 Provided Interface, Required Interface 두 개로 구분할 수 있습니다. 

* Provided Interface : Class에 의해서 구현되어야 하는 공 모양

* Required Interface : 다른 클래스에 의한 구현을 필요로 하는 경우. 

3. Activity Diagram

전체 워크플로우의 단계를 나타낸 것으로 전체적인 컨트롤의 흐름을 나타냅니다. 

4. State Diagram [State Chart]

개별 객체의 다이나믹한 행동을 Finite State Machine으로 나타낸 것 입니다. 

5. Sequence Diagram

사용자와 시스템의 다이나믹한 행동이나 객체들 간의 행동을 나타냅니다. 

UML and Development Process

초기에 요건분석을 할 때는 Use Case Diagram을 사용하고 후에 Class, Object, Activity등 다양한 다이어그램을 사용해서 분석과 디자인을 구체화하는 것을 볼 수 있습니다. 

다이어그램 그리기 : http://staruml.io/