BÀI TẬP LỚN MÔN PHÂN TÍCH VÀ THIẾT KẾ HƯỚNG ĐỐI TƯỢNG Hệ thống quản lý thư viện Thời gian gần đây do sự cạnh tranh ngày càng gay gắt cũng như nền kinh tế khó khăn khiến cho lợi nhuận của “Nhà sách Bác Kính” giảm xuống. Do đó nhà sách đã phải cắt giảm nhân viên để giảm chi phí, tuy nhiên điều này dẫn tới tốc độ phục vụ khách hàng bị giảm xuống đáng kể làm ảnh hưởng xấu tới hình ảnh cũng như khả năng cạnh tranh của nhà sách với các đối thủ.
1 Đại học Bách Khoa Hà Nội Viện Điện Tử Viễn Thông ====***==== BÀI TẬP LỚN MÔN PHÂN TÍCH VÀ THIẾT KẾ HƯỚNG ĐỐI TƯỢNG Đề tài: Hệ thống quản lý thư viện Giáo viên hướng dẫn: TS. Trần Đỗ Đạt Sinh viên thực hiện: Đỗ Trung Đức Nguyễn Tiến Đạt Trần Xuân Bách Hoàng Văn Pháp Lớp KSTN – ĐTVT – K54 2 Mục lục Lời nói đầu 4 1. Bài toán thực tế 5 1.1. Mô hình kinh doanh 5 1.2. Bất cập của mô hình hiện tại 5 1.3. Đề xuất giải pháp 5 2. Yêu cầu hệ thống 6 2.1. Mượn sách 6 2.2. Trả sách 6 2.3. Tìm kiếm 6 2.4. Chứng thực 6 2.5. Thay đổi tiền cọc và cập nhật phí hàng tháng 6 2.6. In hóa đơn 6 3. Phân tích tính khả thi 7 3.1. Khả thi về kinh tế 7 3.2. Khả thi về kỹ thuật 9 4. Xác định kích thước hệ thống 10 4.1. Liệt kê các khả năng của chương trình 10 4.2. Tổng số điểm chức năng chưa hiệu chỉnh (TUFP - Total unadjusted function Points): 10 4.3. Tổng độ phức tạp xử lý (TPC-Total Processing Complexity) : 11 4.4. Tổng độ phức tạp hiệu chỉnh 11 4.5. Tổng điểm chức năng đã hiệu chỉnh (TAFP - Total Adjusted Function Points) : 11 4.6. Đánh giá nhân lực cần thiết : 11 4.7. Đánh giá thời gian cần thiết : 11 5. Xây dựng kế hoạch phát triển hệ thống 12 5.1. WBS 12 5.2. Biểu đồ Gantt 13 6. Xây dựng tài liệu yêu cầu hệ thống 14 6.1. Lựa chọn kĩ thuật phân tích yêu cầu 14 6.2. Lựa chọn phương pháp thu thập yêu cầu 14 6.3. Yêu cầu phi chức năng (Nonfunctional Requirement) 16 3 6.4. Yêu cầu chức năng (Functional Requirement) 17 7. Xây dựng biểu đồ hoạt động 18 8. Biểu đồ ca sử dụng 19 8.1. Nhận diện các ca sử dụng chính 19 8.2. Mở rộng ca sử dụng chính 19 8.3. Bảng mô tả ca sử dụng 20 8.4. Vẽ biểu đồ ca sử dụng 29 9. Biểu đồ lớp 31 9.1. Nhận diện lớp 31 9.2. Xây dựng thẻ CRC 33 9.3. Vẽ biểu đồ lớp 42 10. Biểu đồ tuần tự 43 10.1. Xác định ngữ cảnh 43 10.2. Xác định các đối tượng tham gia 43 10.3. Xác định đường sống cho mỗi đối tượng. 45 10.4. Biểu diễn thông điệp. 46 10.5. Biểu diễn các điểm bắt đầu hoạt động trên mỗi đường sống. 46 10.6. Kiểm tra lại biểu đồ. 46 11. Biểu đồ giao tiếp 50 11.1. Tìm sách 50 11.2. Mượn sách 51 11.3. Trả sách 52 12. Biểu đồ máy trạng thái 53 12.1. BorrowRequest 53 12.2. SearchRequest 54 13. Biểu đồ gói 55 13.1. Xác định ngữ cảnh 55 13.2. Nhóm các lớp lại với nhau thành các gói 55 13.3. Xác định mối quan hệ phụ thuộc giữa các gói 56 13.4. Vẽ biểu đồ gói 56 Kết quả đạt được 57 Kết luận 57 4 Lời nói đầu Khu vực xung quanh trường THPT Chuyên Hùng Vương có 3 thư viện tư nhân cùng hoạt động. Các thư viện này thu phí theo tháng và cho học sinh thuê những cuốn sách rất cần trong quá trình học tập hàng ngày cũng như ôn thi đại học của học sinh (những sách ôn thi đại học thường không có trong các thư viện tỉnh, thành phố). Một trong 3 thư viện đó có tên “Nhà sách Bác Kính” là nơi 1 thành viên trong nhóm đã từng làm việc thời phổ thông. Thời gian gần đây do sự cạnh tranh ngày càng gay gắt cũng như nền kinh tế khó khăn khiến cho lợi nhuận của “Nhà sách Bác Kính” giảm xuống. Do đó nhà sách đã phải cắt giảm nhân viên để giảm chi phí, tuy nhiên ddieuf này dẫn tới tốc độ phục vụ khách hàng bị giảm xuống đáng kể làm ảnh hưởng xấu tới hình ảnh cũng như khả năng cạnh tranh của nhà sách với các đối thủ. Từ thực tế đó nhóm đã nảy ra ý tưởng thiết kế một phần mềm chuyên dụng trong việc quản lý nhà sách có thể nhờ đó giúp cắt giảm 1 lượng đáng kể nhân viên mà thời gian phục vụ khách hàng vẫn nhanh chóng như cũ. Qua đó nâng cao lợi nhuận, khả năng cạnh tranh cũng như hình ảnh của nhà sách đối với khách hàng. Từ đó, nhóm chúng em quyết định lựa chọn đề tài “Thiết kế hệ thống quản lý thư viện” cho bài tập lớn môn học thiết kế hướng đối tượng với mục đích giúp nắm chắc các kiến thức môn học, hiểu rõ quy trình phân tích thiết kế một hệ thống thực tế, đồng thời cũng đặt nền tảng cho việc triển khai hệ thống trong thực tế mà nhóm dự định sẽ tiến hành vào dịp hè sau khi môn học kết thúc. Chúng em chân thành cảm ơn thầy giáo, TS Trần Đỗ Đạt đã tận tình giảng dạy và chỉ bảo để chúng em có thể hoàn thành bài tập lớn này. Những lời nhận xét của thầy trong quá trình bảo vệ và giảng dạy trên lớp rất bổ ích đối với chúng em. Một lần nữa chúng em xin chân thành cảm ơn! Nhóm sinh viên lớp KSTN - ĐTVT - K54 Đỗ Trung Đức Trần Xuân Bách Nguyễn Tiến Đạt Hoàng Văn Pháp 5 1. Bài toán thực tế 1.1. Mô hình kinh doanh Nhà sách Bác Kính là 1 nhà sách tư nhân hoạt động xung quanh khu vực trường THPT Chuyên Hùng Vương, dựa trên 3 nguyên tắc cơ bản như sau: Khách hàng đặt cọc 1 khoản ít nhất là 100.000 VNĐ và chỉ được thuê số sách có tổng giá trị nhỏ hơn số tiền cọc. Mỗi tháng trả phí cố định là 15.000 VNĐ. Không giới hạn ngày trả sách. Hiện tại nhà sách quản lý theo mô hình như sau: Mỗi khách hàng có 1 thẻ thư viện. Mỗi lần thuê khách hàng sẽ tự tìm sách trên giá (với sự hỗ trợ của các nhân viên), mang ra quầy và nhân viên sẽ xác thực việc mượn (có đủ tiền không, trạng thái sách khi mượn) rồi xuất hóa đơn cho khách hàng. Khi trả sách cũng làm tương tự, khách hàng mang sách đến, nhân viên xác thực trạng thái sách, nếu khách hàng còn giữ sách sẽ xuất cho khách 1 hóa đơn có ghi số sách còn giữ. 1.2. Bất cập của mô hình hiện tại • Mỗi lần khách thay đổi tiền cọc đều phải làm lại thẻ • Các thủ tục mượn sách (ghi tên sách, kiểm tra tổng tiền, xuất hóa đơn) do nhân viên làm nên cần tới 3 nhân viên cho việc này. • Việc tìm kiếm sách khá khó khăn với khách hàng mới vì quy mô nhà sách khá lớn, thực tế cần 3-4 nhân viên trợ giúp khách hàng trong việc này (tùy thời điểm mà có thể đông hơn hay ít hơn). Mô hình này bất tiện trong sử dụng và tốn kém chi phí thuê nhân viên 1.3. Đề xuất giải pháp Thiết kế một hệ thống quản lý thông minh, tự động thân thiện trong khi sử dụng và giảm thiểu số nhân viên. 6 2. Yêu cầu hệ thống 2.1. Mượn sách • Khách hàng sẽ tìm kiếm vị trí sách, đọc mô tả sách, bằng phần mềm. • Nếu muốn mượn sách, khách hàng tự nhấn nút trong phần mềm, hệ thống sẽ kiểm tra tính hợp lệ. Nếu thành công thì sẽ xuất hóa đơn mượn sách. • Khách hàng tự động lấy sách đưa cho nhân viên kiểm tra xem có khớp với hóa đơn không. 2.2. Trả sách • Khách hàng đưa sách cần trả cho nhân viên. • Nhân viên nhập mã khách hàng, sẽ hiện lên danh sách các cuốn mà khách hàng giữ. Nhấn xóa các cuốn khách trả. 2.3. Tìm kiếm Hỗ trợ tìm kiếm theo tên sách, tên tác giả, loại sách. 2.4. Chứng thực • Khách hàng có ID và password riêng. Không có dễ dàng lập mới. • Hệ thống có thể kiểm tra xem có mượn sách quá tiền cọc không. • Với tài khoản nhân viên, cần chứng thực xem có đúng ID và pass không mới được thực hiện các quyền của nhân viên. 2.5. Thay đổi tiền cọc và cập nhật phí hàng tháng Nhân viên dễ dàng thay đổi thông tin này khi có yêu cầu của khách hàng. 2.6. In hóa đơn Hóa đơn về sách đang giữ, số tiền cọc và tình hình đóng phí hàng tháng sẽ được giao cho khách hàng sau mỗi lần giao dịch. 7 3. Phân tích tính khả thi 3.1. Khả thi về kinh tế Do phần mềm thiết kế đặc thù cho một đơn vị kinh doanh cụ thể nên nhóm sẽ không phân tích tính khả thi trong việc định giá phần mềm mà sẽ phân tích theo hướng thuyết phục chủ đầu tư rằng áp dụng phần mềm quản lý này là sáng suốt. 3.1.1. Chi phí Chi phí phần mềm: 10.000.000 VNĐ. Chi phí phần cứng: Báo giá tại của hành hanoicomputer, 131 Lê Thanh Nghị. Lưu ý: Không có HDD trong cấu hình trên vì nhóm dự kiến tận dụng 3 HDD sẵn có trong 3 PC mà thư viện đã có rồi cấu hình boot qua LAN để giảm chi phí. Cửa hàng giảm giá 10% và khuyến mại vỏ case nếu mua 10 bộ, rút ra chi phí cho 10 bộ máy là: 3.810.000 * 10 * 0.9 = 34.290.000 VNĐ. Tổng chi phí phần cứng và phần mềm là: 10.000.000 + 34.290.000 = 44.290.000 VNĐ. Tiền điện bỏ ra hàng tháng Theo công cụ trên trang http://www.extreme.outervision.com/PSUEngine thì bộ máy trên có công suất trung bình 98W. 8 Chi phí cho 10PC trong 1 tháng là: 100(W) * 10(PC) * 16(h/ngày) * 30(ngày/tháng) = 480kWh điện Theo giá điện hiện hành, mức cao nhất là 2192VNĐ/kWh (cho kWh thứ 400 trở đi), vậy chi phí điện hàng tháng sẽ là: 480 * 2192 * 1,1(VAT) = 1.157.376 VNĐ Các tính toán trên đều đưa ra trong trường hợp xấu nhất, thực tế con số sẽ nhỏ hơn rất nhiều. 3.1.2. Lợi ích đem lại Tạm thời chưa xét tới lợi ích về tăng tốc độ phục vụ giúp tăng hình ảnh thư viện, thu hút nhiều khách hơn, vì những con số này rất khó ước lượng và dù có thể ước lượng thì cũng rất khó tin với chủ thư viện này (đã cao tuổi). Ta chỉ xét đến hiệu quả trong cắt giảm nhân viên. Hiện tại mỗi ca làm việc là 50.000 VNĐ, 1 ngày 3 ca là 150.000. 1 tháng 30 ngày là 4.500.000 VNĐ/1nv Dùng phần mềm sẽ cắt giảm được 3-4 nhân viên. Như vậy bớt được ít nhất 13.500.000 VNĐ/tháng. 3.1.3. Phân tích tính khả thi Giả thiết lạm phát 0.1%/tháng Tháng 1 Tháng 2 Tháng 3 Tháng 4 Tổng Total Benefits 13.500.000 13.500.000 13.500.000 13.500.000 PV of Benefits 13.366.337 13.233.997 13.102.967 12.973.235 52.676.536 PV of all Benefits 13.366.337 26.600.334 39.703.301 52.676.536 Hardware Costs 34.290.000 0 0 0 Software Costs 10.000.000 0 0 0 Energy Costs 1.157.376 1.157.376 1.157.376 1.157.376 Total Costs 45.447.376 1.157.376 1.157.376 1.157.376 PV of Costs 44.997.402 1.134.571 1.123.338 1.112.216 48.367.527 PV of all Costs 44.997.402 46.131.973 47.255.311 48.367.527 Total Project Benefits - Costs (31.947.376) 12.342.624 12.342.624 12.342.624 Monthly NPV (31.631.065) 12.099.426 11.979.629 11.861.019 4.309.009 Cumulative NPV (31.631.065) (19.531.639) (7.552.010) 4.309.009 Break-even Ponit 3.64 month ROI 8.9% 9 Như vậy sẽ thu hồi vốn chỉ sau hơn 3 tháng, và sau 4 tháng đã có lợi nhuận 8.9%. Phân tích trên chỉ tính trong 4 tháng không phải là dự án chỉ kéo dài 4 tháng mà sau 4 tháng chi phí bỏ ra đã khấu hao hết và từ tháng thứ 5 trở đi sẽ đem lại lợi nhuận trung bình: 13.500.000 – 1.157.376 = 12.342.634 VNĐ Ước tính trên lấy tiền nhân công trừ đi tiền điện theo giá trị tại thới điểm hiện tại. Bộ PC trên mua mới có độ bền rất lâu, không khó để lên tới 10 năm nếu bảo trì tốt. Tất cả những phân tích trên cho thấy đây là 1 sự đầu tư thực sự chất lượng: Lợi nhuận cao, thu hồi vốn siêu nhanh. 3.2. Khả thi về kỹ thuật Mức độ quen thuộc với ứng dụng: Khả năng nắm rõ nghiệp vụ là khá - Các thành viên trong nhóm dự án đều đang là sinh viên, hầu hết đều chưa có kinh nghiệm quản lý các thư viện. Riêng trưởng nhóm đã có thời gian làm việc tại một thư viện. - Đề tài tuy không mới lạ vì có những nét tương đồng với các phần mềm quản lý thư viện tuy nhiên do cơ chế hoạt động khác nhau và do lần đầu thực hiện đề tài nên khả năng là còn hạn chế. Mức độ quen thuộc với công nghệ: Khả năng hiểu rõ công nghệ là khá - Các thành viên trong nhóm dự án đều đang là sinh viên chuyên ngành kĩ thuật đã có những kiến thức cơ bản về CSDL và coding - Dự án có phần thiết kế CSDL được thực hiện trên Access 2000 và code được viết bằng Visual Basic. Cả 2 phần mềm trên đều rất phổ cập và tương đối dễ tiếp thu và thao tác - Nền khi hoạt động của phần mềm là HDH Windows 7 trở về trước Kích thuớc dự án: - Nhóm dự án chỉ gồm 4 người tham gia. - Độ dài tiến hành dự án không kéo dài quá 3 tháng. - Kích thước phần mềm nhỏ dưới 20MB - Độ phức tạp của phần mềm là không lớn do chỉ thực hiện các chức năng cơ bản và cần thiết của 1 hệ thống quản lý. Tương thích của hệ thống (phần mềm) với các phần mềm khác rất tốt: - Phần mềm không đòi hỏi thiết lập thay đổi trên hệ diều hành và không có xung đột tài nguyên với các chương trình chạy khác. 10 4. Xác định kích thước hệ thống 4.1. Liệt kê các khả năng của chương trình Nhập thông tin : Thông tin về sách Thông tin về thể loại sách Thông tin về khách hàng Tạo các báo cáo : Danh sách các thể loại sách Danh sách các đầu sách theo thể loại Danh sách khách hàng Danh sách sách đang mượn của khách hàng Hóa đơn mượn sách Truy vấn : Thông tin của sách Thông tin về khách hàng Thông tin về việc mượn trả sách 4.2. Tổng số điểm chức năng chưa hiệu chỉnh (TUFP - Total unadjusted function Points): Decription Complexity Total Numbers Low Medium High Total Inputs 3 2x 3 1 x 4 0 x 6 10 Outputs 5 3 x 4 1 x 5 1 x 7 24 Queries 3 2 x 3 0 x 4 1 x 6 12 Files 1 1 x 7 0 x 10 0 x 15 7 Program Interfaces 8 7x 5 1 x 7 0 x 10 36 Total Unadjusted Function Points ( TUFP ) : 89 [...]... khai một hệ thống phần mềm quản lý thư viện thông minh để phục vụ khách hàng: a Rất hứng thú b Khá hứng thú c Không quan tâm d Không thích 4 Bạn đã từng sử dụng một phần mềm quản lý thư viện nào chưa, bạn thấy nó ra sao: a Chưa b Rồi, rất tốt c Rồi, tốt d Rồi, tệ f Rồi, rất tệ 15 5 Nếu chúng tôi triển khai hệ thống quản lý thư viện bằng phần mềm, bạn mong muốn có thêm những chức năng nào trong hệ thống? ... sách 35 Tìm hiểu yêu cầu 1 Phân tích và xác định yêu cầu 3 Tiến hành mô hình hóa 7 Dữ liệu sách 2 Thiết kế giao diện 3 Lập trình 14 Chạy thử + Debug 5 Quản lý khách hàng 28 Tìm hiểu yêu cầu 1 Phân tích và xác định yêu cầu 3 Tiến hành mô hình hóa 5 Dữ liệu khách hàng 2 Thiết kế giao diện 3 Lập trình 10 Chạy thử + Debug 4 Quản lý mượn/trả sách 42 Tìm hiểu yêu cầu 1 Phân tích và xác định yêu cầu 3 Tiến... Vị trí trong thư viện Hệ thống cần lưu trữ chi tiết các thông tin về sách, thông tin cá nhân khách hàng, trạng thái mượn/trả sách Khi có thông tin thay đổi CSDL có thể được cập nhật ngay lập tức Khi có thêm các đầu sách mới và khách hàng mới các nhân viên sẽ cập nhật vào CSDL Hệ thống cho phép người sử dụng tìm kiếm thông tin về sách, trạng thái sách, vị trí trong thư viện Hệ thống cho phép... 3 Hệ thống yêu cầu in hóa đơn S-2: Yêu cầu đăng nhập với tài khoản nhân viên Alternate/Exception Flows: 26 Use case name: Print bills ID: 08 Level: Medium Primary actor: Hệ thống Use Case Type: Detail, essential Stakaholders and Interests: Hệ thống – In hóa đơn trong các trường hợp cần thiết Brief Description: Ca sử dụng này cho biết làm sao để hệ thống có thể in hóa đơn cho khách hàng Trigger: Hệ thống. .. theo tác giả, thực hiện subflows S-3 Subflows: S-1: 1 Người dùng chọn loại sách có trong danh sách các phân loại sách của thư viện 2 Hệ thống trả về các sách có trong phân loại đó S-2: 1 Hệ thống trả về là danh sách các cuốn sách có tên giống hoặc gần giống với từ khóa tìm kiếm của khách hàng S-3: 1 Hệ thống trả về danh sách các tác giả có tên giống hoặc gần giống với từ khóa của khách hàng 2 Khách hàng... như toàn bộ quá trình mượn trả sách của khách hàng và nhân viên thư viện Qua đó rút ra một số thói quen của khách hàng và nhân viên Dựa vào kinh nghiệm của trưởng nhóm trong thời gian làm việc tại thư viện cũng là một nguồn quan sát tốt 6.3 Yêu cầu phi chức năng (Nonfunctional Requirement) Operational Performance Security Cutural and Political - Hệ thống sẽ hoạt động trong Windows môi trường HDH Windows... cần chú ý đến các đối tượng là những người hoạt động trong các thư viện, đặc biệt là những khách hàng • Các câu hỏi được đặt ra phải đảm bảo nhu câu tiếp thu được các phản hồi của người sử dụng về hệ thống hiện tại, những mặt mạnh, mặt yếu kém, những vấn đề còn tồn tại cần phải giải quyết • 14 • Các câu hỏi này cần phải bao quát được hết phạm vi của hệ thống, phải đề xuất được nhiều hướng giải quyết... Gantt 13 6 Xây dựng tài liệu yêu cầu hệ thống 6.1 Lựa chọn kĩ thuật phân tích yêu cầu Đánh giá các tiêu chí : Giá trị kinh doanh tiềm năng (Potential business value) Chi phí dự án (Project cost) Phạm vi phân tích (Breadth of analysis) Rủi ro thất bại (Rish) Giá trị kinh doanh tiềm năng (Potential business value) Chi phí dự án (Project cost) Phạm vi phân tích (Breadth of analysis) Rủi ro thất... nhân viên Extend: Genaralization: Normal Flow of Events: 1 Khách hàng đem sách đến trả cho thư viện 2 Nhân viên nhập mã khách hàng 3 Hệ thống sẽ hiện ra danh sách các sách mà khách còn mượn 4 Nhân viên cập nhật lại thông tin mượn trả sách 5 Hệ thống yêu cầu in hóa đơn Subflows: Alternate/Exception Flows: 2 Hệ thống sẽ yêu cầu chứng thực nhân viên (ngay trước khi hiện lên danh sách các sách mà khách... viện Hệ thống cho phép nhân viên tìm kiếm thông tin khách hàng Hệ thống có khả năng lấy ra các hóa đơn cho mỗi lần mượn/trả sách Hệ thống có khả năng lấy ra các báo cáo về tình hình mượn trả sách của khách hàng, doanh số,… 17 7 Xây dựng biểu đồ hoạt động Từ những phân tích phía trên, nhóm tiến hành vẽ lại biểu đồ hoạt động của hệ thống như sau 18 8 Biểu đồ ca sử dụng 8.1 Nhận diện các ca sử dụng