Quá trình phân tích và thiết kế dữ liệu hường đối tượng là quá trình phân tích các yêu cầu của khách hàng và các yêu cầu về quản lý của nhà sách để xây dựng cơ sở dữ liệu cho hệ thống. Kết quả của quá trình này là mô hình cơ sở dữ liệu hoàn chỉnh được dùng cho hệ thống.
Hệ thống được thiết kế để phục vụ cho các đối tượng sau đây:
Nhà Sách: Thông qua hệ thống, sẽ giới thiệu loại sách đến khách hàng.
ª Khách Hàng: Là những người có nhu cầu mua sách. Họ sẽ tìm kiếm các loại sách cần thiết từ hệ thống và đặt mua .
31 trang |
Chia sẻ: vietpd | Lượt xem: 1629 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Phân tích và thiết kế cơ sỡ dữ liệu hướng đối tượng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
CHƯƠNG 4: PHÂN TÍCH VÀ THIẾT KẾ CƠ SỠ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
I/ XÂY DỰNG USE_CASE DIAGRAM :
Quá trình phân tích và thiết kế dữ liệu hường đối tượng là quá trình phân tích các yêu cầu của khách hàng và các yêu cầu về quản lý của nhà sách để xây dựng cơ sở dữ liệu cho hệ thống. Kết quả của quá trình này là mô hình cơ sở dữ liệu hoàn chỉnh được dùng cho hệ thống.
Hệ thống được thiết kế để phục vụ cho các đối tượng sau đây:
ª Nhà Sách: Thông qua hệ thống, sẽ giới thiệu loại sách đến khách hàng.
Khách Hàng: Là những người có nhu cầu mua sách. Họ sẽ tìm kiếm các loại sách cần thiết từ hệ thống và đặt mua .
1/ Nhận diện các Actor và các trường hợp sử dụng :
- Qua cách đặt tả hệ thống nhà sách ở trên, ta xác định được các actor sau tác động đến hệ thống bao gồm : khách hàng, người quản trị hệ thống, nhân viên.
- Các Use_Case mà chúng ta xác định được qua miêu tả ngắn ngọn ở trên là :
Ø Tất cả các khách hàng đều có thể yêu cầu những chức năng sau :
· Tìm kiếm sách
· Đặt hàng
Ø Người quản trị hệ thống quản lý việc :
· Quản lý sách (QL Sach)
ü Người quản trị có thể xem thông tin về sách (ViewSach),thêm sách mới (ThemSach), chỉnh sửa các thông tin về sách (SuaSach), loại bỏ sách (XoaSach).
ü Có thể thêm thể lọai (ThemTL), xóa thể loại (XoaTL), chỉnh sửa thể loại (SuaTL).
ü Thêm tác giả mới (ThemTG), xóa tác giả (XoaTG), chỉnh sữa thông tin về tác giả (SuaTG).
ü Thêm ngôn ngữ (ThemNN), xóa ngôn ngữ (XoaNN), chỉnh sửa ngôn ngữ (SuaNN).
ü Thêm nhà xuất bản (ThemNXB), xóa nhà xuất bản (XoaNXB), chỉnh sửa các thông tin về nhà xuất bản (SuaNXB). . .
· Quản lý khách hàng (QLKhachHang) : xem thông tin khách hàng (ViewKH), chỉnh sửa các thông tin về khách hàng (SuaKH), xóa khách hàng (XoaKH).
· Quản lý đơn đặt hàng (QLDonDatHang): có thể xem đơn đặt hàng (ViewDDH) để biết có những khách hàng nào đặt hàng trong ngày và đặt sách nào, số lượng bao nhiêu, xóa đơn đặt hàng (XoaDDH), chỉnh sửa thông tin về đơn đặt hàng (SuaDDH).
Ø Người quản trị hệ thống và nhân viên quản lý việc :
· Quản lý phiếu xuất hàng (QLPhieuXuat) : người Admin có thể xem phiếu xuất (ViewPX) để biết đã xuất những sách nào, và xuất từ kho nào, nhân viên nào xuất, xóa phiếu xuất (XoaPX), thêm phiếu xuất mới (ThemPX), chỉnh sửa thông tin về phiấu xuất (SuaPX).
· Quản lý phiếu giao hàng (QLPhieuGiao) : có thể xem phiếu giao (ViewPG) để biết đã giao những mặt hàng nào và giao cho khách hàng nào, xóa phiếu giao (XoaPG), thêm phiếu giao mới (ThemPG), chỉnh sửa thông tin về phiếu giao (SuaPG).
· Quản lý phiếu thu (QLPhieuThu) : người quản lý có thể xem các phiếu thu (ViewPT) đã thu của khách hàng, xóa phiếu thu (XoaPT), thêm phiếu thu (ThemPT), chỉnh sửa thông tin về phiếu thu (SuaPT).
· Quản lý phiếu nhập (QLPhieuNhap) : người quản lý có thể xem phiếu nhập (ViewPN) để biết đã nhập những sách gì, xóa phiếu nhập (XoaPN), thêm phiếu nhập (ThemPN), chỉnh sửa thông tin về phiếu nhập (SuaPN).
· Quản lý phiếu chi (QLPhieuChi) : người quản lý có thể xem các phiếu chi (ViewPC) đã chi cho nhà cung cấp nào, xóa phiếu chi (XoaPC), thêm phiếu chi (ThemPC), chỉnh sửa thông tin về phiếu chi (SuaPC). . .
2/ Xây dựng Use_Case Diagram :
- Dựa vào chiều tác động giữa các actor và Use_Case để thiết lập các mối liên kết (association).
- Các trường hợp tổng kết hóa và cụ thể hóa được thể hiện bằng mối quan hệ generalization. Đồng thời mối quan hệ association cũng được mở rộng thành quan hệ > và > bằng cách sử dụng stereotype.
- Trong phần nhận diện các trường hợp sử dụng, ta đã xác định một số quan hệ giữa actor và trường hợp sử dụng. Tuy nhiên ta cần xét vấn đề sau :
+ Việc khách hàng muốn bỏ sách vào giỏ hàng thì bắt buộc phải tìm kiếm sách, cho nên mối quan hệ giữ BoSachVaoGio va TimKiem la association >. Mối quan hệ giữa tạo đơn đặt hàng (TaoDDH) và BoSachVaoGio là association với stereotype là >, bởi vì ở đây không bắt buộc khách hàng phải mua sách.
+ Admin muốn vào quản lý thì phải login vào hệ thống cho nên ta có quan hệ giữa Admin và LoginAdmin có stereotype là >. Và khi đã vào hệ thống thì có thể quản lý sách, các hoá đơn xuất nhập . . . cho nên ta có stereostyle là >. Tương tự cho NhânViên cũng có thể quản lý các hoá đơn xuất nhập sau khi login vào đúng quyền.
Hình 4.1: Lược Đồ UseCase
II/ XÂY DỰNG LƯỢC ĐỒ TUẦN TỰ (Sequence Diagram):
- Lược đồ tuần tự giúp cụ thể hóa các Use_Case. Nó là một sự chuyển thể các sự kiện nối tiếp nhau trong các Use_Case trở thành một chuổi các thông điệp gởi cho các đối tượng. Điều quan trọng là phải nhận diện ra những đối tượng nào liên quan đến một Use_Case cụ thể. Mỗi Use_Case có thể có nhiều lược đồ tuần tự dạng cụ thể. Mỗi cái tương tác với một kịch bản nào đó và luôn luôn bắt đầu từ một kích thích từ phía actor.
- Để xây dựng lược đồ tuần tự chúng ta hãy xem xét hoàn cảnh cụ thể của Use_Case như sau :
+ Xét Use_Case ĐăngKý: Khách hàng đăng ký là thành viên mới của nhà sách bằng cách nhập username,password,… Hệ thống sẽ kiểm tra xem username này đã tồn tại hay chưa. Nếu chưa thì hệ thống sẽ ghi nhận lại thông tin của khách hàng và tự động gán quyền cho username này là quyền khách hàng. Còn nếu khách hàng nhập vào một account đã tồn tại trong hệ thống rồi thì sẽ hiện thông báo lỗi. Lúc này khách hàng có thể trở về đăng ký lại hoặc hủy bỏ đăng ký, lúc bấy giờ use case DăngKý kết thúc.
Hình 4.3: Khách hàng tạo account mới
+ Xét Use_Case DangNhap : khách hàng đăng nhập vào hệ thống bằng cách gõ username và password. Hệ thống sẽ kiểm tra xem username và password có hợp lệ hay không, nếu như hợp lệ thì sẽ cho phép khách hàng vào hệ thống để đặt mua hàng. Còn nếu khách hàng nhập sai usernamehay password thì hệ thống sẽ báo lỗi, lúc này khách hàng có thể trỡ về trang DangNhap để đăng nhập lại, hoặc không đăng nhập nữa và use case kết thúc.
Hình 4.4: Khách hàng đăng nhập
+ Xét Use_Case TimKiem : khách hàng chọn chức năng tìm kiếm, và nhập vào tên sách và chọn thể loại... Thông qua database, chương trình sẽ tìm kiếm xem sách này có hay không. Sau khi tìm kiếm sách xong, chương trình sẽ gởi thông báo cho khách hàng để báo có tìm thấy sách hay không. Nếu kiểm tra thấy có sách thì sẽ hiển thị những quyển sách tìm thấy và các thông tin về chúng như : tác giả, nhà xuất bản, ngôn ngữ, giá sách …
Hình 4.5: khách hàng tìm kiếm sách
+ Xét Use_Case BoSachVaoGio, use case này bắt đầu khi một khách hàng chọn sách muốn mua. Vì mỗi một khách hàng khi vào mua sắm sẽ có một giỏ hàng, khách hàng sau khi tìm kiếm sách xong, nếu tìm thấy sách mình cần thì họ sẽ có thể bỏ sách vào giỏ hàng của mình. Hệ thống sẽ thêm sách này vào giỏ hàng của khách hàng.
Hình 4.6: Khách hàng thêm sách vào giỏ
+ Xét Use_Case TạoĐĐH, use case này cho phép khách hàng đặt mua hàng, lúc bấy giờ nếu khách hàng chưa đăng nhập vào hệ thống thì sẽ xuất hiện form Login (đã xét ở trên) để khách hàng gõ username và password vào, ở đâu ta xét đến trường hợp khách hàng chọn hình thức thanh toán là chuyển khoản, thông qua database của bank, hệ thống sẽ xác nhận thông tin khách hàng nhập vào có đúng hay không, sau khi xác nhận xong nếu như thông tin hợp lệ thì những mặt hàng khách hàng đã chọn sẽ được cập nhật vào hoá đơn và thông báo ngày giao hàng cho khách. Còn nếu thông tin không hợp lệ thì sẽ thông báo lỗi, sau 3 lần thì sẽ hủy phiên giao dịch.
Hình 4.7: khách hàng tạo đơn đặt hàng
+ Xét Use_Case LoginAdmin : người quản trị đăng nhập vào hệ thống bằng cách gõ username và password. Hệ thống sẽ kiểm tra xem username và password có hợp lệ hay không và sau đó kiểm tra xem username này có quyền quản trị hay không, nếu như có quyền thì sẽ cho phép quản trị vào hệ thống để quản trị. Còn nếu quản trị nhập sai username hay password hoặc là username không có quyền quản trị thì hệ thống sẽ báo lỗi, lúc này quản trị có thể trỡ về trang LoginAdmin để đăng nhập lại, hoặc không đăng nhập nữa và use case kết thúc.
Hình 4.8: Admin login vào hệ thống
+ Xét Use_Case QLSach bao gồm: Xem thông tin về từng quyển sách, thêm sách mới, xóa sách, sữa thông tin sách:
* XemSach: Admin sau bươcù kiểm tra username và password từ LoginForm sẽ chọn chức năng quản lý sách. Cửa sổ ViewSách được mỡ ra. Tại đây thông qua database mọi thông tin về chi tiết từng quyển sách sẽ được hiển thị.
Hình 4.9: quản trị xem thông tin về các sách hiện có.
* ThemSach: Sau khi cửa sổ ViewSach được mỡ ra, người quản trị chọn chức năng “thêm mới” và nhập vào mã số sách mới và các thông tin sách. Thông qua database chương trình sẽ kiểm tra xem mã số sách đã có chưa. Nếu kiểm tra đúng chưa có mã này thì chương trình sẽ tạo thêm sách mới trong database.
Hình 4.10: người quản trị thêm sách mới
* SuaSach: trên cửa sổ ViewSach người Admin sẽ chọn Sách cần chỉnh sửa và sau đó chọn tác vụ chỉnh sửa. Form chỉnh sửa sẽ hiện ra và người admin có thể chỉnh sữa các thông tin cần thiết sau đó lưu thông tin vừa chỉnh sửa. Thông qua database hệ thống sẽ cập nhật những thông tin này.
Hình 4.11: người quản trị sửa thông tin sách
* XóaSách: trên cửa sổ ViewSach người quản trị chọn sách cần xóa và nhấn nút xóa sách. Thông qua database cuốn sách người quản trị chọn sẽ được xóa.
Hình 4.12
+ Xét Use_Case QLKhachHang bao gồm: xem các thông tin về từng khách hàng, xóa khách hàng.
* XemKH: sau khi đăng nhập bằng username và password từ Login người admin sẽ chọn chức năng quản lý khách hàng, sau đó cửa sổ ViewKhachHang sẽ hiện ra, tại đây các thông tin về từng khách hàng sẽ được hiển thị. Cơ sỡ dữ liệu được lấy ra từ database.
Hình 4.13: người quản trị xem thông tin khách hàng
* XóaKH: sau khi cửa sổ ViewKhachHang hiện ra, tại đây người admin sẽ chọn khách hàng nào cần xóa và chọn chức năng xóa để xóa khách hàng này.
Hình 4.14: người quản trị xóa khách hàng
+ Xét Use_Case QLQuảnTrị bao gồm: xem thông tin về quản trị, thêm quản trị, xoá quản trị, sửa thông tin về quản trị.
* XemQT: Người quản trị sau khi đăng nhập bằng username và password từ LoginForm sẽ chọn tác vụ quản lý quản trị. Cửa sổ ViewQuanTri sẽ hiện ra. Tại đây Admin có thể xem thông tin về những người quản trị. Thông tin này được lấy ra từ database, những người quản trị này sẽ có “quyền đăng nhập” là 1.
Hình 4.15: quản trị xem thông tin về các quản trị
* ThêmQT: Sau khi cửa sổ ViewQuanTri mỡ ra, người quản trị sẽ chọn chức năng thêm mới và sau khi form thêm mới hiện ra, người quản trị sẽ nhập vào các thông tin cần thiết như : TênQT, username, Password, ĐịaChỉ, . . . và chọn quyền đăng nhập là 1 . Thông qua database sẽ kiểm tra xem username đó đã tồn tại chưa, nếu đã tồn tại thì yêu cầu nhập username khác, còn nếu chưa tồn tại thì cập nhật những thông tin này vào cơ sỡ dữ liệu.
Hình 4.16: thêm quản trị mới
* XóaQT: Sau khi cửa sổ ViewQuanTri hiện ra. Tại đây người admin sẽ chọn người quản trị nào cần xóa và nhấn nút xóa. Thông qua database sẽ xóa đi người quản trị vừa chọn.
Hình 4.17:
* SửaQT: Sau khi cửa sổ ViewQuanTri hiện ra, người quản trị sẽ chọn quản trị cần sửa và nhấn nút sửa, lúc bấy giờ sẽ có form sửa hiện ra cho phép người quản trị có thể sửa thông tin của người vừa chọn. Qua database mọi thông tin vừa sửa sẽ được cập nhật.
Hình 4.18: Sửa thông tin quản trị
+ Xét Use_Case QLNhanVien bao gồm xem, xóa, sửa thông tin nhân viên.
* XemNhânViên: người quản trị sau khi đã đăng nhập vào hệ thống sẽ chọn chức năng ViewNhanvien, hệ thống sẽ kiểm tra xem có nhân viên nào hay không, nếu không có nhân viên nào thì thông báo, còn nếu có nhân viên thì hiển thị.
Hình 4.19: quản trị xem thông tin nhân viên
* ThêmNhânViên : nếu username chưa tồn tại thì cập nhật. Ngược lại lỗi
Hình 4.20: người quản trị thêm nhân viên
* SửaNhânViên:
Hình 4.21: quản trị sửa thông tin nhân viên
* XóaNhânViên:
Hình 4.22: qủn trị xóa nhân viên
+ Xét Use_Case QLĐơnĐặtHàng bao gồm xem thông tin về đơn đặt hàng, xóa đơn đặt hàng.
* XemDDH: người quản trị sau khi đăng nhập bằng username và password từ Login sẽ chọn chức năng quản trị đơn đặt hàng. Cửa sổ ViewĐĐH sẽ hiện ra, tại đây các thông tin về những đơn đặt hàng sẽ được hiển thị thông qua database.
Hình 4.23: quản trị xem các đơn đặt hàng hiện có
* XóaDDH: Sau khi cửa sổ ViewDDH hiện ra, tại đây người quản trị sẽ chọn đơn đặt hàng nào cần xóa và chọn chức năng xóa để xóa đơn đặt hàng đó. Thông qua database đơn đặt hàng đó sẽ bị xóa.
Hình 4.24: quản trị xóa đơn đặt hàng
+ Xét Use_Case LoginNhanVien : nhân viên đăng nhập vào hệ thống bằng cách gõ username và password. Hệ thống sẽ kiểm tra xem username và password có hợp lệ hay không và sau đó kiểm tra xem username này có quyền quản trị hay không, nếu như có quyền thì sẽ cho phép nhân viên vào hệ thống để quản trị các phiếu xuất, nhập, thu, chi. Còn nếu nhân viên nhập sai username hay password, hoặc là username không có quyền thì hệ thống sẽ báo lỗi, lúc này nhân viên có thể trỡ về trang LoginNhanVien để đăng nhập lại, hoặc không đăng nhập nữa và use case kết thúc.
Hình 4.25: nhân viên đăng nhập
+ Xét Use_Case QLChungTu_XuatNhap bao gồm Xem phiếu xuất, phiếu giao, phiếu thu, phiếu nhập, phiếu chi. Xóa phiếu xuất, phiếu giao, phiếu thu, phiếu nhập, phiếu chi. Tạo phiếu xuất, phiếu giao, phiếu thu, phiếu nhập, phiếu chi. Chỉnh sửa thông tin về phiếu xuất, phiếu giao, phiếu thu, phiếu nhập, phiếu chi.
* XemCT_XN: người quản trị sau bước kiểm tra username và password từ Login sẽ chọn chức năng quản lý phiếu xuất. Cửa sổ ViewChungTu sẽ hiện ra, tại đây mọi thông tin về những phiếu xuất sẽ được hiển thị thông qua database.
Hình 4.26 : nhân viên hay admin quản lý chứng từ
* TạoCT_XN: khi cửa sổ ViewChungTu_XuatNhap hiện ra và người quản trị chọn chức năng thêm mới để lập ra phiếu xuất mới. Thông qua database sẽ kiểm tra MaPhieuXuat xem đã tồn tại hay chưa, nếu chưa tồn tại thì mọi thông tin về phiếu xuất mới này sẽ được cập nhật vào cơ sỡ dữ liệu.
Hình 4.27 : nhân viên hay admin tạo các chứng từ
* XóaCT_XN: Khi cửa sổ ViewChungTu_XuatNhap sẽ hiện ra. Tại đây người quản trị sẽ chọn phiếu xuất cần xóa và chọn chức năng xóa. Mọi thông tin về phiếu xuất này sẽ được xóa khỏi.
Hình 4.28 : nhân viên, admin xóa các chứng từ
* SửaCT_XN: Khi hiển thị cửa sổ ViewChungTu_XuatNhap, người quản trị sẽ chọn phiếu xuất cần phải sửa và sau đó chọn chức năng xóa phiếu xuất. Thông qua database sẽ cập nhật các thông tin vừa chỉnh sửa vào cơ sỡ dữ liệu.
Hình 4.29: nhân viên, admin sửa các chứng từ
II/ XÂY DỰNG LƯỢC ĐỒ LỚP VÀ LƯỢC ĐỒ HOẠT ĐỘNG :
1/ Nhận diện các đối tượng/lớp:
- Người quản trị hệ thống phải quản lý các khách hàng nên phải nắm bắt được : mã khách hàng, họ tên khách hàng, địa chỉ, điện thoại, email … một khi họ đăng ký là khách hàng mới của nhà sách, cũng như phải biết khách hàng đó đã mua và đặt mặt hàng nào. Như vậy ta thấy xuất hiện lớp “khách hàng”. Các thuộc tính của khách hàng bao gồm: MaKhachHang, Username, Password, HoTenKhachHang, DiaChi, DienThoai, Email, GhiChu, SoTaiKhoan, QuyenDangNhap, CongNoKH.
- Các đối tượng tạo ra cửa sổ giao tiếp với khách hàng và người quản trị hệ thống có stereotype là >.
+ Lớp “Login” tạo ra cửa sổ để actor truy cập theo quyền của mình.
+ Lớp “TimKiem” tạo ra cửa sổ để khách hàng tìm kiếm sách.
+ Lớp “GioHang” tạo ra cửa sổ thao tác khi khách hàng vào mua sắm, để khách hàng bỏ những quyển sách vừa chọn vào giỏ.
+ Lớp “TaoDDH” tạo ra cửa sổ giao tiếp khi khách hàng muốn tạo đơn đặt hàng sau khi đã lựa chọn được những quyển sách cần mua.
+ Lớp “XacNhanMua” tạo ra cửa sổ giao tiếp khi khách hàng xác nhận mua hàng.
+ Lớp “ViewKhachHang” tạo ra cửa sổ thao tác khi người quản trị hệ thống cần chỉnh sửa thông tin về khách hàng.
+ Lớp “ViewSach” tạo ra cửa sổ để người quản trị thực hiện chức năng quản lí sách.
+ Lớp “ViewQuanTri” tạo ra cửa sổ thao tác khi người quản trị hệ thống cần quản lý các thông tin về người quản trị.
+ Lớp “ViewĐĐH” tạo ra cửa sổ thao tác khi người quản trị thực hiện chức năng quản lý đơn đặt hàng.
+ Lớp “ViewPhieuGiao” tạo ra cửa sổ để người quản trị thực hiện chức năng quản lí các phiếu giao hàng.
+ Lớp “ViewPhieuXuat” tạo ra cửa sổ để người quản trị thực hiện chức năng quản lí các phiếu xuất.
+ Lớp “ViewPhieuThu” tạo ra cửa sổ để người quản trị thực hiện chức năng quản lí các phiếu thu.
+ Lớp “ViewPhieuNhap” tạo ra cửa sổ để người quản trị thực hiện chức năng quản lí các phiếu nhập.
+ Lớp “ViewPhieuChi” tạo ra cửa sổ để người quản trị thực hiện chức năng quản lí các phiếu chi.
- Ngoài ra còn xuất hiện lớp “database” có stereotype là > có chức năng giao tiếp với cơ sở dữ liệu để thực hiện các tác vụ cập nhật dữ liệu.
2/ Xây dựng Lược Đồ Lớp (Class_Diagram) :
- Từ việc phân tích các yêu cầu thực tế, ta có sơ đồ lớp như sau:
Hình 4.2: Lược Đồ Lớp
3/ Lược Đồ Hoạt Động (Activity Diagram):
Lược đồ hoạt động mô tả sự thực thi của từng tác vụ. Mỗi lược đồ hoạt động có thể có vài lớp tham gia, mỗi lớp được biểu diễn trong một đường bơi. Thông qua lược đồ hoạt động chúng ta có thể phân rã những sự thực thi thành những hành động nhỏ, đồng thời phân rã tất cả các rẽ nhánh có thể có thông qua các điều kiện.
Như vậy chúng ta có hai lớp tham gia vào lược đồ hoạt động này: lớp KhachHang và lớp Database. Lớp KháchHàng thực hiện các hành động như, tìm kiếm, bỏ hàng vào giỏ hàng, đặt hàng, đăng ký, dăng nhập,. . . Lớp Database thực hiện các hành động như, tìm kiếm sách trong database, trả kết qủa sách tìm thấy về cho khách hàng, cập nhật thông tin của khách hàng vào database, lưu thông tin khách hàng, . . .
Dưới đây là lược đồ hoạt động của hệ thống:
Hình 4.30: Lược đồ hoạt động
4-Lược Đồ Thực Thể Quan Hệ: ( Entity Relationship Diagram)
Hình