728x90
728x170
UML(Unifed Modeling Language)
UML(Unified Modeling Language)
- 객체 간의 관계를 표현하는 데 사용됨.
- 시스템 시각화나 사양의 설계를 문서화할 때 사용하는 표현 방법
클래스 다이어그램(Class Diagram)
- 클래스의 관계를 표시하는 다이어그램
클래스와 인터페이스
- 클래스와 인터페이스는 영역이 3개로 나뉜 사각형으로 표시한다.
- 가장 위 영역 : 클래스나 인터페이스의 이름
- 추상 클래스, 인터페이스 : 이텔릭체
- 인터페이스는 <<interface>> 라고 적는다.
- 중간 영역 : 클래스나 인터페이스의 필드
- 클래스 필드(static 필드) 이름에는 밑줄을 긋는다.
- 가장 아래 영역 : 클래스나 인터페이스의 메서드
- 클래스 메서드(static 메서드) 이름에는 밑줄을 긋는다.
- 추상 메서드(abstract 메서드)는 이름을 이텔릭체로 표시한다.
- 가장 위 영역 : 클래스나 인터페이스의 이름
- 정리
이탤릭체 : 추상 클래스, 인터페이스, 추상 메서드
밑줄 : 클래스 필드, 클래스 메서드
- 세 영역 각각은 필요에 따라 생략 가능하다.
- 실제 프로그램에 선언된 필드나 메서드라도 클래스 다이어그램에서 생략하기도 한다.
- 클래스 다이어그램은 클래스 사이의 구조를 표현하는 용도지, 프로그램 자체를 복원하는 용도가 아니기 때문
- 실제 프로그램에 선언된 필드나 메서드라도 클래스 다이어그램에서 생략하기도 한다.
◆ 화살표
- 화살표의 종류 차이도 있지만, 프로그래밍에서 중요한건 화살표의 방향이다.
- 각 클래스는 화살표가 가리키는 클래스나 인터페이스에 의존하기 때문
- 어떤 화살표든, 화살표 시작점에 있는 클래스는 화살표 끝에 있는 클래스나 인터페이스가 없으면 컴파일을 할 수 없다.
- 반대로, 오른쪽 클래스나 인터페이스는 왼쪽 클래스가 없어도 컴파일 된다.
- 부품으로 재사용 가능한 모음은 의존 관계로 정해지므로, 화살표가 가리키는 방향은 매우 중요하다.
화살표 | 설명 |
- 상위 클래스를 가리키는 화살표 - '사용한다'를 뜻하는 화살표 - 필드에 들어 있지 않아도 메서드 매개변수나 임시 변수 등으로 사용할 가능성이 있는 객체를 가리킴. |
|
- 인터페이스를 가리키는 화살표 - '알고 있다' 를 뜻하는 화살표 - 프로그램에서 집합을 뜻하는 화살표와 같지만, '포함한다'를 강조하기보다는 필드에 들어 있음을 강조할 때 사용 |
|
- 집합을 나타내는 화살표 - 필드 등으로 객체를 '포함'하는 경우 사용 |
클래스 다이어그램의 예
그림 1 : 클래스 다이어그램의 예
코드 1 : 클래스 다이어그램에 대응하는 자바 프로그램
interface Executable {
abstract void execute();
}
abstract class ParentClass {
Something _field1;
static int FIELD2;
abstract void method1();
void method2() {
...
}
static void method3() {
...
}
}
class ChildClass extends ParentClass implements Executable {
void method1() {
...
}
void execute() {
...
}
}
class Something {
int _value;
...
}
시퀀스 다이어그램(Sequence Diagram)
- 프로그램 동작 순서를 표현하는 다이어그램
코드 : 시퀀스 다이어그램 예시용 자바 프로그램
class Client {
Server _server = new Server();
...
void work() {
_server.open();
_server.print("Hello");
_server.close();
}
}
class Server {
Device _device;
void open() {
_device = new Device();
...
}
void print(String s) {
_device.write(s);
}
void close() {
...
}
}
class Device {
void write(String s) {
...
}
}
그림 2 : 시퀀스 다이어그램의 예
- :Client, :Server, :Device 는 Client 클래스, Server 클래스, Device 클래스의 인스턴스를 나타낸다.
- 시퀀스 다이어그램에서 위에서 아래 방향은 시간 흐름이고, 가로 방향 화살표는 인스턴스 사이의 상호 작용을 표현한다.
화살표 | 설명 |
메서드 호출 | |
메서드에서 돌아오는 것 |
주석과 역할
- 클래스 다이어그램이나 시퀀스 다이어그램에는 노트 모양의 주석을 추가할 수 있다.
- 클래스 다이어그램에서 클래스 역할을 강조하고 싶을 때는, 태그를 사용한다.
- UML에 규정된 서식은 아니다.
- 이는 특히 디자인 패턴에서 클래스의 역할을 표기할 때 편리하다.
- 이 페이지에서는 집합 관계인 필드 이름도 클래스를 표시하는 사각형 안에 작성하였지만(그림1의 _field1 필드), UML에서는 일반적으로 집합 관계 필드 이름을 사각형 안에 작성하지 않는다.
- 집합 관계는 화살표로 표현 가능하다.
728x90
그리드형(광고전용)