[Tasks] 객체지향설계 HW3
💼

[Tasks] 객체지향설계 HW3

카테고리
📒 Assignment
작성자
박용성박용성
작성일
2024년 06월 02일
태그
UML
Figma
Slug
task-oj-3

CRC 카드: User

Front 면

  • Class Name: User
  • ID: C001
  • Type: Entity
  • Description: 시스템에서 활동하는 모든 사용자의 기본 정보와 행위를 관리하는 클래스.
  • Associated Use Case: 사용자 등록 및 정보 수정, 도서 검색, 대출 및 반납, 예약하기
  • Responsibilities:
    • 로그인 및 로그아웃 수행
    • 개인 정보 업데이트
    • 도서 검색 요청
    • 도서 대출 및 반납 요청
    • 도서 예약
  • Collaborators:
    • Loan
    • Reservation
    • Search

Back 면

  • Attributes:
    • UserId (int)
    • Username (string)
    • Password (string)
    • Email (string)
    • RegistrationDate (DateTime)
  • Relationships:
    • Generalization: None
    • Aggregation: Database (포함)
    • Other Associations:
      • User에서 Loan (일대다)
      • User에서 Reservation (일대다)
      • User에서 Search (일대다)

CRC 카드: Administrator

Front 면

  • Class Name: Administrator
  • ID: C003
  • Type: Entity
  • Description: 시스템 관리를 담당하는 사용자로, 도서 및 사용자 정보의 추가, 수정, 삭제 등을 관리.
  • Associated Use Case: 사용자 및 도서 관리
  • Responsibilities:
    • 사용자 등록, 수정, 삭제
    • 도서 정보 관리
  • Collaborators:
    • User
    • BookDatabase

Back 면

  • Attributes:
    • AdminId (int)
  • Relationships:
    • Generalization: User로부터 상속
    • Aggregation: Database (포함)
    • Other Associations:
      • Book에서 Loan (일대다)
      • Book에서 Reservation (일대다)
      • Book에서 BookDatabase (일대일)

CRC 카드: Book

Front 면

  • Class Name: Book
  • ID: C002
  • Type: Entity
  • Description: 도서 정보 및 도서와 관련된 작업을 관리. 도서의 상세 정보와 대출 가능 여부를 포함.
  • Associated Use Case: 도서 등록 및 수정, 도서 검색, 대출 및 예약 관리
  • Responsibilities:
    • 도서 정보 제공
    • 도서 검색 결과 제공
    • 대출 가능 여부 확인
    • 위치 정보 제공
  • Collaborators:
    • Loan
    • Reservation
    • BookDatabase

Back 면

  • Attributes:
    • BookId (int)
    • Title (string)
    • Author (string)
    • ISBN (string)
    • PublicationYear (int)
    • Publisher (string)
    • Available (bool)
    • Location (string)
  • Relationships:
    • Generalization: None
    • Aggregation: Database (포함)
    • Other Associations:
      • Book에서 Loan (일대다)
      • Book에서 Reservation (일대다)

CRC 카드: Loan

Front 면

  • Class Name: Loan
  • ID: C004
  • Type: Entity
  • Description: 사용자에 의한 도서 대출 정보를 관리하는 클래스. 대출 기간, 상태 및 연관된 도서 정보 포함.
  • Associated Use Case: 도서 대출 및 반납
  • Responsibilities:
    • 대출 기간 계산 및 관리
    • 대출 및 반납 상태 업데이트
    • 연체 상태 관리
  • Collaborators:
    • User
    • Book

Back 면

  • Attributes:
    • LoanId (int)
    • BookId (int)
    • UserId (int)
    • LoanDate (DateTime)
    • DueDate (DateTime)
    • ReturnedDate (DateTime?)
  • Relationships:
    • Generalization: None
    • Aggregation: Database (포함)
    • Other Associations:
      • Loan에서 User (다대일)
      • Loan에서 Book (다대일)

CRC 카드: Reservation

Front 면

  • Class Name: Reservation
  • ID: C005
  • Type: Entity
  • Description: 사용자에 의해 요청된 도서 예약 정보를 관리. 예약 상태 및 예약된 도서의 상세 정보 포함.
  • Associated Use Case: 도서 예약 및 예약 관리
  • Responsibilities:
    • 예약 상태 관리
    • 예약 우선 순위 조정
    • 예약 알림 발송
  • Collaborators:
    • User
    • Book

Back 면

  • Attributes:
    • ReservationId (int)
    • BookId (int)
    • UserId (int)
    • ReservationDate (DateTime)
    • Status (ReservationStatus)
  • Relationships:
    • Generalization: None
    • Aggregation: Database (포함)
    • Other Associations:
      • Search에서 User (다대일)
      • Search에서 BookDatabase (사용)

CRC 카드: Search

Front 면

  • Class Name: Search
  • ID: C006
  • Type: Control
  • Description: 사용자의 검색 요청을 처리하고, 관련 도서 정보를 검색 결과로 제공하는 클래스.
  • Associated Use Case: 도서 검색
  • Responsibilities:
    • 검색 쿼리 수행
    • 검색 결과 반환
    • 검색 기록 관리
  • Collaborators:
    • User
    • BookDatabase

Back 면

  • Attributes:
    • SearchId (int)
    • Query (string)
    • UserId (int)
    • Date (DateTime)
  • Relationships:
    • Generalization: None
    • Aggregation: Database (포함)
    • Other Associations:
      • Search에서 User (다대일)

CRC 카드: Database

Front 면

  • Class Name: Database
  • ID: C007
  • Type: Control
  • Description: 모든 도서 데이터와 유저 정보를 저장하고 관리하는 데이터 클래스. 사용자 정보의 관리, 도서의 검색, 추가, 수정, 삭제 작업을 수행. 관리자가 데이터베이스를 활용해 정보를 수정할 수 있음.
  • Associated Use Case: 도서 검색, 도서 등록 및 수정
  • Responsibilities:
    • 관리자만 접근 가능
    • 사용자 정보 관리
    • 도서 데이터 관리
    • 도서 정보 검색 및 반환
    • 도서 정보의 추가, 수정, 삭제
    • 사용자 대출 및 예약 관리
  • Collaborators:
    • Administrator
    • Book
    • Loan
    • Reservation

Back 면

  • Attributes:
    • None (데이터 관리 및 접근에 필요한 메소드만 포함)
  • Relationships:
    • Generalization: None
    • Aggregation: User, Administrator, Book, Loan, Reservation, Search
    • Other Associations:
      • Database에서 Administrator (일대다)
      • Database에서 User (일대다)
      • Database에서 Search (일대다)
      • Database에서 Book (일대다, 가상)
      • Database에서 Loan (일대다)
      • Database에서 Reservation (일대다)
      •  

댓글

guest