logo

UML 클래스 다이어그램

클래스 다이어그램은 애플리케이션의 정적 보기를 묘사합니다. 이는 시스템에 있는 개체의 유형과 개체 간의 관계를 나타냅니다. 클래스는 객체로 구성되며, 다른 클래스로부터 상속받을 수도 있습니다. 클래스 다이어그램은 시스템의 다양한 측면을 시각화, 설명, 문서화하고 실행 가능한 소프트웨어 코드를 구성하는 데 사용됩니다.

소프트웨어 시스템의 개요를 제공하기 위해 속성, 클래스, 기능 및 관계를 보여줍니다. 이는 소프트웨어 개발에 도움이 되는 별도의 구획에 클래스 이름, 속성 및 기능을 구성합니다. 클래스, 인터페이스, 연관, 협업 및 제약조건의 모음이므로 구조 다이어그램이라고 합니다.

클래스 다이어그램의 목적

클래스 다이어그램의 주요 목적은 애플리케이션의 정적 보기를 구축하는 것입니다. 구축에 널리 사용되는 유일한 다이어그램이며, 객체지향 언어로 매핑이 가능합니다. 가장 널리 사용되는 UML 다이어그램 중 하나입니다. 아래에 주어진 클래스 다이어그램의 목적은 다음과 같습니다.

  1. 애플리케이션의 정적 뷰를 분석하고 설계합니다.
  2. 이는 시스템의 주요 책임을 설명합니다.
  3. 구성 요소 및 배포 다이어그램의 기반입니다.
  4. 이는 순방향 및 역방향 엔지니어링을 통합합니다.

클래스 다이어그램의 이점

  1. 복잡한 시스템의 개체 모델을 나타낼 수 있습니다.
  2. 코딩하기 전에 애플리케이션이 어떻게 구성되어 있는지에 대한 개요를 제공하여 유지 관리 시간을 줄여줍니다.
  3. 더 나은 이해를 위해 응용 프로그램의 일반적인 개략도를 제공합니다.
  4. 프로그래밍할 원하는 코드를 강조 표시하여 자세한 차트를 나타냅니다.
  5. 이해관계자와 개발자에게 도움이 됩니다.

클래스 다이어그램의 핵심 구성요소

클래스 다이어그램은 세 가지 섹션으로 구성됩니다.

    상단 부분:상단 섹션에는 클래스 이름이 포함됩니다. 클래스는 동일한 관계, 속성, 작업 및 의미를 공유하는 유사한 객체의 표현입니다. 클래스를 대표할 때 고려해야 할 다음 규칙 중 일부는 다음과 같습니다.
    1. 클래스 이름의 첫 글자를 대문자로 표기합니다.
    2. 상단 중앙에 학급명을 기재합니다.
    3. 클래스 이름은 굵은 글씨체로 작성해야 합니다.
    4. 추상클래스의 이름은 이탤릭체로 작성한다.
    중간 섹션:중간 부분은 클래스의 품질을 설명하는 속성을 구성합니다. 속성에는 다음과 같은 특징이 있습니다.
    1. 속성은 공개(+), 비공개(-), 보호(#) 및 패키지(~)인 가시성 요소와 함께 작성됩니다.
    2. 속성 클래스의 접근성은 가시성 요소로 설명됩니다.
    3. 클래스 내에서의 사용법을 설명하는 의미 있는 이름을 속성에 할당해야 합니다.
    하단 섹션:아래쪽 섹션에는 메서드나 작업이 포함되어 있습니다. 메소드는 목록 형식으로 표시되며 각 메소드는 한 줄에 작성됩니다. 클래스가 데이터와 상호 작용하는 방법을 보여줍니다.
UML 클래스 다이어그램

관계

UML에서 관계는 세 가지 유형으로 나뉩니다.

    의존:종속성은 한 클래스의 변경으로 인해 다른 클래스의 변경이 발생하는 두 개 이상의 클래스 간의 의미론적 관계입니다. 그것은 더 약한 관계를 형성합니다.
    다음 예에서 Student_Name은 Student_Id에 종속됩니다.
UML 클래스 다이어그램
    일반화:일반화는 상위 클래스(슈퍼클래스)와 하위 클래스(하위 클래스) 간의 관계입니다. 여기서 자식 클래스는 부모 클래스로부터 상속됩니다.
    예를 들어 당좌계좌, 저축계좌, 신용계좌는 은행계좌의 일반화된 형태입니다.
UML 클래스 다이어그램
    협회:둘 이상의 개체 간의 정적 또는 물리적 연결을 설명합니다. 관계에 얼마나 많은 객체가 있는지를 나타냅니다.
    예를 들어, 학과가 대학과 연관되어 있습니다.
UML 클래스 다이어그램

다수: 허용되는 속성 인스턴스의 특정 범위를 정의합니다. 범위가 지정되지 않은 경우 하나가 기본 다중도로 간주됩니다.

img CSS 정렬

예를 들어, 한 병원에 여러 명의 환자가 입원합니다.

UML 클래스 다이어그램

집합: 집계는 관계가 있음을 나타내는 연관의 하위 집합입니다. 연관보다 더 구체적입니다. 부분-전체 또는 부분-관계를 정의합니다. 이러한 관계에서는 하위 클래스가 상위 클래스와 독립적으로 존재할 수 있습니다.

회사는 다수의 직원으로 구성되어 있으며, 직원 한 명이 사임하더라도 회사는 여전히 존재합니다.

UML 클래스 다이어그램

구성: 컴포지션은 집계의 하위 집합입니다. 이는 상위와 하위 간의 종속성을 나타냅니다. 즉, 한 부분이 삭제되면 다른 부분도 삭제된다는 의미입니다. 이는 전체 부분 관계를 나타냅니다.

연락처는 여러 개의 연락처로 구성되며, 연락처를 삭제하면 모든 연락처가 손실됩니다.

UML 클래스 다이어그램

추상 클래스

추상 클래스에서는 어떤 객체도 추상 클래스의 직접적인 엔터티가 될 수 없습니다. 추상 클래스는 선언되거나 인스턴스화될 수 없습니다. 클래스 전체에서 기능을 찾는 데 사용됩니다. 추상 클래스의 표기법은 클래스의 표기법과 유사합니다. 유일한 차이점은 클래스 이름이 이탤릭체로 쓰여 있다는 것입니다. 주어진 함수에 대한 구현이 포함되지 않으므로 여러 객체와 함께 추상 클래스를 사용하는 것이 가장 좋습니다.

다음과 같은 추상 클래스가 있다고 가정해 보겠습니다. 배수량 그 안에 메소드가 선언되어 있고 해당 메소드는 다음과 같이 호출됩니다. 운전하다 () . 이제 이 추상 클래스 메서드는 자동차, 자전거, 스쿠터, 자전거 등 모든 개체에서 구현할 수 있습니다.

UML 클래스 다이어그램

클래스 다이어그램을 그리는 방법은 무엇입니까?

클래스 다이어그램은 소프트웨어 애플리케이션을 구성하는 데 가장 널리 사용됩니다. 이는 시스템의 정적 보기뿐만 아니라 애플리케이션의 모든 주요 측면도 나타냅니다. 클래스 다이어그램의 모음은 전체적으로 시스템을 나타냅니다.

클래스 다이어그램을 그릴 때 염두에 두어야 할 몇 가지 핵심 사항은 다음과 같습니다.

  1. 시스템의 전체 측면을 설명하려면 클래스 다이어그램에 의미 있는 이름을 지정하는 것이 좋습니다.
  2. 대상과 그 관계를 미리 인지해야 합니다.
  3. 각 클래스의 속성과 메서드(책임)를 알아야 합니다.
  4. 원하지 않는 속성이 많을수록 다이어그램이 복잡해지기 때문에 원하는 속성의 최소 개수를 지정해야 합니다.
  5. 메모는 개발자가 다이어그램의 측면을 설명하기 위해 필요할 때 사용할 수 있습니다.
  6. 다이어그램은 최종 버전을 제작하기 전에 정확하도록 여러 번 다시 그려지고 재작업되어야 합니다.

클래스 다이어그램 예

판매 주문 시스템을 설명하는 클래스 다이어그램은 다음과 같습니다.

UML 클래스 다이어그램

클래스 다이어그램의 사용법

클래스 다이어그램은 시스템의 정적 뷰를 나타내는 데 사용됩니다. 구성 요소 및 배포 다이어그램을 설정하는 데 필수적인 역할을 합니다. 어떤 시스템에 대해서도 순방향 엔지니어링과 역방향 엔지니어링을 수행하기 위한 실행 가능한 코드를 구성하는 데 도움이 되거나 주로 구축에 사용된다고 할 수 있습니다. C++, Java 등의 객체 지향 언어와의 매핑을 나타냅니다. 클래스 다이어그램은 다음과 같은 목적으로 사용될 수 있습니다.

  1. 시스템의 정적 보기를 설명합니다.
  2. 정적 보기에서 모든 인스턴스 간의 협업을 표시합니다.
  3. 시스템이 수행하는 기능을 설명합니다.
  4. 객체 지향 언어를 사용하여 소프트웨어 애플리케이션을 구축합니다.