728x90
UML의 유형
클래스 다이어그램 [2021년 3회]
① 클래스 다이어그램(Class Diagram) 개념
클래스 다이어그램은 객체 지향 모델링 시 클래스의 속성 및 연산과 클래스 간 정적인 관계를 표현한 다이어그램이다.
② 클래스 다이어그램 구성요소
클래스 다이어그램의 구성요소는 클래스 이름, 속성, 연산, 접근 제어자, 관계가 있다.
구성요소 | 설명 |
클래스 (Class) |
공통의 속성, 연산(메서드), 관계, 의미를 공유하는 객체들의 집합 |
속성 (Attribute) |
클래스의 구조적 특성에 이름을 붙인 것으로 특성에 해당하는 인스턴스가 보유할 수 있는 값의 범위를 기술 |
연산 메서드 (Operation) |
이름, 타입, 매개변수들과 연관된 행위를 호출하는데 요구되는 제약사항들을 명시하는 클래스의 행위적 특징 객체에 요청하여 행동에 영향을 줄 수 있는 서비스 |
접근 제어자 (Access Modifier) |
클래스에 접근할 수 있는 정도를 표현![]() |
③ 클래스 간의 관계 (Relationships)
클래스의 관계는 연관 관계, 집합 관계, 포함 관계(복합 관계), 일반화 관계, 의존 관계, 실체화 관계가 있다.
구분 | 설명 | 사례 |
연관 (Association) 관계 |
- 연관 관계는 클래스가 서로 개념적이고 연결된 선 - 연관 관계는 2개 이상의 사물이 서로 관련되어 있는 상태를 표현 - 사물 사이를 실선으로 연결하여 표현하며, 방향성은 화살표로 표현 - 서로에게 영향을 주는 양방향 관계의 관계의 경우 화살표를 생략하고 실선으로만 연결 |
![]() |
의존 (Dependency) 관계 |
- 하나의 클래스가 또 다른 클래스를 사용하는 관계 - 다른 클래스의 멤버 함수 사용주구 - 의존 관계는 사물 사이에 서로 연관은 있으나 필요에 따라 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계를 표현 - 하나의 클래스에 있는 멤버 함수의 인자가 변함에 따라 다른 클래스에 영향을 미칠 때의 관계 - 영향을 주는 사물이 영향을 받는 사물 쪽으로 점선 화살표를 연결하여 표현 |
![]() |
일반화 (Generaalization) 관계 |
- 일반화 관계는 하나의 사물이 다 른 사물에 비해 더 일반적인지 구체적인지를 표현 - 일반적인 개념을 부모(상위)라고 하고, 구체적인 개념을 자식(하위)라고 함 - 구체적(하위)인 사물에서 일반적(상위)인 사물 쪽으로 속이 빈 화살표를 연결하여 표현 - 일반화 관계는 다른 의미로 상속 관계라고 함 |
![]() |
실체화 (Realization) 관계 |
- 추상 클래스나 인터페이스를 상속받아 자식 클래스가 추상 메서드를 구현할 때 사용 - 사물이 할 수 있거나, 해야 하는 기능(행위, 인터페이스)으로 서로를 그룹화할 수 있는 관계를 표현 |
![]() |
포함 (Composition) 관계 (=복합 관계) |
- 영구적이고, 집합 관계보다 더 강한 관계로 구성 - 포함되는 쪽(part; 부분)에서 포함하는 쪽(Whole; 전체)으로 속이 채워진 마름모를 연결하여 표현 - 포함 관계는 복합 관계라고도 함 |
![]() |
집합 (Aggregation) 관계 |
- 하나의 객체에 여러 개의 독립적인 객체들이 구성되는 관계 - 집합 관계는 하나의 사물이 다른 사물에 포함되어 있는 관계 표현 - 포함되는 쪽(part; 부분)에서 포함하는 쪽(Whole; 전체)으로 속이 빈 마름모를 연결하여 표현 |
![]() |
패키지 다이어그램 [2020년 2회]
① 패키지 다이어그램(Package Diagram) 개념
패키지 다이어그램은 시스템의 서로 다른 패키지들 사이의 의존 관계를 표현하기 위한 다이어그램이다.
② 패키지 다이어그램 구성요소
패키지 다이어그램 구성요소는 패키지, 의존관계가 있다.
구성요소 | 설명 | 표기법 |
패키지 | 요소들을 그룹으로 조직하기 위한 요소 | ![]() |
의존관계 | 하나의 패키지가 다른 패키지를 사용하는 관계 의존성의 성질을 나타내기 위해 스테레오 타입을 붙일 수 있음 스테레오 타입에는 <<import>>, <<access>>가 있음 |
![]() |
'자격증 > 정보처리기사' 카테고리의 다른 글
chapter 04. 통합 구현 (0) | 2022.04.24 |
---|---|
chapter 03. 데이터 입출력 구현 (0) | 2022.04.21 |
chapter 02. 화면 설계 (1) (1) | 2022.04.20 |
chapter 01. 소프트웨어 개발 방법론 (3) (0) | 2022.04.20 |
chapter 01. 소프트웨어 개발 방법론 (2) (0) | 2022.04.18 |