관리 메뉴

nalaolla

2. Class 다이어그램 모델링하기 본문

UML

2. Class 다이어그램 모델링하기

날아올라↗↗ 2016. 7. 11. 10:10
728x90

2. Class 다이어그램 모델링하기



클래스 다이어그램에서 편집할 수 있는 요소들은 다음과 같습니다.

  • Subsytem
  • Package
  • Class
  • Interface
  • Enumeration
  • Signal
  • Exception
  • Port
  • Part
  • Association
  • DirectedAssociation
  • Aggregation
  • Composition
  • Generalization
  • Dependency
  • Realization
  • AssociationClass
  • Connector
  • Object
  • Link

Subsystem

의미:

서브시스템(Subsystem)">서브시스템(Subsystem)은 물리적인 시스템의 부분 혹은 전체를 명세화하기 위해 요소들을 그룹화하는 요소입니다.

Subsystem 생성하는 방법:

Subsystem을 생성하려면, 

  1. [Toolbox] -> [Class] -> [Subsystem] 버튼을 클릭하고 
  2. Main 윈도우창에서 Subsystem가 위치할 곳을 클릭하고 원하는 크기만큼 드래그합니다.
  3. 그러면 subsystem이 class diagram상에 생성되고 퀵다이얼로그가 나타납니다.
  4. 퀵다이얼로그에서 subsystem의 이름을 입력하고 [Enter] 키를 누릅니다.

Subsystem이 제공하는 Interface 생성하는 방법:

Subsystem은 Interface를 제공합니다. Subsystem가 제공하는 Interface를 표현하려면,

  1. interface와 susbystem을 생성하고
  2. [Toolbox] -> [Realization] 버튼을 클릭하고
  3. Subsystem에서 Interface까지 마우스를 드래그합니다.
  4. 그러면 interface와 subsystem 사이에 providing interface 관계가 생성됩니다.

만약 Interface와 Realization을 동시에 생성하려면,  

  1. Subsystem을 더블클릭하여 Quick Dialog가 나타나면
  2. 다음과 같이 단축 생성 구문을 입력합니다.
  3. [Enter]키를 누르면  Subsystem과 연결된 인터페이스를 생성됩니다. 

Subsystem이 요구하는 Interface 생성하는 방법:

Subsystem이 Requiring Interface를 표현하려면 다음과 같이 단축 생성 구문을 입력합니다.

  1. subsystem을 더블클릭하면 퀵다이얼로그가 나타납니다. 그러면 다음과 같이 "-(" 문자열 다음에 interface 이름을 입력하고 [Enter] 키를 누릅니다.
  2. 그러면 Subsystem이 Interface에 대해서 Requirement를 갖는 관계를 생성합니다.

Subsystem이 Providing Operation 추가하는 방법:

Subsystem은 Operation을 가질 수 있습니다. Subsystem이 갖는 Operation을 추가하려면, 

  1. Subsystem의 [Collection Editor...] 팝업 메뉴를 클릭해서 
  2. Collection Editor의 Operations 탭에서 Operation을 추가합니다.
  3. 또는 Subsystem의 Quick Dialog에서   버튼을 클릭하여 Subsystem에 Operation을 추가합니다.
  4. 그러면 새로운 operation이 추가됩니다.

Class

의미:

클래스(Class)">클래스(Class)는 객체의 구조과 행위를 묘사하는 속성(Attribute)과 연산(Operation)의 집합을 선언하는 요소입니다. 그리고 클래스는 템플릿 파라미터(Template Parameter)를 가질 수 있습니다.

Class 생성하는 방법:

Class를 생성하려면,

  1. [Toolbox] -> [Class] -> [Class] 버튼을 클릭하고 
  2. Main 윈도우창에서 Class가 위치할 곳을 클릭합니다.
  3. 새로운 class가 다이어그램상에 생성되고, 퀵다이얼로그가 나타납니다.
  4. 퀵다이얼로그에서 class의 이름을 입력하고 [Enter] 키를 누릅니다.

Attribute 추가하는 방법:

Class에 attribute를 추가하는 방법은 다음과 같이 3가지 방법이 있습니다.

  • Quick Dialog를 이용
  • Class 또는 Model Explorer의 팝업 메뉴 이용
  • Collection Editor 이용

Quick Dialog를 이용하는 경우

  1. class를 더블클릭합니다.
  2. [Add Attribute] 버튼을 누릅니다.
     

Class 또는 Model Explorer의 팝업 메뉴 이용하는 경우

  1. main window 또는 model explorer에서 class를 선택합니다.
  2. 그리고 마우스 오른쪽 클릭을 통해서 [Add] -> [Attribute] 팝업 메뉴를 선택하여 attribute를 추가합니다.

Collection Editor 이용하는 경우에는

  1. Class의 [Collection Editor...] 팝업 메뉴를 선택합니다.
  2. 또는 Properties 윈도우의 Attributes의  편집 버튼을 통해서 Collection Editor를 열어서 
  3. Attributes 탭에서  버튼을 이용하여 Attribute를 입력할 수 있습니다.

Operation 추가하는 방법:

Class에 Operation를 추가하는 방법은 다음과 같이 3가지 방법이 있습니다.

  • Quick Dialog를 이용
  • Class 또는 Model Explorer의 팝업 메뉴 이용
  • Collection Editor 이용

Quick Dialog를 이용하는 경우

  1. class를 더블클릭하면 퀵다이얼로그가 나타납니다.
  2. 퀵다이얼로그에서 [Add Operation] 버튼을 누르면 operation이 추가됩니다.

Class 또는 Model Explorer의 팝업 메뉴 이용하는 경우에는 Main 윈도우 또는 Model Explorer에서 Class를 선택하고 오른쪽 마우스 버튼을 눌러서 [Add] -> [Operation] 팝업 메뉴를 선택하여 Operation를 입력할 수 있습니다.

 

Collection Editor를 이용하는 경우에는,

  1. Class의 [Collection Editor...] 팝업 메뉴 또는 Properties 윈도우의 Operations의  콜랙션 편집 버튼을 통해서 Collection Editor를 열어서 
  2. Operations탭에서  버튼을 이용하여 Operation를 입력할 수 있습니다.

Operation Parameter 추가하는 방법:

operation에 parameter를 추가하기 위해서는

  1. model explorer에서 operation을 선택하고 [Add] -> [Parameter] 팝업 메뉴를 선택합니다. 그러면 parameter가 추가됩니다.
  2. 또는 model explorer에서 [Collection Editor...] 팝업 메뉴를 선택하거나
  3. properties window에서 parameters의  버튼을 클릭합니다.
  4. 그리고 collection editor의 parameters 탭에서  버튼을 이용해서 operation parameter를 추가할 수 있습니다.

Operation에 Exception 추가하는 방법:

Class에 Operation Exception을 추가하려면 (이 과정을 수행하기 전에 signal이 반드시 존재해야합니다)

  1. properties window에서 raised signals 속성의  버튼을 클릭합니다.
  2. collection editor의 raised signal 탭에서  버튼을 클릭합니다.
  3. [Select a Signal] 다이얼로그가 나타나면 할당할 signal 또는 exception을 선택하고 [OK] 버튼을 누릅니다.
  4. 그러면 다음과 같이 operation에 exception이 추가됩니다.

Class간의 Attribute/Operation 이동하는 방법:

class의 attribute와 operation을 다른 class로 이동하려면,

  1. model explorer에서 attribute(또는 operation)을 클릭합니다.
  2. 선택된 요소를 다른 class로 드래그/드롭합니다.
  3. 그러면 다음과 같이 선택된 요소가 이동됩니다.

Class에 TemplateParameter 추가하는 방법:

Class에 TemplateParameter를 추가하는 방법은 다음과 같이 2가지 방법이 있습니다.

  • Class 또는 Model Explorer의 팝업 메뉴 이용
  • Collection Editor 이용

Main 윈도우 또는 Model Explorer에서 Class를 선택하고 오른쪽 마우스 버튼을 눌러서 [Add] -> [TemplateParameter] 팝업 메뉴를 선택하여 TemplateParameter를 입력할 수 있습니다.

Class의 [Collection Editor...] 팝업 메뉴 또는 Properties 윈도우의 TemplateParameters의   편집 버튼을 통해서 Collection Editor를 열어서 TemplateParameters 탭에서    버튼을 이용하여 TemplateParameter를 입력할 수 있습니다.

그러면 class에 새로운 template parameter가 추가되고 다음과 같이 class가 보여집니다.

Port 생성 방법:

Class에 Port를 생성하려면,

  1. [Toolbox] -> [Class] -> [Port] 버튼을 클릭하고 .
  2. Main 윈도우에서 Port가 위치할 Class를 클릭합니다.

Port 드래그를 통한 뷰 생성 방법:

Model Explorer로부터 드래그를 통하여 Port를 생성할 수 있습니다.

  1. model explorer에서 port를 드래그합니다.
  2. 그리고 diagram상의 class로 드롭합니다. 만약 Class가 아닌 Diagram 위로 드롭하면 Port와 함께 Class의 뷰가 생성됩니다.
  3. 그러면 다음과 같이 class가 port를 포함하게 됩니다.

Part 생성 방법:

Class에 Part를 생성하려면,

  1. [Toolbox] -> [Class] -> [Part] 버튼을 클릭하고 
  2.  Main 윈도우에서 Part가 위치할 Class를 클릭합니다.

Connector 생성 방법:

Connector를 생성하려면,

  1. [Toolbox] -> [Class] -> [Connector] 버튼을 클릭하고
  2.  Main 윈도우에서 Part에서 연결할 Part로 마우스를 누르고 드래그하면 됩니다.
  3. 그러면 두개의 part 사이에 다음과 같이 connector가 생성됩니다.

Active Class로 설정하는 방법:

Active Class로 설정하려면,

  1. Properties의 IsActive 속성을 true로 설정합니다.
  2. active class로 변경되면 다음과 같이 class가 보여집니다.

Interface

의미:

인터페이스(Interface)">인터페이스(Interface)는 클래스에 의해 제공되는 서비스를 구성하는 연산들을 포함하는 요소입니다. 또한 연산들을 효과적인 그룹으로 나누고 그것들을 특징지을 수 있는 방법을 제공합니다. 인터페이스에서부터 객체가 생성될 수 없습니다.

Interface을 생성하는 방법:

Interface를 생성하려면,

  1. [Toolbox] -> [Class] -> [Interface] 버튼을 클릭하고 
  2. Main 윈도우창에서 Interface가 위치할 곳을 클릭하면 퀵다이얼로그가 나타납니다.
  3. 퀵다이얼로그에서 interface의 이름을 입력하고 [Enter] 키를 누르면 다음과 같이 interface가 생성됩니다.

Interface Providing 관계 생성 방법:

Interface Providing 관계를 설정하려면, 

  1. [Toolbox] -> [Class] -> [Realization] 버튼을 클릭하고
  2. Main 윈도우창에서 요소(Class, Port, Part, Package, Subsystem)를 선택하고 Interface로 마우스를 누르고 드래그하면 됩니다.
  3. 그러면 providing interface 관계가 다음과 같이 생성됩니다.

Interface Requiring 관계 생성 방법:

Interface Requiring 관계를 설정하려면,

  1. [Toolbox] -> [Class] -> [Dependency] 버튼을 클릭하고 

  2. Main 윈도우창에서 요소(Class, Port, Part, Package, Subsystem)를 선택하고 Interface로 마우스를 누르고 드래그하면 됩니다.
  3. 그러면 requiring interface 관계가 다음과 같이 생성됩니다.

Enumeration

의미:

열거형(Enumeration)">열거형(Enumeration)은 미리 정의된 값들을 리스트로 가지는 데이터타입의 일종입니다. 열거형이 가지는 값들을 열거형 리터럴(Enumeration Literal)이라 부릅니다.

Enumeration 생성 방법:

Enumeration를 생성하려면,

  1. [Toolbox] -> [Class] -> [Enumeration] 버튼을 클릭하고
  2. Main 윈도우창에서 Enumeration이 위치할 곳을 클릭합니다.

Signal

의미:

시그널(Signal)은 객체간의 비동기적(asynchronous) 통신 신호에 대한 명세(specification) 입니다.

Signal 생성 방법:

Signal을 생성하려면,

  1. [Toolbox] -> [Class] -> [Signal] 버튼을 클릭하고 
  2. Main 윈도우창에서 Signal이 위치할 곳을 클릭합니다.

Exception

의미:

예외(Exception)">예외(Exception)는 실행 오류시에 연산(Operation)에 의해 발생하는 시그널(Signal)입니다.</

Exception 생성 방법:

Procedure for creating exception

Exception을 생성하려면,

  1. [Toolbox] -> [Class] -> [Exception] 버튼을 클릭하고 
  2. Main 윈도우창에서 Exception이 위치할 곳을 클릭합니다.

Association

의미:

연관(Association)">연관(Association)은 클래스류(Class, Interface, Enumeration, Signal, Exception, Component, Node, UseCase, Actor) 사이의 의미적 관계를 정의합니다.현재의 연관-끝(AssociationEnd) 방향의 포함관계를 의미합니다. (- NONE: 집합이 아님을 나타냄, - AGGREGATE: 집합을 나타냄, - COMPOSITE: 합성을 나타냄)

Association 생성 방법:

Procedure for creating association

Association를 생성하려면,

  1. [Toolbox] -> [Class] -> [Association] 버튼을 클릭하고 
  2. Main 윈도우창에서 요소에서 연관할 요소로 마우스를 누르고 드래그하면 됩니다.
  3. 두개의 class사이에 새로운 association이 다음과 같이 생성됩니다.

Qualifier 추가하는 방법:

Association에 Qualifier를 추가하려면,

  1. association의 [Collection Editor...] 팝업 메뉴를 선택합니다.
  2. properties window에서 End.Qualifiers 속성의  버튼을 클릭합니다.
  3. collection editor의 qualifiers 탭에서  버튼을 클릭하여 qualifier를 추가합니다.
  4. 결과는 다음과 같습니다.

Class로부터 연관하는 여러개의 Class를 한꺼번에 생성하는 방법:

현재 class와 연관된 여러개의 class를 한꺼번에 생성하려면,

  1. class를 더블클릭하고, 다음과 같이 "--" 문자열 다음에 연관할 class의 이름을 입력하고 [Enter] 키를 누릅니다.
  2. 그러면 다음과 같이 연관된 class들이 생성되고 자동으로 정렬됩니다.

DirectedAssociation

DirectedAssociation 생성 방법:

Association 생성방법과 동일합니다.

  1. [Toolbox] -> [Class] -> [DirectedAssociation] 버튼을 클릭합니다.
  2. 두개의 요소사이에 화살표 방향으로 드래그합니다.
  3. 결과는 다음과 같습니다.

Association으로부터 DirectedAssocation으로 변경 방법: Procedure for changing association to directed association

Association을 생성하고 화살표 반대편쪽 assocation의 끝을 클릭하고 Quick Dialog의 Navigable의 체크를 취소하면 DirectedAssociation으로 변합니다.

 

Class로부터 DirectedAssociation 관계를 갖는 또다른 클래스 생성 방법:

현재 선택된 Class로부터 DirectedAssociation 관계를 갖는 요소를 만들려면 요소의 단축 생성 구문을 사용합니다.

  1. 요소를 더블 클릭해서 Quick Dialog가 나타나면, Quick Dialog에서 "->" 문자열 다음에 DirectedAssociation 관계를 갖는 다른 요소의 이름을 입력합니다. 여러개의 요소와 관계를 맺기 위해서는 각 요소 이름은 "," 문자로 구분해서 입력합니다.
  2. 그리고 [Enter]키를 누르면 선택된 클래스와 DirectedAssociation 연관 관계를 가지는 여러 요소들이 생성되고 자동 배열되어 생성됩니다.

Aggregation

Aggregation 생성 방법:

Aggregation를 생성하려면,

  1. [Toolbox] -> [Class] -> [Aggregation] 버튼을 클릭하고 
  2. Main 윈도우창에서 포함되어지는 요소에서 포함하는 요소로 마우스를 누르고 드래그하면 됩니다.
  3. 결과는 다음과 같습니다.

선택된 Class에 Aggregate되어지는 Class들을 생성하는 방법:

현재 선택된 Class로부터 Aggregated 관계를 갖는 Class를 만들려면 단축 생성 구문을 사용합니다.

  1. Class를 더블 클릭해서 Quick Dialog가 나타나면, Quick Dialog에서 "<>-" 문자열 다음에 Aggregated 관계를 갖는 다른 Class의 이름을 입력합니다. 여러개의 요소와 관계를 맺기 위해서는 각 Class 이름은 "," 문자로 구분해서 입력합니다.
  2. 그리고 [Enter]키를 누르면 선택된 Class와 Aggregation 관계를 가지는 여러 Class들이 생성되고 자동 배열되어 생성됩니다.

Composition

Composition 생성 방법:

Procedure for creating composition

Composition를 생성하려면,

  1. [Toolbox] -> [Class] -> [Composition] 버튼을 클릭하고 
  2. Main 윈도우창에서 포함되어지는 요소에서 포함하는 요소로 마우스를 누르고 드래그하면 됩니다.
  3. 그러면 두개의 class 사이에 새로운 composition 관계가 다음과 같이 생성됩니다.

선택된 Class에 Composed Class들을 생성하는 방법:

현재 선택된 Class로부터 Composed 관계를 갖는 Class를 만들려면 단축 생성 구문을 사용합니다.

  1. Class를 더블 클릭해서 Quick Dialog가 나타나면, Quick Dialog에서 "<*>-" 문자열 다음에 포함되는 다른 Class의 이름을 입력합니다. 여러 개의 Class를 포함하기 위해서 각 Class 이름은 "," 문자로 구분해서 입력합니다.
  2. 그리고 [Enter]키를 누르면 선택된 Class와 Composition 관계를 가지는 여러 Class들이 생성되고 자동 배열되어 생성됩니다.

Generalization

의미:

일반화(Generalization)">일반화(Generalization)는 더 일반적인 요소와 더 구체적인 요소를 연결하는 분류학적 관계입니다.

Generalization 생성 방법:

Generalization를 생성하려면,

  1. [Toolbox] -> [Class] -> [Generalization] 버튼을 클릭하고 
  2. Main 윈도우창에서 자식 요소에서 부모 요소로 마우스를 누르고 드래그하면 됩니다.
  3. 그러면 새로운 generalization이 다음과 같이 생성되어집니다.

Class를 상속하는 여러개의 자식 Class 생성 방법:

현재 선택된 class로부터 한꺼번에 여러개의 자식 Class를 생성하려면,

  1. class를 더블클릭해서 퀵다이얼로그가 나타나면 다음과 같이 "<=" 문자열 다음에 하위 class 이름을 입력합니다. 각 class들은 ","로 구분합니다.
  2. 자식 class들이 선택된 class 아래에 생성되고 정렬됩니다.

여러개의 부모 Class를 한꺼번에 생성하는 방법:

한꺼번에 여러개의 부모 Class를 생성하기 위해서는 단축생성 구문을 사용합니다.

  1. 퀵다이얼로그에서 다음과 같이 입력합니다.
  2. 그러면 선택된 class 위에 부모 class들이 생성되고 자동으로 정렬됩니다.

Dependency

의미:

의존관계(Dependency)">의존관계(Dependency)는 어떤 요소의 구현이나 기능을 위해 다른 요소의 존재가 요구 되어지는 의존적인 관계를 의미합니다.

Dependency 생성 방법:

Dependency를 생성하려면,

  1. [Toolbox] -> [Class] -> [Dependency] 버튼을 클릭하고 
  2. Main 윈도우창에서 요소가 의존하는 다른 요소 방향으로 마우스를 누르고 드래그하면 됩니다.
  3. 그러면 두개의 요소사이에 dependency가 생성됩니다.

요소로부터 의존하는 다른 요소 생성 방법:

그리고 [Enter]키를 누르면 선택된 요소가 의존 관계를 가지는 여러 요소들이 생성되고 자동 배열되어 생성됩니다.

  1. 요소를 더블 클릭해서 Quick Dialog가 나타나면, Quick Dialog에서 "-->" 문자열 다음에 의존하는 다른 요소의 이름을 입력합니다. 여러개의 요소에 대해서 의존한다면 각 요소 이름은 "," 문자로 구분해서 입력합니다.
  2. 현재 선택된 요소로부터 의존 관계를 갖는 다른 요소를 만들려면 단축 생성 구문을 사용합니다. 

Realization

의미:

실체화(Realization)">실체화(Realization)는 명세(specification) 요소와 그것을 구현하는(implementation) 요소의 실체화 관계를 정의합니다. 주로 인터페이스(Interface)와 그것을 구현하는 요소(클래스, 컴포넌트 등)를 연결하는데 사용합니다.

Realization 생성 방법:

Realization를 생성하려면,

  1. [Toolbox] -> [Class] -> [Realization] 버튼을 클릭하고 
  2. Main 윈도우창에서 요소가 Realize의 부모 요소 방향으로 마우스를 누르고 드래그하면 됩니다.
  3. 결과는 다음과 같습니다.

요소로부터 실체화할 다른 요소 생성 방법:

현재 선택된 요소로부터 Realization 관계를 갖는 다른 요소를 만들려면 단축 생성 구문을 사용합니다.

  1. 요소를 더블 클릭해서 Quick Dialog가 나타나면, Quick Dialog에서 "-@" 문자열 다음에 Realization 대상이 되는 요소의 이름을 입력합니다. 여러개의 요소에 대해서 의존한다면 각 요소 이름은 "," 문자로 구분해서 입력합니다.
  2. 그리고 [Enter]키를 누르면 선택된 요소가 Realization 관계를 가지는 여러 요소들이 생성되고 자동 배열되어 생성됩니다.

AssociationClass

의미:

연관클래스(AssociationClass)">연관클래스(AssociationClass)는 클래스(Class)와 연관(Association)을 연결하여 연관자체가 클래스의 의미도 가질 수 있도록 하는 연결 고리 역할을 합니다.

AssociationClass 생성 방법:

AssociationClass를 생성하려면,

  1. [Toolbox] -> [Class] -> [AssociationClass] 버튼을 클릭하고 
  2. Main 윈도우에서 Association에서 AssociationClass가 되는 Class  방향으로 마우스를 누르고 드래그하면 됩니다.
  3. 결과는 다음과 같습니다.

Object

의미:

객체(Object)는 특정 클래스의 인스턴스(instance) 입니다.

Object 생성 방법:

Procedure for creating object

Object를 생성하려면,

  1. [Toolbox] -> [Class] -> [Object] 버튼을 클릭하고 
  2. Main 윈도우창에서 Object가 위치할 곳을 클릭합니다.

Object에 AttributeLink 추가 방법:

Object에 AttributeLink를 추가하는 방법은 다음과 같이 2가지 방법이 있습니다.

  • Object 또는 Model Explorer의 팝업 메뉴 이용
  • Collection Editor 이용

Object 또는 Model Explorer의 팝업 메뉴 이용하는 경우에는 Main 윈도우 또는 Model Explorer에서 Object를 선택하고 오른쪽 마우스 버튼을 눌러서 [Add] -> [Attribute Link] 팝업 메뉴를 선택하여 Attribute Link를 추가할 수 있습니다.

Collection Editor 이용하는 경우에는 Object의 [Collection Editor...] 팝업 메뉴 또는 Properties 윈도우의 Slots의 편집 버튼을 통해서 Collection Editor를 열어서 Slots 탭에서   버튼을 이용하여 Attribute Link를 입력할 수 있습니다.

Link

의미:

링크(Link)는 객체사이의 연결(connection)입니다.

Link 생성 방법:

Link를 생성하려면,

  1. [Toolbox] -> [Class] -> [Link] 버튼을 클릭하고 
  2. Main 윈도우창에서 Link할 Object에서 다른 Object 방향으로 마우스를 누르고 드래그하면 됩니다.
  3. 결과는 다음과 같습니다.

Relationship

연결 끝을 변경하는 방법:

관계들이 연결된 요소를 다른 요소로 연결하려면

  1. 관계의 끝점을 드래그합니다.
  2. 그리고 연결하려는 다른 요소로 드롭합니다.
  3. 그러면 연결의 끝이 변경됩니다.


728x90