Linear Algebra
🚀

UML Notation - Class Diagram

생성일
2022/02/03 04:07
태그
Class Diagram
UML
Generalization
Association

UML/ Class Diagram이란?

UML(United Modeling Language)
Software Engineering Field 에서 Model을 만드는 Standard Language의 역할을 한다.

UML을 왜 사용하는가?

다른 사람과 협업하면서 프로그램 설계에 대해 논의 할 때 의사소통할수 있는 매개체 역할이다.또한, UML을 통해 전체 시스템의 구조 및 클래스의 의존성을 파악할 수 있는데. 이는 프로그램의 구조를 이해하는데 큰 도움이 된다.

Class Diagram

UML의 다이어그램들 중 구조 다이어그램에 해당하며 이들은 시스템의 개념, 관계를 표현하는 것을 중심으로 한다. 그 중에서 Class Diagram은 클래스 내부 정적인 내용, 클래스 사이 관계를 표기하는 다이어그램이다.

Class Diagram을 왜 사용하는가?

클래스 간의 의존 관계를 명확히 해주고 순환 의존이 발생하는 지점을 찾아 어떻게 이 순환고리를 끊을지에 대한 판단을 용이하게 해주기 때문이다.

class 표현 방법

1. 클래스 이름
2. 속성(특징, 변수)
3. 연산(메서드, 인터페이스)

Class Diagram 을 이용한 관계 표현방법

1. Generalization

is - a relationship (ex. 세탁기는 가전제품이다 / TV는 가전제품이다)
Inheritance(상속) 관계이다 (부모, Super --- 자식, Sub)
부모 클래스는 추상적인 개념, 자식 클래스는 추상적인 개념을 물려받은 구체적인 개념이다
부모 클래스는 자식 클래스에게 공통 속성을 제공하는 역할을 한다, 따라서 자세한 연산을 정의하지 않고 자식 클래스에서 쓰이는 메서드만 제공하면 된다. 이와 같이 연산에 대해 정의되지 않고 비어있는 메서드가 추상 메서드이다. (Abstract Method). 이러한 추상 메서드를 하나 이상 가지는 클래스를 추상 클래스(Abstract Class) 라고 한다.

2. Association

has - a relationship
한 클래스가 다른 클래스에서 제공하는 기능을 사용한다 (다른 클래스를 멤버변수로 사용한다)
단방향 : 한 쪽은 알지만 다른 쪽은 모른다 / 양방향 : 두 클래스가 서로를 안다
소스코드 구현시 클래스A는 클래스B를 멤버변수로 구현해야한다 (아래 그림)

3. Aggregation

special has - a relationship (Association 의 특별한 형태)
클래스 사이의 전체 - 부분 관계를 나타낸다
전체 객체가 사라져도 부분 객체는 남아있는다 (라이프 타임이 독립적이다)

4. Composition

special has - a relationship (Association 의 특별한 형태)
클래스 사이의 전체 - 부분 관계를 나타낸다
전체 객체가 사라지면 부분 객체는 남아있지 않는다 (라이프 타임이 의존적이다)

5. Dependency

use relationship
method 내에서 대상 클래스의 객체를 생성, 사용 또는 리턴받아 사용한다
현재 클래스와 대상 클래스와의 관계를 계속 유지하지 않는다.
클래스b를 메서드로 받는다
연관 관계는 오랫동안 같이할 객체와의 관계이고 의존 관계는 짧은 시간 이용하는 관계이다. 클래스 A가 클래스 B를 멤버변수로 가지면 연관이고, 클래스A가 클래스B의 메서드를 가지면 의존이다.

6. Realization

인터페이스 와 클래스들 사이의 관계
인터페이스 : 객채가 해야하는 일을 적어놓은 것 (책임)
인터페이스와 그것을 실제로 실현한 클래스들 사이의 관계

Reference