728x90
UML(Unified Modeling Language)
객체지향 소프트웨어 개발 전 단계에서 다양한 측면을 의사소통이 원활하게 이루어지도록 시각화 한 모델링 언어
사물(Things), 관계(Relationships), 다이어그램(Diagram)으로 구성한다.
- 사물(객체): 다이어그램 안에서 관계가 형성될 수 있는 대상들
- 관계 : 사물과 사물 사이의 연관성을 표현
- 실선으로 표현, 방향에 따라 화살표를 사용(양방향일 시 화살표 X)
- 집합(Aggregation)관계 : 사물이 다른 사물에 포함되어 있는 관계
- 포함(Composition)관계 : 상호 의존관계이며 독립될 수 없는 관계
- 일반화(Generalization)관계 : 사물의 구체적인지에 따라 상, 하 관계로 표현
- 실체화(Realization) : 사물의 기능에 따라 서로를 그룹화 할 수 있는 관계
- 의존(Dependency) 관계 : 짧은 시간 동안만 연관을 유지하는 관계
- 다이어그램 : 사물과 관계를 도형으로 표현, 뷰(View)를 제공함으로써 의사소통에 도움을 줌
- 구조적 다이어그램 : 정적 모델링(객체, 속성, 연관관계, 오퍼레이션 시스템 구조)구현 시 사용 (클객컴 복패배)
- 클래스 다이어그램 : 클래스, 인터페이스, 관계 등을 표현하여 시스템의 정적인 구조를 보여주는 다이어그램
- 일반적으로 이름, 속성, 메서드로 표기한다.
- 객체 다이어그램 : 클래스 다이어그램에서 정의된 클래스의 객체들 간 상호작용과 관계 등 구조를 나타낸다
- 컴포넌트 다이어그램 : 컴포넌트(실제 구현 모델)간 관계나 인터페이스를 표현
- 복합체 구조 다이어그램 : 클래스, 컴포넌트가 복합 구조일 시, 내부구조를 표현
- 패키지 다이어그램 : 모델 요소들을 그룹화한 패키지 간의 관계를 표현
- 배치 다이어그램 : 물리적 요소들의 위치를 표현
- 클래스 다이어그램 : 클래스, 인터페이스, 관계 등을 표현하여 시스템의 정적인 구조를 보여주는 다이어그램
- 행위 다이어그램 : 동적 모델링(내부 동작)구현 시 사용 (유시커상 활상타)
- 유스케이스 다이어그램 : Use Case와 Actor로 구성, 사용자와 시스템 간 상호작용을 사용자 관점에서 표현(View)
- 사용자의 요구를 분석하여 추출하기 위해 사용
- 내부의 유스케이스들을 사각형으로 묶어 시스템의 범위 표시
- Actor : 시스템과 상호작용하는 모든 외부 요소(사람 or 외부 시스템)
- 주 액터 : 시스템을 사용하는 액터
- 부 액터 : 주 액터의 목적달성을 위해 서비스를 제공하는 외부 시스템
- Use Case : 시스템이 Actor에게 제공해야 하는 기능
- 관계(Relationship) : 액터 - 유스케이스, 유스케이스 - 유스케이스 사이의 관계
- 포함 관계(Include) : 두 유스케이스 간 의존성을 나타냄
- 유스케이스 실행 시 포함관계의 유스케이스가 반드시 실행
- 로그인 - - - - <<include>> - - - > 비밀번호 확인
- 확장 관계 (Extend) : 두 유스케이스 간 확장성을 나타냄
- 유스케이스 실행 시 포함관계의 유스케이스가 특정 상황에 실행
- 로그인 - - - -> <<include>> - - - > 비밀번호 확인 - - -> <<extend>> - - - > 로그인 에러 출력
- 일반화 관계(Generalization) : 부모,자식 유스케이스 간 상속관계를 나타냄
- 포함 관계(Include) : 두 유스케이스 간 의존성을 나타냄
- 연동 : 2개 이상의 시스템이 일방이 아닌 상호 동작에 영향을 줄 수 있도록 연결망을 구성하는 것
- 시퀀스 다이어그램 : 시간의 흐름에 따라 시스템, 객체들이 주고받는 메시지를 표현
- 생명선(Lifeline) : 객체가 메모리에 존재하는 기간(객체아래에 점선으로 표현)
- 메시지 : 객체가 상호작용을 위해 주고받는 메시지
- 실행 상자(Active Box) : 객체가 메시지를 주고받으며 구동되고 있음을 표현
- 액터 : 시스템에 서비스를 요청하는 외부 요소(사람 or 외부 시스템)
- 객체 : 메시지를 주고받는 주체
- 커뮤니케이션 다이어그램 : 시퀀스 다이어그램 + 객체들의 연관까지 표현
- 상태 다이어그램 : 하나의 객체가 다른 객체와 상호작용 시 상태의 변화를 표현
- 활동 다이어그램 : 시스템이 어떤 기능을 수행하는지 순서에 따라 표현
- 상호작용 개요 다이어그램 : 상호작용 다이어그램 간 제어흐름을 표현
- 타이밍 다이어그램 : 객체 상태 변화와 시간 제약을 명시적으로 표현
- 유스케이스 다이어그램 : Use Case와 Actor로 구성, 사용자와 시스템 간 상호작용을 사용자 관점에서 표현(View)
- 구조적 다이어그램 : 정적 모델링(객체, 속성, 연관관계, 오퍼레이션 시스템 구조)구현 시 사용 (클객컴 복패배)
- 스테레오 타입(Stereotype) : UML에서 기본기능이 아닌 확장모델 사용을 위해 기술
- 길러멧(<<>>, 스테레오 타입을 표현할 때 사용하는 기호)사이에 표현할 형태를 기술
- <<include>> : 두 개 이상의 유스케이스가 같은 동작을 수행하는 경우(포함 관계(Include)) <<include>>를 표현합니다.
- ex : 로그인 → 비밀번호 확인
- <<extend>> : 두 개의 유즈케이스 사이에 특정한 예외(확장 관계(extend))가 있을 때 사용
- 로그인 - - - -> 비밀번호 확인 - - -> <<extend>> - - - > 로그인 에러 출력
- <<interface>> : 인터페이스(클래스가 구현해야 하는 일련의 동작들을 정의) 정의
- <<exception>> : 예외 정의
- <<constructor>> : 생성자 정의
- <<include>> : 두 개 이상의 유스케이스가 같은 동작을 수행하는 경우(포함 관계(Include)) <<include>>를 표현합니다.
- 길러멧(<<>>, 스테레오 타입을 표현할 때 사용하는 기호)사이에 표현할 형태를 기술
- 특징
- 가시화 언어 : 개념 모델 작성 시 오류가 적고 의사소통이 용이해짐
- 구축 언어 : 다양한 프로그래밍 언어로 실행 시스템의 예측 가능
- 명세화 언어 : 정확한 모델 제시, 완전한 모델 작성 가능
- 문서화 언어 : 시스템에 대한 평가 및 의사소통의 문서
'CS' 카테고리의 다른 글
[Design Pattern] 팩토리 메서드(Factory method pattern) (1) | 2023.10.23 |
---|---|
[Spring] Bean의 생명주기 및 Scope (0) | 2023.10.20 |
[Java] 객체지향 분석(OOA) 및 설계(OOD) 및 설계원칙(SOLID) (0) | 2023.10.19 |
[Java] 객체지향 프로그래밍(OOP; Object-Oriented Programming) (0) | 2023.10.19 |
[Spring] PSA(Portable Service Abstraction) (0) | 2023.10.18 |