구조 다이어그램, 행위 다이어그램, 관계, 유스케이스 관계
구조 다이어그램
1. 클래스 다이어그램
- 시스템의 구조를 나타내는 데 사용된다.
- 클래스, 속성, 메서드, 객체 간의 관계 등을 시각적으로 표현한다.
- 클래스와 클래스 사이의 관계를 나타내는 정적인 모델이다.
- 구성 요소: 클래스, 속성, 메서드, 관계
2. 객체 다이어그램
- 시스템의 특정 시점에서 객체와 객체 간의 관계를 나타내는 데 사용된다.
- 클래스 다이어그램의 인스턴스로 볼 수 있다.
3. 컴포넌트 다이어그램
- 소프트웨어 시스템을 구성하는 컴포넌트와 그들 간의 관계를 나타낸다.
- 컴포넌트는 시스템의 기능을 구현하는 독립적인 모듈이며, 서로 상호 작용하여 시스템 전체를 구성한다.
4. 배치(Deployment) 다이어그램
- 시스템을 구성하는 하드웨어 요소와 네트워크 요소, 그리고 그들 간의 관계를 나타낸다.
- 시스템을 구성하는 물리적인 노드와 통신 경로, 그리고 컴포넌트의 수행 환경을 표시한다.
5. 복합체 구조(Composition Structure) 다이어그램
- 클래스의 내부 구조를 나타내는 데 사용된다.
- 구체적인 수준에서 시스템의 실행 구조를 설명한다.
6. 패키지 다이어그램
- 소프트웨어 시스템을 구성하는 패키지 및 패키지 간의 관계를 나타낸다.
- 패키지는 논리적으로 묶인 요소들을 그룹화하는 단위이다.
- 클래스, 인터페이스, 다이어그램 등을 포함할 수 있다.
행위 다이어그램
1. 유스케이스 다이어그램
- 시스템의 기능과 사용자 간의 상호 작용을 나타낸다.
- 시스템의 외부 관점에서 기능들을 표현한다.
- 구성요소: 액터, 유스케이스, 관계
2. 순차 다이어그램
- 시스템의 객체들 간의 상호작용을 시간 순서에 따라 나타내는 데 사용된다.
- 객체 간의 메시지 전달 순서와 타이밍을 표현한다.
- 구성요소: 활성객체, 메시지, 생명선, 제어 사각형
3. 커뮤니케이션 다이어그램
- 시스템 내부 또는 시스템 간의 통신을 나타내는 데 사용된다.
- 객체 간의 메시지 전달 방식과 순서를 시작적으로 표현한다.
4. 상태 다이어그램
- 객체의 상태와 상태 변화를 나타내는 데 사용된다.
5. 활동 다이어그램
- 프로세스의 흐름과 각 단계의 상세 동작에 초점을 맞춘다.
- 업무의 흐름을 표현하거나 유스케이스의 구체적인 흐름을 나타내기 위해 사용한다.
6. 상호작용(Interaction) 다이어그램
- 시스템 내부 또는 시스템 간의 상호작용을 나타내는 데 사용된다.
- 시퀀스 다이어그램이 시간 순서에 초점을 맞추는 반면, 상호작용 다이어그램은 객체 간의 상호작용에 더 집중한다.
7. 타이밍 다이어그램
- 시스템 내부 또는 시스템 간의 신호 변화를 시간 순서에 따라 나타낸다.
관계
1. 일반화(Generalization) 관계
- 하위 클래스가 상위 클래스의 속성과 메서드를 상속하는 관계
- 일반화 관계는 "is-a" 관계라고도 불린다.

2. 연관(Association) 관계
- 두 개 이상의 클래스 간의 관계
- 객체 간의 상호작용이나 의존성을 표현한다.

3. 의존(Dependency) 관계
- 한 클래스가 다른 클래스의 서비스를 사용하거나 기능에 의존하는 관게
- 짧은 기간 동안, 또는 한정된 상황에서만 필요하다.
- 한 클래스가 다른 클래스를 참조하는 것으로 지역변수, 매개변수 등을 일시적으로 사용하는 관계이다.

4. 실체화(Realizaion) 관계
- 인터페이스를 구현하는 클래스의 관계
- 인터페이스는 클래스가 제공해야 하는 서비스를 정의하며, 구현 클래스는 인터페이스에서 정의된 메서드와 속성을 실제로 구현한다.

5. 집약(Aggregation) 관계
- 하나의 객체가 여러 다른 객체를 포함하는 관계
- 하나의 전체가 여러 부분으로 구성된다 (has a 관계)

6. 합성(Composition) 관계
- 하나의 객체가 다른 객체를 포함하고, 포함된 객체는 포함하는 객체 없이는 존재할 수 없는 관계
- 하나의 전체가 필수적인 부분으로 구성된다.

유스케이스 관계
1. 연관 관계

2. 포함 관계

3. 확장 관계

4. 일반화 관계
