본문 바로가기
컴퓨터 과학/소프트웨어공학

[소프트웨어공학] 객체지향의 6가지 관계 유형

by webcodur 2024. 3. 29.
728x90
반응형

목차

     
     
    참고
    https://blog.visual-paradigm.com/what-are-the-six-types-of-relationships-in-uml-class-diagrams/
     
     
     

    1. 클래스 다이어그램에서의 관계 형태

     
     
     
     

    2. 각 관계

     

    연관 (Association)

    • 설명: 대표적인 유형, 클래스 간 일반적인 연결을 나타냄, 단방향 양방향 모두 가능
    • 예시: 학생 usesA 교수님, 교수님 hasA 학생
    • 표현: usesA hasA

     

    상속 (Inheritance)

    • 설명: 하위 클래스가 상위 클래스의 모든 속성과 메서드를 상속받는 관계.
    • 예시: 버스 isA 차량, 택시 isA 차량
    • 표현: isA

     

    실현/구현 (Realization/Implementation)

    • 설명: 클래스는 해당 인터페이스의 모든 추상 메서드를 구현해야 한다. 
    • 예시: Vehicle 인터페이스가 drive 메서드를 정의하면, Car 클래스는 drive 를 구현해야한다.
    • 표현: ---

     

    의존 (Dependency)

    • 설명: 한 클래스의 변경이 다른 클래스에 영향을 줌, "두 클래스 사이 연관성이 있다"
    • 예시: 자동차 dependsOn 휘발유
    • 표현: usesA / dependsOn

     

    집합 (Aggregation)

    • 설명: 부분-전체 관계(유연). 전체가 죽어도 부분은 생존. (팀을 구하지 못한 플레이어)
    • 예시: 팀 hasA 플레이어
    • 표현 : ownsA / hasA

     

    구성 (Composition) 

    • 설명: 부분-전체 관계(밀접). 전체가 살아야 부분도 생존
    • 예시: 집 consistsOf 방
    • 표현: consistsOf / partOf

     
    각 관계는 소프트웨어 설계에서 중요한 역할을 하며, 클래스들이 어떻게 서로 연결되어 있는지를 명확하게 이해하고 표현하기 위해 중요하다. UML에서 제공하는 이러한 표준화된 관계 유형들을 활용하면 보다 명확하고 체계적인 소프트웨어 설계가 가능하다.

    반응형