You are on page 1of 111

Phân tích và thiết kế hướng đối tượng nhóm 2

Trường Đại Học Bách Khoa Hà Nội


Viện Điện Tử - Viễn Thông
====o0o====

Báo Cáo Bài Tập Lớn


Phân Tích Thiết Kế Hướng Đối Tượng
Đề Tài: Phân tích và thiết kế hệ thống quản lý hoạt động cửa hàng bán
sách
Giảng viên hướng dẫn: Thạc Sĩ Nguyễn Thanh Bình
Mã học phần: ET3270.
Nhóm Sinh viên thực hiện.
Họ và tên Mssv
Nguyễn Việt Dũng 20121427
Kiều Minh Phước 20133058
Hoàng Thanh Tùng 20145087
Vũ Xuân Phong 20143438

Hà Nội, Tháng 8 năm 2017.


Phân tích và thiết kế hướng đối tượng nhóm 2

MỤC LỤC
LỜI MỞ ĐẦU .............................................................................................................8
Chương I: Lập Kế Hoạch ..........................................................................................9
I. Khỏi tạo dự án.........................................................................................................9
1. Nhận biết dự án. .....................................................................................................9
2. Phân tích khả thi. .................................................................................................10
2.1. Khả thi về mặt kĩ thuật. .....................................................................................10
2.2. Khả thi về mặt kinh tế. ......................................................................................10
2.3. Khả thi về mặt tổ chức. .....................................................................................12
3. Yêu cầu hệ thống. .................................................................................................13
3.1. Yêu cầu chức năng. ...........................................................................................13
3.2. Yêu cầu phi chức năng. ....................................................................................13
II. Quản trị dự án. ....................................................................................................14
1. Lập bản kế hoạch. ................................................................................................14
2. Sơ đồ Gain. ...........................................................................................................15
3. Sơ đồ Pert..............................................................................................................16
Chương II: Phân tích...............................................................................................16
I. Xác định rõ yêu cầu. .............................................................................................17
1. Mô tả yêu cầu nghiệp vụ hệ thống. .....................................................................17
2. Yêu cầu chức năng. ..............................................................................................17
3. Yêu cầu phi chức năng. ......................................................................................17
II. Mô hình hóa chức năng. ....................................................................................18
1. Sơ đồ hoạt động hiện tại của hệ thống. ...............................................................18
2. Sơ đồ use case và mô tả use case. ........................................................................18
2.1. Xác định các actor. ............................................................................................18
2.2. Xác định các use case........................................................................................18
2.3. Sơ đồ Use case. ..................................................................................................19
2.4. Mô tả các Use case. ...........................................................................................20
3. Sơ đồ hoạt động hệ thống mới. ............................................................................27
III. Mô hình hóa cấu trúc. .......................................................................................29
1. Thẻ CRC. ..............................................................................................................29
2. Sơ đồ lớp. ..............................................................................................................37
Phân tích và thiết kế hướng đối tượng nhóm 2

3. Sơ đồ đối tượng. ...................................................................................................38


IV. Mô hình hóa hoạt động. ....................................................................................39
1. Biểu độ tuần tự của hoạt động Đăng nhập. ........................................................39
2. Biểu đồ tuần tự của hoạt động Tìm kiếm sách. ..................................................40
3. Biểu đồ tuần tự cho hoạt động Thêm sách. ........................................................40
4. Biểu đồ tuần tự của hoạt động Chỉnh sửa thông tin sách .................................41
5. Biểu đồ tuần tự cho hoạt động Xóa Sách. ..........................................................42
6. Biểu đồ tuần tự cho hoạt động Lập hóa đơn. .....................................................43
7. Biểu đồ tuần tự cho hoạt động Lập phiêu nhập sách. .......................................44
8. Biểu đồ tuần tự cho hoạt động Thống kê doanh thu..........................................45
9. Biểu đồ tuần tự cho hoạt động Thêm khách hàng thân thiết. ...........................46
10. Biểu đồ tuần tự cho hoạt động Chỉnh sử thông tin khách hàng thân thiết. ...47
11. Biểu đồ tuần tự cho hoạt động Xóa khách hàng thân thiết. ............................48
Chương III. Thiết Kế. ..............................................................................................50
I. Thiết kế tổng thể. ..................................................................................................50
1. Thêm lớp. ..............................................................................................................50
2. Sơ đồ Package. .....................................................................................................66
II. Thiết kế lớp và phương thức ...............................................................................71
1. Các lớp trong Package Object. ............................................................................71
2. Các lớp trong Package Controller. ......................................................................77
3. Các lớp trong Package View. ...............................................................................91
3.1. Giao diện Đăng nhập. .......................................................................................91
3.2. Giao diện màn hình chính. ...............................................................................92
3.3. Giao diện Quản lý sách. ....................................................................................93
3.4. Giao diện Quản lý khách hàng thân thiết. .......................................................95
3.5. Giao diện thông tin người dùng. ......................................................................98
3.6. Giao diện hiển thị doanh thu. ...........................................................................98
3.7. Giao diện Lập phiếu nhập. ...............................................................................99
3.8. Giap diện Lập hóa đơn....................................................................................100
III. Thiết kế cơ sở dữ liệu. .....................................................................................102
1. Package Model: ..................................................................................................102
2. Xác định các thực thể.........................................................................................102
3. Mô hình thực thể liên kết. ...............................................................................103
Phân tích và thiết kế hướng đối tượng nhóm 2

4. Chuẩn hóa. .........................................................................................................104


5. Mô tả chi tiết các quan hệ. .................................................................................107
6. Mô hình thực thể cho quan hệ. .........................................................................110
KẾT LUẬN .............................................................................................................111
Phân tích và thiết kế hướng đối tượng nhóm 2

DANH MỤC BẢNG

Bảng 1. Bảng tính toán lưu chuyển tiền tệ........................................................ 12

Bảng 2. Bảng lập kế hoạch. ............................................................................... 15


Phân tích và thiết kế hướng đối tượng nhóm 2

DANH MỤC HÌNH ẢNH


Hình 1. Sơ đồ Gain............................................................................................................15

Hình 2. Sơ đồ Pert .............................................................................................................16

Hình 3. Sơ đồ hoạt động hệ thống hiện tại ........................................................................18

Hình 4. Sơ đồ Use case. ....................................................................................................20

Hình 5. Biểu đồ hoạt động hệ thống mới. .........................................................................28

Hình 6: Sơ đồ lớp ..............................................................................................................37

Hình 7. Sơ đồ đối tượng ....................................................................................................38

Hình 8. Biểu đồ tuần tự của hoạt động đăng nhập. ...........................................................39

Hình 9. Biểu đồ tuần tự của hoạt động tìm kiếm sách. .....................................................40

Hình 10. Biểu đồ tuần tự cho hoạt động thêm sách. .........................................................41

Hình 11. Biểu đồ tuần tự cho hoạt động chỉnh sửa thông tin sách ....................................42

Hình 12. Biểu đồ tuần tự cho hoạt động xóa sách.............................................................43

Hình 13. Biểu đồ tuần tự cho hoạt động lập hóa đơn. .......................................................44

Hình 14. Biểu đồ tuần tư cho hoạt động Lập phiếu nhập sách..........................................45

Hình 15. Biểu đồ tuần tự cho hoạt động Thống kê doanh thu. .........................................46

Hình 16. Biểu đồ tuần tự cho hoạt động Thêm khách hàng thân thiết. .............................47

Hình 17. Biểu đồ tuần tự cho hoạt động Chỉnh sửa thông tin khách hàng thân thiết. .......48

Hình 18. Biểu đồ tuần tự cho hoạt động Xóa khách hàng thân thiết.................................49

Hình 19. Biểu đồ trình tự cho hoạt động Đăng nhập theo mô hình MVC. .......................52

Hình 20. Biểu đồ trình tự cho hoạt động Hiển thị danh mục sách MVC. .........................53

Hình 21. Biểu đồ trình tư cho hoạt động Thêm sách theo mô hình MVC. .......................54

Hình 22. Biểu đồ trình tự cho hoạt động Chỉnh sửa sách theo mô hình MVC. ................55

Hình 23. Biểu đồ trình tự cho hoạt động Xóa Sách theo mô hình MVC. .........................56

Hình 24. Biểu đồ trình tự cho hoạt động lập hóa đơn theo mô hình MVC. ......................58

Hình 25. Biểu đồ trình tự cho hoạt động Lập phiếu nhập theo mô hình MVC. ................60

Hình 26. Biểu đồ trình tự cho hoạt động Thống kê doanh thu theo mô hình MVC..........62

Hình 27. Biểu đồ trình tự cho hoạt động Hiển thị danh sách KHTT theo MVC. .............63

Hình 28. Biểu đồ trình tự cho hoạt động Thêm khách hàng thân thiết theo MVC. ..........64
Phân tích và thiết kế hướng đối tượng nhóm 2

Hình 29. Biểu đồ trình tự cho hoạt động chỉnh sửa Khách hàng thân thiết theo MVC. ...65

Hình 30. Biểu đồ trình tự cho hoạt động Xóa sách theo MVC. ........................................66

Hình 31. Package Model ...................................................................................................67

Hình 32. Package Controller .............................................................................................68

Hình 33. Package View. ....................................................................................................69

Hình 34. Package Diagram. ..............................................................................................70

Hình 35. Giao diện đăng nhập...........................................................................................91

Hình 36. Giao diện màn hình chính cho Nhân Viên. ........................................................92

Hình 37. Giao diện màn hình chính cho Quản lý. .............................................................92

Hình 38. Giao diện Quản lý sách. .....................................................................................93

Hình 39. Giao diện cập nhật sách......................................................................................94

Hình 40. Giao diện quản lý Khách hàng thân thiết. ..........................................................95

Hình 41. Giao diện cập nhật Khách hàng thân thiết..........................................................97

Hình 42. Giao diện hiển thị thông tin Người dung. ..........................................................98

Hình 43. Giao diện Thống kê doanh thu. ..........................................................................99

Hình 44. Giao diện Lập phiếu nhập. .................................................................................99

Hình 45. Giao diện Lập hóa đơn. ....................................................................................100

Hình 46. Mô hình thực thể liên kết ERD. .......................................................................103

Hình 47. Mô hình thực thể cho quan hệ. .........................................................................110


Phân tích và thiết kế hướng đối tượng nhóm 2

LỜI MỞ ĐẦU
Ngày nay, ứng dụng công nghệ thông tin, khoa học kĩ thuật vào các lĩnh vực
hoạt động của đời sống đã trở thành một trong những vấn đề quan trọng giúp tăng
hiệu quả công việc, giảm thiểu công việc giúp tự động hóa các quá trình, giảm thiểu
các chi phí về tài nguyên sử dụng. Áp dụng công nghệ thông tin cho hoạt động của
các cơ quan, tổ chức giúp tạo ra những đột phá mạnh mẽ. Xây dựng những hệ thống
quản lý tự động các tổ chức hoặc của hàng là một trong những việc giúp đẩy mạnh
việc áp dụng công nghệ vào đời sống.

Trong nội dung môn học Phân tích thiết kế hướng đối tượng, chúng em lựa
chọn việc tìm hiểu, phân tích và thiết kế một Hệ thống quản lý cửa hàng bán sách.
Tìm hiểu các yêu cầu nghiệp vụ cơ bản của Cửa hàng bán sách, nhu cầu về một hệ
thống quản lý giúp tăng hiệu năng các hoạt động của Cửa hàng bán sách. Từ đó,
phân tích các yêu cầu và đưa ra những đặc tả ban đầu cho hệ thống, sau đó thực
hiện những thiết kế cần thiết để có thể cài đặt hệ thống.

Trong quá trình tìm hiểu và thực hiện bài tập lớn môn học chúng em nhận
được sự hướng dẫn tâm huyết từ Thầy Nguyễn Thanh Bình, giảng viên giảng dạy
chúng em môn Phân tích thiết kế hướng đối tượng. Chúng em đã thực sự học được
nhiều thứ mới và bổ ích từ Thầy.

Chúng em xin chân thành cảm ơn Thầy.


Phân tích và thiết kế hướng đối tượng nhóm 2

Chương I: Lập Kế Hoạch


I. Khỏi tạo dự án.

1. Nhận biết dự án.

- Tên dự án: Thiết kế hệ thống quản lý cửa hàng bán sách Long Tấm.

+ Địa chỉ: Số 3 Nguyễn Thanh Hải, thị trấn Thanh Hà, huyện Thanh Hà, tỉnh
Hải Dương.

+ Chủ cửa hàng: Hoàng Minh Long.

- Mục tiêu hệ thống mới: xây dựng một phần mềm quản lý được thiết kế dựa trên
thực tế nghiệp vụ của cửa hàng để có khả năng đáp ứng và hỗ trợ tốt cho công việc
quản lý và kinh doanh của cửa hàng, tránh nhầm lẫn sai sót, giảm chi phí quản lý,
đồng thời hỗ trợ truy cập tìm kiếm thông tin nhanh chóng và chính xác và tập trung
phục vụ Người quản lý trong việc thống kê doanh thu.

- Giá trị nhiệm vụ:

 Cung cấp cho nhân viên bán hàng những thông tin về sách, giúp nhân viên
bán hàng có thể tìm kiếm sách theo yêu cầu của khách hàng.
 Hỗ trợ cho nhân viên bán hàng trong việc cập nhật thông tin sách mới khi có
sách được nhập vào cửa hàng.
 Giúp người quản lý trong việc thống kê doanh thu của cửa hàng theo từng
tháng và từng năm.
 Dựa vào những thông tin đầy đủ trong hệ thống hỗ trợ người quản lý trong
việc quản lý cửa hàng sách, quản lý doanh thu, quản lý khách hàng thân
thiết.
+ Các thông tin cơ bản về hệ thống :
 Danh mục sách: tên, tác giả, giá, nhà xuất bản, vị trí sách trong cửa hàng.
 Hệ thống được triển khai dưới dạng ứng dụng phần mềm.
Phân tích và thiết kế hướng đối tượng nhóm 2

- Thành lập nhóm dự án:


Họ và tên Vai trò
Nguyễn Việt Dũng
Kiều Minh Phước
Hoàng Thanh Tùnh
Vũ Xuân Phong Nhóm trưởng

2. Phân tích khả thi.


2.1. Khả thi về mặt kĩ thuật.
Lập trình hướng đối tượng, mô hình hóa cơ sở dữ liệu với SQLserver, có thể
sử dụng các công nghệ như Windows Form C# của Microsoft, hoặc lập trình ứng
dụng Windows với ngôn ngữ lập trình C++ hoặc java.
2.2. Khả thi về mặt kinh tế.
- Phân tích về chi phí phát triển hệ thống và lợi nhuận từ việc sử dụng hệ thống.
+ Chi phí phát triển phần mềm:
 Phân tích và thiết kế: 2.000.000 VND.
 Triển khai phần mềm: 3.000.000 VND.
 Chi phí phát sinh khác như chi phí tư vấn hệ thống và chi phí cấp bản quyền
phần mềm… : 1 000.000 VND
 Chi phí đầu tư phần cứng (máy tính để chạy phần mềm): 10.000.000 VND.
 Tổng: 16.000.000 VND.
+ Chi phí hoạt động:
 Hệ thống chạy trên máy tính PC hoặc Laptop nên cần điện năng, chi phí vào
trung bình khooảng: 600.000 VND/ năm
 Chi phí bảo trì hoặc nâng cấp hệ thống hoặc cập nhật dữ liệu mới cho phần
mềm trung bình khoảng: 6.000.000 VND/năm.
 Tổng: 6.600.000 VND/tháng.
+ Lợi nhuận từ việc sử dụng hệ thống:
 Khi sử dụng hệ thống giúp cho hệ thống cải thiện dịch vụ khách hàng, tiết
kiệm chi phí trong việc cập nhật thông tin sách, giá trị lợi nhuận tăng thêm
trung bình khooảng: 3.000.000 VND/năm
 Phần mềm giúp tính toán doanh thu bán sách và lợi nhuận tự động trong
ngày giúp tiết kiệm chi phí kế toán thống kế hàng tháng: 6.000.000
VND/năm
Phân tích và thiết kế hướng đối tượng nhóm 2

 Giảm bớt chi phí trong việc thuê nhân viên quản lý cửa hàng: 6.000.000
VND/năm.
 Tổng: 2.500.000 VND/tháng.

- Tính toán lưu chuyển tiền tệ (VND):


+ Tỷ lệ lạm phát 3%/năm.
2017 2018 2019 Tổng

Lợi nhuận:

+ Cải thiện dịch vụ 3.000.000 3.000.000 3.500.000

+Tiết kiệm chi phí 6.000.000 6.000.000 6.000.000


kế toán thống kê

+ Tiết kiệm chi phí 6.000.000 6.000.000 6.000.000


thuê nhân viên quản

+ Tổng lợi nhuận 15.000.000 15.000.000 15.500.000

+ PV của tổng lợi 12.939.000 12.939.000 13.370.000


nhuận

+ Tổng lợi nhuận 15.000.000 30.000.000 45.500.000


tích lũy

+ PV tổng lợi 12.939.000 25.880.000 39.248.000 39.248.000


nhuận tích lũy

Chi phí phát triển

+ Phân tích thiết kế 2.000.000 0 0

+ Triển khai phần 3.000.000 0 0


mềm

+ Đầu tư phần cứng 10.000.000 0 0

+ Chi phí khác 1.000.000 0 0

+ Tổng chi phí phát


triển 16.000.000 0 0
Phân tích và thiết kế hướng đối tượng nhóm 2

Chi phí hoạt động:

+ Điện năng. 600.000 700.000 800.000

+ Chi phí phát sinh 6.000.000 7.000.000 7.000.000


khác

+ Tổng chi phí hoạt 6.600.000 7.700.000 7.800.000


động

Tổng chi phí 22.600.000 7.700.000 7.800.000

PV tổng chi phí 19.495.000 6.642.000 6.728.000

PV của tất cả chi phí 19.495.000 26.137.000 32.865.000 32.865.000


từ đầu

Lợi nhuận – chi phí (7.600.000) 7.300.000 7.700.000

Giá trị ròng hiện tại (6.556.000) 6.297.000 6.642.000

Comulative NPV (6.556.000) (259.000) 6.383.000

Tỷ lệ hòa vốn 19.42%

Điểm hòa vốn 2.04 năm

Bảng 1. Bảng tính toán lưu chuyển tiền tệ.


2.3. Khả thi về mặt tổ chức.
Hệ thống đáp ứng việc quản lý sách một cách tự động, giúp cho quản lý dễ
dàng trong việc thêm, sửa, xóa, chỉnh sửa thông tin sách và quản lý lượng và thông
tin khách hàng để dễ dàng điều chỉnh cho phù hợp.
Phân tích và thiết kế hướng đối tượng nhóm 2

3. Yêu cầu hệ thống.


3.1. Yêu cầu chức năng.
Nhân viên bán hàng.
• Tìm kiếm thông tin sách theo yêu cầu của khách hàng mua sách. Các thông
tin như số lượng sách, tình trạng còn hay hết của sách, vị trí của sách trong
cửa hàng.
• Lập hóa đơn mua sách cho khách hàng.

• Nhập thêm thông tin sách mới lên hệ thống, chỉnh sửa thông tin sách (giá cả
…) khi có yêu cầu của quản lý.
Người quản lý.
• Thống kê doanh thu bán hàng hàng tháng, hàng quý.
• Quản lý việc nhập sách.
• Quản lý khách hàng thân thiết (khi họ mua nhiều, hoặc mua số lượng lớn)

3.2. Yêu cầu phi chức năng.


Hoạt động.
• Hệ thống được triển khai dưới dạng ứng dụng phần mềm.
• Người sử dụng sử dụng máy tính để sử dụng các dịch vụ.
Hiệu năng.
• Hệ thống phải hoạt động tin cậy 24h/ngày và 365 ngày trên năm.
• Kết quả trả về sau không quá một 30s khi dịch vụ được yêu cầu
Bảo mật.
• Khách hàng chỉ có thể yêu cầu nhân viên tìm kiếm sách mà khách hàng cần
trên hệ thống.
• Nhân viên chỉ có quyền chỉnh sửa thông tin sách khi có yêu cầu từ quản lý.
• Chỉ có quản lý mới có quyền trực tiếp trong việc thêm sách và chỉnh sửa
thông tin sách.
Các yếu tố khác:
• Phải hỗ trợ xử lý một loại tiền tệ là VND (Việt Nam Đồng).
• Ngôn ngữ sử dụng là tiếng
Phân tích và thiết kế hướng đối tượng nhóm 2

II. Quản trị dự án.


1. Lập bản kế hoạch.
STT Tên công việc Thời gian Phụ thuộc Trạng Người thực hiện
thực hiện công việc thái
(tuần)

1 Lập kế hoạch 2 Hoàn


thành
1.1 Khởi tạo dự án 1 Hoàn Cả nhóm
thành
1.1.1 Đưa ra đề xuất Hệ 0.5 Hoàn Phong
thống thành
1.1.2 Phân tích tính khả thi 0.5 1.1.1 Hoàn Cả nhóm
thành
1.2 Quản lí dự án: Lập 1 1.1.1 Đang Dũng, Phước,
bảng workplan, các sơ thực hiện Tùng
đồ Gantt và PERT.
2 Thu thập các yêu 3 Hoàn
cầu thành
2.1 Xây dựng sơ đồ hoạt 0.5 1.1 Hoàn Phong
động thành
2.2 Xác định các bước có 1 2.1 Hoàn Cả nhóm
vấn đề trong chu trình thành
trên
2.3 Xác định những 0.5 2.1 Hoàn Phước.
người dùng hay hệ thành
thống ngoài cần
tương tác với hệ
thống hiện tại
2.4 Các y/c về chức năng 0.5 1.1.1 Hoàn Phong
và phi chức năng thành
2.5 Vẽ sơ đồ use case và 1 2.4 Hoàn Dũng, Tùng
mô tả kịch bản sử thành
dụng
3 Phân tích 2 2 Đang
thực hiện
3.1 Xây dựng các CRC 0.5 2.1,2.4 Hoàn Phong
thành
3.2 Xây dựng sơ đồ lớp 0.5 3.1 Hoàn Dũng
thành
3.3 Xây dựng sơ đồ đối 0.5 3.2 Chưa Phước
tượng thực hiện
3.4 Xây dựng sơ đồ tuần 0.5 3.1 Hoàn Phong
tự thành
Phân tích và thiết kế hướng đối tượng nhóm 2

3.5 Xây dựng sơ đồ máy 0.5 3.1 Chưa


trạng thực hiện
3.6 Mô hình thực thể và 0.5 3.1 Chưa
liên kết thực hiện
4 Thiết kế 2 3 Chưa
thực hiện
4.1 Thiết kế tổng thể 0.5 3 Hoàn Phong
thành
4.2 Thiết kế phương thức 0.5 4.1 Hoàn Phước
lớp thành
4.3 Thiết kế Cơ sở dữ liệu 0.5 4.1 Chưa Dũng
thực hiện
4.4 Thiết kế các giao 1 4.2,4.3 Chưa Tùng
diện: menu, các form thực hiện
nhập, các báo cáo đưa
ra.
5 Hoàn thiện báo cáo 1 4 Thực Phong
hiện

Bảng 2. Bảng lập kế hoạch.


2. Sơ đồ Gain.

Hình 1. Sơ đồ Gain
Phân tích và thiết kế hướng đối tượng nhóm 2

3. Sơ đồ Pert.
Đưa ra đề xuất
Hệ thống
1 3 ngày
28/08/17 30/08/17

Các yêu cầu về chức năng và Quản lí dự án: Lập bảng


Phân tích tính khả thi
phi chức năng workplan, các sơ đồ Gantt và
2 4 ngày 3 4 ngày PERT.
31/08/17 03/09/17 4 7 ngày
21/09/17 24/09/17
04/09/17 10/09/17

Vẽ sơ đồ các kịch bản sử


Xây dựng sơ đồ hoạt động
dụng
5 7 ngày 6 3 ngày
25/09/17 01/10/17 11/09/17 13/09/17

Xác định các bước có vấn Xác định những người dùng
Xây dựng các CRC đề trong chu trình trên hay hệ thống ngoài cần tương
tác với hệ thống hiện tại
7 4 ngày 8 7 ngày 9 4 ngày
02/10/17 05/10/17 14/09/17 20/09/17 14/09/17 17/09/17

Xây dựng sơ đồ máy


Xây dựng sơ đồ lớp Mô hình thực thể và liên kết Xây dựng sơ đồ tuần tự
trạng thái

10 3 ngày 11 3 ngày 12 3 ngày 13 3 ngày


13/10/17 15/10/17 13/10/17 15/10/17 06/10/17 08/10/17
06/10/17 08/10/17

Xây dựng sơ đồ đối tượng Thiết kế tổng thể

14 4 ngày 15 3 ngày
09/10/17 12/10/17 16/10/17 18/10/17

Thiết kế các lớp Thiết kế Cơ sở dữ liệu


16 4 ngày 17 4 ngày
19/10/17 22/10/17 19/10/17 22/10/17

Thiết kế các giao diện: menu, các


form nhập, các báo cáo đưa ra
18 7 ngày
23/10/17 29/10/17

Hoàn thiện báo cáo

19 7 ngày
30/10/17 5/11/2017

Hình 2. Sơ đồ Pert

Chương II: Phân tích.


Phân tích và thiết kế hướng đối tượng nhóm 2

I. Xác định rõ yêu cầu.


1. Mô tả yêu cầu nghiệp vụ hệ thống.
- Hỗ trợ nhân viên cửa hàng tìm kiếm sách theo yêu cầu của khách hàng.
- Lập hóa đơn khi khách hàng mua sách.
Quản lý và thống kê doanh thu hàng tháng, hàng quý.
- Hỗ trợ nhân viên trong việc cập nhập thêm thông tin sách trong cửa hàng
- Lập phiếu nhập sách khi nhập sách mới về cửa hàng
2. Yêu cầu chức năng.
Nhân viên bán hàng.
 Tìm kiếm thông tin sách theo yêu cầu của khách hàng mua sách. Các thông
tin như số lượng sách, tình trạng còn hay hết của sách, vị trí của sách trong
cửa hàng.
 Lập hóa đơn mua sách cho khách hàng.
 Nhập thêm thông tin sách mới lên hệ thống, chỉnh sửa thông tin sách (giá cả
…) khi có yêu cầu của quản lý.
Người quản lý.
 Thống kê doanh thu bán hàng hàng tháng, hàng quý.
 Quản lý việc nhập sách.
 Quản lý khách hàng thân thiết (khi họ mua nhiều, hoặc mua số lượng lớn)
3. Yêu cầu phi chức năng.
Hoạt động.
 Hệ thống được triển khai dưới dạng ứng dụng phần mềm.
 Người sử dụng sử dụng máy tính để sử dụng các dịch vụ.
Hiệu năng.
 Hệ thống phải hoạt động tin cậy 24h/ngày và 365 ngày trên năm.
 Kết quả trả về sau không quá một 30s khi dịch vụ được yêu cầu.
Bảo mật.
 Khách hàng chỉ có thể yêu cầu nhân viên tìm kiếm sách mà khách hàng cần
trên hệ thống.
 Nhân viên chỉ có quyền chỉnh sửa thông tin sách khi có yêu cầu từ quản lý.
 Chỉ có quản lý mới có quyền trực tiếp trong việc thêm sách và chỉnh sửa
thông tin sách.
Các yếu tố khác:
 Phải hỗ trợ xử lý một loại tiền tệ là VND (Việt Nam Đồng).
 Ngôn ngữ sử dụng là tiếng Việt.
 Không được vi phạm bản quyền với các hệ thống tương tự khác.
Phân tích và thiết kế hướng đối tượng nhóm 2

II. Mô hình hóa chức năng.


1. Sơ đồ hoạt động hiện tại của hệ thống.

Hình 3. Sơ đồ hoạt động hệ thống hiện tại


2. Sơ đồ use case và mô tả use case.
2.1. Xác định các actor.
Người quản lý: Là người chủ hệ thống, kiểm tra được tình hình mua bán sách của
cửa hàng và doanh thu hiện tại của cửa hàng, có thể xem và biết được thống kê
doanh thu của cửa hàng theo từng tháng, từng quý, từng năm.

Nhân viên bán hàng: Đứng ở quầy thu ngân và lập hóa đơn cho khách hàng, tìm
kiếm sách mà khách hàng yêu cầu đang ở đâu và còn không để chỉ họ đến đó.

Khách Hàng: Không đăng nhập được vào hệ thống, có thể hỏi nhân viên bán hàng
về quyền sách mình cần mua có bán ở đây không, có còn không và nó đang ở đâu
trong cửa hàng
2.2. Xác định các use case.
Phân tích và thiết kế hướng đối tượng nhóm 2

a. Nhân viên.
- Đăng nhập.
- Tìm kiếm thông tin sách theo yêu cầu.
- Lập hóa đơn.
- Cập nhật thông tin sách.
- Đăng xuất
b. Người quản lý.
- Đăng nhập.
- Kiểm tra doanh thu, thống kê.
- Quản lý nhập sách.
- Quản lý khách hàng thân thiện.
- Đăng xuất

2.3. Sơ đồ Use case.


Phân tích và thiết kế hướng đối tượng nhóm 2

Hình 4. Sơ đồ Use case.

2.4. Mô tả các Use case.


Phân tích và thiết kế hướng đối tượng nhóm 2

Tên Use Case: Đăng nhập ID: 1 Mức quan trọng:


Cao
Actor chính: Nhân viên, thu kho, quản Loại Use Case: Tổng quan

Stakeholders and Interests:
- Nhân viên -Đăng nhập vào csdl sách bán
- Người quản lí -Đăng nhập vào csdl hóa đơn

Mô tả:
Đăng nhập vào hệ thống với tư cách khác nhau
Trigger:
Nhân viên, thu kho, quản lí
Quan hệ:
- Association: Nhân viên, thu kho, quản lí
- Bao gồm:
- Mở rộng:
- Tổng quát:
Dòng sự kiện chính
1. Actor chọn chức năng đăng nhập tương ứng với chức vụ
2. Hệ thống hiển thị form đăng nhập và yêu cầu nhập username và password
3. Actor nhập usename và password.
4. Hệ thống kiểm tra thông tin và xác nhận thông tin hợp lệ
5. Hệ thống báo đăng nhập thành công
6. Actor đăng xuất
Dòng sự kiện con:

Ngoại lệ:
4.a. Hệ thống báo nhập sai usename hoặc password
4.a.1. Hệ thống yêu cầu nhập lại
4.a.2. Actor nhập lại usename và password
4.a.3. Hệ thống báo đăng nhập thành công

Tên Use Case: Tìm kiếm sách ID: 2 Mức quan trọng:
Cao
Actor chính: Nhân viên Loại Use Case: Chi tiết

Stakeholders and Interests:


- Nhân viên –Tìm kiếm thông tin sách hiện có

Mô tả:
Tìm kiếm sách theo tiêu chí nào đó: tên, tác giả…
Phân tích và thiết kế hướng đối tượng nhóm 2

Quan hệ:
- Association: Nhân viên
- Bao gồm: Kiểm tra, hiển thị
- Mở rộng:
- Generalization:
Nhân viên:
Nhân viên
Dòng sự kiện chính
1. Nhận viện kích hoạt chức năng tìm kiếm sách
2. Hệ thống hiện khung tìm kiếm và yêu cầu nhân viên nhập từ khóa
3. Nhận viện nhập từ khóa và xác nhận
4. Hệ thống kiểm tra từ khóa và xác nhận từ khóa hợp lệ
5. Hệ thống hiển thị kết quả
6. Nhân viên thoát khỏi tìm kiếm sách
Dòng sự kiện con:

Ngoại lệ:
4.a. Hệ thống báo không tìm thấy sách trong dữ liệu cửa hàng
4.a.1. Hệ thống hỏi nhân viên yêu tìm sách khác hay sử đổi từ khóa
4.a.2. Nhân viên nhập từ khóa khác
4.a.3. Hệ thống hiển thị kết quả

Tên Use Case: Lập hóa đơn ID: 3 Mức quan trọng:
Cao
Actor chính: Nhân viên Loại Use Case: Chi tiết

Stakeholders and Interests:


- Nhân viên -Lập hóa đơn sách được bán
- Quản lí- Thông kế doanh thu

Mô tả:
Lập hóa đơn bán hàng
Quan hệ:
- Association: Nhân viên
- Bao gồm:
- Mở rộng:
- Generalization:
Dòng sự kiện chính
1.Nhận viên bán hàng kích hoạt chức năng Lập hóa đơn
2. Hệ thống hiện form hóa đơn yêu cầu nhân viên điền thông tin khách hàng
3.Nhận viện nhập thông tin và xác nhận
Phân tích và thiết kế hướng đối tượng nhóm 2

4.Hệ thống kiểm tra thông tin đã nhập và yêu cầu nhân viên quét mã vạch từng
sách
5.Nhân viên tìm kiếm sách theo mã trên sách
6.Hệ thống kiểm tra thông tin và tính tổng số tiền
7.Hệ thống lưu thông tin hóa đơn , nhân viên in hóa đơn cho khách hàng
8.Nhân viên thoát chức năng lập hóa đơn
Dòng sự kiện con:

Ngoại lệ:
4.a. Hệ thống thông tin khách hàng nhập không hợp lệ
4.a.1. Hệ thống yêu cầu nhân viên nhập lại thông tin khách hàng
4.a.2. Nhân viên nhập lại thông tin
4.a.3. Hệ thống nhập đúng và yêu cầu tiếp tục công việc
4.b. Hệ thống báo đây là khách hàng thân thiết.
4.b.1 Hệ thống yêu cầu nhân viên xác nhận thông tin khách hàng( thẻ)
4.b.2 Tính điểm cho khách hàng
4.b.3 Đủ điểm thì giảm giá trong hóa đơn.

Tên Use Case: Cập nhật thông ID: 4 Mức quan trọng:
tin sách. Cao

Actor chính: Nhân viên Loại Use Case: Chi tiết

Stakeholders and Interests:


- Nhân viên - Cập nhật thông tin sách.
Điều kiện: Người quản lý yêu cầu.

Mô tả: Use case cho phép nhân viên bán hàng thay đổi chỉnh sửa thông tin sách
trong cửa hàng khi có yêu cầu từ người quản lý.
Quan hệ:
- Association: Nhân viên
- Bao gồm:
- Mở rộng:
- Generalization:
Dòng sự kiện chính
1. Nhân viên bán hàng yêu cầu tìm kiếm sách cần thay đổi thông tin.
2. Hệ thống tìm sách trong dữ liệu cửa hàng.
3. Hệ thống hiển thị các kết quả sách.
4. Nhân viên bán hàng chọn sách cần thay đổi thông tin.
5. Nhân viên bán hàng thực hiện việc chỉnh sửa thông tin hay xóa sách.
6. Hệ thống lưu lại những thay đổi.
Dòng sự kiện con:
Phân tích và thiết kế hướng đối tượng nhóm 2

Ngoại lệ:
A1- Sách cần thay đổi thông tin không có trong hệ thống.
Chuỗi A1 xảy ra ở bước 3 của sự kiện chính.
4. Nhân viên không thực hiện gì thêm
Kết thúc use case.

Tên Use Case: Thống kê ID: 5 Mức quan trọng:


doanh thu. Cao
Actor chính: Người quản lý Loại Use Case: Chi tiết

Stakeholders and Interests:


- Người quản lý - thống kê doanh thu.
Mô tả: Cho phép người quản lý thống kê doanh thu của cửa hàng tại thời điểm
hiện tại

Trigger:
Người quản lý

Quan hệ:
- Association: Người quản lý
- Bao gồm: Xem thông tin doanh thu, sách bán được.
- Mở rộng:
- Generalization:
Dòng sự kiện chính:
1. Người quản lý chọn chức năng thống kê.
2. Hệ thống yêu cầu chọn hình thức thống kê.
3. Người quản lý chọn hình thức thống kê.
4. Hệ thống hiển thị bảng thống kê, doanh thu…
5. Hệ thống hỏi người quản lý có muốn in bản thống kê hay không.
6. Người quản lý yêu cầu in bảng thống kê.
7. Hệ thống in bảng thống kê cho người quản lý.
Dòng sự kiện con:

Ngoại lệ:
A1- người quản lý không in bảng thống kê.
Chuỗi A1 bắt đầu từ bước 5 của kịch bản chính.
6. Người quản lý không yêu cầu in bảng thống kê.
7. Use case kết thúc.
Phân tích và thiết kế hướng đối tượng nhóm 2

Tên Use Case: Quản lý nhập ID: 6 Mức quan trọng:


sách Cao
Actor chính: Người quản lý Loại Use Case: Chi tiết

Stakeholders and Interests:


- Người quản lý - quản lý việc nhập sách vào kho.
Mô tả: Cho phép người quản lý nhập sách vào kho. Khi sách hết hay có như cầu
nhập thêm một loại sách, người quản lý sẽ nhập thông tin hàng cần nhập, thông
tin này làm cơ sở cho Tủ kho nhập sách vào kho và vào cơ sở dữ liệu.
Trigger:
Người quản lý

Quan hệ:
- Association: Người quản lý
- Bao gồm:
- Mở rộng:
- Generalization:
Dòng sự kiện chính:
1. Người quản lý chọn chức năng Quản lý nhập hàng của hệ thống.
2. Hệ thống yêu cầu nhập tên sách và số lượng.
3. Người quản lý nhập tên sách và số lượng.
4. Hệ thống yêu cầu nhập mã cho sách tương ứng.
5. Người quản lý nhập mã cho sách tương ứng.
6. Hệ thống yêu cầu nhập tên nhà xuất bản và mã nhà xuất bản.
7. Người quản lý nhập tên nhà xuất bản và mã tương ứng.
8. Hệ thống hỏi người quản lý có lập phiếu nhập sách không.
9. Người quản lý lập phiếu nhập sách.
10. Hệ thống in phiếu nhập sách cho người quản lý.
Dòng sự kiện con:

Ngoại lệ:
A1 - Người quản lý nhập mã trùng với sách có trong hệ thống.
Chuỗi A1 bắt đầu từ bước 5 của kịch bản chính.
Quay trở lại bước 4.
A2 - Người quản lý không lập phiếu nhập sách.
Chuỗi A2 bắt đầu từ bước 8.
9. Người quản lý không lập phiếu nhập sách.
Kết thúc use case.
Phân tích và thiết kế hướng đối tượng nhóm 2

Tên Use Case: Quản lý khách ID: 7 Mức quan trọng:


hàng thân thiện Cao
Actor chính: Người quản lý Loại Use Case: Chi tiết

Stakeholders and Interests:


- Người quản lý - quản lý việc thêm khách hàng thân thiện.
Mô tả: Cho phép người quản lý thêm thông tin khách hàng thân thiện.

Điều kiện: Khách hàng có hóa đơn lớn hơn 500.000VND cho một lần mua sách
hoặc là khách hàng thường xuyên của cửa hàng.
Trigger:
Người quản lý

Quan hệ:
- Association: Người quản lý
- Bao gồm:
- Mở rộng:
- Generalization:
Dòng sự kiện chính:
1. Người quản lý chọn chức năng them Khách hàng thân thiện của hệ thống.
2. Hệ thống yêu cầu người quản lý nhập tên khách hàng.
3. Người quản lý nhập tên khách hàng vào.
4. Hệ thống yêu cầu nhập ngày sinh khách hàng.
5. Người quản lý nhập ngày sinh.
6. Hê thống kiểm tra tính hợp lệ của ngày sinh và yêu cầu nhập địa chỉ.
7. Người quản lý nhập địa chỉ.
8. Hệ thống kiể tra toàn bộ thông tin vừa nhập.
9. Hệ thống tự động cập nhật nhày tạo thẻ, cấp mã số khách hàng và lưu
thông tin.
Dòng sự kiện con:
A_Tìm kiếm khách hàng:
1. Người quản lý yêu cầu tìm một khách hàng thân thiết.
2. Hệ thống yêu cầu nhập khách hàng thân thiết.
3. Người quản lý nhập tên khách hàng cần tìm kiếm.
4. Hệ thống hiển thị kết quả khách hàng tìm kiếm.
B_Chỉnh sửa thông tin khách hàng thân thiết.
1. Người quản lý chọn một khách hàng thân thiết.
2. Hệ thống hiển thị thông tin khách hàng.
3. Người quản lý chỉnh sửa thông tin khách hàng.
4. Hệ thống lưu lại thông tin sau chỉnh sửa.
C_ Xóa khách hàng thông tin.
1. Người quản lý yêu cầu xóa khách hàng thân thiết.
2. Hệ thống xóa khách hàng thân thiết.
Phân tích và thiết kế hướng đối tượng nhóm 2

Ngoại lệ:
A1 – Ngày sinh không hợp lệ.
Chuỗi A1 bắt đầu từ bước 6 của kịch bản thường.
7. Thông báo ngày nhập vào không chính xác.
Trở lại bước 4 của kịch bản thường.
A2 – Thông tin khách hàng vừa nhập đã có trong hệ thống.
Chuỗi A2 bắt đầu từ bước 8 của kịch bản thường.
9. Thông báo đã có khách hàng này trong hệ thống Khách hàng thân thiện.
10. Hệ thống hủy toàn bộ thông tin vừa nhập.
Use case kết thúc.

Tên Use Case: Đăng xuất ID: 8 Mức quan trọng:


Cao
Actor chính: Người quản lý, nhân viên Loại Use Case: Chi tiết
bán hàng
Stakeholders and Interests:
- Người quản lý, nhân viên bán hàng – thoát khỏi hệ thống.
Mô tả: Cho phép người quản lý và nhân viên bán hàng thoát khỏi hệ thống sau
khi thực hiện xong chức năng nào đó của hệ thống.
Trigger:
Người quản lý, nhân viên bán hàng

Quan hệ:
- Association: Người quản lý, nhân viên bán hàng
- Bao gồm:
- Mở rộng:
- Generalization:
Dòng sự kiện chính:
1. Actor chọn chức năng đăng xuất
2. Hệ thống hiển thị thông báo xác nhận đăng xuất
3. Actor xác nhận đăng xuất
4. Hệ thống báo đăng xuất thành công, trở về giao diện chung
Dòng sự kiện con:

Ngoại lệ:
3.a. Actor xác nhận không muốn đăng xuất
3.a.1. Hệ thống làm việc như cũ
Kết thúc use case.

3. Sơ đồ hoạt động hệ thống mới.


Phân tích và thiết kế hướng đối tượng nhóm 2

- Chú thích: kh là khách hàng.


Hình 5. Biểu đồ hoạt động hệ thống mới.
Phân tích và thiết kế hướng đối tượng nhóm 2

III. Mô hình hóa cấu trúc.


1. Thẻ CRC.
1. Class người quản lý
Class name: Người quản lý ID: 1 Type: Concrete

Description: Là người quản lý việc nhập sách vào cửa Associated Use Cases:
hàng, quản lý khách hàng thân thiết của cửa hàng.

Responsibilities Collaborators
Đăng nhập Account

Lập phiếu nhập sách Phiếu nhập sách

Thống kê doanh thu Doanh thu

Thêm khách hàng thân thiết Khách hàng thân thiết

Xoá khách hàng thân thiết Khách hàng thân thiết

Chỉnh sửa khách hàng thân thiết Khách hàng thân thiết

Attributes

Tên người quản lý : string

Ngày sinh : int

Số điện thoại : string

Relationships

Generalization : Người

Aggregation :

Other Associations : Phiếu nhập sách, khách hàng thân thiết,


doanh thu
Phân tích và thiết kế hướng đối tượng nhóm 2

2. Class nhân viên bán hàng.


Class name: Nhân viên bán hàng ID: 2 Type: Concrete,

Description: Là người thực hiện việc tìm kiếm sách, lập Associated Use Cases:
hóa đơn mua sách cho khách hàng, cập nhật thông tin
sách.
Responsibilities Collaborators
Đăng nhập Account

Tìm kiếm thông tin sách Sách

Cập nhật thông tin sách Sách

Lập hóa đơn mua sách Hóa đơn

Attributes

Tên nhân viên : string

Mã nhân viên : int

Ngày sinh : int

Số điện thoại nhân viên : string

Relationships

Generalization : Người

Aggregation :

Other Associations : Hóa đơn, sách


Phân tích và thiết kế hướng đối tượng nhóm 2

3. Class Sách
Class name: Sách ID: 3 Type: Concrete

Description: Là class lưu thông tin về sách. Associated Use Cases:

Attributes

Tên tựa sách : string

Mã sách : string

Tên tác giả : string

Giá nhập : double

Giá sách : double

Số lượng sách : int

Khu vực bày bán : string

Relationships

Generalization :

Aggregation :

Other Associations : nhân viên bán hàng

4. Class Phiếu nhập sách


Class name: Phiếu nhập sách ID: 4 Type: Concrete
Phân tích và thiết kế hướng đối tượng nhóm 2

Description: mô tả thông tin đợt nhập sách vào cửa Associated Use Cases:
hàng.

Attributes

Sách nhập : Sách

Tổng giá trị lần nhập : double

Ngày nhập sách : string

Relationships

Generalization :

Aggregation : Sách

Other Associations : Người quản lý

5. Class Hóa đơn


Class name: Hóa đơn ID: 5 Type: Concrete

Description: mô tả thông tin mua sách của khách hàng Associated Use Cases:
bao gồm các tựa sách được mua, tổng giá tiền…
Phân tích và thiết kế hướng đối tượng nhóm 2

Attributes

Sách bán : Sách

Khách hàng mua sách : string

Nhân viên bán hàng : string

Tổng giá tiền : double

Ngày bán : string

Relationships

Generalization :

Aggregation : Sách

Other Associations : Nhân viên bán hàng

6. Class Khách hàng thân thiết.

Class name: Khách hàng thân thiết ID: 6 Type: Concrete

Description: Là những người có hóa đơn mua sách lớn Associated Use Cases:
hơn 500K một lần hoặc mua sách thường xuyên tại cửa
hàng
Attributes
Mã khách hàng : string

Tên khách hàng : string

Ngày sinh : string

Số điện thoại : string

Phần tram khuyến mãi : double


Phân tích và thiết kế hướng đối tượng nhóm 2

Relationships

Generalization :

Aggregation :

Other Associations : Người quản lý

7. Class người
Class name: Người ID: 7 Type: Abstract

Description: Là class lưu thông tin về một người. Associated Use Cases:

Attributes
Tên Người : string

Ngày sinh : string

Số điện thoại : string

Relationships

Generalization :

Aggregation :

Other Associations :

8. Class Account

Class name: Account ID: 8 Type: Abstract


Phân tích và thiết kế hướng đối tượng nhóm 2

Description: Là class lưu thông tin về tài khoản và mật Associated Use Cases:
khẩu để đăng nhập hệ thống

Attributes
Username : string

Password : string

Relationships

Generalization :

Composition : Người quản lý ,nhân viên bán hàng

Other Associations :

9. Class doanh thu


Class name: Doanh thu ID: 9 Type: Concrete

Description: Là class thống kê doanh thu từng tháng. Associated Use Cases:

Attributes
Tháng : int

Năm : int

Tổng thu : double

Tổng chi : double

Relationships

Generalization :

Aggregation : Hóa đơn

Other Associations :
Phân tích và thiết kế hướng đối tượng nhóm 2
Phân tích và thiết kế hướng đối tượng nhóm 2

2. Sơ đồ lớp.

Hình 6: Sơ đồ lớp
Phân tích và thiết kế hướng đối tượng nhóm 2

3. Sơ đồ đối tượng.

Hình 7. Sơ đồ đối tượng


Phân tích và thiết kế hướng đối tượng nhóm 2

IV. Mô hình hóa hoạt động.


1. Biểu độ tuần tự của hoạt động Đăng nhập.

Người dùng
:Account

YeuCauDangNhap()

DangNhap(taiKhoan, matKhau)

KiemTra(taiKhoan, matKhau)

ThongBao(): Đăng nhập hợp lệ


Giao diện tương ứng

ThongBao(): Đăng nhập không hợp lệ

Hình 8. Biểu đồ tuần tự của hoạt động đăng nhập.


Phân tích và thiết kế hướng đối tượng nhóm 2

2. Biểu đồ tuần tự của hoạt động Tìm kiếm sách.

Nhân viên :DanhMuc


bán hàng Sach

YeuCauTimKiem()

Yêu cầu từ khóa tìm kiếm


NhapTuKhoa(tuKhoa)

XuLyTuKhoaTimKiem(tuKhóa)

HienThiThongTinSách(sach)
Giao diện tương ứng

ThongBao(): không tìm thấy sách

Hình 9. Biểu đồ tuần tự của hoạt động tìm kiếm sách.

3. Biểu đồ tuần tự cho hoạt động Thêm sách.


Phân tích và thiết kế hướng đối tượng nhóm 2

Nhân viên
:DanhMucSach :Sach
bán hàng

YeuCauThemSach()

TaoDoiTuongSachMoi()

Yêu cầu nhập thông tin sách mới

NhapThongTinSach(thongtinsach)
Thông tin sách
KiemTraThôngTinSach
(thongtinSach)
[Thông tin hợp lệ]: ThemVaoDanhMucSach(Sach)
ThongBao(): thêm thành công

ThongBao(): thông tin sách không hợp lệ

Hình 10. Biểu đồ tuần tự cho hoạt động thêm sách.

4. Biểu đồ tuần tự của hoạt động Chỉnh sửa thông tin sách
Phân tích và thiết kế hướng đối tượng nhóm 2

Nhân viên :DanhMuc


:Sach
bán hàng Sach

YeuCuaTimKiem()

Yêu cầu từ khóa tìm kiếm

NhapTuKhoaTimKiem(tuKhóa)

TimKiem(tuKhoa)

[Kết quả tồn tại]: Gọi các thuộc tính sách

Thông tin sách


Hiển thị thông tin sách

ThôngBao():Thông báo không có kết quả

[Kết quả tồn tại]: YeuCuaChinhSua()

NhapThôngTinMoiChoSach(sach, thongtin)

Thông tin sách mới

KiemTra(thongtin)

[Thông tin hợp lệ]LuuLaiVaoDanhMucSach()


ThongBao(): chỉnh sửa thành công

ThongBao(): thông tin nhập không hợp lệ

Hình 11. Biểu đồ tuần tự cho hoạt động chỉnh sửa thông tin sách

5. Biểu đồ tuần tự cho hoạt động Xóa Sách.


Phân tích và thiết kế hướng đối tượng nhóm 2

Nhân viên :DanhMuc


:Sach
bán hàng Sach

YeuCuaTimKiem()

Yêu cầu từ khóa tìm kiếm

NhapTuKhoaTimKiem(tuKhóa)

TimKiem(tuKhoa)

[Kết quả tồn tại]: GoiCacThuocTinhSach(Sach)

Thông tin sách


Hiển thị thông tin sách

ThôngBao():Thông báo không có kết quả

[Kết quả tồn tại]: YeuCauXoaSach()

XoaKhoiDanhMucSach()

ThongBao(): Xóa thành công

[Lỗi] ThongBao(): xóa thất bại

Hình 12. Biểu đồ tuần tự cho hoạt động xóa sách


6. Biểu đồ tuần tự cho hoạt động Lập hóa đơn.
Phân tích và thiết kế hướng đối tượng nhóm 2

:DanhSach
Nhân viên :DanhMuc :Hoa
:Sach KhachHang
bán hàng Sach Don
ThanThiet

TimKiemSach(tuKhoa)
GoiCacThuocTinh
Sach(Sach)

Thông tin sách


NhaoThongTinSach(thongTinSach)

TinhTongTien()

NhapThongTinKhachHang(thongTinKhachHang)
KiemTraKhachHang
ThanThiet(thongTinKH)
trả về kết quả

[True] TinhLaiTien
(phanTramKhuyenMai)

NhapThongTinNhanViênBanHang(thongTinNhanVien)
TaoHoaDon()
ThongBao(): lập hóa đơn thành công

[Lỗi] ThongBao(): Lỗi

Hình 13. Biểu đồ tuần tự cho hoạt động lập hóa đơn.

7. Biểu đồ tuần tự cho hoạt động Lập phiêu nhập sách.


Phân tích và thiết kế hướng đối tượng nhóm 2

Người PhieuNhap
quản lý Sach

YeuCauLapPhieuNhapSach()

Yêu cầu nhập thông tin đợt nhập sách

NhapThongTinSach(thongTinSach)
NhapNgayNhap(ngay)

KiemTraThongTin(thongTinSach)

[Thông tin hợp lệ]


tinhTongGiaTri()

TaoPhieuNhap()

ThongBao(): Tạo phiếu nhập thành công


Giao diện tương ứng
[Lỗi]ThongBao(): Tạo phiếu nhập thất bại

Hình 14. Biểu đồ tuần tư cho hoạt động Lập phiếu nhập sách

8. Biểu đồ tuần tự cho hoạt động Thống kê doanh thu.


Phân tích và thiết kế hướng đối tượng nhóm 2

Người quản lý DoanhThu HoaDon PhieuNhap

LayGiaTriDoanhThu()

Giá trị doanh thu


LayGiaTriTongChi()

Giá trị tổng chi nhập sách

TinhTongChiTongThu()

YeuCauThongKeDoanhThu()

TinhTiLeThuChiHienTai()

HienThiThongKeHienTai()
: Giao diện tương ứng

Hình 15. Biểu đồ tuần tự cho hoạt động Thống kê doanh thu.

9. Biểu đồ tuần tự cho hoạt động Thêm khách hàng thân thiết.
Phân tích và thiết kế hướng đối tượng nhóm 2

Người quản DanhSachKhach KhachHang


lý HangThanThiet ThanThiet

YeuCauThemKhachHangThanThiet()

TaoDoiTuongKHTT()

Yêu cầu nhập thông tin khach hang than thiet

NhapThongTinKhachHangThanThiet(thongTinKHTT)

KiemTraThongTinKHTT(thongTinKHTT)

[Thông tin hợp lệ] ThemVaoDanhSachKHTT(KHTT)

ThongBao(): Thêm thành công

[Lỗi] ThongBao(): Thêm thất bại

[Thông tin không hợp lệ] ThongBao(): Thông tin không hợp lệ

Hình 16. Biểu đồ tuần tự cho hoạt động Thêm khách hàng thân thiết.

10. Biểu đồ tuần tự cho hoạt động Chỉnh sử thông tin khách hàng thân thiết.
Phân tích và thiết kế hướng đối tượng nhóm 2

:DanhSach :Khach
Người quản
KhacHang HangThan

ThanThiet Thiet

YeuCuaTimKiem()

Yêu cầu từ khóa tìm kiếm

NhapTuKhoaTimKiem(tuKhóa)

TimKiem(tuKhoa)

[Kết quả tồn tại]: GoiCacThuocTinhKHTT()

Thông tin khach hang than thiết


Hiển thị thông tin

ThôngBao():Thông báo không có kết quả

[Kết quả tồn tại]: YeuCauChinhSua()

NhapThôngTinMoiKHTT(KHTT, thongtin)

Thông tin KHTT mới

KiemTra(thongtin)

[Thông tin hợp lệ]LuuLaiVaoDanhMucKHTT()


ThongBao(): chỉnh sửa thành công

ThongBao(): thông tin nhập không hợp lệ

Hình 17. Biểu đồ tuần tự cho hoạt động Chỉnh sửa thông tin khách hàng thân thiết.

11. Biểu đồ tuần tự cho hoạt động Xóa khách hàng thân thiết.
Phân tích và thiết kế hướng đối tượng nhóm 2

:DanhSach :Khach
Người quản
KhachHang Hang

ThanThiet ThanThiet

YeuCuaTimKiem()

Yêu cầu từ khóa tìm kiếm

NhapTuKhoaTimKiem(tuKhóa)

TimKiem(tuKhoa)

[Kết quả tồn tại]: GoiCacThuocTinhKHTT()

Thông tin khách hàng thân thiết


HienThiThongTinKhachHangThanThiet(KHTT)

ThôngBao():Thông báo không có kết quả

[Kết quả tồn tại]: YeuCauXoaKHTT(KHTT)

XoaKhoiDanhMucSach(KHTT)

ThongBao(): Xóa thành công

[Lỗi] ThongBao(): xóa thất bại

Hình 18. Biểu đồ tuần tự cho hoạt động Xóa khách hàng thân thiết.
Phân tích và thiết kế hướng đối tượng nhóm 2

Chương III. Thiết Kế.


I. Thiết kế tổng thể.
1. Thêm lớp.

Controller View

Model Data Store

Hê thống được mô hình hóa theo mô hình MVC (Model – View –


Controller)
 Model là lớp chứa thông tin đối tượng (Dữ liệu), tương tác với Database.
Chịu trách nhiệm chính trong mô hình hóa đối tượng.
 View là giao diện của hệ thống tương tác trực tiếp với người dùng.
 Controller nhận yêu cầu từ người dùng và sử dụng Model và View để xử lý
và trả kết quả cho người dùng.
Hệ thống được chia thành 3 Package nhỏ: Model – View – Controller.
Hệ thống được phân tích dựa trên công cụ lập trình QTCreator.

1.1. Account.
Phân tích và thiết kế hướng đối tượng nhóm 2

- Ngoài class Account được mô tả trong Sơ đồ lớp, cần thêm một lớp
GiaoDienDangNhap để tương tác với người dung và một class
DangNhapController để xử lý hoạt động đăng nhập của người dung và tương
tác với cơ sở dữ liệu.
- Biểu đồ trình tự cho hoạt động Đăng nhập theo mô hình MVC.
Phân tích và thiết kế hướng đối tượng nhóm 2

Hình 19. Biểu đồ trình tự cho hoạt động Đăng nhập theo mô hình MVC.
Phân tích và thiết kế hướng đối tượng nhóm 2

1.2. Sach.

- Ngoài class Sach đã được mô tả trong Sơ đồ lớp trước đó để mô hình hóa đối
tượng Sach. Cần thêm:
- Class GiaoDienQuanLySach để tương tác với người dùng.
- Class SachController để xử lý các thông tin người dùng nhập vào, tương tác
với cơ sở dữ liệu và trả về kết quả giao diện tương ứng.
- Biểu đồ trình tự cho hoạt động Hiển thị danh mục sách theo mô hình MVC.

Hình 20. Biểu đồ trình tự cho hoạt động Hiển thị danh mục sách MVC.
Phân tích và thiết kế hướng đối tượng nhóm 2

- Biểu đồ trình tư cho hoạt động Thêm sách theo mô hình MVC.

Hình 21. Biểu đồ trình tư cho hoạt động Thêm sách theo mô hình MVC.

- Biểu đồ trình tự cho hoạt động Chỉnh sửa sách theo mô hình MVC.
Phân tích và thiết kế hướng đối tượng nhóm 2

Hình 22. Biểu đồ trình tự cho hoạt động Chỉnh sửa sách theo mô hình MVC.

- Biểu đồ trình tự cho hoạt động Xóa sách theo mô hình MVC.
Phân tích và thiết kế hướng đối tượng nhóm 2

Hình 23. Biểu đồ trình tự cho hoạt động Xóa Sách theo mô hình MVC.

1.3. HoaDon.
Phân tích và thiết kế hướng đối tượng nhóm 2

- Ngoài class HoaDon đã được mô tả trong Sơ đồ lớp trước đó để mô hình hóa


đối tượng hóa đơn. Cần thêm:
- Class GiaoDienLapHoaDon để tương tác với người sử dụng, lấy các thông
tin mà người sử dụng nhập vào.
- Class HoaDonController để xử lý các thông tin mà người dung nhập vào,
thực hiện lưu vào cơ sở dữ liệu hoặc lấy từ cơ sở dữ liệu… và đồng thời hiển
thị thông báo tương ứng đến người dùng.

- Biểu đồ trình tự cho hoạt động Lập hóa đơn theo mô hình MVC.
Phân tích và thiết kế hướng đối tượng nhóm 2

Hình 24. Biểu đồ trình tự cho hoạt động lập hóa đơn theo mô hình MVC.
Phân tích và thiết kế hướng đối tượng nhóm 2

1.4. PhieuNhapSach.

- Ngoài class PhieuNhap đã mô tả trong Sơ đồ lớp để mô hình hóa đối tượng


Phiếu nhập sách. Cần thêm:
- Class GiaoDienLapPhieuNhap để tương tác với người dùng, lấy các thông
tin mà người dung nhập vào.
- Class PhieuNhapController để xử lý các thông tin mà người dùng nhập vào,
kiểm tra thông tin, lưu phiếu nhập vào cơ sở dữ liệu… và đồng thời hiển thị
thông báo tương ứng đến người dùng.
Phân tích và thiết kế hướng đối tượng nhóm 2

- Biểu đồ trình tự cho hoạt động Lập phiếu nhập theo mô hình MVC.

Hình 25. Biểu đồ trình tự cho hoạt động Lập phiếu nhập theo mô hình MVC.

1.5. DoanhThu.
Phân tích và thiết kế hướng đối tượng nhóm 2

- Ngoài class DoanhThu đã mô tả trong Sơ đồ lớp, để mô hình hóa đối tượng


DoanhThu. Cần thêm:
- Class GiaoDienHienThiDoanhThu được sử dụng để hiển thị doanh thu cửa
hàng bán sách khi người quản lý yêu cầu.
- Class DoanhThuController được sử dụng để nhận yêu cầu từ người quản lý
và tương tác với cơ sở dữ liệu để trả về kết quả giao diện cho người dung.

- Biểu đồ trình tự cho hoạt động Thống kê doanh thu theo mô hình MVC.
Phân tích và thiết kế hướng đối tượng nhóm 2

Hình 26. Biểu đồ trình tự cho hoạt động Thống kê doanh thu theo mô hình MVC.

1.6. KhachHangThanThiet.
Phân tích và thiết kế hướng đối tượng nhóm 2

- Ngoài class KhachHangThanThiet đã được mô tả trong Sơ đồ lớp, để mô


hình hóa đối tượng Khách hàng thân thiết. Cần thêm:
- Class KhachHangThanThietDB để tương tác với cơ sở dữ liệu.
- Class GiaoDienQuanLyKHTT để tương tác với người dung.
- Class KHTTController được sử dụng để nhận yêu cầu từ người dung và trả
về giao diện kết quả tương ứng.
- Biểu đồ trình tự cho hoạt động Hiển thị danh sách KHTT theo MVC.

Hình 27. Biểu đồ trình tự cho hoạt động Hiển thị danh sách KHTT theo MVC.
- Biểu đồ trình tự cho hoạt động Thêm khách hàng thân thiết theo MVC.
Phân tích và thiết kế hướng đối tượng nhóm 2

Hình 28. Biểu đồ trình tự cho hoạt động Thêm khách hàng thân thiết theo MVC.

- Biểu đồ trình tự cho hoạt động Chỉnh sửa khách hàng thân thiết theo MVC.
Phân tích và thiết kế hướng đối tượng nhóm 2

Hình 29. Biểu đồ trình tự cho hoạt động chỉnh sửa Khách hàng thân thiết theo
MVC.

- Biểu đồ trình tự cho hoạt động Xóa khách hàng thân thiết theo MVC.
Phân tích và thiết kế hướng đối tượng nhóm 2

Hình 30. Biểu đồ trình tự cho hoạt động Xóa sách theo MVC.
1.7. NhanVien, QuanLy.
- Thêm các class NhanVienDB, QuanLyDB để tương tác với cơ sở dữ liệu
NhanVien và QuanLy.
- Thêm class hiển thị thông tin người dung.

2. Sơ đồ Package.
Phân tích và thiết kế hướng đối tượng nhóm 2

2.1. Package Model: Mô hình hóa các đối tượng.

Hình 31. Package Model


Phân tích và thiết kế hướng đối tượng nhóm 2

2.2. Package Controller: Bao gồm các class tiếp nhận yêu cầu từ người dùng và
xử lý để trả lại kết quả giao diện cho người dùng.

Hình 32. Package Controller


Phân tích và thiết kế hướng đối tượng nhóm 2

2.3. Package View: Bao gồm các lớp giao diện tương tác với người dùng.

Hình 33. Package View.


Phân tích và thiết kế hướng đối tượng nhóm 2

2.4. Biểu đồ Package.

Hình 34. Package Diagram.


Phân tích và thiết kế hướng đối tượng nhóm 2

II. Thiết kế lớp và phương thức


1. Các lớp trong Package Object.

Method Name: chinhSuaThongTin() Class Name:


Consumer: Người quản lý.

Description of Responsibilities: Thực hiện việc chỉnh sửa lại thông tin cho Nhân
viên, Khách hàng thân thiết và Quản Lý

Arguments Received: Đối tượng cần chỉnh sửa, Đối tượng chứa thông tin mới.

Type of Value Return: bool, trả về true nếu thay đổi thành công và ngược lại.

Pre-Conditions: Đối tượng chứa thông tin mới phải tồn tại giá trị.

Post-Conditions:
Phân tích và thiết kế hướng đối tượng nhóm 2

- LoaiTaiKhoan: nếu là true thì tài khoản là của Người quản lý, false thì là của
Nhân viên bán hàng.
Method Name: thayDoiTaiKhoan() Class Name: Account
Consumer: Người quản lý

Description of Responsibilities: Thực hiện việc chỉnh sửa lại thông tin tài khooản
cho Người quản lý và Nhân viên

Arguments Received: Thông tin mới và đổi tượng Account cần thay đổi.

Type of Value Return: bool, trả về true nếu thay đổi thành công và ngược lại.

Pre-Conditions: Thông tin mới tồn tại.

Post-Conditions:

- Class HoaDon, class PhieuNhapSach, class DoanhThu.

.
Phân tích và thiết kế hướng đối tượng nhóm 2

- Class Sach.

Method Name: chinhSuaSach() Class Name: Sach


Consumer: Nhân viên bán hàng

Description of Responsibilities: Thực hiện việc chỉnh sửa lại thông tin sách.

Arguments Received: Thông tin mới và đổi tượng Sach cần thay đổi

Type of Value Return: bool, trả về true nếu thay đổi thành công và ngược lại.

Pre-Conditions: Thông tin mới tồn tại.

Post-Conditions:

Method Name: timKiem() Class Name: DanhMucSach


Consumer: Nhân viên bán hàng

Description of Responsibilities: Thực hiện việc tìm kiếm sách trong danh mục
sách.

Arguments Received: Tên sách hoặc tên tác giả.

Type of Value Return: đối tượng sách cần tìm kiếm hoặc danh sách đối tượng
sách có cùng tác giả.
Pre-Conditions: Tên sách hoặc tên tác giả tồn tại.

Post-Conditions:
Phân tích và thiết kế hướng đối tượng nhóm 2

Method Name: them() Class Name: DanhMucSach


Consumer: Nhân viên bán hàng

Description of Responsibilities: Thực hiện việc thêm sách trong danh mục sách.

Arguments Received: Đối tượng Sach cần them

Type of Value Return: bool.

Pre-Conditions: Đối tượng sách tồn tại giá trị.

Post-Conditions: Danh mục sách có thêm một đối tượng, số lượng phần tử tang
thêm 1.

Method Name: xoa() Class Name: DanhMucSach


Consumer: Nhân viên bán hàng

Description of Responsibilities: Thực hiện việc xóa sách trong danh mục sách.
Arguments Received: đối tượng sách cần xóa.

Type of Value Return: bool.

Pre-Conditions: đối tượng sách cần xóa tồn tại.

Post-Conditions: Danh mục sách mất đi một đối tượng, số lượng phần tử giảm đi
1.
Phân tích và thiết kế hướng đối tượng nhóm 2

Method Name: chinhSuaThongTin() Class Name: KhachHangThanThiet


Consumer: Người quản lý

Description of Responsibilities: Thực hiện việc chỉnh sửa thông tin cho khách
hàng thân thiết.
Arguments Received: Thông tin KHTT mới và đối tượng KHTT cần chỉnh sửa.

Type of Value Return: bool.

Pre-Conditions: Thông tin KHTT mới hợp lệ.

Post-Conditions: Đối tượng KHTT được thay đổi thông tin.

Method Name: them() Class Name:


DanhSachKhachHangThanThiet
Consumer: Người quản lý

Description of Responsibilities: Thực hiện việc thêm khách hàng thân thiết vào
danh sách KHTT.
Arguments Received: Đối tượng KHTT cần được thêm.

Type of Value Return: bool.

Pre-Conditions: Đối tượng KHTT tồn tại.


Phân tích và thiết kế hướng đối tượng nhóm 2

Post-Conditions: Danh sách KHTT có thêm một đối tượng KHTT.

Method Name: timKiem() Class Name:


DanhSachKhachHangThanThiet
Consumer: Người quản lý

Description of Responsibilities: Thực hiện việc tìm kiếm khách hàng thân thiết
trong danh sách KHTT.
Arguments Received: tên và ngày sinh KHTT

Type of Value Return: bool.

Pre-Conditions: tên và ngày sinh KHTT hợp lệ

Post-Conditions:

Method Name: xoa() Class Name:


DanhSachKhachHangThanThiet
Consumer: Nhân viên bán hàng

Description of Responsibilities: Thực hiện việc xóa khách hàng thân thiết khỏi
danh sách khách hàng thân thiết.
Arguments Received: Đối tượng KHTT cần xóa

Type of Value Return: bool.

Pre-Conditions: đối tượng KHTT tồn tại.

Post-Conditions: Danh sách khách hàng thân thiết mất đi một đối tượng, số lượng
phần tử giảm đi 1
Phân tích và thiết kế hướng đối tượng nhóm 2

2. Các lớp trong Package Controller.


- Phương thức ketNoi() có mô tả giống nhau cho các class trong lớp
Controller.
Method Name: ketNoi() Class Name:
Consumer:

Description of Responsibilities: thực hiện việc kết nối đến cơ sở dữ liệu


- Phương thức này được gọi trong hàm khởi tạo của class.
Arguments Received:

Type of Value Return: bool.

Pre-Conditions:

Post-Conditions:

Method Name: xuLuDangNhap Class Name: DangNhapController


Consumer:

Description of Responsibilities: Nhận thông tin người dung nhập vào trên giao
diện Đăng nhập, thực hiện việc lấy cơ sở dữ liệu xử lý và trả về kết quả giao diện
cho người dung.

Arguments Received:

Type of Value Return: void

Pre-Conditions:

Post-Conditions:
Phân tích và thiết kế hướng đối tượng nhóm 2

Method Name: Class Name: DangNhapController


xuLyThayDoiTaiKhoan
Consumer:

Description of Responsibilities: Nhận thông tin người dung nhập vào, thực hiện
việc xử lý và trả về kết quả giao diện cho người dung đồng thời lưu thay đổi vào
cơ sở dữ liệu.

Arguments Received:

Type of Value Return: void

Pre-Conditions:

Post-Conditions:

Method Name: getAccount() Class Name: AccountDB


Consumer: Người quản lý

Description of Responsibilities: Thực hiện việc lấy ra Account từ cơ sở dữ liệu.


Arguments Received: Tài khooản

Type of Value Return: đối tượng Account

Pre-Conditions:

Post-Conditions:

Method Name: getListAccount() Class Name: AccountDB


Consumer: Người quản lý
Phân tích và thiết kế hướng đối tượng nhóm 2

Description of Responsibilities: Thực hiện việc lấy ra tất cả các Account được lưu
trong cơ sở dữ liệu.
Arguments Received:

Type of Value Return: danh sách đối tượng Account

Pre-Conditions:

Post-Conditions:

Method Name: chinhSuaTaiKhoan() Class Name: AccountDB


Consumer: Người quản lý

Description of Responsibilities: Thực hiện việc lưu thay đổi tài khoản vào cơ sở
dữ liệu.
Arguments Received: Tài khoản cũ, tài khoản mới

Type of Value Return: bool

Pre-Conditions:

Post-Conditions:

Method Name: xuLyTimKiemSach() Class Name: SachController


Phân tích và thiết kế hướng đối tượng nhóm 2

Consumer:

Description of Responsibilities: Thực hiện việc tìm kiếm sách và hiển thị lên giao
diện cho người dùng.

Arguments Received: Tên sách


Type of Value Return: Danh sách đối tượng sách, nếu có nhiều kết quả hoặc một
đối tượng sách nếu có một kết quả.
Pre-Conditions:

Post-Conditions:

Method Name: xuLyXoaSach() Class Name: SachController


Consumer:

Description of Responsibilities: Thực hiện việc xóa Sách ra khỏi DanhMucSach


và cơ sở dữ liệu đồng thời hiển thị giao diện kết quả cho người dùng

Arguments Received: Đối tượng Sách.


Type of Value Return: void

Pre-Conditions:

Post-Conditions:

Method Name: xuLyThemSach() Class Name: SachController


Consumer:

Description of Responsibilities: Thực hiện việc thêm Sách vào DanhMucSach và


cơ sở dữ liệu đồng thời hiển thị giao diện kết quả cho người dùng

Arguments Received: Đối tượng Sách.


Type of Value Return: void
Phân tích và thiết kế hướng đối tượng nhóm 2

Pre-Conditions:

Post-Conditions: DanhMucSach phải tăng thêm 1, đồng thời cơ sở dữ liệu của


Sach tang thêm 1.

Method Name: xuLyChinhSuaSach() Class Name: SachController


Consumer:

Description of Responsibilities: Thực hiện việc chỉnh sửa thông tin Sách lưu lại
vào DanhMucSach và cơ sở dữ liệu.

Arguments Received: Đối tượng Sách cũ, đối tượng Sách mới.
Type of Value Return: void

Pre-Conditions:

Post-Conditions:

Method Name: layDMSach() Class Name: SachController


Consumer:

Description of Responsibilities: Thực hiện việc lấy toàn bộ sách trong cơ sở dữ


liệu.
Arguments Received:

Type of Value Return: danh sách đối tượng Sach


- Và được lưu vào class DanhMucSach.
Pre-Conditions:

Post-Conditions:
Phân tích và thiết kế hướng đối tượng nhóm 2

Method Name: Class Name: KHTTController


xuLyTimKiemKHTT()
Consumer: Người quản lý

Description of Responsibilities:
Thực hiện việc tìm kiếm khách hàng thân thiết và hiển thị lên giao diện cho người
dùng.

Arguments Received: Tên và ngày sinh KHTT


Type of Value Return: void

Pre-Conditions:

Post-Conditions:

Method Name: xuLyThemKHTT() Class Name: KHTTController


Consumer: Người quản lý

Description of Responsibilities:
Thực hiện việc thêm Khách hàng thân thiết vao DanhSachKhachHangThanThiet
và cơ sở dữ liệu đồng thời hiển thị giao diện kết quả cho người dùng.

Arguments Received: Đối tượng KHTT


Type of Value Return: void

Pre-Conditions:
Phân tích và thiết kế hướng đối tượng nhóm 2

Post-Conditions: DanhSachKhachHangThanThiet tăng thêm 1, cơ sở dữ liệu


Khách hàng thân thiết tang them 1.

Method Name: xuLyXoaKHTT() Class Name: KHTTController


Consumer: Người quản lý

Description of Responsibilities:
Thực hiện việc xóa Khách hàng thân thiết khỏi DanhSachKhachHangThanThiet
và cơ sở dữ liệu đồng thời hiển thị giao diện kết quả cho người dùng.

Arguments Received: Đối tượng KHTT


Type of Value Return: void

Pre-Conditions:

Post-Conditions: DanhSachKhachHangThanThiet giảm đi 1, cơ sở dữ liệu Khách


hàng thân thiết giảm đi 1.

Method Name: capNhatGiaoDien() Class Name: KHTTController


Consumer: Người quản lý

Description of Responsibilities: Thực hiện việc cập nhật lại giao diện trang quản
lý sau mỗi thao tác xử lý

Arguments Received:
Type of Value Return: void

Pre-Conditions:

Post-Conditions:

Method Name: layDSKHTT() Class Name: KhachHangThanThietDB


Phân tích và thiết kế hướng đối tượng nhóm 2

Consumer:

Description of Responsibilities: Thực hiện việc lấy toàn bộ khách hàng thân thiết
trong cơ sở dữ liệu.
Arguments Received:

Type of Value Return: danh sách đối tượng KhachHangThanThiet


- Và được lưu vào listKHTT của class DanhSachKhachHangThanThiet
Pre-Conditions:

Post-Conditions:

Method Name: xuLyLapPhieuNhap() Class Name: PhieuNhapController


Consumer: Người quản lý

Description of Responsibilities: Thực hiện việc tiếp nhận thao tác từ người dung,
nhận thông tin người dung nhập vào và thực hiện xử lý kiểm tra và lưu vào cơ sở
dữ liệu đồng thời trả về kết quả cho người dung.

Arguments Received:
Type of Value Return: void

Pre-Conditions:

Post-Conditions:

Method Name: Class Name: PhieuNhapController


congThemVaoDoanhThu()
Consumer: Người quản lý
Phân tích và thiết kế hướng đối tượng nhóm 2

Description of Responsibilities: Mỗi khi một phiếu nhập được tạo ra, sẽ thực hiện
việc cộng tổng giá trị phiếu nhập vào giá trị TongChi và ChiTheoThang của class
DoanhThu đồng thời lưu vào cơ sở dữ liệu.
Arguments Received: giá trị tổng phiếu nhập.
Type of Value Return: void

Pre-Conditions:

Post-Conditions:

Method Name: layDSPhieuNhap() Class Name: PhieuNhapDB


Consumer: Người quản lý

Description of Responsibilities: thực hiện việc lấy ra danh sách các phiếu nhập
trong tháng.
Arguments Received: Tháng

Type of Value Return: danh sách đối tượng PhieuNhap trong tháng.

Pre-Conditions:

Post-Conditions:

Method Name: layTuCSDL () Class Name: PhieuNhapDB


Consumer: Người quản lý

Description of Responsibilities: thực hiện việc lấy ra dữ liệ phiếu nhập từ cơ sở


dữ liệu Phiếu Nhập.
Arguments Received: Ngày lập phiếu nhập.

Type of Value Return: Danh sách đối tượng PhieuNhap nếu có nhiều phiếu nhập
trong ngày, hoặc một đối tượng PhieuNhap và trả về NULL nếu lấy giá trị thất
bại.

Pre-Conditions: Ngày nhập hợp lệ.


Phân tích và thiết kế hướng đối tượng nhóm 2

Post-Conditions:

Method Name: xuLyLapHoaDon() Class Name: HoaDonController


Consumer: Người quản lý

Description of Responsibilities: Thực hiện việc tiếp nhận thao tác từ người dung,
nhận thông tin người dung nhập vào và thực hiện xử lý kiểm tra và lưu vào cơ sở
dữ liệu đồng thời trả về kết quả cho người dung.

Arguments Received:
Type of Value Return: void

Pre-Conditions:

Post-Conditions:

Method Name: Class Name: HoaDonController


congThemVaoDoanhThu()
Consumer: Người quản lý

Description of Responsibilities: Mỗi khi một hoa don được tạo ra, sẽ thực hiện
việc cộng tổng giá trị phiếu nhập vào giá trị TongThu và ThuTheoThang của
class DoanhThu đồng thời lưu vào cơ sở dữ liệu.
Arguments Received: giá trị tổng hóa đơn
Type of Value Return: void

Pre-Conditions:
Phân tích và thiết kế hướng đối tượng nhóm 2

Post-Conditions:

Method Name: layDSHoaDon() Class Name: HoaDonDB


Consumer:

Description of Responsibilities: thực hiện việc lấy ra danh sách hóa đơn theo ngày

Arguments Received: ngày

Type of Value Return: danh sách đối tượng HoaDon

Pre-Conditions:

Post-Conditions:

Method Name: thongKeDoanhThu Class Name: DoanhThuController


Consumer:

Description of Responsibilities: thực hiện việc tính toán tỉ lệ tổng thu tổng chi và
thực hiện việc trả về kết quả trên giao diện cho người sử dụng.

Arguments Received:

Type of Value Return: void

Pre-Conditions:

Post-Conditions:
Phân tích và thiết kế hướng đối tượng nhóm 2

Method Name: themVaoCSDL() Class Name: DoanhThuDB


Consumer:

Description of Responsibilities: thực hiện việc thêm dữ liệu về doanh thu vào
trong cơ sở dữ liệu.

Arguments Received: đối tượng HoaDon

Type of Value Return: bool.

Pre-Conditions:

Post-Conditions: Cơ sở dữ liệu doanh thu tăng thêm một phần tử

Method Name: layTuCSDL() Class Name: DoanhThuDB


Consumer:

Description of Responsibilities: thực hiện việc lay ra thông tin DoanhThu tu cơ sở


dữ liệu.

Arguments Received:

Type of Value Return: đối tượng DoanhThu

Pre-Conditions:

Post-Conditions:

Method Name: chinhSuaThongTin() Class Name: QuanLyDB


Phân tích và thiết kế hướng đối tượng nhóm 2

Consumer:

Description of Responsibilities: thực hiện việc lưu thông tin quản lý sau khi thay
đổi vào cơ sở dữ liệu
Arguments Received: Đối tượng QuanLy cũ, đối tượng QuanLy mới

Type of Value Return: bool.

Pre-Conditions:

Post-Conditions:

Method Name: chinhSuaThongTin() Class Name: NhanVienDB


Consumer:

Description of Responsibilities: thực hiện việc lưu thông tin nhân viên sau khi
thay đổi vào cơ sở dữ liệu
Arguments Received: Đối tượng NhanVien cũ, đối tượng NhanVien mới

Type of Value Return: bool.

Pre-Conditions:

Post-Conditions:

Method Name: themNV() Class Name: NhanVienDB


Consumer:

Description of Responsibilities: thực hiện việc them nhân viên vào cơ sở dữ liệu.
Arguments Received: Đối tượng NhanVien
Phân tích và thiết kế hướng đối tượng nhóm 2

Type of Value Return: bool.

Pre-Conditions:

Post-Conditions: Cơ sở dữ liệu nhân viên tăng thêm 1.


Phân tích và thiết kế hướng đối tượng nhóm 2

3. Các lớp trong Package View.


3.1. Giao diện Đăng nhập.

Hình 35. Giao diện đăng nhập.


Phân tích và thiết kế hướng đối tượng nhóm 2

3.2. Giao diện màn hình chính.

Hình 36. Giao diện màn hình chính cho Nhân Viên.

Hình 37. Giao diện màn hình chính cho Quản lý.
Phân tích và thiết kế hướng đối tượng nhóm 2

3.3. Giao diện Quản lý sách.

Hình 38. Giao diện Quản lý sách.

Method Name: hienThiDMSach() Class Name: GiaoDienQuanLySach


Consumer:

Description of Responsibilities: Thực hiện việc đọc toàn bộ Sách từ cơ sở dữ liệu


và hiển thị ra giao diện cho người dung.

Arguments Received: DanhMucSach


Type of Value Return: void

Pre-Conditions:

Post-Conditions:

Method Name: capNhatGiaoDien() Class Name: GiaoDienQuanLySach


Phân tích và thiết kế hướng đối tượng nhóm 2

Consumer: Người quản lý

Description of Responsibilities: Thực hiện việc cập nhật lại giao diện trang quản
lý sau mỗi thao tác xử lý

Arguments Received:
Type of Value Return: void

Pre-Conditions:

Post-Conditions:

Hình 39. Giao diện cập nhật sách.


Phân tích và thiết kế hướng đối tượng nhóm 2

Method Name: kiemTraThongTin() Class Name: GiaoDienCapNhatSach


Consumer:

Description of Responsibilities: Kiểm tra tính hợp lệ các thông tin mà người dung
nhập vào và trả về giao diện kết quả tương ứng.
Arguments Received:
Type of Value Return: Sach, nếu không hợp lý trả về NULL

Pre-Conditions:

Post-Conditions:

3.4. Giao diện Quản lý khách hàng thân thiết.

Hình 40. Giao diện quản lý Khách hàng thân thiết.


Method Name: hienThiDSKHTT() Class Name: GiaoDienQuanLyKHTT
Consumer:
Phân tích và thiết kế hướng đối tượng nhóm 2

Description of Responsibilities: Thực hiện việc đọc toàn bộ Sách từ cơ sở dữ liệu


và hiển thị ra giao diện cho người dung.

Arguments Received: DanhSachKHTT


Type of Value Return: void

Pre-Conditions:

Post-Conditions:

Method Name: capNhatGiaoDien() Class Name: GiaoDienQuanLyKHTT


Consumer: Người quản lý

Description of Responsibilities: Thực hiện việc cập nhật lại giao diện trang quản
lý sau mỗi thao tác xử lý

Arguments Received:
Type of Value Return: void

Pre-Conditions:

Post-Conditions:
Phân tích và thiết kế hướng đối tượng nhóm 2

Hình 41. Giao diện cập nhật Khách hàng thân thiết.
Method Name: kiemTraThongTin() Class Name: GiaoDienCapNhatSach
Consumer:

Description of Responsibilities: Kiểm tra tính hợp lệ các thông tin mà người dung
nhập vào và trả về giao diện kết quả tương ứng.
Arguments Received:
Type of Value Return: KhachHangThanThiet, nếu không hợp lý trả về NULL

Pre-Conditions:

Post-Conditions:
Phân tích và thiết kế hướng đối tượng nhóm 2

3.5. Giao diện thông tin người dùng.

Hình 42. Giao diện hiển thị thông tin Người dung.

3.6. Giao diện hiển thị doanh thu.


Phân tích và thiết kế hướng đối tượng nhóm 2

Hình 43. Giao diện Thống kê doanh thu.

3.7. Giao diện Lập phiếu nhập.

Hình 44. Giao diện Lập phiếu nhập.


Phân tích và thiết kế hướng đối tượng nhóm 2

Method Name: kiemTraThongTin() Class Name: GiaoDienLapPhieuNhap


Consumer:

Description of Responsibilities: Kiểm tra tính hợp lệ các thông tin mà người dung
nhập vào và trả về giao diện kết quả tương ứng.
Arguments Received:
Type of Value Return: PhieuNhapSach, nếu không hợp lý trả về NULL

Pre-Conditions:

Post-Conditions:

3.8. Giap diện Lập hóa đơn.

Hình 45. Giao diện Lập hóa đơn.


Phân tích và thiết kế hướng đối tượng nhóm 2

Method Name: Class Name: GiaoDienLapHoaDon


kiemTraThongTinHD()
Consumer:

Description of Responsibilities: Kiểm tra tính hợp lệ các thông tin mà người dung
nhập vào và trả về giao diện kết quả tương ứng.
Arguments Received:
Type of Value Return: HoaDon, nếu không hợp lý trả về NULL

Pre-Conditions:

Post-Conditions:
Phân tích và thiết kế hướng đối tượng nhóm 2

III. Thiết kế cơ sở dữ liệu.


1. Package Model:
- Từ Package Model, xác địng các thực thể và thực hiện thiết kế cơ sở dữ liệu.

2. Xác định các thực thể

Tên thực thể Tên sử dụng Thuộc tính


Sách Sach Tên sách, Mã sách, Tên tác giả, Giá
nhập , Giá bán, Số lượng, Khu vực bày
bán
Phiếu nhập PhieuNhapSach Mã phiếu nhập,Sách nhập,Số lượng
sách sách ,Tổng giá nhập, Ngày nhập

Hóa đơn HoaDon Mã hóa đơn,Sách bán, Tên khách


hàng, Mã KHTT, Tổng giá tiền, Ngày
bán,Mã nhân viên lập
Phân tích và thiết kế hướng đối tượng nhóm 2

Doanh thu DoanhThu Mã doanh thu ,Tháng,Phiếu nhập,Hóa


đơn, Tổng thu, Tổng chi
Nhân viên NhanVien Tên nhân viên, Chức vụ, Mã nhân
viên, Ngày sinh, Số điện thoại
Account Account Username,Password, Loại tài khoản

Khách hàng KHTT Tên khách hàng, Mã khách hàng, Ngày


thân thiết sinh, Số điện thoại, Phần trăm khuyến
mại

3. Mô hình thực thể liên kết.


3.1. Xác định các liên kết.
Nhân viên – Có – Account
Nhân viên – Lập – Hóa đơn
Phiếu nhập sách – Có – Sách
Hóa đơn – Có – Sách
Doanh thu – Có – Phiếu nhập sách
Doanh thu – Có – Hóa đơn
3.2. Mô hình thực thể liên kết ERD.

Phiếu nhập sách
Mã phiếu nhập
Sách nhập Có Doanh thu

Sách Số lượng sách Mã doanh thu
Tên sách Giá nhập Tháng
Mã sách Ngày nhập Phiếu nhập
Tên tác giả Hóa đơn
Có Thu
Giá nhập Hóa đơn
Giá bán Chi
Số lượng Có  Mã hóa đơn
Tên khách hàng
Khu vực bày bán
Sách bán
Số lượng sách
Giá bán
Ngày bán
Mã KHTT
Mã nhân viên lập

Khách hàng thân thiết
Nhân viên Lập Tên khách hàng
Có  
Tên nhân viên Mã khác hàng
Chức vụ Ngày sinh
Mã nhân viên Số điện thoại
Ngày sinh Account Phần trăm khuyến mãi

Số điện thoại Username
Password
Loại tài khoản
Mã nhân viên

Hình 46. Mô hình thực thể liên kết ERD.


Phân tích và thiết kế hướng đối tượng nhóm 2

4. Chuẩn hóa.
4.1. Chuẩn hóa.
Bảng sách
Thuộc tính Tên sách, Mã sách, Tên tác giả, Giá nhập , Giá bán, Số lượng,
Khu vực bày bán
Ràng buộc & quy tắc nghiệp vụ Phụ thuộc hàm
Mỗi một tựa sách có một mã sách duy nhất Mã sách→Tên sách
Mỗi tựa sách có thể có một hoặc nhiều tác Mã sách→Giá bán
giả Mã sách→Số lượng
Giá nhập của mỗi tựa sách thay đổi theo Mã sách→Khu vực bày bán
từng đợt nhập về
Chuẩn hóa
Khóa duy nhất : K= (Mã sách , Tác giả, Giá nhập)
Vi phạm chuẩn 2,3
→ Tách thành 3 quan hệ :
Sách (Mã sách, Tên sách, Giá nhập ,Giá bán, Số lượng, Khu vực bày bán);
Chi tiết tác giả (Mã CTTG, Mã sách, Tác giả);
Chi tiết giá nhập(Mã CTGN,Mã sách,Giá nhập,Số lượng);

Bảng phiếu nhập sách


Thuộc tính Mã phiếu nhập ,Sách nhập,Số lượng,Giá nhập, Ngày nhập
Ràng buộc & quy tắc nghiệp vụ Phụ thuộc hàm
Mỗi một phiếu nhập có một mã phiếu nhập Mã phiếu nhập → Ngày nhập
duy nhất (Mã phiếu nhập,Sách nhập)
Một phiếu nhập sách gồm 1 hoăc nhiều →Số lượng
đầu sách với số lượng và giá nhập tương (Mã phiếu nhập,Sách nhập)
ứng →Giá nhập

Chuẩn hóa
Khóa duy nhất : K= (Mã phiếu nhập,Sách nhập)
Vi phạm chuẩn 2,3
→ Tách thành 2 quan hệ :
Phiếu nhập sách(Mã phiếu nhập , Ngày nhập);
Chi tiết phiếu nhập(Mã CTPN,Mã phiếu nhập,Mã sách,Số lượng,Giá nhập);

Bảng hóa đơn


Thuộc tính Mã hóa đơn, Tên khách hàng, Mã KHTT,Sách bán,Số
lượng,Giá bán, Ngày bán,Mã nhân viên lập
Ràng buộc & quy tắc nghiệp vụ Phụ thuộc hàm
Mỗi một hóa đơn có một mã hóa đơn duy Mã hóa đơn → Tên khách hàng
nhất Mã hóa đơn → Mã KHTT
Một hóa đơn có thể có một hoặc nhiều đầu Mã hóa đơn → Ngày bán
sách Mã hóa đơn → Mã nhân viên lập
Phân tích và thiết kế hướng đối tượng nhóm 2

Mỗi đầu sách có số lượng khác nhau (Mã hóa đơn ,Sách bán)→Số
lượng
(Mã hóa đơn ,Sách bán)→Giá
bán
Chuẩn hóa
Khóa duy nhất : K= (Mã hóa đơn,Sách bán)
Vi phạm chuẩn 2,3
→ Tách thành 2 quan hệ :
Phiếu nhập sách(Mã hóa đơn,Tên khách hàng,Mã KHTT, Ngày bán,Mã nhân
viên lập);
Chi tiết Hóa đơn(Mã CTHD,Mã hóa đơn,Mã sách,Số lượng,Giá bán);

Bảng doanh thu


Thuộc tính Mã doanh thu ,Phiếu nhập sách,Hóa đơn,Tháng, Thu, Chi
Ràng buộc & quy tắc nghiệp vụ Phụ thuộc hàm
Mỗi một doanh thu có một mã doanh thu Mã doanh thu → Tháng
duy nhất (Mã doanh thu,Phiếu nhập sách)
Mỗi doanh thu có thể không có hoặc có →Thu
nhiều phiếu nhập,hóa đơn (Mã doanh thu,Hóa đơn)→ Chi

Chuẩn hóa
Khóa duy nhất : K= (Mã doanh thu,Phiếu nhập sách,Hóa đơn)
Vi phạm chuẩn 2,3
→ Tách thành 3 quan hệ :
Doanh thu (Mã doanh thu ,Tháng);
Chi tiết thu(Mã CTT,Mã doanh thu, Mã hóa đơn, Tổng tiền);
Chi tiết chi(Mã CTC,Mã doanh thu, Mã phiếu nhập sách, Tổng tiền);

Bảng nhân viên


Thuộc tính Tên nhân viên, Chức vụ, Mã nhân viên, Ngày sinh, Số điện
thoại
Ràng buộc & quy tắc nghiệp vụ Phụ thuộc hàm
Mỗi một nhân viên có một mã nhân viên Mã nhân viên → Tên nhân viên
duy nhất Mã nhân viên → Chức vụ
Mã nhân viên → Ngày sinh
Mã nhân viên → Số điện thoại
Chuẩn hóa
Khóa duy nhất : K= Mã nhân viên
Không vi phạm chuẩn 1, 2 và 3

Bảng khách hàng thân thiết


Phân tích và thiết kế hướng đối tượng nhóm 2

Thuộc tính Tên khách hàng, Mã khách hàng, Ngày sinh, Số điện
thoại,Phần trăm khuyến mại
Ràng buộc & quy tắc nghiệp vụ Phụ thuộc hàm
Mỗi một khách hàng có một mã khách Mã khách hàng → Tên khách
hàng duy nhất hàng
Mã khách hàng → Phần trăm
khuyến mại
Mã khách hàng → Ngày sinh
Mã khách hàng → Số điện thoại
Chuẩn hóa
Khóa duy nhất : K= Mã khách hàng
Không vi phạm chuẩn 1, 2 và 3

Bảng Account
Thuộc tính Username,Password, Loại tài khoản, Mã nhân viên
Ràng buộc & quy tắc nghiệp vụ Phụ thuộc hàm
Mỗi một account có một username duy Username → Password
nhất Username → Loại tài khoản
Username →Mã nhân viên
Chuẩn hóa
Khóa duy nhất : K= Username
Không vi phạm chuẩn 1, 2 và 3

4.2. Mô hình quan hệ sau chuẩn hóa

Tên quan hệ Thuộc tính


Sach TenSach, MaSach ,GiaNhap, GiaBan , SoLuong,
KhuVucBayBan
ChiTietTacGia MaCTTG, MaSach, TenTacGia
ChiTietGiaNhap MaCTGN, MaSach, GiaNhap,SoLuong
PhieuNhapSach MaPhieuNhap, NgayNhap,TongGiaNhap
ChiTietPhieuNhap MaCTPN,MaPhieuNhap,MaSach,SoLuong,GiaNhap
HoaDon MaHoaDon,TenKhachHang,MaKHTT,NgayBan,
MaNhanVienLap,TongTien
ChiTietHoaDon MaCTHD,MaHoaDon,MaSach ,SoLuong,ThanhTien
DoanhThu MaDoanhThu, Thang ,TongThu,Tong Chi
ChiTietThu MaCTT,MaDoanhThu,MaHoaDon,TongTien
ChiTietChi MaCTC, MaDoanhThu,MaPhieuNhap,TongTien
NhanVien TenNhanVien, ChucVu, MaNV, NgaySinh,
SoDienThoai
KhachHangThanThiet TenKhachHang, MaKH, NgaySinh, SoDienThoai
Account Username, Password,MaNhanVien, LoaiTaiKhoan
Phân tích và thiết kế hướng đối tượng nhóm 2

5. Mô tả chi tiết các quan hệ.


 Sach
Thuộc tính Kiểu dữ liệu Ràng buộc
MaSach Varchar(10) PK
TenSach Nvarchar(100) Not null
GiaNhap Money Not null
GiaBan Money Not null
SoLuong int Not null , >0
KhuVucBayBan Nvarchar(100) Notnull

 ChiTietTacGia
Thuộc tính Kiểu dữ liệu Ràng buộc
MaCTTG Varchar(10) PK
MaSach Varchar(10) FK to Sach(MaSach )
TenTacGia Nvarchar(30) Not null

 ChiTietGiaNhap
Thuộc tính Kiểu dữ liệu Ràng buộc
MaCTGN Varchar(10) PK
MaSach Varchar(10) FK to Sach(MaSach )
GiaNhap Money Not null
SoLuong int Not null , >0

 PhieuNhapSach
Thuộc tính Kiểu dữ liệu Ràng buộc
MaPhieuNhap Varchar(10) PK
TongTien Money Not null
NgayNhap Datetime Notnull

 ChiTietPhieuNhap
Thuộc tính Kiểu dữ liệu Ràng buộc
MaCTPN Varchar(10) PK
MaPhieuNhap Varchar(10) FK to PhieuNhapSach
(MaPhieuNhap)
MaSach Varchar(10) FK to Sach(MaSach)
SoLuong int Not null , >0
GiaNhap Money Not null
 HoaDon
Thuộc tính Kiểu dữ liệu Ràng buộc
MaHoaDon Varchar(10) PK
TenKhachHang Nvarchar(30) Not null
Phân tích và thiết kế hướng đối tượng nhóm 2

MaKHTT Varchar(10) FK to
KhachHangThanThiet(MaKH)
TongTien Money Not null
NgayLap Datetime Notnull
MaNhanVienLap Varchar(10) FK to NhanVien(MaNV)

 ChiTietHoaDon
Thuộc tính Kiểu dữ liệu Ràng buộc
MaCTHD Varchar(10) PK
MaHoaDon Varchar(10) FK to HoaDon(MaHoaDon)
MaSach Varchar(10) FK to Sach(MaSach)
SoLuong int Not null , >0
ThanhTien Money Not null

 DoanhThu
Thuộc tính Kiểu dữ liệu Ràng buộc
MaDoanhThu Varchar(10) PK
Thang int Not null, giá trị 1→12
TongThu Money Not null
TongChi Money Not null

 ChiTietThu
Thuộc tính Kiểu dữ liệu Ràng buộc
MaCTT Varchar(10) PK
MaDoanhThu Varchar(10) FK to
DoanhThu(MaDoanhThu)
MaHoaDon Varchar(10) FK to HoaDon(MaHoaDon)
TongTien Money Not null

 ChiTietChi
Thuộc tính Kiểu dữ liệu Ràng buộc
MaCTC Varchar(10) PK
MaDoanhThu Varchar(10) FK to
DoanhThu(MaDoanhThu)
MaPhieuNhap Varchar(10) FK to
PhieuNhapSach(MaPhieuNhap)
TongTien Money Not null
Phân tích và thiết kế hướng đối tượng nhóm 2

 NhanVien
Thuộc tính Kiểu dữ liệu Ràng buộc
MaNV Varchar(10) PK
Ten Nvarchar(30) Not null
NgaySinh Date Not null
SDT varchar Dãy các chữ số liên
tiếp
ChucVu Nvarchar(20) Not null

 KhachHangThanThiet
Thuộc tính Kiểu dữ liệu Ràng buộc
MaKH Varchar(10) PK
TenKhachHang Nvarchar(30) Not null
NgaySinh Date Not null
SDT varchar Dãy các chữ số liên
tiếp
PhanTramKhuyenMai int Not null, giá trị
1→100

 Account
Thuộc tính Kiểu dữ liệu Ràng buộc
Username varchar(20) PK
Pasword varchar(8) Not null
LoaiTaiKhoan Nvarchar(30) Not null
MaNhanVien varchar(30) FK to
NhanVien(MaNV)
Phân tích và thiết kế hướng đối tượng nhóm 2

6. Mô hình thực thể cho quan hệ.


ChiTietGiaNhap *
MaCTGN
MaSach
GiaNhap ChiTietChi
ChiTietPhieuNhap * MaCTC
SoLuong
MaCTPN
MaDoanhThu
MaPhieuNhap
PhieuNhap MaPhieuNhap
MaSach MaPhieuNhap TongTien
Sach *
SoLuong TongTien
MaSach
[Gia nhap] DoanhThu
TenSach NgayLap
MaDoanhThu
GiaNhap Thang
GiaBan TongThu
SoLuong
ChiTietHoaDon ChiTietThu TongChi
KhuVucBayban MaCTT
MaCTHD
MaDoanhThu
MaHoaDon HoaDon
MaSach MaHoaDon MaHoaDon

SoLuong TenKhachHang TongTien

ThanhTien MaKHTT
ChiTietTacGia TongTien
MaCTTG
NgayLap
MaSach
MaNhanVienLap
TacGia NhanVien KHTT
Ten TenKhachHang
NgaySinh
NgaySinh
SDT
Account SDT
ChucVu Username MaKH
MaNV Password
MaNhanVien
LoaiTaiKhoan

Hình 47. Mô hình thực thể cho quan hệ.


Phân tích và thiết kế hướng đối tượng nhóm 2

KẾT LUẬN
Trong quá trình thực hiện Bài tập lớn môn học Phân tích và thiết kế hướng
đối tượng, chúng em đã học được nhiểu thứ mới, hiểu được cách thức một hệ thống
hoạt động ra sao, các bước trong việc xây dựng một phần mềm, thực hiện việc phân
tích và thiết kế hệ thống như thế nào. Đây sẽ là hành trang kiến thức quan trọng, để
chúng em có thể thực hiện việc xây dựng những phần mềm sau này.

Trong quá trình học tập, chúng em nhận được sự hướng dẫn nhiệt tình từ
Thầy Nguyễn Thanh Bình, chúng em có thể hoàn thành được nội dung bài tập lớn
và hiểu về việc phân tích thiết kế hệ thống là nhờ sự giúp đỡ của Thầy.

Chúng em xin chân thành cảm ơn Thầy.

You might also like