도서관리 시스템 설계하기
Posted 2007/11/03 01:42아래는 도서관리 시스템 설계에 대해 발표한 발표자료이다.
아래는 도서관리 시스템 설계에 대한 내용이다.
■ Use Case Diagram
1. After this interview
1) 학교에서 도서관 직원이 도서의 등록, 삭제, 대여, 반납을 관리한다.
2) 학사관리 시스템에 등록된 학생, 교수, 교직원만 책을 빌릴 수 있다.
3) 대여자는 도서관리 시스템으로부터 대여한 책의 목록을 확인할 수 있다.
4) 대여자는 도서관리 시스템을 통해 대여 기간을 연장할 수 있다.
5) 도서관리 시스템은 책을 연체하거나 대출한도를 초과한 대여자에게 대여를 거부한다.
6) 누구나 도서관리 시스템을 통해서 도서 검색을 할 수 있다.
7) 교수와 학생은 도서관리 시스템을 통해서 도서구입 신청을 할 수 있다.
8) 도서관 직원은 도서관리 시스템을 통해서 도서구입 신청건에 대하여 허가/거절을 한다.
9) 도서관리 시스템은 사용자정보를 학사관리 시스템으로부터 가져온다.
2. Identify Actors
1) 교수
2) 학생
3) 교직원
4) 학사관리 시스템에 등록된 사람
5) 도서관 직원
6) 사람
3. Find Use Case
1) 도서를 등록한다.
2) 도서 대여를 입력한다.
3) 도서를 검색한다.
4) 도서 대여목록을 읽는다.
5) 학사관리 시스템으로부터 사용자 정보를 읽는다.
6) 사용자 정보를 읽는다.
7) 도서 반납을 입력한다.
8) 대여 기간을 연장한다.
9) 도서 구입을 신청한다.
10) 도서 신청현황을 확인한다.
11) 도서 구입신청을 허가한다.
12) 도서 구입신청을 거절한다.
13) 도서를 삭제한다.
14) 도서를 수정한다.
4. Use Case의 패키지화
1) 하는 일이 비슷한 Use Case간 패키지 화
2) 도서관리
- 도서를 등록한다.
- 도서를 수정한다.
- 도서를 삭제한다.
- 도서를 검색한다.
3) 대여관리
- 도서 대여를 입력한다.
- 도서 반납을 입력한다.
- 대여 목록을 조회한다.
- 대여 기간을 연장한다.
4) 개인관리
- 학사관리 시스템에서 사용자 정보를 읽는다.
5) 구입관리
- 도서 구입을 신청한다.
- 신청 현황을 확인한다.
- 구입 신청을 허가한다.
- 구입 신청을 거절한다.
5. 패키지별 Use Case Diagram
1) 도서관리
2) 대여관리 / 개인관리
3) 구입관리
6. 전체 Use Case Diagram
■ Activity Diagram
1. 우선순위가 부여된 Use Case
1) 도서를 등록한다.
- 도서가 등록되어 있어야지 모든 업무가 가능하다.
- 도서관리 시스템의 가장 기본이 되며, 중요하다.
2) 도서 대여를 입력한다.
- 도서관리 시스템에서 가장 많이 사용되는 기능이다.
- 가장 중요한 기능이다.
3) 도서를 검색한다.
4) 도서 대여목록을 읽는다.
5) 학사관리 시스템으로부터 사용자 정보를 읽는다.
6) 사용자 정보를 읽는다.
7) 도서 반납을 입력한다.
8) 대여 기간을 연장한다.
9) 도서 구입을 신청한다.
10) 도서 신청현황을 확인한다.
11) 도서 구입신청을 허가한다.
12) 도서 구입신청을 거절한다.
13) 도서를 삭제한다.
14) 도서를 수정한다.
2. 우선순위가 높은 2가지의 Activity Diagram
1) 도서를 등록한다.
- Primary path
- Swim lanes
2) 도서를 대여한다.
- Primary path
- Swim lanes
■ Sequence Diagram
1. 우선순위가 높은 2가지의 Sequence Diagram
1) 도서를 등록한다.
2) 도서를 대여한다.
■ Class Diagram
1. Class 찾기
1) Use Case로부터 적절한 명사를 찾음
- 도서관 직원 (Administrator)
- 학생 (Student)
- 교수 (Professor)
- 교직원 (SchoolWorker)
- 학사관리 시스템에 등록된 사람 (SchoolPerson)
- 사람 (Person)
- 도서정보 (BookInfo)
- 대여정보 (LendingInfo)
- 사용자정보 (UserInfo)
- 학사관리 시스템 (SchoolManagementSystem)
2) 패키지 화 한 것들을 모듈화
- 도서관리 (BookManager)
- 대여관리 (BookLendingManager)
- 개인관리 (UserInfoManager)
- 구입관리 (BookPurchaseManager)
3) 찾은 Class 목록
- 도서관 직원 (Administrator)
- 학생 (Student)
- 교수 (Professor)
- 교직원 (SchoolWorker)
- 학사관리 시스템에 등록된 사람 (SchoolPerson)
- 사람 (Person)
- 도서정보 (BookInfo)
- 대여정보 (LendingInfo)
- 사용자정보 (UserInfo)
- 도서관리 (BookManager)
- 대여관리 (BookLendingManager)
- 개인관리 (UserInfoManager)
- 구입관리 (BookPurchaseManager)
2. Association 찾기
1) Use Case를 보고 Association을 찾음
- 도서관 직원은 도서를 관리한다.
- 도서관 직원은 도서 대여를 관리한다.
- 학사관리 시스템에 등록된 사람은 책을 빌릴 수 있다.
- 대여자는 대여한 목록을 확인할 수 있다.
- 대여자는 대여 기간을 연장할 수 있다.
- 누구나 도서 검색을 할 수 있다.
- 교수와 학생은 도서구입 신청을 할 수 있다.
- 도서관 직원은 도서관리 시스템을 통해서 도서구입 신청건에 대하여 허가/거절을 한다.
- 도서관리 시스템은 사용자정보를 학사관리 시스템으로부터 가져온다.
3. Method 찾기
1) Use Case로부터 동사(행위)를 찾고 Method를 추출.
- 도서를 등록한다. ( void addBook(BookInfo aBookInfo) - BookManager )
- 도서를 삭제한다. ( void removeBook(String word, int option) - BookManager )
- 도서를 검색한다. ( BookInfo searchBook(String word, int option) - BookManager )
- 도서를 수정한다. ( void modifyBook(BookInfo aBookInfo) - BookManager )
- 도서를 대여한다. ( Boolean lendBook(String userID, String bookID) - BookLendingManager )
- 도서를 반납한다. ( void returnBook(String userID, String bookID) - BookLendingManager )
- 도서 대여목록을 가져온다. (LendingInfo[] getLendingInfo(String userID) - BookLendingManager)
- 도서 대여기간을 연장한다. (Boolean extendLendingTime(String bookID)- BookLendingManager)
- 도서 구입신청을 한다. ( void applyBook(BookInfo aBookInfo) - BookPurchaseManager )
- 도서 구입신청 현황을 확인한다. ( BookInfo[] getApplyBook() - BookPurchaseManager )
- 도서 구입신청을 허가한다. ( void permitBook(String bookID) - BookPurchaseManager )
- 도서 구입신청을 거절한다. ( void refuseBook(String bookID) - BookPurchaseManager )
- 등록된 사용자인지 확인한다. -1- ( Boolean isRegistedUser(String userID) - UserInfoManager )
- 등록된 사용자인지 확인한다. -2- ( Boolean isRegistedUser(String userID, String password) )
- 사용자 정보를 읽는다. ( UserInfo getUserInfo(String userID) - UserInfoManager )
2) Class별 Method를 분리
- BookManager
• void addBook(BookInfo aBookInfo)
• void removeBook(String word, int option)
• BookInfo searchBook(String word, int option)
• void modifyBook(BookInfo aBookInfo)
- BookLendingManager
• Boolean lendBook(String userID, String bookID)
• void returnBook(String userID, String bookID)
• LendingInfo[] getLendingInfo(String userID)
• Boolean extendLendingTime(String bookID)
- BookPurchaseManager
• void applyBook(BookInfo aBookInfo)
• BookInfo[] getApplyBook()
• void permitBook(String bookID)
• void refuseBook(String bookID)
- UserInfoManager
• Boolean isRegistedUser(String userID)
• Boolean isRegistedUser(String userID, String password)
• UserInfo getUserInfo(String userID)
4. 속성 찾기
1) 각 Class별로 고유한 특성을 찾음
- 도서정보 (BookInfo)
• 책 ID - String bookID - 도서관리를 위해 별도로 부여한 ID
• 책 이름 - String bookName
• 저자 - String author
• ISBN - String isbn
• 출판사 - String publish
• 부록번호 - String extraNumber
• 대여중 여부 - Boolean isLending
• 대여번호 - Integer lendingNumber
- 대여정보 (LendingInfo)
• 대여번호 - Integer lendingNumber
• 대여자 - String userID
• 책ID - String bookID
• 대여일 - String rentalDate
• 반납예정일 - String dueDate
• 반납일 - String returnDate
• 반납여부 - Boolean isReturned
• 연장횟수 - Integer extensionNum
- 사용자정보 (UserInfo)
• 사용자ID - String userID
• 비밀번호 - String password
• 전화번호 - String phoneNumber
• e-mail - String email
• 반납위반횟수 - Integer violationNumber
5. 찾은 Class 목록
6. 패키지별 Class Diagram
1) 도서관리 (BookManager)
2) 대여관리 (BookLendingManager)
3) 개인관리 (UserInfoManager)
4) 구매관리 (BookPurchaseManager)
7. 전체 Class Diagram
1) Class Diagram1
2) Class Diagram2
'C.S.E > Design Pattern' 카테고리의 다른 글
| Can Vending Machine 설계하기 (0) | 2007/11/03 |
|---|---|
| 도서관리 시스템 설계하기 (0) | 2007/11/03 |
| Abstract Factory (0) | 2007/09/21 |
| 도서관리 시스템 Usecase Diagram 그리기 (2) | 2007/08/31 |
| Model / View / Controller (4) | 2007/01/29 |
| Iterator Pattern (0) | 2007/01/29 |
- Filed under : C.S.E/Design Pattern
- Tag : 도서관리 시스템
- Comment Trackback
도서관리_한경훈.ppt
이올린에 북마크하기