1. 집합연관,복합연관,인터페이스 그리고 실체화
1.1. 집합연관 (Aggregation)
간혹 하나의 클래스가 여러 개의 컴포넌트 클래스로 구성되어 있는 경우가 있다. 이러한 상황은
집합연관(aggregation)이라 불리는 특수한 관계이다. 컴포넌트 클래스가 전체 클래스는 “부분-전체(part-whole)” 연관 관계를 가진다.
l 집합연관에 대한 제약
집합연관에 속해 있는 컴포넌트들이 Or관계에 놓이게 될 때도 있다. 어떤 식당의 경우, 한끼 식사를 수프 혹은(or) 샐러드 , 그리고 메인 코스와 디저트로 구성하여 내놓는다.
이것을 모델링 하려면 수프와 샐러드 사이에 제약을 두어야 한다.
두 개의 집합연관 선 사이를 점선으로 이은 다음에 {or}를 써준다.
1.2. 복합연관 (composite)
복합체(composite)는 강한 집합연관에 의해 만들어진 클래스이다. 복합체에서 각 컴포넌트 클래스는 오직 하나의 전체 클래스에만 속할 수 있다. 커피 테이블이 복합체의 예인데, 몸체와 다리로 구성되어 있다.
<복합연관에서는 각각의 클래스 컴포넌트 클래스가 오직 하나의 전체 클래스만을 구성하며, 안이 채워진 마름모꼴을 사용하여 나타낸다.>
1.3. 복합체 구조 다이어그램
복합체는 클래스의 컴포넌트를 나타낸다고 하였다. 만약 클래스의 내부 구조를 보여주고 싶을 때에는 어떻게 하여야 할까? 바로 이때 사용할 수 있는 것이 UML 2.0의 composite structure diagram 이다.
복합 구조체 다이어그램이라. 위에선 책에 나온 대로 내용을 기술 하긴 하였지만, 솔직히 어떤 말을 하고 있는 것인지 모르겠다.
책의 내용을 좀더 살펴보자면 이런 이야기가 나온다.
클래스의 내부구조를 보여주고자 할 때, 즉 클래스 안에 클래스 다이어그램을 그려준다.
Attribute(속성) method(메소드)의 내용을 없앤 뒤
다음과 같은 다이어그램으로 나타낸다
Composite structure diagram 이다. (전체 클래스 사각형 안에 다이어그램을 그려준 구조 이다.)
1.4. 인터페이스와 실체화
< UML 1.X 표기법>
< UML 2.0 표기법>
은닉화(캡슐화)에 대해 이야기를 잠시 나누었던 적이 있다. 예를 들어 자동차 문을 잠글 때 자동차는 어떻게 문을 잠그는지 과정을 보여주지 않는다고 하였다, 또한 티브이 리모컨 또한 버튼을 눌렀을 때 채널이 변경되는 과정을 우리에게 보여주지는 않는다.
위의 UML 그림처럼 버튼이란 인터페이스가 하는 역할이다.
실체화(realize) : 리모컨의 일부 행동을 실체화한 버튼을 실체화라 하면, 클래스와 인터페이스가 가지는 관계를 실체화 관계(realization) 라 한다.
<인터페이스는 어떤 클래스로 수행할 수 있는 오퍼레이션의 집합이다. 클래스는 인터페이스에 대하여 실체화 관계를 가지며, 이 관계는 인터페이스로 향하는 쇄선으로 나타낸다. >
상속과 실체화
상속과 실체화를 나타내는 그림이 상당히 유사하기 때문에 헷갈릴 것이다.
여기서 상속의 의미와 실체화의 의미를 다시 한번 생각해 보자. 부모는 자식에게 물리적인 속성(동공색깔, 머리카락 색등 )을 자식에게 물려주고 자식은 부모의 행동을 닮는다.
반면 실체화는 선생님과 제자의 관계로 생각해 보자 선생님은 제자에게 물리적인 속성은 물려주지 않으나, 제자는 선생님의 행동과 가르침을 배우고 닮는다. 이렇게 배운 행동을 미래의 목표를 위해 재사용할지도 모른다.
1.5. 인터페이스와 포트
UML 1.X에는 인터페이스와 클래스의 연결 단자를 그릴 수 없었나 보다. 책에 보니 UML2.0에서는 표현을 할 수 있어 좀 더 자세히 표현할 수 있었다는 걸 보니 말이다.
사용방법은 위와 같이 표기 하여 사용한다.
위의 예를 해석하자면 컴퓨터의 인터페이스 중 하나인 마우스가 컴퓨터에 어떻게 연결되어 있는지를 표현해 주고 있다.
컴퓨터 뒤에 보면 USB port 나 p/s port등이 존재 하는데, 이들 포트들은 컴퓨터의 주변기기들과 연결될 수 있는 단자 들이다.
UML 2.0에서 이런 단자들을 표기할 수 있도록 나타낸 것이 포트 이다.
l 가시성
+ , - , # 앞에서 잠시 다루었던 적이 있다. Class Diagram의 Attribute와 Method 를 정할 때 잠시 나왔던 내용이다. 뒤에서 다룬다고 하였는데 드디어 나왔다.ㅎㅎ
다음과 같이 간단하게 표와 설명으로 알리도록 하겠다
n Star UML
è 역시 UML 2.0의 표기법이 시스템을 이해하는데 훨씬 수월해 보인다.
n Rational Rose
è UML 1.X 버전으로 표기 되었으며 + , - , # 이 아닌 Icon 으로 표시하고 있다.(멋지군..)
l 스코프
n 인스턴스 스코프(instance scope)
è 자바의 인스턴스 변수 / 인스턴스 메소드를 생각하면 된다.
è 각각의 인스턴스에 속한 송성과 오퍼레이션들이 각자의 값을 가지도록 되어 있다.
n 클래스 스코프(classifier scope)
è 해당 클래스에 대해 유일한 속성값과 오퍼레이션 값을 가진다.
è 자바의 클래스 변수 / 클래스 메소드를 생각하면 된다
복합연관과 집합연관관계를 되집어 보자.
UML표기로는 비슷하다. 다이아몬드 모양으로 표시하며, 색이 칠해져 있는 것이 composite(복합)이며 색이 없는 것이 집합연관을 나타내는 것이다.
집합연관은 “부분-전체(part-whole)”관계를 나타낸다.
“전체(whole)”클래스는 컴포넌트 클래스로 구성된다. 집합연관 내에서 컴포넌트 클래스는 두 개 이상의 전체 클래스의 “부분(part)”이 될 수 있다.
Composite Structure Diagram(복합구조체 다이어그램)
클래스 내부의 클래스 집합을 보여 줌으로서 클래스의 내부 구조를 표현한다.
UML 2.0의 포트 기호 추가
Scope(스코프)의 특징
얼마만의 업데이트인지 모르겠군..
더 공부해야대는데 책보면서 정리하는것도 만만치가 않군....
봐도봐도~ 또까먹는구나~ 한눈에보면 알때까지 줄창 봐야겠다~
'소프트웨어공학 > UML' 카테고리의 다른 글
UML < Diagram의 연관관계 > Stap_3 (0) | 2008.04.24 |
---|---|
UML < Diagram의 종류 > Stap_2 (2) | 2008.04.17 |
UML < Diagram의 종류 > Stap_1 (0) | 2008.04.14 |
UML 목차 (0) | 2008.04.14 |