UML class diagram

UML 이란?

Unified Modeling Language(UML)은 소프트웨어 공학에서 사용되는 표준화된 범용 모델링 언어 입니다.

Class 기호

Object만 표시


class에 변수와 메소드를 표시
* private / public 구분 없음

private / public을 구분하여 class 표시

private / public을 구분하여 class 표시
* '-'는 private '+'는 public

UML 기호



Class 관계

Dependency

 : 의존성 관계 : 클래스 다이어그램에서 일반적으로 가장 많이 사용하는 관계
class Animal
{
private:
    string name;
    bool alive;
     
public:
    void action(AnimalAction ani)
    {
        ani.do_something();
    }
};

Association

클래스들이 개념상 서로 연관되어있는 연관 관계를 나타냄
일반적으로 클래스가 다른 클래스에서 제공하는 기능을 사용한 상황일때 표시함.
class Animal
{
private:
    string name;
    bool alive;
    AnimalAction aniaction;
};
 
 
class AnimalAction
{
public:
    void do_something();
};
 


Aggregation

집합 사용 관계
화살표는 표시를 해도 되고 하지 않아도 됨.
※ 다이아몬드 모양이 이미 방향을 표현하고 있기 때문

class Animal
{
private:
    string name;
    bool alive;
    AnimalAction aniaction[100];
};
 

Composition

aggregation과 비슷하게 전체에서 부분 집합의 관계를 나타냄
aggregation과 차이점
  • 전체 class가 part 인스턴스 전체 수명을 관리함
  • part 인스턴스는 공유될 수 없음
class Animal
{
private:
    string name;
    bool alive;
    AnimalAction aniaction = new AnimalAction();
};
 

Generalization/Inheritance

부모-자식 클래스 간의 상속 관계를 나타냄
class Animal
{
private:
    string name;
    bool alive;
public:
    void action();
};
 
 
class Mammal : public Animal
{
public :
    void action_mam();
};
 


Realization/Implementation

정의만 있는 메서드를 오버라이딩 하여 실제 기능으로 구현하는 것
class Animal
{
private:
    string name;
    bool alive;
public:
    virtual action();
};
 
 
class Mammal : public Animal
{
public :
    void action();
};
 


시퀀스 다이어그램

시퀀스 다이어그램 기호


Entity classes : 일반적인 동작을 모델링

Boundary classes : actor과 시스템 사이의 상호작용을 나타냄. (일반적으로 UI와 같은 interface)

Control classes : 실행 중인 클래스를 나타냄

actor : 시스템과 상호작용하는 심볼  (Boundary 또는 actor끼리도 가능)

loop : 반복문

Lifeline : 시간의 흐름을 나타내는 기호

Activation box : 작업을 완료하는데 걸리는 시간을 bar형태로 나타냄.
막대가 길수록 시간이 오래걸리는 것을 표현합니다.

message (synchronous)

message (asynchronous)

create message (asynchronous)

return message

delete message : 개체 destroy






댓글