클래스 다이어그램: Difference between revisions
From IT Wiki
(새 문서: 시스템에서 사용되는 객체 타입을 정의하고, 그들 간의 존재하는 정적인 관계를 다양한 방식으로 표현한 다이어그램 * Class, Interface, collab...) |
No edit summary |
||
(One intermediate revision by one other user not shown) | |||
Line 29: | Line 29: | ||
=== 관계 === | === 관계 === | ||
==== 요약 ==== | |||
{| class="wikitable" | {| class="wikitable" | ||
!명칭 | !명칭 | ||
Line 46: | Line 48: | ||
|전체와 부분인 연관 관계 | |전체와 부분인 연관 관계 | ||
|- | |- | ||
| | |합성 관계 | ||
|────♦ | |────♦ | ||
|전체 | |전체 소멸 시 부분도 소멸되는 집합 연관 관계 | ||
|- | |- | ||
|상속 관계 | |상속 관계 | ||
Line 55: | Line 57: | ||
|} | |} | ||
===== 상속 관계 ===== | |||
'''특수화/일반화 관계(Specialization/Generalization Relationship)''' | |||
* 상위와 하위의 관계를 의미. 하위는 상위의 공통점을 상속받아 가짐 | |||
* ‘is a 관계’ 또는 ‘is a kind of’ 관계라고도 함 | |||
[[파일:UML 특수화 일반화 관계.png|500x500픽셀]] | |||
==== [[연관 관계|'''연관 관계(Association Relationship)''']] ==== | |||
* 한 객체가 다른 객체와 연결되어 있음을 나타낼 때 그들을 연관관계로 지칭하며. 클래스들 사이에 선을 그어서 표현 | |||
* 한 클래스와 다른 클래스 간에 연결된 선이 있으면 한 클래스의 객체가 다른 클래스의 객체를 사용하는 것을 암시 | |||
* 방향(navigability)과 멀티플리시티(multiplicity) 표현 가능 | |||
[[파일:UML 일방향과 양방향.png]] | |||
=== 기타 === | |||
* '''집합 관계(Aggregation Relationship)''' | * '''집합 관계(Aggregation Relationship)''' | ||
** 클래스와 클래스간의 부분과 전체의 관계를 의미 | ** 클래스와 클래스간의 부분과 전체의 관계를 의미 | ||
** UML 2.0에서는 사용하지 않음 | ** UML 2.0에서는 사용하지 않음 | ||
* ''' | * '''합성 관계(Composition Relationship)''' | ||
** 집합 관계와 같이 부분과 전체 관계이나, 전체 클래스 소멸 시 부분 클래스도 소멸하는 관계 | ** 집합 관계와 같이 부분과 전체 관계이나, 전체 클래스 소멸 시 부분 클래스도 소멸하는 관계 | ||
* '''의존 관계(Dependency Relationship)''' | * '''의존 관계(Dependency Relationship)''' | ||
** 한 클래스의 변화가 다른 클래스에 영향을 미치는 관계 | ** 한 클래스의 변화가 다른 클래스에 영향을 미치는 관계 | ||
** 한 클래스가 변경 되었을 때 이것을 사용하는 다른 클래스에 영향이 미치는 관계(그러나 반드시 역이 성립하는 것은 아니다.) | ** 한 클래스가 변경 되었을 때 이것을 사용하는 다른 클래스에 영향이 미치는 관계(그러나 반드시 역이 성립하는 것은 아니다.) |
Latest revision as of 00:03, 4 October 2024
시스템에서 사용되는 객체 타입을 정의하고, 그들 간의 존재하는 정적인 관계를 다양한 방식으로 표현한 다이어그램
- Class, Interface, collaboration, Relation을 이용하여 시스템의 정적인 관점들을 가시화하고 구축을 위한 자세한 내용을 명세화
- 객체지향 설계 시 가장 대중적으로 쓰이는 다이어그램 중 하나
특징[edit | edit source]
- 클래스(Class), 인터페이스(Interface), 공동작업(Collaboration) 간의 관계 중심
- 시스템 내 클래스들의 정적인 구조를 표현
- 작성 후 바로 프로그램 코드로 변환 가능
구성[edit | edit source]
- 클래스
- 속성
- 연산
- 관계
클래스[edit | edit source]
클래스 표기는 박스를 세 부분으로 나누어 첫번째 부분에는 클래스 이름이 위치하며, 두번째 부분은 속성, 세번째 부분은 연산을 기술
- 클래스 이름: 일반적으로 첫번째 글자는 대문자로 표기
- 속성(attribute): 의미 있는 명사형으로 표현
- Class의 특징(property)에 이름을 부여
- 연산(operation): 의미있는 동사형으로 표현
- 객체 행동에 영향을 주기 위해 특정 class의 객체로부터 요청할 수 있는 서비스를 표현
관계[edit | edit source]
요약[edit | edit source]
명칭 | 표현 | 설명 |
---|---|---|
연관 관계 | ────> | 객체간 개념적으로 연관 |
의존 관계 | - - - - - -> | 객체 변경 시 관계된 다른 객체도 변경 |
집합 관계 | ────◇ | 전체와 부분인 연관 관계 |
합성 관계 | ────♦ | 전체 소멸 시 부분도 소멸되는 집합 연관 관계 |
상속 관계 | ────▷ | 일반화된 개념과 구체화된 객체의 관계 |
상속 관계[edit | edit source]
특수화/일반화 관계(Specialization/Generalization Relationship)
- 상위와 하위의 관계를 의미. 하위는 상위의 공통점을 상속받아 가짐
- ‘is a 관계’ 또는 ‘is a kind of’ 관계라고도 함
연관 관계(Association Relationship)[edit | edit source]
- 한 객체가 다른 객체와 연결되어 있음을 나타낼 때 그들을 연관관계로 지칭하며. 클래스들 사이에 선을 그어서 표현
- 한 클래스와 다른 클래스 간에 연결된 선이 있으면 한 클래스의 객체가 다른 클래스의 객체를 사용하는 것을 암시
- 방향(navigability)과 멀티플리시티(multiplicity) 표현 가능
기타[edit | edit source]
- 집합 관계(Aggregation Relationship)
- 클래스와 클래스간의 부분과 전체의 관계를 의미
- UML 2.0에서는 사용하지 않음
- 합성 관계(Composition Relationship)
- 집합 관계와 같이 부분과 전체 관계이나, 전체 클래스 소멸 시 부분 클래스도 소멸하는 관계
- 의존 관계(Dependency Relationship)
- 한 클래스의 변화가 다른 클래스에 영향을 미치는 관계
- 한 클래스가 변경 되었을 때 이것을 사용하는 다른 클래스에 영향이 미치는 관계(그러나 반드시 역이 성립하는 것은 아니다.)