클래스 다이어그램

강준호·2023년 4월 6일
0

소프트웨어공학

목록 보기
3/7

구조 다이어그램

  • 시스템의 개념, 관계 측면 => 정적인.

클래스 다이어그램의 목적

  • 소프트웨어 시스템의 정적 구조를 모델링하는 것입니다.
    클래스, 해당 특성 및 작업 간의 관계를 설명하여
    개발자가 시스템의 전체 디자인 및 구성을 시각화하데 도움을줌.

4가지 구성요소

클래스

  • 시스템의 빌딩 블록. 명사
  • 여러 개의 Attribute를 포함하는 복합 정보
  • 사람, 장소 또는 객체와 같은 실제 엔터티의 추상화를 나타냅니다.
  • 사각형으로 표시됩니다.

스테레오 타입

  • 인터페이스나 추상 클래스 같은 요소 표현
  • << >>

속성(Attributes)

  • 클래스의 속성 또는 특성.

  • 원자적: 하나의 데이터 요소만을 나타내며, 더 이상 분해할 수 없습니다.

  • 클래스 이름 아래 클래스 사각형 안에 배치됩니다.

  • 속성은 개체의 상태를 설명하며 이름과 유형(ex int, string, boolean)을 가집니다.

  • Ex) 학생(Student) 클래스에서 학생의 이름, 학번, 전공 등은 모두 Attribute

연산(Operations), 메소드

  • 클래스 내부에서 사용
  • 클래스가 수행할 수 있는 작업 또는 기능
  • 클래스 사각형 내부의 속성 아래에 표시
  • Ex) printInfo() 메서드나 학생의 성적을 계산하는 calculateGrade() 메서드

관계(클래스 간)


  • 상속, 집계, 연결 등 클래스 간의 관계를 나타내기 위해서

일반화,상속(Generalization,)

  • 상속()
  • 관계의 상위관계
  • Ex) "Vehicle" 클래스는 "Car" 클래스와 상속 관계를 가질 수 있습니다. 자동차는 특정 유형의 차량이기 때문입니다.

실체화(Realization)

  • 인터페이스와 해당 인터페이스를 구현하는 클래스 간의 관계입니다.
  • Ex) "Drawable" 인터페이스는 "Circle"과 실현 관계를 가질 수 있습니다.

의존(Dependency)

  • 임시 링크. 어떤 클래스가 다른 클래스를 참조하는 것.

  • 한 클래스가 일부 기능에 대해 다른 클래스에 의존하는 관계이지만
    연관이나 상속과 같은 강력한 관계는 아닙니다

  • Ex) "PaymentProcessor" 클래스는 결제를 처리하기 위해 신용 카드 정보가 필요하므로 "CreditCard" 클래스에 종속될 수 있습니다.

연관(Association)

  • 지속적인 링크
  • 두 클래스 사이의 단순한 관계로 어떤 식으로든 관련이 있음을 나타냅니다.
  • Ex) "학생" 클래스와 "코스" 클래스는 학생이 코스에 등록할 때 연결될 수 있습니다.

집합(Aggregation)

  • 관계의 일부
  • 하나의 클래스(전체)가 다른 클래스(부분)를 포함하거나 구성되는 "전체-부분" 관계
  • Ex) "Department" 클래스는 "Professor" 클래스와 집계 관계를 가질 수 있습니다. 부서는 여러 교수로 구성

합성 (Composition), 강한 집합

  • 부분이 전체와 독립적으로 존재할 수 없는 더 강력한 형태의 집합입니다.
  • 전체가 무너지면 부분도 무너진다.
  • Ex) "Car" 클래스는 "Engine" 클래스와 구성 관계를 가질 수 있습니다. 자동차 없이는 엔진이 존재할 수 없기 때문입니다.

카디널리티(다중성)

  • 다른 클래스의 인스턴스와 연결될 수 있는 한 클래스의 인스턴스 수를 나타내는 데 사용되는 개념

  • 클래스 다이어그램에서 연결, 집계 또는 구성과 같은 관계 라인의 끝 옆에 표시됩니다.

일대일(1:1) 관계

  • "Person" 클래스와 "Passport" 클래스가 있다고 가정합니다.
  • 1인당 1개의 여권만 소지할 수 있으며 각 여권은 1인에게만 발급됩니다.
  • 이 두 클래스 간의 카디널리티는 일대일 관계를 나타내는 1:1이 됩니다.

일대다(1:N) 관계:

  • 클래스 "교사"와 클래스 "학생"을 고려해 봅시다.
  • 한 명의 교사가 여러 학생을 가르칠 수 있지만 각 학생은 한 명의 교사만 가르칩니다.
  • 이 두 클래스 간의 카디널리티는 일대다 관계를 나타내는 1:N(또는 UML 표기법의 1:0..*) 입니다.

다대다(M:N) 관계:

  • 이제 "저자"와 "책" 클래스를 살펴보겠습니다.
  • 한 저자가 여러 권의 책을 쓸 수 있고, 한 권의 책을 여러 저자가 공동 집필할 수 있습니다.
  • 이 두 클래스 간의 카디널리티는 다대다 관계를 나타내는 M:N(또는 UML 표기법의 :)입니다.

참고 블로그)
https://www.nextree.co.kr/p6753/
https://brownbears.tistory.com/577

0개의 댓글