ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [소프트웨어 공학] UML이란?
    Software Engineering 2020. 7. 10. 15:15
    728x90
    • Unified Modeling Language의 약어로 시스템 분석, 설계, 구현 등 시스템 개발 과정에서 개발자와 고객 또는 개발자 상호 간의 의사소통이 원활하게 이루어지도록 표준화한 대표적인 객체지향 모델링 언어
    • Rumbaugh, Booch, Jacobson 등의 객체지향 방법론의 장점을 통합하였으며 OMG에서 표준으로 지정
    • 시스템 구조를 표현하는 6개의 구조 다이어그램과 시스템의 동작을 표현하는 7개의 행위 다이어그램이 있음
    • 구성 요소로는 사물, 관계, 다이어그램이 있음

    사물(Things)

    • 모델을 구성하는 가장 중요한 기본 요소로 다이어그램 안에서 관계가 형성될 수 있는 대상을 의미
    • 사물에는 구조 사물, 행동 사물, 그룹 사물, 주해 사물이 있음
    • 구조 사물(Structual Things)
      • 시스템의 개념적, 물리적 요소를 표현
      • 클래스(Class), 유스케이스(Use Case), 컴포넌트(Component), 노드(Node) 등
    • 행동 사물(Behavior Things)
      • 시간과 공간에 따른 요소들의 행위를 표현
      • 상호작용(Interaction), 상태 머신(State Machine) 등
    • 그룹 사물(Grouping Things)
      • 요소들을 그룹으로 묶어서 표현
      • 패키지(Package)
    • 주해 사물(Annotion Things)
      • 부가적인 설명이나 제약조건 등을 표현
      • 노트(Note)

    관계(Relationships)

    • 사물과 사물 사이의 연관성을 표현하는 것
    • 연관 관계, 집합 관계, 포함 관계, 일반화 관계, 의존 관계, 실체화 관계 등이 있음
    • 연관 관계(Assocation Realationship)
      • 2개 이상의 사물이 서로 관련되어 있음을 의미
      • 사물 사이를 실선으로 연결하여 표현
    • 집합 관계(Aggregation Realationship)
      • 하나의 사물이 다른 사물에 포함되어 있는 관계를 표현
      • 포함하는 쪽과 포함되는 쪽은 서로 독립적임
      • 포함되는 쪽에서 포함하는 쪽으로 속이 빈 마름모를 연결하여 표현
    • 포함 관계(Composition Realationship)
      • 집합 관계의 특수한 형태로 포함하는 사물의 변화가 포함되는 사물들에게 영향을 미치는 관계
      • 포함하는 쪽과 포함되는 쪽은 의존적이고 생명주기가 동일함
      • 포함되는 쪽에서 포함하는 쪽으로 속이 채워진 마름모를 연결하여 표현
    • 일반화 관계(Generalization Realationship)
      • 하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지를 표현
      • 일반적인 개념을 상위, 구체적인 개념을 하위로 둠
      • 구체적인 사물에서 일반적인 사물쪽으로 속이 빈 화살표를 연결하여 표현
    • 의존 관계(Dependency Realationship)
      • 사물 사이에 서로 연관은 있으나 짧은 시간 동안만 연관을 유지하는 관계
      • 소유 관계는 아니지만 사물의 변화가 다른 사물에도 영향을 미치는 관계
      • 영향을 주는 사물이 영향을 받는 사물 쪽으로 점선 화살표를 연결하여 표현
    • 실체화 관계(Realization Relationship)
      • 실체화 관계는 사물이 할 수 있거나 해야 하는 기능으로 서로를 그룹화 할 수 있는 관계
      • 사물에서 속이 빈 점선 화살표를 연결하여 표현

    다이어그램(Diagram)

    • 사물과 관계를 도형으로 표현한 것
    • 시스템을 가시화한 뷰를 제공함으로써 의사소통에 도움을 줌
    • 정적 모델링에서는 주로 구조적 다이어그램을 사용하고 동적 모델링에서는 주로 행위 다이어그램을 사용
    • 구조적 다이어그램(Structual Diagram)
      • 클래스 다이어그램(Class Diagram)
        • 클래스와 클래스가 가지는 속성, 클래스 사이의 관계를 표현
        • 시스템의 구조를 파악하고 구조상의 문제점을 도출할 수 있음
      • 객체 다이어그램(Object Diagram)
        • 클래스에 속한 사물(객체)들, 즉 인스턴스를 특정 시점의 객체와 객체 사이의 관계로 표현
      • 컴포넌트 다이어그램(Component Diagram)
        • 실제 구현 모듈인 컴포넌트 간의 관계나 컴포넌트 간의 인터페이스를 표현
        • 구현 단계에서 사용되는 다이어그램
      • 배치 다이어그램(Deployment Diagram)
        • 결과물, 프로세스, 컴포넌트 등 물리적 요소들의 위치를 표현
        • 노드와 의사소통 경로로 표현
        • 구현 단계에서 사용되는 다이어그램
      • 복합체 구조 다이어그램(Composite Structure Diagram)
        • 클래스나 컴포넌트가 복합 구조를 갖는 경우 그 내부 구조를 표현
      • 패키지 다이어그램(Package Diagram)
        • 유스케이스나 클래스 등의 모델 요소들을 그룹화한 패키지들의 관계를 표현
      • 행위 다이어그램(Behavior Diagram)
        • 유스케이스 다이어그램(Use Case Diagram)
          • 사용자의 요구를 분석하는 것으로 기능 모델링 작업에 사용
          • 사용자(Actor)와 사용 사례(Use Case)로 구성되며 사용 사례 간에는 여러 형태의 관계로 이루어짐
        • 시퀀스 다이어그램(Sequence) Diagram)
          • 상호 작용하는 시스템이나 객체들이 주고받는 메시지를 표현
        • 커뮤니케이션 다이어그램(Communication Diagram)
          • 동작에 참여하는 객체들이 주고받는 메시지를 표현하는데, 메시지 뿐만 아니라 객체들 간의 연관까지 표현
        • 상태 다이어그램(State Diagram)
          • 하나의 객체가 자신이 속한 클래스의 상태 변화 혹은 다른 객체와의 상호 작용에 따라 상태가 어떻게 변화하는지를 표현
        • 활동 다이어그램(Activity Diagram)
          • 시스템이 어떤 기능을 수행하는지 객체의 처리 로직이나 조건에 따른 처리의 흐름을 순서에 따라 표현
        • 상호작용 개요 다이어그램(Interaction Overview Diagram)
          • 상호작용 다이어그램 간의 제어 흐름을 표현
        • 타이밍 다이어그램(Timing Diagram)
          • 객체 상태 변화와 시간 제약을 명시적으로 표현
    728x90
Designed by Tistory.