본문바로가기

 UML v1.1 개념-UML의 기본-Things

 UML  2013. 5. 19. 20:55  창조컨서턴트

2.   UML의 기본

 

2.1.         Things

 

 

그림 8 Things 구성도


 

2.1.1.     Structural Things

2.1.1.1.   클래스 (Class)

: 공통의 속성, 오퍼레이션 및 관계를 갖는 객체들의 집합

 

Name

Attributes

Operations

그림 9 Class

 

§   클래스는 유스케이스와 함께 객체지향 분석 설계에서 가장 중요한 요소이다.

§   클래스는 사각형으로 나타내며, 세 부분으로 분할하여 이름과 속성 그리고 오퍼레이션을 나타낸다.

§   표기법

-        클래스의 이름은 대문자로 시작하여 표현한다.

-        속성과 오퍼레이션은 소문자로 시작하여 표현한다.

-        패키지와 함께 표현할 때엔 다음과 같이 표현한다.

. package-name:: class-name

 

Mammal::Person

+hands_count

-tooth_count

+grip

-chew

그림 10 Class 표기법

 

2.1.1.1.1.        속성 (Attribute)

: 객체의 특성을 표시

§   자료형을 가지며, 초기값으로 설정될 수 있다.

§   표기법

-        속성이름 (name)

-        속성이름:속성타입 (name:type-expression)

-        속성이름:속성타입=초기값 (name:type-expression=initial-value)

-        visibility name:type-expression=initial-value{property-string}

       visibility : +(public), #(protected), -(private)

-        class-scope attribute

       해당 클래스에 대해 유일한 값을 갖는 속성(이름에 밑줄)

(Ex: static public Rectangle default-size; )

 

그림 11 Attribute 표기법

 

2.1.1.1.2.        기능 (Operation)

: 오퍼레이션은 객체가 수행하는 서비스를 의미한다.

§   표기법

-       오퍼레이션 이름()

-       오퍼레이션 이름(파라미터 리스트):리턴 타입

-       visibility name(parameter-list):return-type-expression{property-string}

        visibility : +(public), #(protected), -(private)

        parameter-list : kind name:type-expression=default-value

-       class-scope operation

        해당 클래스에 대해 유일한 값을 갖는 오퍼레이션(이름에 밑줄)

  ( static public void create(); )

 

 

그림 12 Operation 표기법

 

2.1.1.1.3.        Visibility (가시성)

: 클래스의 속성과 오퍼레이션에 부여할 수 있는 특성으로 다른 클래스에서 사용 가능 여부를 나타낸다.

§   +(public) : 외부 클래스에서도 사용 가능함을 의미한다.

§   #(protected) : 하위클래스와 해당클래스 내에서만 사용 가능함을 의미한다.

§   -(private) : 해당클래스에서만 사용 가능함을 의미한다.

§   ~(package, default) : 패키지 내에서만 사용 가능함을 의미한다.

 

2.1.1.2.   Abstract Class (추상 클래스)

: 추상 메소드가 1개 이상 존재하는 클래스를 뜻한다.

§   추상 메소드란 내부 구현 코드가 정의되어 있지 않은 메소드이다.

§   표기법

-        추상 클래스와 추상 메소드는 이탤릭체로 표기한다.

 

Name(Abstract Class)

Attributes

+abstractMethod

+concreteMethod

그림 13 Abstract Class 표기법

 

2.1.1.3.   Object (객체)

: Class Instance

§   객체는 Class Instance이다.

§   특정한 속성 값을 갖는다.

§   표기법

-        Object 이름은 밑줄을 그어 표현한다.

object-name : class-name

 

tri:Polygon

Center=(0,0)

Verticies=((0,0),(4,0),(4,3)

borderColor=black

fileColor=white

 

그림 14 Object 표기법

2.1.1.4.   Interface (인터페이스)

: Class 또는 Component가 외부에 제공하는 Service를 명세화 한 기능(Operation)의 집합.

§   인터페이스는 구조나 구현을 갖지 않는다.

§   인터페이스는 이로 인해 속성을 갖지 않으며 기능(Operation)에 대한 구현을 제공하는 Method를 포함하지 않는다.

§   표기법

-        Icon 표시는 원으로 표시함

-        Text 표시는 “<<Interface>>” Tag가 표시됨

 

그림 15 Interface

 

2.1.1.5.   Collaboration (협력)

: 구현관점에서 목적을 달성하기 위한 일련의 행위

§   표기법

-        타원을 점선으로 표기한다.

-        타원 안에 역할의 내용을 기입한다.

 

그림 16 Collaboration

 

2.1.1.6.   Use Case

: 사용자(Actor) 관점에서 시스템이 제공하여야 하는 서비스 집합.

§   표기법

-        타원으로 표시하고 그 안쪽이나 아래쪽에 Use Case 명을 기술

-        Use Case 이름은 “ ~ 한다와 같이 동사로 표기

그림 17 Use Case

2.1.1.7.   Active Class

: 하나 이상의 프로세스나 쓰레드를 갖는 객체를 파생하는 클래스 기술.

§   표기법

-        Class 표기와 비슷하지만, 양 옆에 세로 라인이 추가됨

 

 

Event Manager

 

 

suspend

flush

그림 18 Active Class

 

2.1.1.8.   Component

: 시스템을 구성하는 물리적인 단위로 독립적인 실행단위 혹은 배포단위

( Android에서는 Module단위로 보면 된다. )

§   Deployment component (배치 컴포넌트)

-        DLL, 실행파일 등과 같이 실행 가능한 시스템 구성요소

-        동적 웹페이지, DB 테이블 등도 포함됨

§   Word product component (작업 결과물 컴포넌트)

-        시스템의 실행에 직접적으로 참여하지는 않지만, 개발 작업에서 만들어지는 결과물들이며 실행 시스템을 생성 하는데 사용됨

-        분석/설계 문서, 소스코드 파일, 데이터 파일

§   Execution component (실행 컴포넌트)

-        실행 시스템의 수행 결과로 생성되는 컴포넌트

-        메모리상에 존재하는 객체, 실행 결과로 생성된 dB레코드 도는 파일 등

§   표기법

그림 19 Component

 

2.1.1.9.   Node

: 물리적인 요소로서 시스템이 실행될 때 존재하며 어느 정도의 메모리와 처리 능력을 갖는 전산 자원을 의미한다.

§   육면체로 표현하며 이름을 표기하고 필요에 따라 탑재되는 컴포넌트를 표기한다.

§   표기법

그림 20 Node

 

2.1.2.     Behavioral Things (행위사물)

2.1.2.1.   Interaction (교류)

: 지정된 목적을 완성하기 위하여 특정 문맥에 속한 객체들 사이에 주고 받는 메시지.

n  표기법

 

그림 21 Interaction

 

2.1.2.2.   State Machine (상태머신)

: 객체의 상태를 순서대로 명시한 것. 이벤트에 대한 객체의 응답과 반응.

n  표기법

그림 22 State Machine

 

2.1.3.     Grouping Things (그룹사물)

2.1.3.1.   Package

: UML요소를 그룹으로 묶어놓은 것

n  표기법

 

그림 23 Package

 

2.1.4.     Annotation Things (주해사물)

2.1.4.1.   Note

: UML 모델을 설명하는 부분이며, 모델 요소를 설명하고, 명확히 하는 표현.

n  표기법

-        모서리가 접힌 직사각형으로 표현된다.

 

그림 24 Note