UML다이어그램 표기법
이번 시간에는 UML을 작성하기 위해 필요한 다이어그램과 StarUML 도구의 사용법에 대하여 알아보기로 하겠습니다.
1. 다이어그램
다이어그램 종류 | 설명 |
---|---|
Class Diagram | 클래스 다이어그램(Class Diagram)은 클래스관련 요소들의 여러 가지 정적인 관계를 시각적으로 표현한 것입니다. 클래스 다이어그램은 클래스(Class) 뿐만 아니라 인터페이스(Interface), 열거형(Enumeration), 패키지(Package) 및 여러 가지 관계들 뿐만 아니라 인스턴스(Instance)와 그것들의 연결(Link) 등도 포함할 수 있습니다. |
Use Case Diagram | 유스케이스 다이어그램(Use Case Diagram)은 특정 시스템 혹은 개체내의 유스케이스(Use Case)들과 그 외부의 액터(Actor)들 간의 관계를 표현한 것입니다. 유스케이스는 해당 시스템의 기능을 표현하며 그것들이 어떤 외부 액터들과 상호작용하는지를 나타냅니다. |
Sequence Diagram | 시퀀스 다이어그램(Sequence Diagram)은 인스턴스들이 어떻게 상호작용을 하는지를 묘사합니다. 하나의 협동-인스턴스집합(CollaborationInstanceSet)에 포함된 인스턴스(Instance)들 상호간에 주고받는 자극(Stimulus)들의 집합인 상호작용-인스턴스집합(InteractionInstanceSet)을 직접적으로 표현합니다. 시퀀스 역할 다이어그램(Sequence Role Diagram)은 역할(ClassifierRole) 중심의 관점을 반영한 반면, 시퀀스 다이어그램(Sequence Diagram)은 인스턴스(Instance) 중심의 관점을 반영한 것입니다. |
Sequence Diagram (Role) | 시퀀스 역할 다이어그램(Sequence Role Diagram)은 역할 개념들이 어떻게 상호작용을 하는지를 묘사합니다. 하나의 협동(Collaboration)에 포함된 역할(ClassifierRole)들 상호간에 주고받는 메시지(Message)들의 집합인 상호작용(Interaction)을 직접적으로 표현합니다. 시퀀스 다이어그램(Sequence Diagram)은 인스턴스(Instance) 중심의 관점을 반영한 반면, 시퀀스 역할 다이어그램(Sequence Role Diagram)은 역할(ClassifierRole) 중심의 관점을 반영한 것입니다. |
Collaboration Diagram | 협동 다이어그램(Collaboration Diagram)은 인스턴스들이 어떻게 협동하는지를 묘사합니다. 하나의 협동-인스턴스집합(CollaborationInstanceSet)에 포함된 인스턴스(Instance)들의 협동 모델을 직접적으로 표현합니다. 협동 역할 다이어그램(Collaboration Role Diagram)은 역할(ClassifierRole) 중심의 관점을 반영한 반면, 협동 다이어그램(Collaboration Diagram)은 인스턴스(Instance) 중심의 관점을 반영한 것입니다. |
Collaboration Diagram (Role) | 협동 역할 다이어그램(Collaboration Role Diagram)은 역할 개념들이 어떻게 협동하는지를 묘사합니다. 하나의 협동(Collaboration)에 포함된 역할(ClassifierRole)들의 협동 모델을 직접적으로 표현합니다. 협동 다이어그램(Collaboration Diagram)은 인스턴스(Instance) 중심의 관점을 반영한 반면, 협동 역할 다이어그램(Collaboration Role Diagram)은 역할(ClassifierRole) 중심의 관점을 반영한 것입니다. |
Statechart Diagram | 상태 다이어그램(Statechart Diagram)은 특정 개체의 동적인 행위를 상태(State)와 그것들간의 전이(Transition)를 통해 묘사합니다. 일반적으로 클래스의 인스턴스에 대한 행위를 묘사하는데 사용되지만 그 밖의 요소들에 대해서도 얼마든지 사용될 수 있습니다. |
Activity Diagram | 액티비티 다이어그램(Activity Diagram)은 상태 다이어그램의 특별한 형태로써, 활동들의 수행 흐름을 묘사하는데 적합합니다. 일반적으로 작업흐름(Workflow)을 표현하기 위해 많이 사용되며, 클래스, 패키지 혹은 연산 등의 개체에 대해 주로 사용됩니다. |
Component Diagram | 컴포넌트 다이어그램(Component Diagram)은 소프트웨어 컴포넌트 사이의 의존관계를 묘사합니다. 소프트웨어 컴포넌트를 구성하는 요소들과 그것들을 구현하는 요소들도 모두 표현될 수 있습니다. |
Deployment Diagram | 디플로이먼트 다이어그램(Deployment Diagram)은 물리적인 컴퓨터 및 장비 등의 하드웨어 요소들과 그것에 들이 배치되는 소프트웨어 컴포넌트, 프로세스 및 객체들의 형상을 묘사합니다. |
Composite Structure Diagram | 복합구조 다이어그램(Composite Structure Diagram)은 분류자(Classifier)의 내부 구조를 표현하는 다이어그램입니다. 여기에는 Classifier가 시스템의 다른 부분들과의 상호작용하는 지점 등을 포함합니다. |
2. 다이어그램 표기법
다이어그램 종류 | 표기법 | 현재 요소 | 설명 |
---|---|---|---|
Class Diagram
Component Diagram
Deployment Diagram
Composite Structure Diagram
| <= | Classifier | 현재 요소로부터 타겟 요소로 specialization 관계를 맺습니다. |
=> | Classifier | 현재 요소로부터 타겟 요소로 generalization 관계를 맺습니다. | |
-- | Classifier | 현재 요소로부터 타겟 요소로 association 관계를 맺습니다. | |
<- | Classifier | 타겟 요소로부터 현재 요소로 navigable association 관계를 맺습니다. | |
-> | Classifier | 현재 요소로부터 타겟 요소로 navigable association 관계를 맺습니다. | |
<>- | Classifier | 현재 요소는 타겟 요소를 aggregate하는 관계를 맺습니다. | |
-<> | Classifier | 타겟 요소가 현재 요소를 aggregate하는 관계를 맺습니다. | |
<*>- | Classifier | 현재 요소는 타겟 요소를 compose하는 관계를 맺습니다. | |
-<*> | Classifier | 타겟 요소가 현재 요소를 compose하는 관계를 맺습니다. | |
<-- | Classifier | 타겟 요소가 현재 요소에 대해서 dependency 관계를 맺습니다. | |
--> | Classifier | 현재 요소가 타겟 요소에 대해서 dependency 관계를 맺습니다. | |
)- | Classifier | 타겟 요소가 현재 요소에 대해서 requirement 관계를 맺습니다. | |
-( | Classifier | 현재 요소가 타겟 요소에 대해서 requirement 관계를 맺습니다. | |
@- | Classifier | 타겟 요소가 현재 요소를 realization하는 관계를 맺습니다. | |
-@ | Classifier | 현재 요소가 타겟 요소를 realization하는 관계를 맺습니다. | |
Usecase Diagram | ()- | UseCase | 현재 요소와 연결된 타겟 모델(Actor)과 communication 연결을 한다. |
-() | Actor | 현재 요소와 연결된 타겟 모델(UseCase)과 communication 관계를 맺습니다. | |
<i- | UseCase | 타겟 요소로부터 현재 요소로 include 관계를 맺습니다. | |
-i> | UseCase | 현재 요소로부터 타겟 요소로 include 관계를 맺습니다. | |
<e- | UseCase | 타겟 요소로부터 현재 요소로 extend 관계를 맺습니다. | |
-e> | UseCase | 현재 요소로부터 타겟 요소로 extend 관계를 맺습니다. | |
Sequence Diagram
Seqeunce Diagram(Role)
| <- | Object, ClassifierRole | 현재 요소로부터 타겟 요소로 stimulus를 생성합니다. |
-> | Object, ClassifierRole | 타겟 요소로부터 현재 요소로 stimulus를 생성합니다. | |
<-> | Object, ClassifierRole | 타겟 요소로부터 현재 요소로 return을 가지는 stimulus를 생성합니다. | |
<- | Stimulus, Message | 현재 Stimulus의 Sub-Stimulus(타겟 요소로부터 들어오는)를 생성합니다. | |
-> | Stimulus, Message | 현재 Stimulus의 Sub-Stimulus(타겟 요소로 나가는)를 생성합니다. | |
<-> | Stimulus, Message | 현재 Stimulus의 Sub-Stimulus(타겟 요소로부터 나가면서 리턴을 가지는)를 생성합니다. | |
<~ | Stimulus, Message | 현재 Stimulus 앞에 존재하는 Stimulus(타겟 요소로부터 들어오는)를 생성합니다. | |
~> | Stimulus, Message | 현재 Stimulus 앞에 존재하는 Stimulus(타겟 요소로 나가는)를 생성합니다. | |
<_ | Stimulus, Message | 현재 Stimulus 뒤에 존재하는 Stimulus(타겟 요소로부터 들어오는)를 생성합니다. | |
_> | Stimulus, Message | 현재 Stimulus 뒤에 존재하는 Stimulus(타겟 요소로 나가는)를 생성합니다. | |
Collaboration Diagram
Collaboration Diagram(Role)
| <- | Object, ClassifierRole | 현재 요소로부터 타겟 요소로 stimulus를 생성합니다. |
-> | Object, ClassifierRole | 타겟 요소로부터 현재 요소로 stimulus를 생성합니다. | |
<-> | Object, ClassifierRole | 타겟 요소로부터 현재 요소로 return을 가지는 stimulus를 생성합니다. | |
Statechart Diagram/
Activity Diagram
| <- | State, ActionState | 타겟 요소에서 현재 요소로 나가는 transition을 생성합니다. |
-> | State, ActionState | 현재 요소에서 타겟 요소로 나가는 transition을 생성합니다. | |
-* | State, ActionState | 타겟 요소(Initial State)로부터 현재 요소로 들어오는 transition을 생성합니다. | |
-@ | State, ActionState | 현재 요소에서 타겟 요소(Final State)로 나가는 transition을 생성합니다. | |
<-<> | State, ActionState | 타겟 요소(Decision)에서 현재 요소로 들어오는 transition을 생성합니다. | |
-><> | State, ActionState | 현재 요소에서 타겟요소(Decision)로 나가는 transition을 생성합니다. | |
-(H) -(h) | State, ActionState | 현재 요소에서 타겟요소(History)로 나가는 transition을 생성합니다. | |
-(H*) -(h*) | State, ActionState | 현재 요소에서 타겟요소(Deep History)로 나가는 transition을 생성합니다. | |
<-| | State, ActionState | 타겟 요소에서 현재 요소로 join해서 들어오는 transition을 생성합니다. | |
|-> | State, ActionState | 현재 요소에서 타겟 요소로 fork해서 나가는 transition을 생성합니다. |
댓글 없음:
댓글 쓰기