대학원 일기

4장 클래스 다이어그램 본문

School/SW

4장 클래스 다이어그램

대학원생(노예) 2022. 4. 27. 17:44

클래스 다이어그램

구성요소

클래스 구성요소 : 클래스 이름, 속성, 메소드

  메소드(접근 지정자) 종류

public(+) : 패키지의 내부, 외부 등 모든 클래스에 접근 가능

private(-) : 같은 클래스 내부 멤버에 의해 접근 가능. 즉, 외부로부터 모든 접근 차단

protected(#) : 같은 패키지 내의 모든 클래스에서 접근 가능하며 다른 클래스에서도 상속받는 경우 접근 가능

 

  클래스(class)

- 공통의 속성, 메소드(operation), 관계, 의미를 공유하는 객체들의 집합

  속성(attribute)

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

  메소드(method)

- Operation이라고도 함

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

 

객체와 클래스

객체 : 실제 현실에서 존재하는 사물을 의미

클래스 : 객체들을 추상화한 개념

 

클래스 추출

명세서를 통한 클래스 추출 : 배구선수, 점수, 세트, 경기

명세서를 통한 객체 추출 : 리베로, 센터, 공격수

명세서를 통한 메소드 추출 : 토스, 스파이크, 리시브, 이긴다, 진다, 올라간다

 

  명세서(시나리오) 상에서 추출

명사 <- 클래스나 속성

동사 <- 메소드

 

클래스 간의 관계

  연관 관계

- 클래스가 서로 개념적으로 연결된 선(그냥 선)을 의미

- 서로 개념적으로 연관없는 클래스는 없으므로 의존, 상속, 집합, 복합 등의 관계와 같이 표시하는 건 별로 중요치 않음

 

  연관 관계의 다중성

다중성 : 두 클래스의 연관관계에서 실제로 연관을 가지는 객체의 수를 나타낸 것

 

  집합과 복합 관계

- 집합(Aggregation) 관계와 복합(Composition) 관계 모두 연관 관계에 포함되는 개념

  집합 관계(흰 다이아몬드 화살표)

- 하나의 객체에 여러 개의 독립적인 객체들이 구성되는 경우

 

  복합 관계(검 다이아몬드 화살표)

- 더 강한 관계로 구성

- 엔진은 카뷰레터, 피스톤, 플러그로 구성

- 엔진의 구성요소는 더 강한 관계

 

  일반화 관계

- 일반화 관계는 하나의 종류를 의미

- 일반화 관계는 다른 의미로 상속관계라고도 한다.

 

  의존 관계

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

- 다른 클래스의 멤버 함수를 사용하는 경우

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

 

  추상클래스와 인터페이스

추상 클래스

- <<abstract>>로 표기

- <<interface>>로 표기

  실체화 관계

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

 

Comments