관리 메뉴

사과하는 제라스

[소프트웨어 분석 및 설계] 4. 클래스 다이어그램(Class Diagram) 본문

대학 전공 공부/소프트웨어 분석 및 설계

[소프트웨어 분석 및 설계] 4. 클래스 다이어그램(Class Diagram)

Xerath(제라스) 2022. 10. 26. 22:04

목차

    728x90
    반응형

    Class

    : attributes와 이것들에 대한 operations들로 이뤄진 것.

    3가지 방식의 Class 표현 방법

    클래스 다이어그램이 뭔데...?

    : 시간에 따라 변하지 않는 System의 정적인 면을 보여주는 대표적인 UML 구조 다이어그램.

    클래스 다이어그램 예시

    Attribute

    : 객체의 데이터 Property이자 데이터의 추상적인 저장소

     

    - 표현법:

    접근제어자+이름: 속성타입[배열 개수] = 초기 값

     

    +: public visibility

    -: private visibility

    #: protected visibility

    ~: package visibility

    Attribute 표현법 예시

    Operation

    : 클래스에서의 기능을 담당하는 메소드같은 부분.

     

    - 표현법:

    접근제어자+이름(매개변수): 반환 타입

    Operation 표현법 예시

    Relationship(관계)

    1) Dependency(의존)

    : 의존 관계로 임시적인 관계이며, 가운데 <<invoke>>를 씀으로서 클래스 간의 참조 관계를 보임.

    Customer 클래스에선 Exchange Rate가 궁금하니 참조할 수 있다. <<>> 안에는 필요한 동사나 명사를 작성하면 된다.

    2-1) Association(연관)

    : 지속적인 관계에서의 두 클래스 간의 참조 관계를 보임.

    - 화살표를 쓸 경우엔 한쪽에서의 참조만 가능하고 화살표가 없을 경우엔 서로 참조가 가능하다.

    왼쪽처럼 서로 참조가 가능하거나 오른쪽처럼 User만 Phone을 참조할 수 있다.

    + Link

    : Association과 같은 관계이나 클래스 간의 관계가 아닌 인스턴스 간의 관계이다.

    Link 예시

    - {xor} 제약

    : 여러 연관 가능성이 있을 때 쓰는 표시.

    개인 사람의 계좌가 있을 수 있고 기업의 계좌가 있을 수 있으니까~

    - Cardinality 제약 (대응 수 제약)

    : 각 연관 관계는 그 대응 수 범위를 표시될 수 있다.

    하나의 Rider에 대하여 Trip Request는 0개 이상 있다. 1개의 Trip Request에 대해서는 0혹은 1개의 Trip Contract가 있을 수 있다.

     

    - {ordered}

    : {}안에 Property 문자열을 적은 채 옵션으로 줄 수도 있음.

     

    3) Aggregation / Composition(집합 / 합성)

    : 집합은 Whole(전체)과 Part(부분)의 필수 포함 관계는 아닌 포함관계이고, 합성은 필수 포함관계이다.

    다각형이 깨지더라도 꼭지점은 남을 수 있으나 색칠(Fill Pattern)은 사라짐.

    4) Inheritance(상속)

    Inheritance 예시

    - Realization(실체화)

    : 실체화 대상에 <<interface>>를 써서 표시. plug-in 객체는 required interface이다.

    728x90
    반응형