티스토리 뷰

정보처리기사

UML의 관계: 의존, 연관, 일반화

박완희버서커 2025. 7. 6. 12:19
반응형
UML의 관계: 의존, 연관, 일반화

UML의 관계: 의존, 연관, 일반화


✅ UML 정의

UML(Unified Modeling Language)
시스템의 구조와 동작을 시각적으로 표현하기 위한 표준화된 모델링 언어입니다.
소프트웨어 설계 시 클래스 간의 구조적 관계를 명확히 표현하고, 설계 의도를 전달하기 위해 사용됩니다.

✅ UML의 필요성

  • 시스템의 복잡한 구조를 명확히 시각화하여 이해를 돕습니다.
  • 개발자 간의 의사소통을 원활하게 합니다.
  • 설계의 일관성을 유지하고 유지보수성을 높입니다.

✅ UML 관계

UML 클래스 다이어그램에서는 클래스 간의 관계를 표현합니다.
여기에서는 가장 기본적인 세 가지 관계를 다룹니다.

  • 의존(Dependency)
  • 연관(Association)
  • 일반화(Generalization)

각 관계는 정의 → 다이어그램 → 주체/대상 → 설명 → 예시 코드 순으로 설명합니다.


🔷 의존 관계 (Dependency)

정의

한 클래스(주체)가 작업을 수행하기 위해 다른 클래스(대상)의 정의를 참조하며, 대상의 변경이 주체에 영향을 미치는 관계.
대상 객체를 내부에 저장하지 않고, 일시적으로만 참조합니다.

UML 다이어그램

[Printer] - - - - - -→ [Document]

(점선 화살표)


주체와 대상

  • ✅ 주체: Printer
  • ✅ 대상: Document

PrinterDocument에 의존합니다.
PrinterDocument가 제공하는 메서드를 사용해야 동작할 수 있지만, Document를 소유하지는 않습니다.


설명

의존 관계는 두 클래스 간의 결합이 약합니다.
주로 메서드 파라미터나 지역 변수로 대상 클래스의 인스턴스를 받아 잠깐 사용하는 상황에서 발생합니다.


예시 코드

class Document {
public:
    void render();
};

class Printer {
public:
    void print(Document doc) {
        doc.render();
    }
};

🔷 연관 관계 (Association)

정의

한 클래스(주체)가 다른 클래스(대상)의 인스턴스를 속성으로 보유하며, 장기간 참조하는 관계.
객체 간의 지속적인 연결을 나타냅니다.

UML 다이어그램

[Teacher] ──────────→ [Student]

(실선)


주체와 대상

  • ✅ 주체: Teacher
  • ✅ 대상: Student

TeacherStudent를 속성으로 가지고 있습니다.
TeacherStudent 객체를 내부 상태로 지속적으로 유지하며 참조합니다.


설명

연관 관계는 의존 관계보다 강한 결합을 가집니다.
주체가 대상의 인스턴스를 소유하여 상태로 유지하고, 작업마다 지속적으로 사용합니다.


예시 코드

class Student {
public:
    std::string name;
};

class Teacher {
public:
    Student* student;
};

🔷 일반화 관계 (Generalization)

정의

한 클래스(주체)가 다른 클래스(대상)의 속성과 행동을 상속받아 계층을 형성하는 관계.
부모-자식 관계이며, 코드 재사용성과 다형성을 구현합니다.

UML 다이어그램

[Dog]
   ▲
   │
[Animal]

(실선 + 빈 삼각형)


주체와 대상

  • ✅ 주체: Dog
  • ✅ 대상: Animal

DogAnimal을 상속받습니다.
DogAnimal의 특성과 기능을 물려받아 사용하거나 확장합니다.


설명

일반화 관계는 계층적 구조를 형성하고, 코드의 재사용성을 높입니다.
하위 클래스가 상위 클래스의 정의를 기반으로 동작합니다.


예시 코드

class Animal {
public:
    void eat();
};

class Dog : public Animal {
public:
    void bark();
};

✅ 요약 및 비교

관계명 정의 UML 표기 주체 → 대상 관계 강도
의존 정의에 영향을 받는 일시적 참조 점선 화살표 Printer → Document 약함
연관 속성으로 보유하며 지속적으로 참조 실선 Teacher → Student 중간
일반화 상속 계층을 형성 실선 + 빈 삼각형 Dog → Animal 강함

  • ✅ 의존: 작업 시 대상의 정의를 잠시 사용함, 소유하지 않음
  • ✅ 연관: 대상의 인스턴스를 속성으로 가지고 있음
  • ✅ 일반화: 대상의 정의를 상속받아 계층을 형성
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/10   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함
반응형