1. UML(Unified Medeling Language)
UML 은 시스템을 시각화하거나 시스템의 사양이나 설계를 문서화하기 위한 표현 방법이다.UML 에서 attribute(속성) 는 Java 를 예로 들어 Field(필드) 로, operation(조작) 은 Method(메소드) 로 이해하면 되겠다.
보다 자세히 알고 싶다면 다음 사이트를 참조하기 바란다.
http://www.omg.org/uml
2. 클래스 다이어그램(Class Diagram)
클래스 다이어그램은 클래스, 인스턴스, 인터페이스 등의 정적인 관계를 표한한 것이다.2.1. 클래스와 계층관계
화살표는 클래스의 계층관계(하위클래스에서 상위클래스로 향하고 있다)를 표시하고 있고 이는 extends 를 의미한다.
클래스는 직사각형으로 표시하는데 3부분으로 나누어 다음의 순서로 표시한다.
여기서 부가 정보(접근제어나 메소드의 인수나 형태) 를 표시하거나 주목할 필요없는 항목을 생략하는 경우도 있다.
abstract 클래스나 메소드는 이탤릭체로, static 필드나 메소드는 밑줄을 사용한다.
클래스는 직사각형으로 표시하는데 3부분으로 나누어 다음의 순서로 표시한다.
- 클래스의 이름
- 필드의 이름
- 메소드의 이름
여기서 부가 정보(접근제어나 메소드의 인수나 형태) 를 표시하거나 주목할 필요없는 항목을 생략하는 경우도 있다.
abstract 클래스나 메소드는 이탤릭체로, static 필드나 메소드는 밑줄을 사용한다.
2.2. 인터페이스와 구현
화살표는 인터페이스와 구현 클래스의 관계(구현 클래스에서 인터페이스로 향하고 있다)를 표시하고 있고, 이는 implements 를 의미한다. UML 에서 Java 의 인터페이스를 표현하는 경우 <<interface> > 라 쓴다.
2.3. 집약
위 그림과 같이 '갖고 있는' 관계를 집약(Aggregation) 이라 한다. 인스턴스를 갖고 있으면 개수에 관계없이 집약이다. 마름모꼴이 붙은 선은 집약을 표현한다.
저자는 다음처럼 표현한다. "마름모꼴 모형의 접시 위에 물건이 놓여있다." 라고 생각하면 된다고...
저자는 다음처럼 표현한다. "마름모꼴 모형의 접시 위에 물건이 놓여있다." 라고 생각하면 된다고...
2.4. 접근 제어
메소드나 필드의 이름 앞에 기호를 붙여 접근 제어를 표현한다.
- + : public, 접근 가능
- - : private, 클래스 외부로부터 접근 가능
- # : protected, 동일 클래스/패키지 내 클래스, 하위 클래스
- ~ : 동일 패키지 접근 가능
3. 클래스의 관계
클래스의 관계를 나타내기 위해 관련된 이름에 삼각형(▶) 을 붙여 표현한다.
4. 시퀀스 다이어그램(Sequence Diagram)
시퀀스 다이어그램은 프로그램이 작동할 때 어떤 메소드/추상 클래스가 어떤 순서로 실행되는가의 동적인 관계를 표현한다.
- 클래스 다이어그램 : 시간에 의해 변하지 않는 것(정적인 관계)
- 시퀀스 다이어그램 : 시간에 따라 변하는 것(동적인 관계)
4.1. 처리의 흐름과 오브젝트(객체) 간의 협조 동작
인스턴스는 다이어그램 위쪽에 있는 직사각형에 대응되고 직사각형 내부에 콜론(:) 뒤에 클래스명을 표기하고 밑줄이 그어져 있다. 인스턴스에 이름이 필요한 경우에는 콜론 앞에 이름을 표시해주면 된다. server:Server
인스턴스에서 아래 방향으로 뻗어있는 점선은 라이프 라인(생존선) 이라 한다. 시간은 아래 방향으로 흐른다. 라이프 라인은 인스턴스가 존재하는 동안만 존재하고 중간에 가늘고 긴 직사각형은 오브젝트(객체)가 활동 중인 것을 나타낸다.
앞이 검은 화살표의 실선은 메소드의 호출을 점선의 화살표는 메소드에서의 반환을 표시한다. 메소드의 리턴은 생략하는 경우도 있다.
라이프 라인을 따라가면서 위에서부터 순서대로 읽는다. 그리고 화살표가 있으면 따라가면서 인스턴스 간의 협조 동작을 확인한다.
본 글의 UML 다이어그램은 Eclipse 의 UML plugin(AmaterasUML) 으로 작성된 것으로 글의 설명과 표현이 다르다는 것을 알아두자.
AmaterasUML plugin 을 적용하여 Eclipse 에서 UML 을 작성하는 내용은 다음 포스팅으로 남기도록 한다...
인스턴스에서 아래 방향으로 뻗어있는 점선은 라이프 라인(생존선) 이라 한다. 시간은 아래 방향으로 흐른다. 라이프 라인은 인스턴스가 존재하는 동안만 존재하고 중간에 가늘고 긴 직사각형은 오브젝트(객체)가 활동 중인 것을 나타낸다.
앞이 검은 화살표의 실선은 메소드의 호출을 점선의 화살표는 메소드에서의 반환을 표시한다. 메소드의 리턴은 생략하는 경우도 있다.
라이프 라인을 따라가면서 위에서부터 순서대로 읽는다. 그리고 화살표가 있으면 따라가면서 인스턴스 간의 협조 동작을 확인한다.
본 글의 UML 다이어그램은 Eclipse 의 UML plugin(AmaterasUML) 으로 작성된 것으로 글의 설명과 표현이 다르다는 것을 알아두자.
AmaterasUML plugin 을 적용하여 Eclipse 에서 UML 을 작성하는 내용은 다음 포스팅으로 남기도록 한다...
댓글 없음:
댓글 쓰기