본문 바로가기

💻 개발IT/UML

1. An Introduction to UML

UML

  • 13가지 Modeling Language를 합침 (Unified Modeling Language)
  • 사용
    • 데이터 모델링 (Entity Relation Diagram)
    • 비즈니스 모델링 (workflow)
    • object 모델링
    • 컴포넌트 모델링

 

 

UML Semantics

  • 4-layer metamodel architecture : instance → model → meta model → meta-meta model
  • MOF(Meta Object Facility) 계층
    • Layer M3 : Meta-meta model layer (The MOF model) : 다이어그램 샘플 (ex. .NET의 Profile)
    • Layer M2 : Meta model layer (The UML meta model) : 다이어그램을 정의 
    • Layer M1 : Model layer (The UML model) : class, 시퀀스 다이어그램 등 실제로 그리는 작업
    • Layer M0 : Information layer (the Application) : 실제로 런타임에 어떤 식으로 동작하는지

 

 

UML 2.0 Diagrams

  • 총 13가지 UML 다이어그램
    ※ Diagram, Structure Diagram, Behaviour Diagram(기울임) : abstract class (new 불가능)
    • OOA : Usecase Diagram (+ Domain model)
    • OOD : Sequence Diagram, Class Diagram

  1. Use Case Diagram
    • external actor가 시나리오기반으로 텍스트를 사용해서 그리는 다이어그램
    • 방법 : 양쪽에 actor를 적고 중간에 use case를 적어 관계를 잇고 + Description으로 시나리오 적음
  2. Class Diagram
    • class가 어떤 attribute, operation을 가지고 있고 서로 어떻게 연결되어있는지 보여주는 다이어그램
    • 두 가지 용도
      • OOA에서 Domain model용으로 그림
      • OOD에서 Design class diagram(DCD) 용으로 그림
  3. Object Diagram
    • 위의 class diagram에서 1:*의 *(instances)가 특정 시간에 몇 개인지 구체적으로 정리한 다이어그램
  4.  Package Diagram
    • class를 패키지로 묶은 모습을 그린 다이어그램
    • Logical architecture (physical X)
    • Example
      • 모자 그려져 있는 네모 : Package
      • 네모 안에 대문자로 시작 : Class
      • 네모 안에 소문자로 시작(or 밑줄) : Object
  5.  Component Diagram
    • 컴포넌트(개발의 단위)와 그의 관계를 그린 다이어그램
    • 실제 Deploy된 것이 아닌 logical한 다이어그램
    • Example
      • 우측에 수첩 모양있는 네모 : 컴포넌트
      • 왼쪽에 동그라미 연결되어있는 컴포넌트 : 데이터를 전달하는 컴포넌트(provider)
  6. Composite Structure Diagram
    • 컴포넌트 다이어그램을 계층적으로, 내부적인 모습을 그린 것

  7. Deployment Diagram
    • PC(OS), Server 등 런타임 configuration의 모습과 그 내부의 컴포넌트를 그린 다이어그램



    여기까지가 Structured Diagram
  8. Sequence Diagram
    • 시간 sequence에 따라(위에서 밑으로) use case의 특정 시나리오에서 object의 커뮤니케이션을 그린 다이어그램
    • 단점 : Object가 많고 시나리오가 크면 Size가 큼
    • 적용 상황 : 주로 사용
  9. Communication Diagram (Collaboration diagram)
    • Sequence Diagram과 달리 시간 흐름을 나타내지 않아 Size가 작음
    • 적용 상황 : 누군가에게 설명하거나 text book에 시나리오 설명할 때
  10. Timing Diagram
    • 주어진 시간 단위 내의 object의 행위를 보여주는 다이어그램
      • 시간이 아닌 Timing(순서)를 보여줌 (왼쪽에서 오른쪽으로)
  11. Interaction Overview Diagram
    • 상호작용의 전반적인 것을 그린 다이어그램
    • 기본적으로 Activity Diagram(Flow chart)을 그리고 내부 노드에 sequence diagram, communication diagram을 그림
    • 적용 경우 : 전체 시나리오 확인하거나 system test 만들 때 사용

    여기서부터 behavior diagram
  12. State Diagram
    • state가 변하면서 entity의 상태 변화나 이벤트를 그린 다이어그램
    • 보통, 시스템이 state 기반으로 움직이면 사용
  13. Activity Diagram
    • 비즈니스 프로세스를 명세할 때 사용하는 flow chart, DFD 

 

UML을 모르면은 OO방식을 못하지만 UML 잘 사용한다해서 OO방식 설계 잘 할 수 있는 것은 아님. 단순 언어
Use case diagram (OOA), Class diagram(Static diagram), Sequence diagram(Dynamic diagram)

반응형

'💻 개발IT > UML' 카테고리의 다른 글

7. Component Diagram  (0) 2022.02.26
6. Activity Diagram  (0) 2022.02.26
5. Statechart Diagram  (0) 2022.02.26
4. Sequence Diagram  (0) 2022.02.25
3. Class Diagram  (0) 2022.02.25
2. Use Case Diagram  (0) 2022.02.25