UML은 Unified Modeling Language의 약자로 객체지향 시스템 개발 분야에서 우수한 모델링 언어로 손꼽힌다.

UML이 나오기 이전에 다수의 모델링 언어들이 존재 했다. 대부분의 모델링 언어들은 많은 개념들을 공통적으로 사용하면서 서로 다른 표기법을 통해 표현했기 때문에, 많은 사용자들이 서로 설계도가 달라 의사소통이 힘들었다. 따라서 사용자들은 표준이 되는 모델링 언어가 나오길 원했다. 그래서 탄생한 것이 바로 UML이다.

이에 이 글에서는 UML과 주요 다이어그램 몇가지에 대한 사용법을 알아보려고 한다.


역사 

   Grady Booch         Ivar Jacobson        James Rumbaugh


UML은 그래디 부치(Grady Booch)이바 야콥슨(Ivar Jacobson), 제임스 럼버(James Rumbaugh)의 머리에서 태어났다. 이 세 사람은 1993년 이전까지 객체지향 분석 설계 분야에서 각자의 영역에서 방법론을 연구해 왔었다. 이들은 1995년대에 이르러 각자의 아이디어를 교환하기 시작하였고, 결국 각자의 방법을 하나로 모아 합치기에 이른다.

1997년 UML 버전 1.0이 나오고 난 후 얼마지나지 않아 OMG에 다시 상정된 UML 1.1d은 1997년 말에 표준 모델링 언어로 채택되었다. UML은 소프트 웨어의 업계 명실 상부한 표준이 되었으며, 계속 수정 보완되고 있다.





구성 요소 

 



사물

1.  구조 사물(Structural Thing) : UML 모델의 명사형으로, 모델의 정적인 부분이며, 개념적 물리적 요소를 표현한다.

  Class          Interface      Collaboration     Use Case       Active Class         Component     Node


2. 행동 사물(Behavioral Thing) : 시스템의 행위를 표현한다.

Interaction                               State Machine              


3. 그룹 사물(Grouping Thing) : 개념을 그룹화하는 사물을 말한다.

Package 


4. 주해 사물(Annotation Thing) : 부가적으로 개념을 설명하는 사물을 말한다.

Node 



관계

1. 의존(Dependency) 관계  : 한쪽 사물의 변화가 다른 사물에 영향을 주는 관계이다.

아래의 예에서 오른쪽의 Independent Part의 변화가 Dependent Part에 영향을 미치는 경우이며 점선 화살표로 표시한다.


2. 연관(Association) 관계 : 어느 한 사물이 다른 사물과 연관이 있음을 표시하는 관계이다.

아래의 예에서 다수(*)의 고용인은 0또는 1명(0..1)의 고용주와 연관이 있음을 보여준다.

 

이 연관 관계는 2가지로 나눌 수 있다.

(1) 집합연관(aggregation) 관계 : 전체/부분 관계로 전체는 부분을 참조한다. 서로 독립적으로 생성되고 소멸되며 빈 다이아몬드로 표시한다. 

 

(2) 복합연관(composition) 관계 : 전체/부분 관계로 전체는 부분을 포함한다. 부분은 생성과 소멸을 전체와 함께하며 까만 다이아몬드로 표시한다.


3. 일반화(Generalization) 관계 : 부모/자식 관계로 상속을 나타내며 속이 빈 화살표로 표시한다.

 


4. 실체화(Realization) 관계 : Interface를 구현하는 관계를 나타내며 속이 빈 점선 화살표로 표시한다

 



* 도해(Diagram)에 관한 내용은 다음에 다룰 예정이다.


Reference Sites

(1) UML wiki : http://ko.wikipedia.org/wiki/%ED%86%B5%ED%95%A9_%EB%AA%A8%EB%8D%B8%EB%A7%81_%EC%96%B8%EC%96%B4

(2) About UML : http://blog.ngelmaum.org/entry/lab-note-about-uml-unified-modeling-language

(3) 왜 UML 인가? http://blog.naver.com/PostView.nhn?blogId=jiwoongguy&logNo=110153291092

(4) UML 역사 : http://littletrue.egloos.com/4747711

(5) UML 창시자 : http://dislab2.hufs.ac.kr/dislab/read.php?action=software

(6) UML 구성요소 : http://www.cs.uah.edu/~rcoleman/Common/SoftwareEng/UML.html


Posted by 알 수 없는 사용자
,