UML이란 시스템을 개발하는 과정에서 개발자와 고객 사이, 개발자들 사이의 조금 더 편리한 의사소통을 위해 표준화된 것으로 대표적인 객체지향 모델링 언어이다. 여러 객체지향 방법론들의 장점들을 통합하여 만들어졌으며 OMG의 표준이다.
UML(Unified Modeling Language)의 사물(Thins)
사물 또는 객체로 표현되는 이것은 다이어그램 속에서 관계 형성이 가능한 대상을 말한다. 사람, 자동차, 동물들과 같이 우리의 주변에서 사용되는 물질적, 혹은 개념적인 것을 개체라고 이야기한다. 이를 컴퓨터에서 추상적으로 표현하여 사물, 혹은 객체라고 한다. 때문에 모델 구성에 있어 가장 기본적인 요소가 된다. 사물의 종류에는 총 4가지가 있다. 구조 사물(Structural Things)은 시스템 상에서 개념적이고 물리적인 요소를 표현한다. 클래스(Class), 컴포넌트(Component), 유스케이스(Use Case), 노드(Node) 등이 있다. 행동 사물(behavioral things)은 요소들이 시간과 공간에 따라 행동하는 행위를 표현한다. 상호작용(Interaction), 상태 머신(State Machine) 등이 포함된다. 그룹 사물(Grouping Things)은 여러 요소들을 그룹으로 묶어 표현하는 것이다. 패키지(Package)가 그 예이다. 주해 사물(Annotation Thing)은 부가적인 설명과 제약 조건을 표현한다. 노트(Note)가 포함된다.
관계 (Relationship)
관계는 위에서 정의한 사물들 사이의 연관성을 표현하는 요소이다. 종류에는 연관, 집합, 포함, 일반화, 의존, 실체화 등 총 6가지가 있다. 연관(Association) 관계는 다수의 사물이 서로 관련이 되어있는 것을 표현한다. 사물 사이에 실선으로 표현하며 화살표로 방향성을 표현한다. 양방향의 관계일 경우 실선으로만 표시한다. 집합(Aggregation) 관계는 하나의 사물이 다른 사물에 포함된 상태를 나타낸다. 포함이 되는 쪽과 포함하는 쪽은 서로 독립적인 사물이다. 포함하는 쪽의 사물에 속이 빈 마름모 모양을 그리는 형태로 표현한다. 포함(Composition) 관계는 집합 관계 중 특수한 형태이다. 포함되는 사물이 포함하는 사물의 변화에 영향을 받는다. 따라서 두 사물은 서로 독립되지 않으며 생명주기를 함께 한다. 포함하는 쪽의 사물에 속이 채워진 마름모 모양을 그린다. 일반화(Generalization) 관계는 다수의 사물 중 하나가 다른 사물들에 비해 더 구체적이거나 일반적인 상태이다. 상위의 개념이 좀 더 일반적이며 하위의 개념이 좀 더 구체적이다. 상위 사물 쪽에 속이 빈 화살표를 그려 표현한다. 의존(Dependency) 관계는 연관 관계와 비슷하지만 서로에게 영향을 주는 시간이 짧다는 차이가 있다. 필요에 의해 연관을 유지한다. 소유하는 관계가 아니지만 하나의 사물에 변화가 생기면 나머지 사물에 영향이 미친다. 영향을 받는 사물 쪽에 점선 화살표를 그려준다. 실체화(Realization) 관계의 경우 서로 그룹을 지을 수 있는 관계이다. 어떠한 사물이 가능하거나 해야만 하는 기능을 표현한다. 기능 쪽에 속이 빈 점선 화살표를 그려준다.
다이어그램 (Diagram)
다이어그램이란 위의 두 개념들을 도형으로 표현하여 가시적으로 보일 수 있게 한 것이다. 여러 관점에서 제공되어 의사소통에 도움이 된다. 구조적, 행위 다이어그램이 존재하는데 이 중 구조적(Structural) 다이어그램은 정적 모델링에 주로 사용된다. 행위(Behavioral) 다이어그램의 경우 동적 모델링에 사용된다. 구조적 다이어그램의 종류에는 클래스(Class), 객체(Object), 컴포넌트(Component), 배치(Deployment), 복합체 구조(Composite Structure), 패키지(Package) 다이어그램이 있다. 클래스 다이어그램은 클래스, 속성, 클래스 사이의 관계를 나타낸다. 객체 다이어그램은 클래스에 속해있는 사물(객체)들이 특정 시점에 가지고 있는 관계를 통해 표현한다. 럼바우 객체지향 분석 기법에서 활용된다. 컴포넌트 다이어그램은 실제로 구현되는 모듈인 컴포넌트 사이의 관계와 인터페이스를 나타낸다. 구현 단계에서 사용한다. 배치 다이어그램은 물리적인 요소들인 결과물과 프로세스, 컴포넌트들의 위치를 표현한다. 역시 구현 단계에서 사용한다. 복합체 구조 다이어그램은 클래스와 컴포넌트가 단조롭지 않은 복합적인 구조를 가지고 있을 경우 그 내부의 구조를 표현한다. 패키지 다이어그램은 모델 요소들인 유스케이스와 클래스를 그룹화한 상태의 패키지 관의 관계를 표현한다. 행위 다이어그램의 종류에는 유스케이스(Use Case), 시퀀스(Sequence), 커뮤니케이션(Communication), 상태(State), 활동(Activity), 상호작용 개요(Interaction Overview), 타이밍(Timing)이 있다. 유스케이스는 기능 모델링 작업 단계에서 사용하며 사용자가 요구하는 사항을 분석한다. 사용자, 사용 사례로 구성한다. 시퀀스는 연관된 시스템과 객체 사이의 주고받는 메시지를 표현한다. 커뮤니케이션은 동작에 참여하고 있는 객체들이 주고받고 있는 메시지 및 객체 사이의 연관된 관계를 표현한다. 상태는 하나의 객체가 클래스의 변화, 객체와의 상호 작용 등의 변화에 따라 어떻게 상태가 변경되는지 표현한다. 활동은 객체의 처리 로직과 처리 흐름 순서에 따라 수행하는 기능을 나타낸다. 상호작용 개요 다이어그램은 다이어그램 간 간의 제어되는 흐름을 표현한다. 타이밍은 시간 제약 및 상태 변화를 명시적으로 표현한다.
댓글