top of page

UML Diagram_Class-Diagram

  • 작성자 사진: 서영 조
    서영 조
  • 2022년 10월 1일
  • 4분 분량

최종 수정일: 2022년 10월 10일


Class Diagram

클래스의 구성(속성+연산)과 클래스간의 관계를 표현한 것


Class란?

객체를 실제화할 수 있는 틀, 속성과 연산으로 구성된다.

  • 엔티티 클래스: 영속적인 데이터를 관리하는 기능

  • 경계 클래스: 액터와 상호작용하는 기능

  • 분석 클래스: 시스템의 비즈니스 로직, 제어 로직을 나타내는 기능


UML 클래스의 표현

ree

가장 윗부분: 클래스 이름

중간 부분: 속성

마지막 부분: 연산

클래스의 특성 표기

:'+':public

:'-':private

:'#':protected


클래스 관계

연관관계

-클래스들이 개념상 서로 연결되었음을 나타낸다.

-연관관계는 메시지 전달의 통로 역할을 한다.

-연관관계의 방향성은 메시지의 전달 방향이다.

ree

집합관계

하나의 클래스가 다른 클래스의 부분이나 구성원이 되는 의미 표현

예: 감독과 운동선수는 팀의 구성원이 된다.

일반화관계

유사한 두 클래스 간의 관계로서 상위클래스가 하위클래스보다 더 일반적인 개념을 뜻할 때 사용

ree

시스템 사용자는 일반 사용자와 비즈니스 사용자보다 더 일반적인 개념이다.

의존관계

한 클래스의 변경이 다른 클래스의 수정을 유발


클래스다이어그램의 종류

0.클래스의 타입별 분류

0-(1). 엔티티 클래스

:문제 영역을 구성하는 컴포넌트들, 영속적인 데이터의 관리 기능을 하는 클래스

:사용사례에서 반복되어 나오는 용어로 소거법과 추출법을 통해서 파악 가능

0-(2). 경계 클래스

:시스템 외부의 액터와 상호작용하는 클래스

:사용자 인터페이스 역할

0-(1). 제어 클래스

:경계와 엔티티 클래스 사이에서 중간 역할을 한다.

:시스템의 비즈니스 로직이나 제어 로직을 나타내는 클래스


1.개념 클래스 다이어그램

엔티티 클래스: 영속적인 정보의 관리 기능을 하는 클래스

개념 클래스 다이어그램: 영속적인 데이터 간의 관계를 표현한다.

※예제1.

  1. 로그인 관리하기: 사용자는 시스템 이용을 위해 핸드폰번호를 이용해 로그인한다.

  2. 개인정보 관리하기: 사용자는 자신의 신상정보(닉네임) 조회 및 수정, 거래내역(판매내역, 구매내역)을 조회할 수 있다.

  3. 지역 선택하기: 사용자는 본인이 사는 곳 2곳을 본인의 거래 지역으로 설정할 수 있다.

  4. 판매게시물 검색하기: 사용자는 키워드를 통해 판매게시물을 검색할 수 있다.

  5. 판매 게시물 올리기: 사용자GPS 정보를 통해 지역인증을 받고, 해당 지역에 판매게시물을 올릴 수 있다.

  6. 상품 문의하기(채팅하기): 사용자GPS 정보를 통해 지역인증을 받고, 인증받은 지역의 판매게시물채팅방을 보낼 수 있다.

  7. 지역 인증하기: 사용자GPS 정보를 통해 자신이 사는 지역을 인증한다.

  8. 송금하기: 사용자는 당근페이를 이용해 상대방에게 거래 물품에 대한 을 송금할 수 있다.

  9. 거래상태 설정하기: 사용자는 거래 상태에 따라 판매게시물의 상태를 수정할 수 있다.

  10. 후기 남기기: 사용자는 거래 후기를 상대방에게 보낼 수 있다.

  11. 끌올 설정하기: 사용자는 하루에 최대 5개의 판매게시물을 판매 게시물 피드의 위쪽으로 끌어올릴 수 있다. 단, 한 번 끌올 설정한 판매게시물은 2일 12시간 뒤에 다시 끌올할 수 있다.

  12. 약속알림 설정하기: 판매자와 구매자는 채팅방에서 중고 물품 직거래를 위한 약속을 잡을 수 있고, 이때 알림을 설정하면 해당 시간에 알림이 뜬다.

명사(엔티티 클래스 후보 도출): 사용자, 핸드폰번호, 신상정보(닉네임), 거래내역(판매내역,구매내역), 판매게시물, GPS정보, 지역, 채팅, 값, 거래후기, 채팅방, 약속, 알림

엔티티 클래스 선정: 사용자, 판매내역, 구매내역, 판매게시물, 지역, 채팅, 채팅방


ree

-한 사용자는 하나의 판매내역, 하나의 구매내역, 하나의 채팅방목록 정보, 1~2개의 지역정보를 가진다.

-하나의 판매내역, 하나의 구매내역은 0~n개의 판매게시물 정보를 가질 수 있다.

-하나의 채팅방 목록 정보는 0~n개의 채팅방 정보를 가질 수 있다.

-하나의 판매게시물은 하나의 지역을 가진다.

-하나의 판매게시물은 하나의 채팅방 목록 정보를 가진다.


※예제2.

비즈니스사용자 관리 Package

기본 시나리오

  1. 비즈니스 사용자는 나의 당근 화면에서 사장님 메뉴-비즈프로필 만들기를 선택한다.

  2. 시스템은 비즈프로필 홈 화면을 출력한다.

  3. 비즈니스 사용자는 “닫기” 버튼을 선택한다.

  4. 시스템은 나의 당근 화면을 보여준다.

대안시나리오-A1. 비즈프로필 등록하기, 기본 시나리오2에서 분기

A1.1. 비즈니스 사용자는 나의 당근 화면-사장님 메뉴에서 비즈프로필 만들기를 선택한다.

A1.2. 시스템은 비즈니스 사용자가 아직 비즈프로필을 가지고 있지 않다면, 비즈프로필 등록 화면을 출력한다.

A1.3. 비즈니스 사용자비즈프로필 이름, 활동 지역, 카테고리를 입력하고 “완료”를 선택한다.

A1.4. 시스템은 입력된 비즈프로필 정보를 저장한다.

A1.5. 기본시나리오 2로 이동한다.

대안시나리오-A2. 소식 관리하기, 기본 시나리오3에서 분기

A2.1. 비즈니스 사용자는 나의 당근 화면에서 사장님 메뉴-비즈프로필 만들기를 선택한다.

A2.2. 시스템은 비즈프로필 홈 화면을 출력한다.

A2.3. 비즈니스 사용자소식메뉴를 선택한다.

A2.4. 시스템은 비즈프로필 소식화면을 보여준다.

A2.5. 비즈니스 사용자소식을 작성, 수정, 삭제, 조회한다.

A2.6. 시스템은 소식을 작성, 수정, 삭제, 조회한다.

A2.7. 비즈니스 사용자는 “홈”버튼을 선택한다.

A2.8. 기본시나리오 2로 이동한다.

대안시나리오-A3. 상품판매 관리하기, 기본 시나리오3에서 분기

A3.1. 비즈니스 사용자는 나의 당근 화면에서 사장님 메뉴-비즈프로필 만들기를 선택한다.

A3.2. 시스템은 비즈프로필 홈 화면을 출력한다.

A3.3. 비즈니스 사용자상품메뉴-상품 판매 신청하기를 선택한다.

A3.4. 시스템은 상품 판매 신청하기 화면을 출력한다.

A3.5. 비즈니스 사용자사업자등록번호와 함께 당근마켓 관리자에게 인증을 요청한다.

A3.6. 시스템은 사업자 인증이 완료되면 비즈니스 사용자의 상품 판매를 수락한다.

A3.7. 비즈니스 사용자는 “홈”버튼을 선택한다.

A3.8. 기본시나리오 2로 이동한다.

대안시나리오-A4. 광고 관리하기, 기본 시나리오3에서 분기

A4.1. 비즈니스 사용자는 나의 당근 화면에서 사장님 메뉴-비즈프로필 만들기를 선택한다.

A4.2. 시스템은 비즈프로필 홈 화면을 출력한다.

A4.3. 비즈니스 사용자광고메뉴-광고 시작하기를 선택한다.

A4.4. 시스템은 광고등록하기 화면을 출력한다.

A4.5. 비즈니스 사용자지역, 성별 및 연령을 선택해 비즈프로필 및 소식을 광고로 등록한다.

A4.6. 당근마켓 관리자는 비즈니스 사용자를 심사후 비즈니스 사용자의 광고등록요청을 승인한다.

A4.7. 비즈니스 사용자는 “홈”버튼을 선택한다.

A4.8. 기본시나리오 2로 이동한다.

대안시나리오-A5. 쿠폰 관리하기, 기본 시나리오3에서 분기

A5.1. 비즈니스 사용자는 나의 당근 화면에서 사장님 메뉴-비즈프로필 만들기를 선택한다.

A5.2. 시스템은 비즈프로필 홈 화면을 출력한다.

A5.3. 비즈니스 사용자쿠폰메뉴-새 쿠폰 만들기를 선택한다.

A5.4. 시스템은 쿠폰 만들기 화면을 출력한다.

A5.5. 비즈니스 사용자쿠폰을 받을 수 있는 대상,혜택,사용기한,발급건수을 입력하고 쿠폰를 등록한다.

A5.6. 시스템은 비즈니스 사용자에게 새 소식 작성을 여부를 물어본다.

A5.7. 비즈니스 사용자는 “다음에할게요”를 선택하고, “홈”버튼을 선택한다.

A5.8. 기본시나리오 2로 이동한다.

→클래스 후보 추출과 클래스 선정

클래스: 비즈니스 사용자(시스템 사용자, 일반 사용자), 소식, 상품, 광고, 쿠폰

ree

2.분석 클래스 다이어그램

경계 클래스, 제어 클래스, 엔티티 클래스를 이용해 클래스 사이의 관계를 나타낸 것

※예제1.

ree

※예제2.

ree

1.비즈니스프로필 등록 화면은 동네가게 등록 양식 출력을 요청

가.비즈니스프로필 등록화면은 동네가게 클래스를 이용해 동네가게 등록을 수행

1)비즈니스프로필 등록화면은 비즈니스프로필 홈화면에게 비즈니스프로필 출력을 요청


2.비즈니스프로필 홈화면은 소식 홈화면에게 소식목록 출력을 요청

가.소식 홈화면은 소식 작성화면에게 소식 작성양식 출력을 요청

1)소식 작성화면은 소식 클래스를 이용해 소식 등록을 수행

나.소식 홈화면은 광고 등록화면에게 광고 등록양식 출력을 요청

1)광고 등록화면은 광고 클래스를 이용해 광고 등록을 수행


3.비즈니스프로필 홈화면은 상품 홈화면에게 상품목록 출력을 요청

가.상품 홈화면은 상품 등록화면에게 상품 등록양식 출력을 요청

1)상품 등록화면은 상품 클래스를 이용해 상품 등록을 수행


4.비즈니스프로필 홈화면은 광고 홈화면에게 광고목록 출력을 요청

가.광고 홈화면은 광고 등록화면에게 광고 등록양식 출력을 요청

1)광고 등록화면은 광고 클래스를 이용해 상품 등록을 요청


5.비즈니스프로필 홈화면은 쿠폰 홈화면에게 쿠폰목록 출력을 요청

가.쿠폰 홈화면은 쿠폰 등록화면에게 쿠폰 등록양식 출력을 요청

1)쿠폰 등록화면은 쿠폰 클래스를 이용해 쿠폰 등록을 요청

나.쿠폰 홈화면은 소식 선택화면에게 소식 목록 출력을 요청

1)소식 선택화면은 소식 클래스를 이용해 소식 수정을 요청

2)소식 선택화면은 소식 작성화면에게 소식 작성양식을 요청

가)소식 작성화면은 소식 클래스를 이용해 소식 등록을 수행


3.설계 클래스 다이어그램

설계단계에서 도출된 새로운 클래스들을 표현

컴포넌트를 구성하는 파트의 클래스와 인터페이스를 표현한다.



댓글


  • Facebook
  • Twitter
  • LinkedIn

©2022 by Seoyoung Cho. Proudly created with Wix.com

bottom of page