?? ?? Actual Class Diagram 19

Document Sample
?? ?? Actual Class Diagram 19 Powered By Docstoc
					               1/24 페이지




   시스템 설계서

                3조




작성일: 2008-12-01

팀 원: 200324184 김정훈

     200324190 김지원

     200324354 이재성

     200624443 김지현




                      1
                                                  2/24 페이지




                                            목 차

                                 ◎ 개정내역 ◎              3


1.   시스템 아키텍처 (Logical View)                           4


2.   비기능적 요구사항 실현 전략                                   7


3.   Class Diagram                                    12

     3.1.        패키지 및 컴포넌트 이름                        12


4.   시스템 아키텍처 (Deployment View)                       17


5.   상세 설계(Actual Class Diagram)                      19

     5.1.        Presentation                         19
            5.1.1. GUI                                19
     5.2.        Business                             20
            5.2.1. Administer                         20
            5.2.2. Member                             21
            5.2.3. Users                              22
     5.3.        Data                                 23
            5.3.1. Persistence                        23
            5.3.2. Query                              24




                                                           2
                                                        3/24 페이지




◎ 개정내역 ◎




    버전      작성일자                       개요

    0.1    2008.11.25   신규제정

    0.2    2008.11.27   시스템 아키텍쳐(Logical View) 디자인 설계
    0.3    2008.11.28   비기능적 요구 사항 실현 전략 수립
    0.4    2008.11.29   클래스 다이어그램 설계
    0.5    2008.11.30   시스템 아키텍쳐(Deploymenet View) 디자인 설계
    0.6    2008.12.01   검토 및 제출




                                                               3
                             4/24 페이지




1. 시스템 아키텍처 (Logical View)




                                    4
                                                                       5/24 페이지



                           [표 1] 도서 대출 시스템 아키텍처 구성 계층



     계층 명                                   계층 역할 및 설명


                     사용자가 직접 사용하며 사용자의 입력을 받아 적절한 정보와 결과를 출력하며
Presentation Layer
                     사용자와 상호 의사소통의 역할을 한다.


                     사용자로부터 입력 받은 정보를 이용하여 하위 Data Layer 의 함수를 호출하여

 Business Layer      Database 로부터 값을 가져와 Presentation Layer 로 전달하는 등의 역할을

                     한다.


                     가장 하위 Layer 로 실제 회원, 도서, 대출, 예약, 요청 리스트 Database 에서
   Data Layer
                     값을 가져오거나 계산하여 상위의 Business Layer 로 전달한다.




                            [표 1-1] Presentation 계층 구성 요소



     ID              구성 요소 명                      구성 요소 역할 및 설명


Presentation.                          SWIXml 이 사용하는 모든 GUI 를 표현할 수 있는 xml
                         Xul
     xul                                             파일들의 모음


Presentation.
                         Gui                  Xml 로 표현한 모든 GUI 들의 모음
     gui




                               [표 1-2] Business 계층 구성 요소



     ID              구성 요소 명                      구성 요소 역할 및 설명


                                     관리자로부터 입력 받은 정보를 이용하여 하위 Data Layer 의
 Business.
                     Administrator   함수를 호출하여 Database 로부터 값을 가져와 Presentation
administrator
                                             Layer 로 전달하는 등의 역할을 한다.




                                                                              5
                                                                  6/24 페이지




                                회원으로부터 입력 받은 정보를 이용하여 하위 Data Layer 의
Business.
               member           함수를 호출하여 Database 로부터 값을 가져와 Presentation
 member
                                        Layer 로 전달하는 등의 역할을 한다.


                                사용자로부터 입력 받은 정보를 이용하여 하위 Data Layer 의
Business.
                 User           함수를 호출하여 Database 로부터 값을 가져와 Presentation
   user
                                        Layer 로 전달하는 등의 역할을 한다.




                            [표 1-3] Data 계층 구성 요소



    ID        구성 요소 명                       구성 요소 역할 및 설명


   data.                        가장 하위 Layer 로 실제 회원, 도서, 대출, 예약, 요청 리스트
              Persistence
persistence                           Database 에서 값을 가져오거나 계산한다.


   data.                          Database 에서 가져오거나 계산한 값을 상위의 Business
                Query
  query                                       Layer 로 전달한다




                                                                          6
                                                                             7/24 페이지




2. 비기능적 요구사항 실현 전략
                      [표 2] 비기능적 요구사항 실현 전략 구성표



요구사항 ID   요구사항 명                  관련 클래스 명                           실현 전략

                                                                ○ 해당 회원이 연체된
                      .business.administrator.BorrowBook
                                                                금액이 있다면 연체 금액을
                      ByAdministrator.java                      다 해결할 다음 대출할 수
                                                                있어야 한다.
                      .business.user.BorrowBookBook
                                                                ○ 회원이 대출 또는 반납 시
                      ByMember.java                             연체 금액을 보여줌. 연체금이
                                                                있는 회원이 대출을 원할 시,
                      .data.persistence._Member.java
                                                                대출이 가능하지 않으며
  R09     도서 대출 제한
                                                                연체금을 알려준다.
                      .data.persistence.Member.java

                      .presentation.gui.AdminLend.java

                      .presentation.gui.Lend.java

                      .presentation.gui.AdminLend.xml

                      .presentation.gui.Lend.xml

                                                                ○ 해당 도서가 과거에 이미
                      .business.administrator.BorrowBook
                                                                빌렸던 도서라면 회원에게
                      ByAdministrator.java                      알릴 수 있어야 한다.
                                                                ○ 모든 대출 리스트를
                      .business.user.BorrowBookBook
                                                                저장하고 있으며, 대출 시
                      ByMember.java                             해당 리스트를 검색하여 해당
          도서 재 대출을                                              회원이 이전에 빌렸던 적이
  R11                 .data.query.InquiryFormerLentBooks.java
                                                                있는지 확인한다.
            알린다.
                      .presentation.gui.AdminLend.java

                      .presentation.gui.Lend.java

                      .presentation.gui.AdminLend.xml

                     .presentation.gui.Lend.xml




                                                                                    7
                                                                       8/24 페이지




                                                        ○ 회원의 도서 대여 한도는
                   .business.administrator.BorrowBook
                                                        10 권이다.
                   ByAdministrator.java                 ○ 회원의 현재 대여
                                                        리스트를 저장하고 있기
                   .business.user.BorrowBookBook
                                                        때문에 현재 대여 한도를 알
                   ByMember.java                        수 있다.


R12   도서 대여 한도 .data.query.InquiryCurLentBooks.java

                   .presentation.gui.AdminLend.java

                   .presentation.gui.Lend.java

                   .presentation.gui.AdminLend.xml

                   .presentation.gui.Lend.xml

                                                        ○ 도서는 하나의 검색어로
                   .business.user.SearchBook.java
                                                        항목에 상관없이 일치하는
                   .data.persistence._Book.java         모든 도서를 검색할 수
                                                        있어야 한다.
       도서 조회의      .data.persistence.Book.java
                                                        ○ h2 데이터베이스에
R16
         간략화       .data.query.SearchBooks.java         FullTextSearch()를 이용한다.


                   .presentation.gui.Search.java

                   .presentation.xul.Search.xml

                                                        ○ 도서는 명확하게 세밀하게
                   .data.persistence._Book.java
                                                        검색할 수 있어야 한다.
                   .data.persistence.Book.java          ○ 기본적으로 h2 테이블을
       도서 조회의
                                                        이용하되 제목, 저자, 키워드
R17                .data.query.SearchDetailBooks.java
                                                        등 해당항목별로 사용자가
         세밀화
                   .presentation.gui.AdvancedSearch     원하는 값을 받아서 해당
                                                        항목과 정확히 일치하는
                   .presentation.xul.Search.xml
                                                        도서를 검색해 준다.

                                                        ○ 도서 대출 및 반납시
                   .business.administrator.BorrowBook
       도서 시스템                                           직원이나 반납기를 통해
R18               ByAdministrator.java                  이루어질 때 그 정보가
       간의 동기화                                           동기화되어야 한다.
                   .business.user.BorrowBookBook
                                                        ○ 하나의 데이터베이스를



                                                                                  8
                                                                     9/24 페이지




                                                         모든 시스템이 사용하기
              ByMember.java
                                                         때문에 동기화가 된다.
               .business.administrator.ReturnBook

              ByAdministrator.java

               .business.user.ReturnBookByMember.

              Java

               .business.administrator.RecieveArrearBy

              Administrator.java

               .business.user.RecieveArrearBy

              Member.Java

               .presentation.gui.AdminLend.java

               .presentation.gui.Lend.java

               .presentation.gui.AdminLend.xml

               .presentation.gui.Lend.xml

               .presentation.gui.AdminReturn.java

               .presentation.gui.Return.java

               .presentation.gui.AdminReturn.xml

               .presentation.gui.Return.xml

               .presentation.gui.ReceiveDelayFee.java

               .presentation.gui.ReceiveDelayFee.xml

                                                         ○ 회원의 연체된 도서가 2 권
               .data.persistence._Member.java
      연체금은                                               이상일 경우에는 연체금이
               .data.persistence.Member.java             누적되어야 한다.
R19   누적되어야
                                                         ○ 회원마다 연체금 관련
               .data.query.InquiryCurLentBooks.java
                                                         속성을 저장하고 있다.
       한다.
               .presentation.gui.ReceiveDelayFee.java




                                                                             9
                                                                      10/24 페이지




                   .presentation.gui.ReceiveDelayFee.xml

                                                            ○ 하나의 프로그램이 접속된
                   .business.administrator.ChangeAdminist
                                                            아이디의 정보에 따라 관리자
                  RatorMode.java                            및 회원 인터페이스를 달리
                                                            가져야 한다. 즉 관리자
                                                            프로그램과 회원 프로그램이
R20    UI 의 분할                                              나눠져 있지 않아야 한다.
                                                            ○ 회원 속성에 회원의 권한
                                                            속성이 있으며, 권한에 따라
                                                            회원 페이지에서 관리자로
                                                            접속할 수 있는 방법을
                                                            제공한다.

                                                            ○ 사용자가 로그인을 할
                  .business.member.AuthenticateUser.java
                                                            경우 관리자를 제외하고
                   .business.user.BorrowBookBook            세션이 유지되면 안된다.
                                                            ○ 모든 기능은 매번
                  ByMember.java
                                                            로그인을 요구하며, 세션을
                   .business.user.ReturnBookByMember.       저장하지 않는다. 단, 관리자
                                                            페이지는 세션을 유지하고
                  Java
                                                            있다.

                   .business.member.ExtendTimeLimit

                   .presentation.gui.Lend.java

R23   개인 정보 보호 .presentation.gui.Lend.xml

                   .presentation.gui.Return.java

                   .presentation.gui.Return.xml

                   .business.user.RecieveArrearBy

                  Member.Java

                   .presentation.gui.ReceiveDelayFee.java

                   .presentation.gui.ReceiveDelayFee.xml

                   .presentation.gui.Member.java




                                                                               10
                                                                     11/24 페이지




              .presentation.xul.Member.xml

                                                        ○ 도서 검색 결과 내 재
               .data.persistence._Book.java
                                                        검색이 가능해야 한다.
      도서 검색
               .data.persistence.Book.java              ○ 결과내 검색용 테이블을
R24   기능을                                               따로 만들어, 결과내 검색시
               .data.query.SearchBooksFromResult.java
                                                        검색된 결과를 해당 테이블에
      강화한다.
                                                        insert 후, 그 테이블 내에서
                                                        다시 검색한다.




                                                                              11
                                                              12/24 페이지




3. Class Diagram



3.1.      패키지 및 컴포넌트 이름



                          [표 3-1] administrator 클래스 목록 및 역할



         클래스 명                                클래스 역할 및 설명


                             관리자가 사용자가 요청한 캠퍼스간 이동요청을 승인한다. 승인을
       AllowMovement
                             하면 이동요청 리스트 DB 를 변경한다.


                             사용자가 관리자에게 대출을 요청할 시 관리자는 사용자인증은 하고
BorrowBookByAdministrator
                             책을 등록번호를 이용하여 대출을 수행한다.


                             관리자일 경우 관리자의 일을 수행할 수 있도록 관리자 모드로
 ChangeAdministratorMode
                             변경한다.


                             관리자가 등록되어 있는 책을 등록번호를 이용하여 삭제하기 위해
        DeleteBook
                             도서리스트에서 해당 투플을 삭제한다.


  InquireMemberInformat
                             관리자가 회원정보를 조회한다. 연체금 등의 정보를 조회할 수 있다.
   -ionByAdministrator


   InquireMovementList       사용자가 요청한 캠퍼스간 이동요청도서 리스트를 가져온다.


RecieveArrearByAdministrator 관리자가 사용자로부터 연체금을 받는다.


                             새로운 도서를 등록하는 역할로 해당 도서를 소장도서 리스트에
        RegisterBook
                             추가한다.


ReturnBookByAdministrator 사용자가 관리자에게 책을 반납할 시 관리자는 책을 반납 받는다.




                                                                     12
                                                              13/24 페이지




                          반납시 연체금 여부를 확인하고 연체시 연체금을 받고 책의 상태

                          정보를 대출가능으로 바꾼다.


       UpdateBook         현재 소장하고 있는 책의 정보가 바뀔 시에 책의 정보를 바꾼다.




                         [표 3-2] member 클래스 목록 및 역할



      클래스 명                             클래스 역할 및 설명


                        사용자에게서 ID 와 PASSWORD 를 받아 등록된 사용자인지 여부를
   AuthenticateUser
                        알려준다.


 BorrowBookByMember     사용자가 책을 무인시스템을 이용하여 빌린다.


   ExtendTimeLimit      대출기한은 7 일로 정해져 있는데 1 회 7 일 더 연장 할 수 있다.


InquireMemberInformation 회원은 자신의 정보를 인증을 거친 후 자신의 회원정보를 조회한다.

     -ByMember          연체금정보, 연락처등의 정보를 확인하는 역할을 한다.


InvalidPasswordException 사용자의 ID 와 PASSWORD 로 사용자 인증에 예외처리로 사용한다.


                        사용자가 도서의 반납기한을 넘겼을 때 사용자는 연체금을 납부한다.
RecieveArrearByMember
                        납부가 완료되면 연체금은 0 이 되고 대출이 가능해진다.


     RequestBook        사용자가 소장도서리스트에 없는 책을 요청 한다.


                        다른 캠퍼스에 있는 소장도서를 원하는 캠퍼스의 도서관으로 이동요청을
  RequestMovement
                        한다.


 ReturnBookByMember     사용자가 책을 반납한다. 기한을 7 일이고 한번의 연장이 가능하다.


                        사용자는 대출을 원하는 모든 도서가 대출 중일 때 해당 도서에 대해서
    SubscribeBook
                        예약을 한다.


 UnknownIDException     사용자 인증에 ID 존재 여부를 확인한다.



                                                                     13
                                                              14/24 페이지




UpdateMemberInformation 회원이 자신의 정보를 변경한다.




                             [표 3-3] user 클래스 목록 및 역할



    클래스 명                               클래스 역할 및 설명


  InquireBook       회원이 아닌 사용자라도 원하는 도서에 대한 정보조회를 한다.


                    등록된 도서리스트에서 최근에 등록된 7 일간의 도서 목록을 보여준다. 현재
 InquireNewList
                    날짜와 등록된 날짜를 비교하여 리스트를 만든다.


InquirePopularList 등록된 도서리스트에서 대출횟수를 기준으로 인기도서의 리스트를 가져온다.


  SearchBook        등록된 도서리스트에서 원하는 도서를 검색한다.




                              [표 3-4] query 목록 및 역할



      클래스 명                               클래스 역할 및 설명


     InquiryBooks        외부 모듈이 등록번호로 도서를 찾을 수 있도록 하는 인터페이스


                         외부 모듈이 특정 회원의 ID 로 그 회원이 현재 빌려간 도서목록을 볼 수
 InquiryCurLentBooks
                         있도록 하는 인터페이스


                         외부 모듈이 특정 회원의 ID 로 그 회원 과거에 빌려간 도서목록을 볼 수
InquiryFormarLentBooks
                         있도록 하는 인터페이스


                         외부 모듈이 특정 회원의 ID 로 그 회원의 정보를 볼 수 있도록 하는
    InquiryMember
                         인터페이스


                         외부 모듈이 책제목, 저자, 발행처, ISBN… 등 항목에 관계없이 검색어와
     SearchBooks
                         일치하는 도서를 검색하는 인터페이스


SearchBooksFromResult 외부 모듈이 어떤 검색 후에 나온 결과 안에서 새로운 검색어로 검색을 할



                                                                     14
                                                              15/24 페이지




                    수 있도록 하는 인터페이스


                    외부 모듈이 책제목, 저자, 발행처, 발행일, 자료유형의 각 항목에 맞는
SearchDetailBooks
                    검색어와 일치하는 도서를 검색하는 인터페이스




                         [표 3-4] presentation 목록 및 역할



    클래스 명                               클래스 역할 및 설명


   AdminLend        관리자가 회원의 ID 와 도서 등록 번호로 대출해주는 화면


  AdminReturn       관리자가 회원으로부터 받은 책을 등록 번호로 반납하는 화면


AdminSearchClient   관리자가 회원의 ID 로 조회하는 화면


                    사용자가 각각의 항목에 맞는 검색어를 입력해서 원하는 도서를 검색하는
 AdvancedSearch
                    화면


      Book          조회된 특정 도서의 모든 정보를 보는 화면


                    검색된 도서들을 제목, 저자, 발행처, 발행연도, 소장처, 자료유형, 도서관,
 BookTableModel
                    상태의 column 들로 구성된 테이블로 보는 화면


                    관리자가 캠퍼스간 이동 요청이 들어온 도서의 List 를 확인하고 승인하는
CampusRequestList
                    화면


   DeleteBook       관리자가 도서의 등록 번호로 해당 도서를 삭제하는 화면


    EditBook        관리자가 조회된 특정 도서의 정보를 수정하는 화면


   EditMember       관리자 또는 회원이 조회된 특정 회원의 정보를 수정하는 화면


  FamousBook        사용자가 ‘1 주일’ ,‘1 개월’, ‘1 년’ 단위로 인기있는 도서들을 보는 화면


    GUIBase         모든 GUI 들의 부모 class 로 공통된 속성을 포함하고 있다.




                                                                     15
                                                              16/24 페이지




  GUIManager       xml file 을 읽어와서 GUI 를 초기화 시키며, page 간의 전환을 도와준다.


     Home          사용자가 시스템을 처음 시작했을 때 실행되는 화면


     Lend          회원이 자신의 ID, PASSWORD, 도서의 등록번호로 대출하는 화면


     Login         회원이 자신의 ID, PASSWORD 로 로그인하는 화면


     Main          Main 함수가 있는 곳


                   관리자가 로그인 했을 때 추가, 수정 등의 도서관리, 대출, 반납 등의
    Manager
                   회원들의 서비스 등의 전체적인 서비스를 할 수 있는 화면


                   관리자가 회원 조회를 하거나, 회원이 로그인 했을 때 그 회원의 정보를

    Member         확인 할 수 있는 화면. 회원은 이 화면에서 연체금 정산, 반납 기한을

                   연장할 수 있다.


   Newbooks        도서의 종류별로 신작 도서 리스트를 검색하는 화면


ReceiveDelayFee    회원의 ID 로 연체금을 확인하고, 수령하는 화면


  RegisterBook     관리자가 새로운 도서의 정보를 등록하는 화면


RequestBooksList   관리자가 구비 요청이 들어온 도서의 리스트를 확인하는 화면


  ReturnBook       회원이 도서의 등록번호로 도서를 반납하는 화면


    Search         사용자가 항목에 관계없이 전체 검색을 하는 화면




                                                                      16
                                                         17/24 페이지




4. 시스템 아키텍처 (Deployment View)




                             [표 4] 배치 구성 목록



    배치 구성 명                           배치 구성 요소 설명


      Swixml         사용자가 도서 대출 시스템에 접근하기 위하여 사용하는 도서관 무인 시스템


                     사용자가 도서 대출 시스템에 접근 할 수 있도록 하는 사용자 인터페이스
    SwingEngine
                     관련 모듈


   Library System    도서관의 모든 기능을 담당하는 도서관 시스템


    Presentation     도서관 시스템의 GUI 를 담당하는 패키지


SearchBookFromExterior 도서관 시스템에서 외부 시스템으로 도서를 검색하기 위한 클래스


                     영속성을 가진 데이터를 관리하기 위한 ORM 시스템. 현재 우리는 H2
      Cayenne
                     Database 를 이용하여 데이터를 관리하기 한다.


 cayenneDataObject   Cayenne 에게 관리 받기를 원하는 클래스가 상속받아야만 하는 클래스


    DataContext      Cayenne 에서 데이터베이스를 접근하기 위한 통로




                                                                17
                                         18/24 페이지




   Daum       외부 시스템


 OpenAPI      외부시스템으로 접속하기 위한 Artifact


H2 Database   자바로 구현된 아주 가벼운 데이터 베이스




                                                18
                                      19/24 페이지


5. 상세 설계(Actual Class Diagram)



5.1.     Presentation

5.1.1.     GUI




                                 19
                             20/24 페이지

5.2.     Business

5.2.1.     Administer




                        20
                       21/24 페이지

5.2.2.   Member




                  21
                      22/24 페이지

5.2.3.   Users




                 22
                             23/24 페이지

5.3.     Data

5.3.1.    Persistence




                        23
                      24/24 페이지

5.3.2.   Query




                 24

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:45
posted:8/31/2012
language:Korean
pages:24