UML 클래스 다이어그램: Abstract 클래스 예제

⚡ 스마트 요약

UML 클래스 다이어그램은 소프트웨어 시스템의 클래스, 속성, 연산 및 이들 간의 관계를 보여주는 정적인 청사진 스타일의 보기를 제공합니다. 이 자료에서는 필수 요소, 관계 유형 및 추상화에 대해 설명합니다.tract 클래스와 ATM 작동 예시입니다.

  • 🧩 핵심 요소: 모든 클래스는 직사각형 안에 이름, 속성, 연산이라는 세 가지 구획을 보여줍니다.
  • 🔤 공개 여부 : 공용, 비공개, 보호 및 패키지 액세스는 각각 +, -, #, ~ 기호로 표시됩니다.
  • 🔗 관계 : 의존성, 일반화, 연관 관계는 물론 집합과 합성도 클래스들을 서로 연결합니다.
  • 🧱 ABStract 클래스: 복근tract 클래스는 구현 없이 연산을 선언하며, 클래스 이름은 이탤릭체로 표시됩니다.
  • 🏦 실제 예제: 계층형 ATM 모델은 클래스와 관계가 하나의 다이어그램으로 결합되는 방식을 보여줍니다.

UML 다이어그램의 클래스란 무엇입니까?

A UML의 클래스 다이어그램은 객체 또는 객체 집합을 만드는 데 사용되는 청사진입니다. 클래스는 객체가 무엇을 할 수 있는지 정의합니다. 다양한 객체를 만들고 시스템에서 동작을 구현하는 템플릿입니다. UML의 클래스는 클래스 이름, 속성 및 작업이 있는 행을 포함하는 사각형으로 표현됩니다.

클래스 다이어그램이란 무엇입니까?

A 클래스 다이어그램 소프트웨어 엔지니어링에서 클래스, 속성, 연산 및 서로 간의 관계를 표시하여 소프트웨어 시스템의 개요를 제공하는 정적 구조입니다. 이 다이어그램에는 클래스 이름, 속성 및 연산이 별도의 지정된 구획에 포함됩니다. 클래스 다이어그램은 소프트웨어 애플리케이션 개발을 위한 코드를 구성하는 데 도움이 됩니다.

클래스 다이어그램은 시스템의 개체 유형과 개체 사이에 존재하는 다양한 유형의 관계를 정의합니다. 이는 애플리케이션에 대한 높은 수준의 보기를 제공합니다. 이 모델링 방법은 거의 모든 객체 지향 방법으로 실행될 수 있습니다. 클래스는 다른 클래스를 참조할 수 있습니다. 클래스는 객체를 가질 수도 있고 다른 클래스로부터 상속받을 수도 있습니다.

클래스 다이어그램의 이점

  • 클래스 다이어그램은 매우 복잡한 정보 시스템의 데이터 모델을 설명합니다.
  • 실제 코드를 연구하기 전에 애플리케이션이 어떻게 구성되어 있는지에 대한 개요를 제공합니다. 유지관리 시간을 쉽게 줄일 수 있습니다.
  • 이는 애플리케이션의 일반적인 회로도를 더 잘 이해하는 데 도움이 됩니다.
  • 프로그래밍에 필요한 코드를 강조하는 자세한 차트를 그릴 수 있습니다.
  • 개발자 및 기타 이해관계자에게 도움이 됩니다.

UML 클래스 다이어그램의 필수 요소

UML 클래스 다이어그램의 필수 요소는 다음과 같습니다.

  1. 클래스 이름
  2. Attributes
  3. 행정부

클래스 이름

UML의 클래스 이름

클래스의 이름은 클래스의 그래픽 표현에서만 필요합니다. 가장 위의 구획에 나타납니다. 클래스는 동일한 관계, 속성, 연산 및 의미를 공유할 수 있는 객체의 청사진입니다. 클래스는 이름, 속성 및 연산을 별도의 구획에 포함하여 사각형으로 렌더링됩니다.

학급을 대표하는 경우 다음 규칙을 따라야 합니다.

  1. 클래스 이름은 항상 대문자로 시작해야 합니다.
  2. 클래스 이름은 항상 첫 번째 구획의 중앙에 있어야 합니다.
  3. 클래스 이름은 항상 다음과 같이 작성해야 합니다. 일시: XNUMX년 XNUMX월 XNUMX일 화요일 XNUMX:XNUMXpm - XNUMX:XNUMXpm 장소: 여의도 페어몬트 앰배서더 서울 호텔 XNUMXF 아잘레아스 룸 [약도] 행사 문의: info.korea@rescale.com 형식입니다.
  4. UML abstrac클래스 이름은 이탤릭체로 작성해야 합니다.

Attributes

속성은 모델링되는 객체를 설명하는 클래스의 속성으로 명명됩니다. 클래스 다이어그램에서 이 구성 요소는 이름 구획 바로 아래에 배치됩니다.

UML의 속성

파생 속성은 다른 속성에서 계산됩니다. 예를 들어, 학생의 나이는 생년월일을 통해 쉽게 계산할 수 있습니다.

UML의 속성

속성 특성

  • 속성은 일반적으로 가시성 요소와 함께 작성됩니다.
  • 공개, 비공개, 보호 및 패키지는 각각 +, -, # 또는 ~ 기호로 표시되는 네 가지 가시성입니다.
  • 가시성은 클래스 속성의 접근성을 설명합니다.
  • 속성에는 클래스에서의 사용을 설명하는 의미 있는 이름이 있어야 합니다.

관계

크게 XNUMX가지 종류가 있는데 UML의 관계:

  1. 종속성
  2. 일반화
  3. 협회

의존

종속성은 하나가 변경되면 다른 클래스도 변경될 수 있는 둘 이상의 클래스 간의 관계를 의미합니다. 그러나 그것은 항상 더 약한 관계를 만들 것입니다. 종속성은 한 클래스가 다른 클래스에 종속됨을 나타냅니다.

다음 UML 클래스 다이어그램 예에서 Student는 College에 종속되어 있습니다.

UML의 관계

일반화:

UML의 관계

일반화는 하위 클래스를 상위 클래스에 연결하는 데 도움이 됩니다. 하위 클래스는 상위 클래스에서 상속됩니다. 일반화 관계는 인터페이스 구현을 모델링하는 데 사용할 수 없습니다. 클래스 다이어그램을 사용하면 여러 슈퍼클래스에서 상속할 수 있습니다.

이 예에서 Student 클래스는 Person 클래스에서 일반화되었습니다.

협회:

이러한 종류의 관계는 클래스 A와 B 간의 정적 관계를 나타냅니다. 예를 들면 다음과 같습니다. 직원이 조직에서 일합니다.

연결에 대한 몇 가지 규칙은 다음과 같습니다.

  • 연관은 대부분 동사 또는 동사구 또는 명사 또는 명사구입니다.
  • 연관 경로의 끝에 붙은 클래스가 수행하는 역할을 나타내도록 이름을 지정해야 합니다.
  • 반사적 연관에 필수

이 예에서는 학생과 대학의 관계, 즉 공부를 보여줍니다.

UML의 관계

다수

UML의 관계

다중성은 속성과 관련된 요소입니다. 클래스가 초기화될 때 생성되는 속성의 인스턴스 수를 지정합니다. 다중성을 지정하지 않으면 기본적으로 다중성이 기본 다중성으로 간주됩니다.

한 대학에 100명의 학생이 있다고 가정해보자. 대학에는 여러 명의 학생이 있을 수 있습니다.

집합

집계는 집계와 해당 부분 간의 전체 부분 관계를 모델링하는 특별한 유형의 연관입니다.

UML의 관계

예를 들어, 학급 대학은 한 명 이상의 학생으로 구성됩니다. 집계에서 포함된 클래스는 컨테이너의 수명 주기에 전적으로 의존하지 않습니다. 여기서는 학생이 결석하더라도 대학 수업은 그대로 유지됩니다.

구성 :

UML의 관계

구성은 한 클래스가 다른 클래스의 일부일 때 두 클래스 간의 강력한 소유권을 나타내는 특수한 유형의 집계입니다.

예를 들어, 대학이 학생 수업으로 구성되어 있는 경우입니다. 대학에는 많은 학생이 포함될 수 있지만 각 학생은 하나의 대학에만 속합니다. 따라서 대학이 제대로 기능하지 않으면 모든 학생들도 제거됩니다.

집계 대 구성

집합 조성
집계는 하위 클래스가 상위 클래스와 별도로 존재할 수 있는 관계를 나타냅니다. 예: 자동차(상위) 및 자동차(하위). 따라서 자동차를 삭제해도 하위 자동차는 여전히 존재합니다. 하위 항목이 상위 항목과 별도로 존재하지 않는 컴포지션 표시 관계입니다. 예: 집(부모) 및 방(자식). 방은 결코 집으로 분리되지 않습니다.

ABStract 클래스

이는 연산 프로토타입은 있지만 구현은 없는 클래스입니다. 또한 절대적인 값을 가질 수도 있습니다.trac내부에 아무런 연산도 선언되지 않은 t 클래스. 절대적인tract는 클래스 전반에 걸친 기능을 파악하는 데 유용합니다. abs의 예를 살펴보겠습니다.tract 클래스. 절대값이 있다고 가정해 봅시다.tract 클래스는 내부에 메서드 또는 연산이 선언된 동작으로 호출됩니다. abs 내부에 선언된 메서드tract 클래스는 a라고 불립니다. 이동하다 ().

이 복근trac클래스 메서드는 자동차, 동물, 로봇 등 모든 객체가 현재 위치를 변경하는 데 사용할 수 있습니다. 이 메서드를 사용하는 것은 효율적입니다.trac해당 함수에 대한 구현이 제공되지 않았기 때문에 객체를 사용하는 클래스 메서드입니다. 따라서 여러 객체에 대해 어떤 방식으로든 사용할 수 있습니다.

UML에서 절대값은trac클래스 t는 클래스와 동일한 표기법을 사용합니다. 클래스와 절대값의 유일한 차이점은 다음과 같습니다.trac클래스의 특징은 클래스 이름을 반드시 이탤릭체로 작성해야 한다는 것입니다.

복근tract 클래스는 초기화하거나 인스턴스화할 수 없습니다.

ABStract 클래스 표기법
ABStract 클래스 표기법

위의 ABStract 클래스 표기법복근은 하나뿐입니다.trac클래스의 여러 객체가 사용할 수 있는 메서드입니다.

UML 클래스 다이어그램의 예

클래스 다이어그램을 만드는 것은 간단한 과정입니다. 많은 기술이 필요하지 않습니다. 예는 다음과 같습니다.

ATM 시스템은 고객이 현금을 받으려면 몇 개의 버튼을 눌러야 하기 때문에 매우 간단합니다. 그러나 모든 ATM 시스템은 여러 보안 계층을 통과해야 합니다. 이는 사기를 방지하고 은행 고객에게 현금이나 필요한 세부 정보를 제공하는 데 도움이 됩니다.

아래에는 UML 클래스 다이어그램 예가 나와 있습니다.

UML 클래스 다이어그램 예

UML 클래스 다이어그램 예

또한 확인:- UML 다이어그램: 기록, 유형, 특성, 버전, 도구

소프트웨어 개발 수명주기의 클래스 다이어그램

클래스 다이어그램은 다양한 소프트웨어 개발 단계에서 사용될 수 있습니다. 세 가지 다른 관점에서 클래스 다이어그램을 모델링하는 데 도움이 됩니다.

1. 개념적 관점: 개념적 다이어그램은 실제 세계의 사물을 설명합니다. 연구 중인 도메인의 개념을 나타내는 다이어그램을 그려야 합니다. 이러한 개념은 클래스와 관련이 있으며 항상 언어에 독립적입니다.

2. 사양 관점: 명세 관점은 소프트웨어의 절대적인 의미를 설명합니다.trac사양 및 인터페이스를 갖춘 구성 요소 또는 구성 요소를 제공합니다. 그러나 특정 구현에 대한 어떠한 약속도 제공하지 않습니다.

3. 구현 관점: 이러한 유형의 클래스 다이어그램은 특정 언어 또는 애플리케이션의 구현에 사용됩니다. 구현 관점, 소프트웨어 구현에 사용됩니다.

클래스 다이어그램 설계의 모범 사례

클래스 다이어그램은 소프트웨어 애플리케이션 개발에 사용되는 가장 중요한 UML 다이어그램입니다. 클래스 다이어그램을 그리는 동안 고려해야 할 속성이 많이 있습니다. 이는 소프트웨어 애플리케이션의 다양한 측면을 나타냅니다.

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

  • 클래스 다이어그램에 부여된 이름은 의미가 있어야 합니다. 또한 시스템의 실제 측면을 설명해야 합니다.
  • 각 요소 간의 관계를 미리 파악해야 합니다.
  • 모든 클래스에 대한 책임을 식별해야 합니다.
  • 모든 클래스에 대해 최소 속성 수를 지정해야 합니다. 따라서 원치 않는 속성으로 인해 다이어그램이 쉽게 복잡해질 수 있습니다.
  • 다이어그램의 어떤 측면을 정의해야 할 때마다 사용자 노트를 포함해야 합니다. 도면의 끝부분은 소프트웨어 개발팀이 이해할 수 있어야 합니다.
  • 마지막으로 최종 버전을 만들기 전에 일반 종이에 다이어그램을 그려야 합니다. 또한 최종 제출 준비가 될 때까지 재작업해야 합니다.

또한 확인:- 초보자를 위한 UML 다이어그램 튜토리얼: 무료로 온라인으로 UML 배우기

자주 묻는 질문

클래스 다이어그램은 모든 인스턴스에 적용되는 설계도(클래스, 속성, 연산 및 관계)를 보여줍니다. 객체 다이어그램은 특정 시점의 실제 값을 가진 특정 인스턴스의 스냅샷을 보여줍니다. 클래스 다이어그램은 구조를 모델링하고, 객체 다이어그램은 예시를 보여줍니다.

클래스 모양, 관계 연결선, 다중성 레이블을 제공하는 전용 모델링 도구를 사용하여 UML 클래스 다이어그램을 그릴 수 있습니다. 많은 도구가 다이어그램에서 코드 생성 및 소스 코드에서 역공학을 지원합니다.ping 디자인과 코드베이스가 동기화되어 있습니다.

복근tract 클래스는 구현됨과 절대 구현됨을 모두 선언할 수 있습니다.trac인터페이스는 메서드를 선언하고 상태를 유지하며, 인터페이스 이름은 이탤릭체로 표시됩니다. 인터페이스는 구현 없이 연산만 선언합니다. 클래스는 인터페이스를 상속합니다.tract 클래스이지만 다양한 인터페이스를 구현할 수 있습니다.

예. Reverse-엔지니어링 및 AI 도구는 소스 코드를 스캔하여 클래스, 속성, 메서드 및 관계를 감지한 다음 클래스 다이어그램 초안을 자동으로 생성합니다. RevAI가 동적 유형이나 복잡한 상속을 잘못 해석할 수 있으므로 결과를 확인하십시오.

네. AI 어시스턴트는 클래스 다이어그램을 읽고 각 클래스, 속성 및 연산, 그리고 연관 관계, 일반화 및 합성 관계가 클래스들을 어떻게 연결하는지 설명할 수 있습니다. 이는 초보자들이 학습이나 코드 검토 중에 익숙하지 않은 다이어그램을 빠르게 이해하는 데 도움이 됩니다.

이 게시물을 요약하면 다음과 같습니다.