UML Class Diagram Tutorial

안녕하세요 제 이름은 잭입니다 나는 루시드 차트와 함께 있습니다

오늘은 UML 클래스 다이어그램에 대해 알려 드리겠습니다 우리는 몇 가지 기본적인 특징으로 시작할 것입니다 그렇다면 관계에 대해 이야기하겠습니다 결국 몇 가지 예를 함께 살펴 보겠습니다 클래스의 기본 그래픽 속성에 대해 이야기 해 보겠습니다

이러한 특성을 설명하는 데 도움이되도록 명확히 설명하는 예제를 작성합니다 우리가 동물원 시스템을 만들었다 고 가정 해 봅시다 그건 그렇고, 이것들이 제가 사용하려고하는 예입니다 실제 프로그램으로가는 길이지만 모든 개념을 더 쉽게 이해할 수 있습니다 그래서 우리 동물원에서는 시스템에 존재하는 다양한 것들을 설명하고자합니다

교실을 통해 그러한 것들을 표현하고, 여기에이 모양을 가진 행을 분류하십시오 동물원에 뭐가 들어 있니? 음, 수많은 동물들이 있습니다 그래서 우리는 동물을위한 수업을 만들 수 있습니다 이렇게하려면 상단 섹션에 레이어 이름을 입력하기 만하면됩니다 우리의 클래스가 동물이라면 그 클래스의 예가 특정 동물이 될 것입니다

문제는이 장의 각 사례를 어떻게 결정할 것인가입니다 기능을 통해 수행하십시오 이 속성은 각 인스턴스를 설명하는 값을 포함하는 데이터의 중요한 부분입니다 이 장의 필드, 변수 또는 속성으로도 알려져 있으며 여기서는 중간 섹션에 있습니다

동물성 카테고리의 경우 이름, 신원 및 나이와 같은 속성을 만들 수 있습니다 이 방법으로 우리는 동물 층의 특정 상태를 결정할 수 있습니다 Roth, ID 304, 114 세 이것들은 특정한 방법으로 형식화 될 필요가 있습니다 우리가 나중에 이야기 할 비전으로 시작하십시오

속성의 개시의 이름 작은 편지와 함께 그런 다음 두 개의 점과 데이터를 입력하십시오 이름에 대해서는 문자열을 반환하고 싶습니다 우리는 우리가 돌려주고 싶은 것을 제외하고는 다른 방식으로 같은 방식으로 조정할 수 있습니다

이 숫자 때문에 정수 이제 동물 클래스의 몇 가지 기능을 살펴 보도록하겠습니다 여기서 아래쪽 섹션으로갑니다 여기서 프로세스 또는 함수라고도하는 메서드를 두는 곳입니다 이 메서드를 사용하여 클래스의 모든 동작 특성을 지정할 수 있습니다

그래서 우리는이 동물 계급의 다소 다른 행동은 무엇인지 스스로에게 물어볼지도 모릅니다 어쩌면 우리는 동물의 이름을 바꿀 수 있기를 원할 것입니다 Ruth와 같은 것은 Rita라고해야합니다 Set Name이라는 함수를 생성 해 봅시다 우리의 모든 동물들이 먹기 때문에 우리는 또한 먹는 방법을 창조 할 수 있습니다

도로는 특정 방식으로 형식을 지정해야합니다 비전 (우리가 다음에 대해 이야기 할 것입니다)으로 시작한 다음에 시작하십시오 작은 문자 그런 다음 대괄호를 넣어 나중에 프로그래밍 할 함수를 나타냅니다 여기에 변수 및 데이터 유형을 추가 할 수도 있지만 대부분의 경우 실제로 필요하지는 않습니다

우리는 당신이 먹는 방식에도 비전과 괄호를 추가 할 것입니다 이제 비전에 대해 이야기 해 봅시다 이 속성에 대한 액세스를 결정하는 속성 또는 메소드를 참조하십시오 또는 방법 그래서 우리는 이제 이들 모두에 대해 빼기 기호를 갖습니다

속성과 스타일은 특별합니다 다른 카테고리 나 하위 카테고리에서는 액세스 할 수 없습니다 정반대는 특징 또는 일반적인 방법을 의미하는 더하기 기호입니다 다른 카테고리에서 액세스 할 수 있습니다 시각의 또 다른 유형은 진드기로 표시되며, 즉, 속성 또는 메소드가 보호됩니다

동일한 범주 또는 하위 범주에서만 액세스 할 수 있습니다 마지막으로, 물결표 (또는 내가 그것을 부르는 것처럼 curvy)가있다 이는 패키지 또는 기본값의 가시성을 설정합니다 즉, 다른 클래스에서 사용할 수 있음을 의미합니다 같은 패키지에있는 한

그러나 이것은 거의 사용되지 않습니다 대부분의 경우 속성은 비공개 또는 보호 된 것으로 표시되며 도로는 일반적으로 일반적입니다 다른 예제를 사용하여 이러한 기본 사항을 빠르게 검토합시다 직원을위한 수업을 만들어 봅시다 우리는 이름, 직원, 전화 번호 및 부서와 같은 직원 속성을 제공 할 수 있습니다

우리는 이러한 모든 특수 기능을 갖고 싶어합니다 그런 다음 전화 번호 업데이트와 같은 간단한 방법을 만들 수 있습니다 우리는 앞으로 나아가 대중에게 공개 할 것입니다 그래서 나는이 UML 클래스 그래프를 만들기 위해 그래픽 프로그램을 사용하고 있음을 눈치 챘을 것입니다 종이와 펜을 사용하는 경우에도 동일한 원칙이 적용됩니다

하지만 계획 프로그램을 사용하면 훨씬 쉽게 할 수 있습니다 오늘 사용하고있는 다이어그램은 Lucidchart입니다 왼쪽 상단에있는 링크를 클릭하여 무료로 등록 할 수 있습니다 필요한 모든 것은 이메일 주소이며, 그러면 귀하는 귀하에게 연락을 취할 수 있습니다 그래픽 클래스입니다

그래서 우리가 클래스들 사이에 존재하는 서로 다른 관계를 커버 할 필요가 있습니다 우리가 설명 할 첫 번째 유형의 관계는 상속입니다 예제 동물원을 쉽게 이해할 수 있기 때문에이 동물원에 대해 알아 보겠습니다 이 관계의 논리 나중에 실세계의 예에서보다 기술적 인 세계에 도달 할 것입니다

음,이 상속 우리 동물원에서 우리가 거북이, 수달, 그리고 덜 먹는 동물들 그럼에도 불구하고 놀라운 천천히 loris 알려져 있습니다 우리 시스템에서, 우리는 그것들을 그들 자신의 클래스와 구별하기를 원합니다 그래서 우리는 Turtle, Otter 및 Slow Loris에 대해 세 개의 새로운 장을 만듭니다 나는 이것을 조금 더 작게 만들어서 당신이 더 잘 볼 수있게 할 것입니다

이제 이름, 신원 및 나이에 대한 기능을 반복하는 대신이 교실을 만들 수 있습니다 이와 같이 열린 화살표를 그려서 동물 계급의 하위 범주에 이것은 유전의 관계입니다 우리는 이러한 하위 카테고리가 상급 계층의 모든 자질과 방법을 물려 받았다고 말합니다 또한 아동 및 학부모 교실이라는 용어를 사용할 수 있습니다

따라서 Otter 클래스는 이름, 나이 및 ID의 속성을 상속받습니다 그런 다음 길이의 길이와 같은 특정 특성을 오터에 추가 할 수 있습니다 상속의 장점 중 하나는 속성을 변경하거나 추가하면 모든 동물을 위해, 우리는이 거북이를 갈아 타지 않아도됩니다 오터, 천천히 로리스 우리는 동물 카테고리를 변경하고 모든 하위 카테고리에만 적용합니다

이 시나리오에서는 추상화 (abstraction)라고도합니다 동물은 추상 클래스입니다 우리 시스템에서는 언제든지 수업 중 하나를 발명하기를 원하기 때문에 계속됩니다 거북이, 수달 또는 천천히 loris하십시오 우리는 동물 층 자체를 갱신하지 않을 것입니다

동물 계급은 사물을 단순화하고 기호를 "건조"하게 유지하는 단지 방법 일뿐입니다 그러니 자신을 반복하지 마십시오 이 레이어가 추상적임을 나타 내기 위해 이름을 이탤릭체로 표시합니다 범주 이름을 넣을 수도 있지만 이탤릭체를 선호합니다 음, 링크의 또 다른 유형의 관계가 있습니다

Urchin 행이있는 경우 해당 연결을 그릴 수 있습니다이 연결은 방금 촬영 한 것입니다 오 터와 Urchin Sea 사이의 간단한 라인 우리는 수달이 항해를 먹었다 고 말할 수 있습니다 그들 사이의 의존성은 없습니다

이것은 단지 기본적인 상관 관계이며 매우 간단합니다 다음 유형의 관계는 어셈블리입니다 이것은 전체 파트를 정의하는 특별한 종류의 연관입니다 그래서, 우리 동물원의 예를 계속 할 수 있습니다 다시 말하지만, 이것은 단지 논리를 설명하는 데 도움이 될 것입니다 거북이 컬렉션을위한 새로운 범주를 만듭니다 거북이의 그룹은 들어온다라고하며, 이것은 훌륭합니다 크리프 클래스가 있습니다

거북이와 관계가 있습니다 우리 동물원 거북이는 크롤링의 일부가 될 수 없습니다 그러나 그들은 그렇게 할 필요가 없습니다 거북이는 언제든지 크롤 링을 떠날 수 있으며 여전히 자체적으로 존재할 수 있습니다 파트가 전체 외부에 존재할 수있는 이런 종류의 관계는 어셈블리입니다 다이아몬드가 열린 상태에서 유의하십시오

그 부분이 모두 외부에 존재할 수없는 관계도 있습니다 그것을 구성이라고 부르십시오 설명하기 위해 몇 가지 새로운 챕터를 만들 것입니다 우리 동물원에 방문자 센터가 많이 있다고 가정합시다 각 방문자 센터에는 로비와 욕실이 있습니다

지금 방문자 센터 중 하나가 붕괴 된 경우 로비와 욕실이 너무 많이 방문됩니다 센터도 파괴 될 것입니다 이 방들은 그들이 방문하는 센터에서 멀리 떨어져 있지 않습니다 이 구성은 자식 객체가 주 객체 없이는 존재할 수 없을 때 다이아몬드가 닫힌 상태의 조성 관계에 유의하십시오 UML 클래스의 그래프에서 관계에 대해 이야기 할 때 또 다른 중요한 개념은 복수형입니다 다중성을 통해 관계에 디지털 제한 사항을 적용 할 수 있습니다

예를 들어, 방문자 센터가 우리 사이트가되도록 지정하려는 경우 로비는 하나뿐입니다 여기에 숫자 1을 쓰면 방문자 센터마다 로비가 하나만있을 수 있습니다 그러나 욕실의 경우, 사람당 욕실이 적어도 하나 이상 있도록 욕실을 만들 수 있습니다 방문자 센터,하지만 원하는만큼 그것을 얻을 수있는 옵션을 남겨주세요 이 코딩을 사용하여 하나 또는 여러 개의 욕실을 나타냅니다

다원주의 다른 유형은 0 대 1, 선택적인 관계입니다 N은 특정 양을 나타내며, 우리의 예에서는 하나이지만 다른 어떤 것일 수도 있습니다 사용 상태에 따라 다릅니다 많은 사람들에게 제로 하나는 많은 사람들을위한 것입니다

또는 특정 숫자의 집합 우리 동물원의 사례가 이러한 개념을 설명하는 데 도움이 되었기를 바랍니다 세상의 진정한 본보기가 될 것입니다 이것은 UML 온라인 장바구니 카테고리의 다이어그램입니다 이 차트를 사용하여 오른쪽 상단의 링크를 클릭하십시오

이 시스템에는 여러 클래스와 관계가 있으므로, 그 중 두 명 사용자 카테고리부터 시작하겠습니다 그것은 사용자 아이디 속성, 비밀번호, 로그인 상태 및 등록 날짜를가집니다 오른쪽, 왼쪽, 가시성, 그것은 개인에게 할당됩니다 정확하게 묘사되는 이러한 특성에 의해 가치가 어떻게 회복되는지를 알 수 있습니다

사용자 클래스의 인스턴스입니다 아래에서 우리는 로그인을 검사하고 부울 값을 반환하는 일반적인 방법을 가지고 있습니다 이것은 논리적이다, 그렇지? 도로는 분리의 행동입니다 따라서 사용자 계정에 로그인하면 확인하는 작업이 있습니다 로그인 자격 증명

고객 카테고리로 이동하십시오 이 화살표는 클라이언트가 사용자의 자식임을 나타냅니다 클라이언트는 사용자 클래스의 모든 특성과 메서드를 상속받습니다 책임있는 클래스도 마찬가지입니다 이 두 가지 모두 사용자를 상속하지만 고유 한 특성과 메서드를 가지고 있습니다

이러한 관리자는 카탈로그를 업데이트 할 수 있지만 고객은 할 수 없습니다 고객의 판단에 따라 다이아몬드가 매겨진 많은 라인이 있습니다 그래서 기억한다면, 이것들은 구성 관계입니다 모두 고객 클래스의 인스턴스가 해당 고객 계정이 파괴 된 경우 해당 쇼핑 그의 차량은 파괴되고 명령은 사라질 것입니다

고객 외부에 존재할 수 없습니다 정보 및 주문 세부 사항을 발송하는 경우에도 마찬가지입니다 주문이 없으면 주문 세부 사항이나 배송 정보가 될 수 없습니다 이 예에서 마지막으로 살펴볼 것은 다원성입니다 고객은 0 개 또는 다수의 주문을 가질 수 있음을 알 수 있습니다

의미 있지, 안 그래? 온라인 상점을위한 고객 계정을 만들 수 있지만 아무것도 사지 않습니다 아니면 자주 고객이되어 여러 다른 요청을 할 수도 있습니다 그런 다음 요청은 하나의 클라이언트에만 속할 수 있습니다 고유 한 요청 ID가있는 특정 요청이 복사 된 경우 매우 혼란 스러울 것입니다 많은 다른 고객

여기서 당신은 대면 관계를 볼 수 있습니다 각 요청에는 하나의 주문 세부 사항 만 포함됩니다 순서의 세부 사항은 단 하나의 순서에 속합니다 이 튜토리얼을 UML 클래스 차트로 보아 주셔서 감사합니다 채널을 구독하고 아래에 의견을 남기십시오

마지막으로이 링크를 사용하여 무료 Lucidchart 계정에 가입하는 것을 잊지 마십시오 언제든지 UML 클래스 그래프를 만들 수 있습니다