2016년 3월 17일 목요일

[UML 2교시] UML 다이어그램별 표기법에 대하여 알아보자

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가 시스템의 다른 부분들과의 상호작용하는 지점 등을 포함합니다.
http://staruml.sourceforge.net/docs/user-guide(ko)/ch04.html [생성할 수 있는 다이어그램 종류 참조]

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을 생성합니다.
http://staruml.sourceforge.net/docs/user-guide(ko)/ch04.html [단축생성 구문 참조]

댓글 없음:

댓글 쓰기