객체 다이어그램
![](https://velog.velcdn.com/images/sang1234yun/post/708a8800-5a4c-4eee-bed7-029ef7865aff/image.png)
객체들의 특정 순간의 모습. 시스템의 객체들과 그 관계를 설명한다. 인스턴스 다이어그램이라고도 한다.
클래스 다이어그램
![](https://velog.velcdn.com/images/sang1234yun/post/0fbae33f-256a-466b-a460-08d5fbf084ff/image.png)
- 구성
- 인스턴스 변수: 인스턴스로 할당될 때 마다 새로 할당되는 변수
- 클래스 변수: 클래스 단위로 한번만 정의됨. 즉 모든 인스턴스와 공유함
- 클래스 오퍼레이션: 마찬가지로 클래스 단위의 함수 등
- 작성
- +는 Public, -는 Private, #은 Protected, ~는 default
- 클래스 변수, 오퍼레이션은 밑줄을 긋는다
추상 오퍼레이션 & 클래스
- 추상 오퍼레이션
body(구현)이 없는 오퍼레이션
- 추상 클래스
직접 인스턴스화 될 수 없는 클래스
! 추상 오퍼레이션을 포함한 클래스는 추상 클래스이다. !
![](https://velog.velcdn.com/images/sang1234yun/post/9a41a786-ab76-497e-a369-86a0c519841f/image.png)
- Uml에서 추상 클래스 구현
- 이탤릭체로 이름을 쓴다
- «abstract» 형태로 stereotyping 한다
- {abstract} 속성을 붙인다
- UML에서 추상 오퍼레이션 구현
- 이탤릭체로 이름을 쓴다
- {abstract} 속성을 붙인다
인터페이스
![](https://velog.velcdn.com/images/sang1234yun/post/9b6e9d76-a06a-4725-9320-89c6e051b757/image.png)
public 추상 오퍼레이션들의 콜렉션
- Provided 인터페이스
- 공, 롤리팝 기호
- 스테레오타입 클래스 아이콘 + realization 연결
- Required 인터페이스
(프로그래밍 언어에서 직접 지원하지는 않음)ㄹ
- socket 기호
- dependency 화살표 -> 공 기호
- dependency 화살표 -> 스테레오타입 클래스 아이콘
세부사항 수준별 명세
![](https://velog.velcdn.com/images/sang1234yun/post/f1c5dcdc-d20d-4570-b60a-c46d0688f348/image.png)
꼭 아주 자세할 필요는 없고, 필요한 상황에 따라 간단하게, 때로는 클래스 이름만 쓸 수도 있다.