CS

[JAVA] UML(Unified Modeling Language)

KJihun 2023. 10. 19. 12:31
728x90

 

 

UML(Unified Modeling Language)

객체지향 소프트웨어 개발 전 단계에서 다양한 측면을 의사소통이 원활하게 이루어지도록 시각화모델링 언어

사물(Things), 관계(Relationships), 다이어그램(Diagram)으로 구성한다.

  • 사물(객체): 다이어그램 안에서 관계가 형성될 수 있는 대상들
  • 관계 : 사물과 사물 사이의 연관성을 표현
    • 실선으로 표현, 방향에 따라 화살표를 사용(양방향일 시 화살표 X)
    • 집합(Aggregation)관계 : 사물이 다른 사물에 포함되어 있는 관계
    • 포함(Composition)관계 : 상호 의존관계이며 독립될 수 없는 관계
    • 일반화(Generalization)관계 : 사물의 구체적인지에 따라 상, 하 관계로 표현
    • 실체화(Realization) : 사물의 기능에 따라 서로를 그룹화 할 수 있는 관계
    • 의존(Dependency) 관계 : 짧은 시간 동안만 연관을 유지하는 관계
  • 다이어그램 : 사물과 관계를 도형으로 표현, 뷰(View)를 제공함으로써 의사소통에 도움을 줌
    • 구조적 다이어그램 : 정적 모델링(객체, 속성, 연관관계, 오퍼레이션 시스템 구조)구현 시 사용 (클객컴 복패배)
      • 클래스 다이어그램 : 클래스, 인터페이스, 관계 등을 표현하여 시스템의 정적인 구조를 보여주는 다이어그램
        • 일반적으로 이름, 속성, 메서드로 표기한다.
      • 객체 다이어그램 : 클래스 다이어그램에서 정의된 클래스의 객체들 간 상호작용과 관계 등 구조를 나타낸다
      • 컴포넌트 다이어그램 : 컴포넌트(실제 구현 모델)간 관계나 인터페이스를 표현
      • 복합체 구조 다이어그램 : 클래스, 컴포넌트가 복합 구조일 시, 내부구조를 표현
      • 패키지 다이어그램 : 모델 요소들을 그룹화한 패키지 간의 관계를 표현
      • 배치 다이어그램 : 물리적 요소들의 위치를 표현
    • 행위 다이어그램 : 동적 모델링(내부 동작)구현 시 사용 (유시커상 활상타)
      • 유스케이스 다이어그램 : Use Case와 Actor로 구성, 사용자와 시스템 간 상호작용을 사용자 관점에서 표현(View)
        • 사용자의 요구를 분석하여 추출하기 위해 사용
        시스템(System)/시스템 범위(System Scope) : 시스템 내/외부를 구분
        • 내부의 유스케이스들을 사각형으로 묶어 시스템의 범위 표시
        • Actor : 시스템과 상호작용하는 모든 외부 요소(사람 or 외부 시스템)
          • 주 액터 : 시스템을 사용하는 액터
          • 부 액터 : 주 액터의 목적달성을 위해 서비스를 제공하는 외부 시스템
        • Use Case : 시스템이 Actor에게 제공해야 하는 기능
        • 관계(Relationship) : 액터 - 유스케이스, 유스케이스 - 유스케이스 사이의 관계
          • 포함 관계(Include) : 두 유스케이스 간 의존성을 나타냄
            • 유스케이스 실행 시 포함관계의 유스케이스가 반드시 실행
            • 로그인 - - - - <<include>> - - - > 비밀번호 확인
          • 확장 관계 (Extend) : 두 유스케이스 간 확장성을 나타냄
            • 유스케이스 실행 시 포함관계의 유스케이스가 특정 상황에 실행
            • 로그인 - - - -> <<include>> - - - > 비밀번호 확인 - - -> <<extend>> - - - > 로그인 에러 출력
          • 일반화 관계(Generalization) : 부모,자식 유스케이스 간 상속관계를 나타냄
        • 연동 : 2개 이상의 시스템이 일방이 아닌 상호 동작에 영향을 줄 수 있도록 연결망을 구성하는 것
      • 시퀀스 다이어그램 : 시간의 흐름에 따라 시스템, 객체들이 주고받는 메시지를 표현
        • 생명선(Lifeline) : 객체가 메모리에 존재하는 기간(객체아래에 점선으로 표현)
        • 메시지 : 객체가 상호작용을 위해 주고받는 메시지
        • 실행 상자(Active Box) : 객체가 메시지를 주고받으며 구동되고 있음을 표현
        • 액터 : 시스템에 서비스를 요청하는 외부 요소(사람 or 외부 시스템)
        • 객체 : 메시지를 주고받는 주체
      • 커뮤니케이션 다이어그램 : 시퀀스 다이어그램 + 객체들의 연관까지 표현
      • 상태 다이어그램 : 하나의 객체가 다른 객체와 상호작용 시 상태의 변화를 표현
      • 활동 다이어그램 : 시스템이 어떤 기능을 수행하는지 순서에 따라 표현
      • 상호작용 개요 다이어그램 : 상호작용 다이어그램 간 제어흐름을 표현
      • 타이밍 다이어그램 : 객체 상태 변화와 시간 제약을 명시적으로 표현

 

  • 스테레오 타입(Stereotype) : UML에서 기본기능이 아닌 확장모델 사용을 위해 기술
    • 길러멧(<<>>, 스테레오 타입을 표현할 때 사용하는 기호)사이에 표현할 형태를 기술
      • <<include>> : 두 개 이상의 유스케이스가 같은 동작을 수행하는 경우(포함 관계(Include)) <<include>>를 표현합니다.
        • ex : 로그인 → 비밀번호 확인
      • <<extend>> : 두 개의 유즈케이스 사이에 특정한 예외(확장 관계(extend))가 있을 때 사용
        • 로그인 - - - -> 비밀번호 확인 - - -> <<extend>> - - - > 로그인 에러 출력
      • <<interface>> : 인터페이스(클래스가 구현해야 하는 일련의 동작들을 정의) 정의
      • <<exception>> : 예외 정의
      • <<constructor>> : 생성자 정의
  • 특징
    • 가시화 언어 : 개념 모델 작성 시 오류가 적고 의사소통용이해짐
    • 구축 언어 : 다양한 프로그래밍 언어로 실행 시스템예측 가능
    • 명세화 언어 : 정확한 모델 제시, 완전한 모델 작성 가능
    • 문서화 언어 : 시스템에 대한 평가 및 의사소통의 문서