UML(1) Class Diagram :: 클래스의 속성, 연산, 관계를 표현한 클래스 다이어그램

이주희·2022년 9월 25일
0

CS

목록 보기
40/66

[UML :: 표준화된 범용 모델링 언어]

클래스 다이어그램

객체 지향 모델링 시 클래스의 속성 및 연산(메서드)과 클래스 간 정적인 관계를 표현한 다이어그램

1. 클래스 다이어그램 구성요소

클래스 이름, 속성, 연산(메서드), 접근 제어자, 관계

(1) 클래스 Class

  • 공통의 속성, 연산(메서드), 관계, 의미를 공유하는 객체들의 집합

    객체 Object

    자신 고유의 데이터(Attribute)를 가지며, 클래스에서 정의한 행위(Behavior)를 수행한다.

(2) 속성 Attribute

  • 클래스의 구조적 특성에 이름을 붙인 것으로 특성에 해당하는 인스턴스가 보유할 수 있는 값의 범위를 기술

(3) 연산/메서드 Operation

  • 이름, 타입, 매개변수들과 연관된 행위를 호출하는데 요구되는 제약사항들을 명시하는 클래스의 행위적 특징

  • 객체에 요청하여 행동에 영향을 줄 수 있는 서비스

(4) 접근 제어자 = 접근 제한자 Access Modifier

  • 클래스에 접근할 수 있는 정도를 표현
    • - private : 클래스 내부 접근만 허용
    • + public : 클래스 외부 접근 허용
    • # protected : 동일 패키지/파생 클래스에서 접근 가능
    • ~ default : 동일 패키지 클래스에서 접근 가능

2. 클래스 간의 관계, UML의 관계 Relationships 🌟

(1) 연관 관계 Association

  • 클래스가 서로 개념적으로 연결된 선

  • 2개 이상의 사물이 서로 관련되어 있는 상태를 표현

  • 양방향 관계의 경우 화살표 생략

  • 실선으로 표현, 방향성은 화살표

(2) 의존 관계 Dependency

  • 하나의 클래스가 또 다른 클래스를 사용하는 관계

  • 다른 클래스의 멤버 함수 사용

  • 사물 사이에 서로 연관은 있으나, 필요에 따라 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계를 표현

  • 하나의 클래스에 있는 멤버 함수의 인자가 변함에 따라 다른 클래스에 영향을 미칠 때의 관계

  • 점선으로 표현, 영향을 주는 사물이 영향을 받는 사물 쪽으로 점선 화살표

(3) 일반화 관계 = 상속 관계 Generalization

  • 하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지를 표현

  • 일반적인 개념을 부모(상위), 구체적인 개념을 자식(하위)

  • 구체적(하위)인 사물에서 일반적(상위)인 사물 쪽으로 속이 빈 화살표를 연결

  • extends 메서드 사용

  • 화살표로 표현

(4) 실체화 관계 Realization

  • 추상 클래스나 인터페이스를 상속받아 자식 클래스가 추상 메서드를 구현할 때 사용

  • 사물이 할 수 있거나, 해야 하는 기능(행위, 인터페이스)으로 서로를 그룹화할 수 있는 관계 표현

  • implements 메서드 사용

  • 점선 화살표로 표현

추상 클래스 <<abstract>>

  • 객체 인스턴스를 생성하지 않고, 단지 유사 클래스들의 공통된 특징을 정의하고, 하나 이상의 추상 메서드와 일반 필드 및 일반 메서드를 포함하는 클래스
  • 동일한 부모를 가지는 클래스를 묶는 개념으로 상속을 받아서 기능을 확장시키는 것이 목적

인터페이스 <<interface>>

  • 기능을 모아놓은 클래스로 추상 메서드와 상수만을 포함하는 추상 클래스
  • 구현하는 모든 클래스에 대해 특정한 메서드가 반드시 존재하도록 강제하는 역할

(5) 포함 관계 = 복합 관계 Composition

  • 영구적이고, 집합 관계보다 더 강한 관계로 구성

  • 포함되는 쪽(Part; 부분)에서 포함하는 쪽(Whole; 전체)으로 속이 채워진 마름모를 연결

  • 집합 관계의 특수한 형태로, 포함하는 사물의 변화가 포함되는 사물에게 영향을 미치는 관계를 표현

  • 종속적이다.

  • 전체와 부분을 나타낸다.

  • 채워진 마름모 & 화살표

(6) 집합 관계 = 집약 관계 Aggregation

  • 하나의 객체에 여러 개의 독립적인 객체들이 구성되는 관계

  • 하나의 사물이 다른 사물에 포함되어 있는 관계 표현

  • 포함되는 쪽(Part; 부분)에서 포함하는 쪽(Whole; 전체)으로 속이 빈 마름모를 연결

  • 독립적이다.

  • 전체와 부분을 나타낸다.

  • 빈 마름모 & 화살표

profile
🍓e-juhee.tistory.com 👈🏻 이사중

0개의 댓글