2012년 4월 19일 목요일

[Java Design Pattern_0]UML에 대해서


 디자인 패턴에 대해서 공부하기 전에 UML에 대해서 알아보자.



 @ UML 이란?


 UML(Unified Modeling Language)의 약자로, 시스템을 시각화 하거나 시스템의 사양이나 설계를 문서화하기 위한 표현 방법입니다.


 @ 클래스 다이어그램

 - UML의 클래스 다이어그램(Class Diagram)은 클래스나 인스턴스, 인터페이스 등의 정적인 관계를 표현한 것입니다.


 @ 클래스와 계층 관계























- ParentClass와 ChildClass라는 두 클래스의 관계를 표시하고 있습니다.
 (1)의 화살표는 하위 클래스에서 상위 클래스로 향하고 있습니다.(extends)

- 클래스 표시의 다이어그램은 위에서부터 클래스 이름, 필드 이름, 메소드 이름으로 구성됭 있습니다.

- 추상 클래스의 경우 이탤릭체를 사용합니다. (ParentClass)

- static 필드(클래스 필드)의 이름에는 밑줄을 사용합니다. (field2)

- static 메소드(클래스 메소드)의 이름에는 밑줄을 사용합니다. (methodC)

- abstract 메소드(추상 메소드)는 이탤릭체를 사용합니다. (methodA)



@ 인터페이스와 구현


 - UML에서 JAVA의 인터페이스를 표현하는 경우에는 <<interface>>라고 씁니다.

 - 점선 화살표는 인터페이스의 구현 클래스의 관계를 나타내고 있습니다. 즉, 구현 클래스에서 인터페이스로 향하고 있습니다.(implements)



@집약



- '갖고 있는' 관계를 '집약(aggregation)'이라고 합니다. 인스턴스를 갖고 있으면 개수에 상관없이 그 관계는 집약입니다.


@ 엑세스 제어

















- '+'가 붙어 있는 경우 : public 인 메소드나 필드
- '-'가 붙어 있는 경우 : private 인 메소드나 필드 (클래스 외부에서 엑세스 불가)
- '#'가 붙어 있는 경우 : protect인 메소드나 필드 (동일한 클래스, 하위 클래스, 동일한 패키지 내에서 엑세스)
- '~'가 붙어 있는 경우 : 동일한 패키지 내에서만 엑세스할 수 있는 메소드나 필드

@ 클래스의 관계
















 - 클래스 관계를 나타내기 위해 관련된 이름에 세모 표시를 붙여 줍니다.


@ 시퀀스 다이어그램

- UML의 시퀀스 다이어그램(Sequence Diagram)은 프로그램이 작동할 때 어떤 메소드가 어떤 순서로 실행되는가를 보여줍니다. 클래스 다이어그램은 '시간에 의해 변하지 않는 것(정적인 관계)'을 나타내고, 시퀀스 다이어그램은 '시간에 따라 변하는 것(동적인 관계)'을 나타냅니다.
































- 직사각형 안에는  :Client, :Server, :Device 와 같이 콜론(:) 뒤에 클래스 명을 표기하고 밑줄이 그어져 있습니다. 인스턴스 명이 필요할 경우 server:Server와 같이 콜론 앞에 이름을 적습니다.

- 각각의 인스턴스에서 아래 방향을 뻗어 있는 점선을 라이프 라인(생존선)이라고 합니다.

- 오른쪽 방향 화살표(실선)은 메소드의 호출

- 왼쪽 방향 화살표(점선)은 메소드의 리턴






댓글 없음:

댓글 쓰기