본문 바로가기
컴퓨터 일반/디자인패턴

UML (Unified Modeling Language) (2)

by 호군 2010. 12. 4.
반응형
"GoF 디자인 패턴! 이렇게 활용한다"에는 클래스 다이어그램시퀀스 다이어그램을 사용하여 디자인 패턴을 설명합니다. 그럼 책을 보기 위해서 필수적으로 알아야 할 클래스 다이어그램의 표기법을 알아보겠습니다.


링크 : http://blog.naver.com/witchope?Redirect=Log&logNo=30077417714

□ UML (Unified Modeling Language)

1. 여러 방법론의 표기법을 통합한다는 의미의 모델링 언어

2. UML 특징

    - 그래픽 심볼로 표현

    - 명세화 되어있어 명세서 역할 가능

    - 시스템 구조의 모든 상세 내역에 대한 문서화

    - 프로그래밍 코드 생성 및 역공학 가능

  3. UML 목적

    - User에게 쉽고 가시적인 모델링 언어제공

    - 개발 언어 및 프로세스 와는 독립적인 spec 제공

□ UML 표기법
  1. 엔티티
    1) 클래스 (Class)

클래스명
변수명:변수타입
함수명(파라메터명:파라메터 타입):리턴타입





    2) 인터페이스 (Interface)

인터페이스명
 
 





  - 인터페이스는 실제 구현부가 없으므로 위와 같이 표현된다.


  2. 참조
    1) 강한 참조(지속적)   

class A {
    B b;
};
class B { };



    2) 약한 참조(일시적)
class A {
    void Function(B b) {
    }
};
class B { };




  3. 상속
class A {
};
class B :  public A {
};
class C : public A {
};




  4. 집합, 포함 관계
    1) 강한 소유 : 전체 소멸시 부분도 함께 소멸
class A {
    B* b;

    void Function() {
        this->b = new B;
    }
};
class B { };



    2) 약한 소유 : 서로 독립적인 관계로 생명주기가 다름
class A {
    B* b;

    void Function(B* b) {
        this->b = b;
    }
};
class B { };





 코멘트
인터페이스 상속
에 대해서는 작성하지 않았습니다.
디자인 패턴이 특정 언어에만 국한된 것은 아니지만 C++에는 인터페이스가 없기 때문이고, 위에서 설명을 위한 소스가 C++ 문법인데, 갑자기 자바 문법을 사용하면 통일성이 깨져서 입니다.
하지만 C++에서도 클래스를 인터페이스처럼 사용을 할 수 있습니다. 그렇다고해도 클래스죠.. 그래서 클래스의 다중 상속 문제는 해결 할 수 없습니다.
궁금하신분은 인터넷에 검색하시면 보실 수 있습니다.










 

 

반응형