클래스 다이어그램

0

정보처리기사

목록 보기
15/100

클래스 다이어그램 개요 및 구성 요소


1. 클래스 다이어그램 정의

  • 클래스 다이어그램(Class Diagram)은 시스템을 구성하는 객체들의 구조와 관계를 나타내는 UML의 대표적인 구조적 다이어그램입니다.
  • 역할:
    • 각 객체가 가진 속성(Attribute)과 동작(Method)을 정의.
    • 객체 간 연관성을 시각적으로 표현하여 시스템의 정적 구조를 파악.
    • 개발자 관점에서 시스템 설계를 문서화하는 데 사용.

2. 클래스 다이어그램의 주요 구성 요소

2.1. 클래스(Class)

  • 시스템 내에서 공통된 속성과 동작을 가지는 객체를 추상화한 단위.
  • 구성:
    1. 클래스 이름
    2. 속성(Attribute): 객체의 상태를 나타냄.
    3. 오퍼레이션(Operation): 클래스가 수행할 수 있는 동작(메소드).
  • 표현 방식:
    +-------------------+
    |    클래스 이름    |
    +-------------------+
    |    속성 목록     |
    +-------------------+
    |  오퍼레이션 목록  |
    +-------------------+
  • 접근 제한자:
    • +: 공개(public), 외부에서도 접근 가능.
    • -: 비공개(private), 외부에서 접근 불가.

2.2. 제약 조건(Constraint)

  • 클래스 내 속성값의 제한 조건이나 메소드 수행 전후 조건을 정의.
  • 표현 방식: {조건식}으로 클래스 내부에 표기.
  • :
    • {경력 > 0}: 경력은 0보다 큰 값이어야 함.
    • {승점 >= 2.5}: 특정 메소드 수행을 위한 사전 조건.

2.3. 관계(Relationship)

  • 클래스 간의 연관성을 나타냄.

  • 종류:

    1. 연관 관계(Association)

      • 두 클래스 간 상호작용을 표현.
      • 실선으로 연결하며, 다중도를 표기.
      • : 고객과 주문.
    2. 집합 관계(Aggregation)

      • 전체-부분 관계로, 부분은 독립적으로 존재 가능.
      • 표시: 전체 쪽에 빈 마름모.
      • : 컴퓨터와 프린터.
    3. 포함 관계(Composition)

      • 전체-부분 관계로, 부분은 전체 없이는 존재 불가.
      • 표시: 전체 쪽에 채워진 마름모.
      • : 문과 열쇠.
    4. 일반화 관계(Generalization)

      • 상위-하위 관계로, 하위 클래스는 상위 클래스의 속성과 동작을 상속.
      • 표시: 상위 클래스로 향하는 빈 화살표.
      • : 동물 → 개, 고양이.
    5. 의존 관계(Dependency)

      • 하나의 클래스가 다른 클래스의 변화에 의존.
      • 표시: 점선 화살표.
      • : 주문 → 결제 시스템.

3. 클래스 다이어그램 예시

야구 리그 시스템 예시

  • 클래스 목록:

    1. 리그(League)
      • 속성: 이름, 시즌.
    2. 팀(Team)
      • 속성: 팀명, 연고지.
      • 메소드: 경기 준비(), 훈련().
    3. 경기(Game)
      • 속성: 경기일, 장소.
      • 메소드: 경기 시작(), 결과 확인().
    4. 야구 선수(Player)
      • 속성: 이름, 경력, 포지션.
      • 메소드: 타격(), 수비().
      • 제약 조건: {경력 > 0}.
    5. 연봉 조정(SalaryAdjustment)
      • 제약 조건: {승점 >= 2.5}.
  • 관계:

    • 리그와 팀: 1:N 연관 관계 (한 리그에 여러 팀).
    • 팀과 경기: 1:N 연관 관계 (한 팀은 여러 경기 참여).
    • 팀과 선수: 1:N 연관 관계 (한 팀에 여러 선수).
    • 경기와 선수: N:M 연관 관계 (여러 선수가 여러 경기 참가).

4. 연관 클래스(Association Class)

  • 두 클래스 간 연관 관계에 속성과 메소드가 필요할 때 사용.
  • 표현 방식:
    • 두 클래스 간 연관 관계의 선에 점선을 연결하여 연관 클래스를 추가.
  • :
    • 팀과 경기 간의 참여(Participation) 연관 클래스.
      • 속성: 참여 횟수, 결과.
      • 메소드: 기록 추가(), 결과 확인().

5. 학습 포인트

  • 클래스 다이어그램의 구성 요소:
    • 클래스, 제약 조건, 관계.
  • 관계 표현 방식:
    • 연관, 집합, 포함, 일반화, 의존 관계의 차이점.
  • 실제 코드와의 연관성:
    • 클래스 다이어그램을 통해 객체지향 시스템 설계를 시각화하고 코드로 구현.

6. 정리

  • 클래스 다이어그램은 시스템의 정적 구조를 이해하고 설계하는 데 필수적인 도구.
  • 개발자 관점에서 객체의 속성과 동작, 객체 간 관계를 시각적으로 표현.
  • UML 다이어그램 중 가장 널리 사용되며, 객체지향 시스템의 기반이 됨.

0개의 댓글