Công Nghệ Thông Tin, it, phầm mềm, website, web, mobile app, trí tuệ nhân tạo, blockchain, AI, machine learning - Công Nghệ Thông Tin, it, phầm mềm, website, web, mobile app, trí tuệ nhân tạo, blockchain, AI, machine learning - Công nghệ thông tin TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA CÔNG NGHỆ THÔNG TIN ---------- TRẦN THỊ BÌNH PHƯƠNG PHÁP PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG VÀ ÁP DỤNG VÀO BÀI TOÁN QUẢN LÝ HOẠT ĐỘNG XUẤT NHẬP CỦA MỘT KHO HÀNG HÓA KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC Quảng Nam, tháng 04 năm 2015 MỤC LỤC PHẦN 1. MỞ ĐẦ U ..........................................................................................................1 1.1. Lý do chọn đề tài. .....................................................................................................1 1.2. Mục tiêu của đề tài. ..................................................................................................1 1.3. Đối tượng và phạm vi nghiên cứ u. ...........................................................................1 1.4. Phương pháp nghiên cứ u. ........................................................................................2 1.5. Lịch sử nghiên cứ u. ..................................................................................................2 1.6. Đóng góp của đề tài .................................................................................................2 1.7. Cấu trúc của đề tài. ..................................................................................................2 PHẦN 2. NỘI DUNG NGHIÊN CỨU .............................................................................3 CHƯƠNG 1: CƠ SỞ LÝ THUYẾ T ..................................................................................3 1.1. Giới thiệu phương pháp phân tích thiết kế hướng đối tượng ...................................3 1.2. Một số khái niệm cơ bả n...........................................................................................3 1.2.1. Đối tượ ng (Object) ............................................................................................3 1.2.2. Lớ p (Class) ........................................................................................................4 1.2.3. Phương pháp (Method) và ngôn ngữ mô hình hóa ...........................................4 1.2.4. Các giá trị và các thuộc tính của đối tượng ......................................................5 1.2.5. Các thao tác và phương thứ c ............................................................................6 CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐ NG .................................................7 2.1. Các quá trình phân tích thiết kế hướng đối tượ ng ...................................................7 2.1.1. Phân tích hướng đối tượ ng (Object Oriented Analysis - OOA) ........................7 2.1.2. Thiết kế hướng đối tượ ng (Object Oriented Design - OOD): ...........................7 2.1.3. Lập trình hướng đối tượ ng (Object Oriented Programming - OOP) ...............8 2.2. Ưu điểm của mô hình hướng đối tượ ng....................................................................8 2.3. Các mô hình phát triển của hệ thống phần mềm ......................................................9 2.4. Các giai đoạn phát triển phần mềm theo hướng đối tượ ng ...................................12 2.5. Các biểu đồ trong phân tích thiết kế hướng đối tượ ng ..........................................12 2.5.1. Biểu đồ Ca sử dụ ng (Use Case Diagram) .......................................................12 2.5.2. Biểu đồ Lớ p (Class Diagram) .........................................................................13 2.5.3. Biểu đồ Tuần tự (Sequence Diagram) .............................................................14 2.5.4. Biểu đồ Cộ ng tác (Collaboration Diagram) ...................................................15 2.5.5. Biểu đồ Chuyển trạ ng thái (State Diagram) ...................................................16 2.5.6. Biểu đồ hoạt độ ng (Activity Diagram) ............................................................18 2.5.7. Biểu đồ Thành phần (Component Diagram) ...................................................19 2.5.8. Biểu đồ Triển khai (Development Diagram) ...................................................19 CHƯƠNG 3: BÀI TOÁN ỨNG DỤNG: QUẢN LÝ THIẾT BỊ MÁY TÍNH CỦ A CÔNG TY TNHH THƯƠNG MẠI VÀ XÂY DỰNG AN AN SƠN ..............................................20 3.1. Ứng dụng mô hình thác nước vào phân tích thiết kế bài toán ...............................20 3.2. Bài toán ứng dụ ng ..................................................................................................20 3.2.1. Phân tích yêu cầ u ............................................................................................20 3.2.1.1. Định nghĩ a ................................................................................................20 3.2.1.2. Yêu cầu phi chức nă ng .............................................................................21 3.2.1.3. Yêu cầu chức năng của hệ thống ..............................................................22 3.2.2. Giai đoạ n phân tích .........................................................................................24 3.2.2.1. Xác định các actor ....................................................................................25 3.2.2.2. Xác đị nh các Use Case .............................................................................25 3.2.2.3. Đặc tả các ca sử dụ ng ..............................................................................25 1. Use CaseĐăng Nhậ p ................................................................................25 2. Use CaseQuản lý sản phẩ m .....................................................................25 3. Use CaseQuản lý hóa đơn ........................................................................26 4. Use CaseQuả n lý Nhân viên.....................................................................26 5. Use CaseQuả n lý Khách hàng .................................................................27 6 Use CaseQuản lý Nhà cung cấp ................................................................28 7 Use CaseLưu Cơ sở dữ liệ u.......................................................................29 8. Use CaseThống kê doanh thu ...................................................................29 3.2.2.4. Xây dựng biểu đồ Use case ......................................................................29 3.2.2.5. Biểu đồ tươ ng tác .....................................................................................29 1. Use CaseĐăng nhập .................................................................................29 2. Use CaseQuản lý sản phẩ m .....................................................................30 3. Use CaseLập hóa đơ n ..............................................................................33 4. Use CaseQuả n lý nhân viên .....................................................................34 5. Use CaseQuả n lý khách hàng ..................................................................37 6. Use CaseQuản lý Nhà cung cấp ...............................................................40 7. Use CaseLưu cơ sở dữ liệ u.......................................................................43 8. Use CaseThống kê doanh thu ...................................................................43 3.2.2.6. Biểu đồ lớ p................................................................................................44 1. Xác định các lớp .........................................................................................44 2. Biểu đồ lớ p .................................................................................................45 3.2.2.7. Biểu đồ trạng thái .....................................................................................45 1. Biểu đồ trạng thái của lớp Hóa đơn ...........................................................45 2. Biểu đồ trạng thái của lớ p Nhân viên ........................................................45 3. Biểu đồ trạng thái của lớp Sản phẩm .........................................................46 4. Biểu đồ trạng thái của lớ p Khách hàng .....................................................46 5. Biểu đồ trạng thái của lớp Nhà cung cấ p ..................................................46 3.2.3. Giai đoạn thiết kế ............................................................................................46 1. Mô hình cơ sở dữ liệu .....................................................................................47 2. Mô hình quan hệ .............................................................................................49 3.2.4. Giai đoạn triể n khai.........................................................................................49 1. Form Đăng nhậ p ........................................................................................50 2. Form Main ..................................................................................................50 3. Form Quả n lý nhân viên.............................................................................51 4. Form Quản lý khách hàng ..........................................................................51 5. Form Quản lý sản phẩm .............................................................................52 6. Form Quản lý nhà cung cấp .......................................................................52 7. Frm Quản lý hóa đơ n .................................................................................53 8. Form Thanh toán ........................................................................................53 9. Form Báo cáo thố ng kê ..............................................................................54 10. Form Tìm kiếm sản phẩm .........................................................................54 11. Form Tìm kiếm nhà cung cấp ...................................................................55 12. Form Tìm kiếm khách hàng ......................................................................55 13. Form Tìm kiế m nhân viên.........................................................................56 PHẦN 3. KẾT LUẬN VÀ KIẾN NGHỊ ..........................................................................57 3.1. Kết luậ n...................................................................................................................57 3.2. Kiến nghị .................................................................................................................57 PHẦN 4. TÀI LIỆU THAM KHẢO ................................................................................58 DANH MỤC BIỂU MẪU VÀ HÌNH ẢNH Hình 2.1. Phương pháp mô hình thoát nướ c ...................................................................9 Hình 2.2. Phương pháp mô hình xoắn ốc ......................................................................10 Hình 2.3 Phương pháp mẫu hệ thống ban đầ u .............................................................11 Hình 2.4. Phương pháp mô hình tăng trưở ng ...............................................................12 Hình 2.5. Biểu đồ Use Case của Quản lý thiết bị máy tính ...........................................13 Hình 2.6. Xây dựng biểu đồ lớp Quản lý thiết bị máy tính............................................14 Hình 2.7. đồ tuần tự mô tả hoạt động Cập nhậ t Nhân viên ..........................................15 Hình 2.8. Biểu đồ cộng tác mô tả hoạt động Cập nhậ t nhân viên ................................16 Hình 2.9. Biểu đồ trạng thái của lớp Hóa đơn ..............................................................18 Hình 2.10. Biểu đồ triển khai của hệ thố ng...................................................................19 Hình 3.1. Biểu đồ Use Case tổng quát hệ thống “Bán thiết bị máy tính” ....................29 Hình 3.3. Biểu đồ cộng tác thực thi ca sử dụng Đăng nhậ p .........................................30 Hình 3.4. Biểu đồ tuần tự thực thi ca sử dụng Thêm sản phẩ m ....................................31 Hình 3.5. Biểu đồ cộng tác thực thi ca sử dụng Thêm sản phẩm ..................................31 Hình 3.6. Biểu đồ tuần tự thực thi ca sử dụng Cập nhật sản phẩ m ..............................32 Hình 3.7. Biểu đồ cộng tác thực thi ca sử dụng Cập nhật sản phẩm ............................32 Hình 3.8. Biểu đồ tuần tự thực thi ca sử dụng Xóa sản phẩ m.......................................33 Hình 3.9. Biểu đồ cộng tác thực thi ca sử dụng Xóa sản phẩ m ....................................33 Hình 3.10. Biểu đồ tuần tự thực thi ca sử dụng Lập hóa đơ n .......................................34 Hình 3.11. Biểu đồ cộng tác thực thi ca sử dụng Lập hóa đơn .....................................34 Hình 3.12. Biểu đồ tuần tự thực thi ca sử dụng Thêm nhân viên ..................................35 Hình 3.13. Biểu đồ cộng tác thực thi ca sử dụ ng Thêm nhân viên................................35 Hình 3.14. Biểu đồ tuần tự thực thi ca sử dụng Cập nhật nhân viên ............................35 Hình 3.15. Biểu đồ tuần tự thực thi ca sử dụng Cập nhật nhân viên ............................36 Hình 3.16. Biểu đồ tuần tự thực thi ca sử dụ ng Xóa nhân viên ....................................36 Hình 3.17. Biểu đồ cộng tác thực thi ca sử dụ ng Xóa nhân viên ..................................37 Hình 3.18. Biểu đồ tuần tự thực thi ca sử dụ ng Thêm khách hàng ...............................37 Hình 3.19. Biểu đồ cộng tác thực thi ca sử dụng Thêm khách hàng .............................38 Hình 3.20. Biểu đồ tuần tự thực thi ca sử dụng Cập nhậ t thông tin khách hàng..........38 Hình 3.21. Biểu đồ cộng tác thực thi ca sử dụng Cập nhật thông tin khách hàng .......39 Hình 3.22. Biểu đồ tuần tự thực thi ca sử dụ ng Xóa khách hàng .................................39 Hình 3.23. Biểu đồ cộng tác thực thi ca sử dụ ng Xóa khách hàng ...............................40 Hình 3.24. Biểu đồ tuần tự thực thi ca sử dụng Thêm Nhà cung cấ p ...........................40 Hình 3.25. Biểu đồ cộng tác thực thi ca sử dụng Thêm Nhà cung cấ p .........................41 Hình 3.26. Biểu đồ tuần tự thực thi ca sử dụng Cập nhật thông tin Nhà cung cấ p ......41 Hình 3.27. Biểu đồ cộng tác thực thi ca sử dụng Cập nhật thông tin Nhà cung cấp ....42 Hình 3.28. Biểu đồ tuần tự thực thi ca sử dụng Xóa Nhà cung cấp ..............................42 Hình 3.29. Biểu đồ cộng tác thực thi ca sử dụng Xóa Nhà cung cấ p ...........................43 Hình 3.30. Biểu đồ tuần tự thực thi ca sử dụng Lưu cơ sở dữ liệ u ...............................43 Hình 3.31. Biểu đồ cộng tác thực thi ca sử dụng Lưu cơ sở dữ liệu .............................43 Hình 3.32. Biểu đồ tuần tự thực thi ca sử dụng Thố ng kê doanh thu ...........................44 Hình 3.33. Biểu đồ cộng tác thực thi ca sử dụng Thố ng kê doanh thu .........................44 Hình 3.34. Biểu đồ lớp trong quản lý thiết bị máy tính .................................................45 Hình 3.35. Biểu đồ trạng thái của lớp Hóa đơn ............................................................45 Hình 3.36. Biểu đồ trạng thái của lớ p Nhân viên .........................................................45 Hình 3.37. Biểu đồ trạng thái của lớp sản phẩ m ..........................................................46 Hình 3.38. Biểu đồ trạng thái của lớ p Khách hàng ......................................................46 Hình 3.39. Biểu đồ trạng thái của lớp Nhà cung cấ p....................................................46 Hình 3.40. Mô hình quan hệ ..........................................................................................49 Hình 3.41. Giao diện đăng nhậ p ...................................................................................50 Hình 3.42. Giao diệ n chính ...........................................................................................50 Hình 3.43. Giao diện Quả n lý Nhân viên ......................................................................51 Hình 3.44. Giao diện Quả n lý Khách hàng ...................................................................51 Hình 3.45. Giao diện Quản lý Sản phẩ m ......................................................................52 Hình 3.46. Giao diện Quản lý nhà cung cấp .................................................................52 Hình 3.47. Giao diện Quản lý nhà hóa đơ n ..................................................................53 Hình 3.48. Giao diện Thanh toán ..................................................................................53 Hình 3.49. Giao diện Thống kê sản phẩ m .....................................................................54 Hình 3.50. Giao diện tìm kiếm sản phẩ m ......................................................................54 Hình 3.51. Giao diện Tìm kiếm nhà cung cấp ...............................................................55 Hình 3.52. Giao diện Tìm kiếm khách hàng ..................................................................55 Hình 3.53. Giao diện Tìm kiếm nhân viên .....................................................................56 LỜI CẢM ƠN Trên thực tế không có sự thành công nào mà không gắn liền với những sự hỗ trợ, giúp đỡ dù ít hay nhiểu, dù trực tiếp hay gián tiếp của người khác. Trong suốt thời gian từ khi bắt đầu học tập tại trường, em đã nhận được rất nhiều sự quan tâm, giúp đỡ của quý thầy cô, gia đình và bạn bè. Với lòng biết ơn sâu sắc nhất, em xin gửi đến quý thầy cô ở Khoa Công Nghệ Thông Tin – Trường Đại học Quảng Nam đã cùng với tri thức và tâm huyết của mình để truyền đạt vốn kiến thức quý báu cho chúng em trong suốt thời gian học tập tại trường. Và đặc biệt, em xin chân thành cảm ơn cô giáo Trần Thị Diệu Hiền đã tận tình giúp đỡ, hướng dẫn em. Nếu không có những lời hướng dẫn, dạy bảo của cô thì em nghĩ bài thu hoạch này của em rất khó có thể hoàn thiện được. Một lần nữa, em xin chân thành cảm ơn cô. Tuy nhiên, do thời gian có hạn, cũng như kinh nghiệm còn hạn chế của một sinh viên nên trong bài báo cáo khóa luận tốt nghiệp này sẽ không tránh khỏi những thiếu sót, hạn chế nhất định. Vì vậy, em rất mong nhận được sự chỉ bảo, đóng góp ý kiến của các thầy cô cùng toàn thể các bạn để em có điều kiện bổ sung, nâng cao kiến thức của mình, phục vụ tốt hơn trong công tác thực tế sau này. Em xin chân thành cảm ơn Sinh viên thực hiện Trần Thị Bình Trần Thị Bình – CT13CTT02 Trang 1 PHẦN 1. MỞ ĐẦU 1.1. Lý do chọn đề tài. Hiện nay, công nghệ thông tin được xem là một ngành mũi nhọn của quốc gia, đặc biệt là các nước đang phát triển, tiến hành công nghiệp hóa, hiện đại hóa như nước ta. Sự bùng nổ thông tin và sự phát triển mạnh mẽ của công nghệ kỹ thuật số, muốn phát triển thì phải áp dụng tin học hóa vào tất cả các ngành,các lĩnh vực. Cùng với sự phát triển nhanh chóng về phần cứng máy tính, các phần mềm càng trở nên đa dạng, phong phú, hoàn thiện hơn và hỗ trợ hiệu quả cho con người. Các phần mềm hiện nay ngày càng hỗ trợ cho người dùng thuận tiện sử dụng, thời gian xử lý nhanh chóng, và một số nghiệp vụ được tự động hóa cao. Do vậy mà trong việc phát triển phần mềm, sự đòi hỏi không chỉ là sự chính xác, xử lý được nhiều nghiệp vụ thực tế mà còn phải đáp ứng yêu cầu khác như về tốc độ, giao diện thân thiện, mô hình hóa được thực tế vào máy tính để người dùng sử dụng tiện lợi, quen thuộc, tính tương thích cao, bảo mật cao, … .Các phần mềm giúp tiết kiệm một lượng lớn thời gian, công sức của con người, tăng độ chính xác và hiệu quả trong công việc. Trước tình hình đó, vấn đề đặt ra là cần xây dựng một hệ thống để đáp ứng các nhu cầu cơ bản trong việc quản lý của con người hiện nay,mà cụ thể là phương pháp phân tích thiết kế hướng đối tượng. Thông qua phương pháp này,có thể áp dụng vào các công việc quản lý sẽ dễ dàng hơn.Các công việc này đòi hỏi nhiều thời gian và công sức, mà sự chính xác và hiệu quả không cao, nếu làm bằng thủ công không mang tính tự động. Một số nghiệp vụ như tra cứu, thống kê và hiệu chỉnh thông tin khá vất vả. Ngoài ra còn có một số khó khăn về việc lưu trữ khá đồ sộ, dễ bị thất lạc, tốn kém,…. Trong khi đó các nghiệp vụ này có thể tin học hóa một cách đơn giản hơn. Với sự giúp đỡ của tin học, việc quản lý sẽ trở nên đơn giản và tiện lợi hơn. Vì vậy, để tiếp cận với phương pháp này, em đã chọn đề tài “Phương pháp phân tích thiết kế hướng đối tượng và áp dụng vào bài toán quản lý hoạt động xuất nhập của một kho hàng hóa.” để làm khóa luận tốt nghiệp của mình. 1.2. Mục tiêu của đề tài. Tìm hiểu sâu về phương pháp phân tích thiết kế hướng đối tượng. Từ phương pháp trên mà ta có thể vận dụng vào bài toán quản lý xuất nhập của một kho hàng hóa …một cách thuận tiện, dễ dàng hơn. 1.3.Đối tượng và phạm vi nghiên cứu. Đối tượng nghiên cứu: Tìm hiểu lý thuyết phương pháp phân tích thiết kế hướng đối tượng dựa trên UML, từ cơ sở trên áp dụng vào bài toán xuất nhập của một kho hàng hóa. Phạm vi nghiên cứu: Trần Thị Bình – CT13CTT02 Trang 2 - Ứng dụng trong bài toán quản lý thiết bị máy tính tại Công ty TNHH Thương mại và xây dựng An An Sơn. - Hệ quản trị cơ sở dữ liệu SQL Server 2008. 1.4. Phương pháp nghiên cứu. Phương pháp thu thập thông tin. Phương pháp thiết kế hệ thống 1.5. Lịch sử nghiên cứu. Nội dung đã được đề cập ở môn học và được nhiều tác giả nghiên cứu, tuy nhiên để nâng cao kiến thức của bản thân, tôi lựa chọn đề tài và đi sâu tìm hiểu về phương pháp phân tích thiết kế hướng đối tượng. 1.6. Đóng góp của đề tài Hệ thống lại các kiến thức về phương pháp phân tích thiết kế hướng đối tượng. Xây dựng được phần mềm quản lý hoạt động buôn bán thiết bị máy tính của Công ty Trách nhiệm hữu hạn thương mại và xây dựng An An Sơn. 1.7. Cấu trúc của đề tài. Phần 1: Mở đầu. Phần 2: Nội dung nghiên cứu gồm 3 chương - Chương 1: Cơ sở lý thuyết - Chương 2: Phân tích và thiết kế hệ thống. - Chương 3: Bài toán ứng dụng: Quản lý thiết bị máy tính của Công ty TNHH Thương mại và xây dựng An An Sơn. Phần 3: Kết luận và kiến nghị Phần 4: Tài liệu tham khảo Trần Thị Bình – CT13CTT02 Trang 3 PHẦN 2. NỘI DUNG NGHIÊN CỨU CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1. Giới thiệu phương pháp phân tích thiết kế hướng đối tượng Trong kỹ nghệ phần mềm để sản xuất được một sản phẩm phần mềm người ta chia quá trình phát triển sản phẩm ra nhiều giai đoạn như thu thập và phân tích yêu cầu, phân tích và thiết kế hệ thống, phát triển (coding), kiểm thử, triển khai và bảo trì. Trong đó, giai đoạn phân tích, thiết kế bao giờ cũng là giai đoạn khó khăn và phức tạp nhất. Giai đoạn này giúp chúng ta hiểu rõ yêu cầu đặt ra, xác định giải pháp, mô tả chi tiết giải pháp. Nó trả lời 2 câu hỏi What (phần mềm này làm cái gì?) và How (làm nó như thế nào?). Để phân tích và thiết kế một phần mềm thì có nhiều cách làm, một trong những cách làm đó là xem hệ thống gồm những đối tượng sống trong đó và tương tác với nhau. Việc mô tả được tất cả các đối tượng và sự tương tác của chúng sẽ giúp chúng ta hiểu rõ hệ thống và cài đặt được nó. Phương thức này gọi là Phân tích thiết kế hướng đối tượng (OOAD). 1.2. Một số khái niệm cơ bản 1.2.1.Đối tượng (Object) Đối tượng là khái niệm cơ sở quan trọng nhất của cách tiếp cận hướng đối tượng. Đối tượng là một khái niệm, một sự trừu tượng hoá hay một sự vật có nghĩa trong bài toán đang khảo sát. Đó chính là các mục mà ta đang nghiên cứu, đang thảo luận về chúng. Đối tượng là thực thể của hệ thống, của cơ sở dữ liệu và được xác định thông qua định danh của chúng. Thông thường các đối tượng được mô tả bởi các danh từ riêng (tên gọi) hoặc được tham chiếu tới trong các mô tả của bài toán hay trong các thảo luận với người sử dụng. Có những đối tượng là những thực thể có trong thế giới thực như người, sự vật cụ thể, hoặc là những khái niệm như một công thức, hay khái niệm trừu tượng, v.v. Có một số đối tượng được bổ sung vào hệ thống với lý do phục vụ cho việc cài đặt và có thể không có trong thực tế. Đối tượng là những thực thể được xác định trong thời gian hệ thống hoạt động. Trong giai đoạn phân tích, ta phải đảm bảo rằng các đối tượng đều được xác định bằng các định danh. Đến khâu thiết kế, ta phải lựa chọn cách thể hiện những định danh đó theo cách ghi địa chỉ bộ nhớ, gán các số hiệu, hay dùng tổ hợp một số giá trị của một số thuộc tính để biểu diễn. Theo quan điểm của người lập trình, đối tượng được xem như là một vùng nhớ được phân chia trong máy tính để lưu trữ dữ liệu (thuộc tính) và tập các hàm thao tác trên dữ liệu được gắn với nó. Bởi vì các vùng nhớ được phân hoạch là độc lập với nhau nên các đối tượng có thể tham gia vào nhiều chương trình khác nhau mà không ảnh hưởng lẫn nhau. Trần Thị Bình – CT13CTT02 Trang 4 1.2.2. Lớp (Class) Đối tượng là thể hiện, là một đại biểu của một lớp. Lớp là một mô tả về một nhóm các đối tượng có những tính chất (thuộc tính) giống nhau, có chung các hành vi ứng xử (thao tác gần như nhau), có cùng mối liên quan với các đối tượng của các lớp khác và có chung ngữ nghĩa trong hệ thống. Lớp chính là cơ chế được sử dụng để phân loại các đối tượng của một hệ thống. Lớp thường xuất hiện dưới dạng những danh từ chung trong các tài liệu mô tả bài toán hay trong các thảo luận với người sử dụng. Cũng như các đối tượng, lớp có thể là những nhóm thực thể có trong thế giới thực, cũng có những lớp là khái niệm trừu tượng và có những lớp được đưa vào trong thiết kế để phục vụ cho cài đặt hệ thống, v.v. Lớp và mối quan hệ của chúng có thể mô tả trong các biểu đồ lớp, biểu đồ đối tượng và một số biểu đồ khác của UML. Trong biểu đồ lớp, lớp được mô tả bằng một hình hộp chữ nhật, trong đó có tên của lớp, có thể có các thuộc tính và các hàm (phương thức). Các ký hiệu mô tả lớp trong UML Tên của lớp Tên và thuộc tính Tên, thuộc tính và phương thức Chúng ta nên đặt tên theo một qui tắc thống nhất như sau: Tên của lớp thì chữ cái đầu của tất cả các từ đều viết hoa. Ví dụ: HocSinh, KhachHang, SinhVien. Tên của đối tượng, tên của thuộc tính thì viết hoa chữ cái đầu của các từ trừ từ đầu tiên. Ví dụ: hoTen, danhSachSV, … Tên của hàm (phương thức) viết giống như tên của đối tượng nhưng có thêm cặp ngoặc đơn ‘(‘ và ‘)’. Ví dụ: hienThi(), nhapDiem(), … 1.2.3. Phương pháp (Method) và ngôn ngữ mô hình hóa Phương pháp hay phương thức (method) là một cách trực tiếp cấu trúc hoá sự suy nghĩ và hành động của con người. Phương pháp cho người sử dụng biết phải làm gì, làm như thế nào, khi nào và tại sao (mục đích của hành động). Phương pháp chứa các mô hình (model), các mô hình được dùng để mô tả những gì sử dụng cho việc truyền đạt kết quả trong quá trình sử dụng phương pháp. Trần Thị Bình – CT13CTT02 Trang 5 Điểm khác nhau chính giữa một phương pháp và một ngôn ngữ mô hình hoá (modeling language) là ngôn ngữ mô hình hoá không có một tiến trình (process) hay các câu lệnh (instruction) mô tả những công việc người sử dụng cần làm. Một mô hình được biểu diễn theo một ngôn ngữ mô hình hoá. Ngôn ngữ mô hình hoá bao gồm các ký hiệu – những biểu tượng được dùng trong mô hình và một tập các quy tắc chỉ cách sử dụng chúng. Các quy tắc này bao gồm: Syntactic (Cú pháp): cho biết hình dạng các biểu tượng và cách kết hợp chúng trong ngôn ngữ. Semantic (Ngữ nghĩa): cho biết ý nghĩa của mỗi biểu tượng, chúng được hiểu thế nào khi nằm trong hoặc không nằm trong ngữ cảnh của các biểu tượng khác. Pragmatic: định nghĩa ý nghĩa của biểu tượng để sao cho mục đích của mô hình được thể hiện và mọi người có thể hiểu được. 1.2.4. Các giá trị và các thuộc tính của đối tượng Giá trị (value) là một phần của dữ liệu. Các giá trị thường là các số hoặc là các ký tự. Thuộc tính của đối tượng là thuộc tính của lớp được mô tả bởi giá trị của mỗi đối tượng trong lớp đó. Không nên nhầm lẫn giá trị với đối tượng. Các đối tượng có định danh chứ không phải là các giá trị. Giá trị có thể là các giá trị của các kiểu dữ liệu nguyên thuỷ như các kiểu số hoặc các kiểu xâu ký tự, hoặc là tập hợp của các giá trị nguyên thuỷ. Các dữ liệu thành phần của một lớp có thể được bao gói thông qua các thuộc tính quản lý sự truy nhập để phục vụ việc che giấu thông tin của phương pháp hướng đối tượng. Trong UML ta có thể sử dụng các ký hiệu để đặc tả các thuộc tính đó. Ký hiệu: ‘+’ đứng trước tên thuộc tính, hàm xác định tính công khai (public), mọi đối tượng trong hệ thống đều nhìn thấy được. Nghĩa là mọi đối tượng đều có thể truy nhập được vào dữ liệu công khai. Trong Rose ký hiệu là ổ khoá không bị khoá. ‘’ đứng trước tên thuộc tính, hàm xác định tính được bảo vệ (protected), chỉnhững đối tượng có quan hệ kế thừa với nhau nhìn thấy được. Trong Rose ký hiệu là ổ khoá bị khoá, nhưng có chìa để bên cạnh. ‘-‘ đứng trước tên thuộc tính, hàm xác định tính sở hữu riêng (private), chỉ các đối tượng trong cùng lớp mới nhìn thấy được. Trong Rose ký hiệu là ổ khoá bị khoá và không có chìa để bên cạnh. Trần Thị Bình – CT13CTT02 Trang 6 Trong trường hợp không sử dụng một trong ba ký hiệu trên thì đó là trường hợp mặc định. Thuộc tính quản lý truy cập mặc định của những hệ thống khác nhau có thể khác nhau, Ví dụ :trong C++, các thuộc tính mặc định trong lớp được qui định là private, còn trong Java lại qui định khác, đó là những thuộc tính rộng hơn private. Những thuộc tính trên thiết lập quyền truy cập cho mọi đối tượng trong các lớp, các gói, các hệ thống con của hệ thống phần mềm. 1.2.5. Các thao tác và phương thức Thao tác là một hàm hay thủ tục có thể áp dụng (gọi hàm) cho hoặc bởi các đối tượng trong một lớp. Khi nói tới một thao tác là ngầm định nói tới một đối tượng đích để thực hiện thao tác đó. Ví dụ: thao tác (hàm) hienThi() của lớp MonHoc khi gọi để hiển thị về các sinh viên học một môn học cụ thể như “Lập trình hướng đối tượng” Một số thao tác có thể là đa xạ, được nạp chồng, nghĩa là nó có thể áp dụng cho nhiều lớp khác nhau với những nội dung thực hiện có thể khác nhau, nhưng cùng tên gọi. Trần Thị Bình – CT13CTT02 Trang 7 CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 2.1. Các quá trình phân tích thiết kế hướng đối tượng 2.1.1. Phân tích hướng đối tượng (Object Oriented Analysis - OOA) Là giai đọan phát triển một mô hình chính xác và súc tích của vấn đề, có thành phần là các đối tượng và khái niệm đời thực, dễ hiểu đối với người sử dụng. Trong giai đoạn OOA, vấn đề được trình bày bằng các thuật ngữ tương ứng với các đối tượng có thực. Thêm vào đó, hệ thống cần phải được định nghĩa sao cho người không chuyên Tin học có thể dễ dàng hiểu được. Dựa trên một vấn đề có sẵn, nhà phân tích cần ánh xạ các đối tượng hay thực thể có thực như Khách hàng, Nhân viên, Sản phẩm … vào thiết kế để tạo ra được bản thiết kế gần cận với tình huống thực. Mô hình thiết kế sẽ chứa các thực trong một vấn đề có thực và giữ nguyên các mẫu hình về cấu trúc, quan hệ cũng như hành vi của chúng. Nói một cách khác, sử dụng phương pháp hướng đối tượng chúng ta có thể mô hình hóa các thực thể thuộc một vấn đề có thực mà vẫn giữ được cấu trúc, quan hệ cũng như hành vi của chúng Đối với ví dụ một công ty bán thiết bị máy tính, giai đoạn OOA sẽ nhận biết được các thực thể như: - Khách hàng. - Người bán hàng. - Phiếu (hoá đơn) thanh toán. - Sản phẩm. Tương tác và quan hệ giữa các đối tượng trên là: - Người bán hàng dẫn khách hàng xem sản phẩm mà khách hàng yêu cầu. - Khách hàng chọn sản phẩm cần mua. - Khách hàng trả tiền thiết bị - Sản phẩm được giao cho khách hàng Xin chú ý là ở đây, như đã nói, ta chú ý đến cả hai khía cạnh: thông tin và cách hoạt động của hệ thống (tức là những gì có thể xảy ra với những thông tin đó). Lối phân tích bằng kiểu ánh xạ "đời thực” vào máy tính như thế thật sự là ưu điểm lớn của phương pháp hướng đối tượng. 2.1.2. Thiết kế hướng đối tượng (Object Oriented Design - OOD): Là giai đoạn tổ chức chương trình thành các tập hợp đối tượng cộng tác, mỗi đối tượng trong đó là thực thể của một lớp. Các lớp là thành viên của một cây cấu trúc với mối quan hệ thừa kế. Mục đích của giai đoạn OOD là tạo thiết kế dựa trên kết quả của giai đoạn OOA, dựa trên những quy định phi chức năng, những yêu cầu về môi trường, những yêu cầu về khả năng thực thi,.... OOD tập trung vào việc cải thiện kết quả của OOA, tối ưu Trần Thị Bình – CT13CTT02 Trang 8 hóa giải pháp đã được cung cấp trong khi vẫn đảm bảo thoả mãn tất cả các yêu cầu đã được xác lập. Trong giai đoạn OOD, nhà thiết kế định nghĩa các chức năng, thủ tục (operations), thuộc tính (attribute) cũng như mối quan hệ của một hay nhiều lớp (class) và quyết định chúng cần phải được điều chỉnh sao cho phù hợp với môi trường phát triển. Đây cũng là giai đoạn để thiết kế ngân hàng dữ liệu và áp dụng các kỹ thuật tiêu chuẩn hóa. Về cuối giai đoạn OOD, nhà thiết kế đưa ra một loạt các biểu đồ (diagram) khác nhau. Các biểu đồ này có thể được chia thành hai nhóm chính là Tĩnh và Động. Các biểu đồ tĩnh biểu thị các lớp và đối tượng, trong khi biểu đồ động biểu thị tương tác giữa các và phương thức hoạt động chính xác của chúng. Các lớp đó sau này có thể được nhóm thành các gói, tức là các đơn vị thành phần nhỏ hơn của ứng dụng. 2.1.3. Lập trình hướng đối tượng (Object Oriented Programming - OOP) Giai đoạn xây dựng phần mềm có thể được thực hiện sử dụng kỹ thuật lập trình hướng đối tượng. Đó là phương thức thực hiện thiết kế hướng đối tượng qua việc sử dụng một ngôn ngữlập trình có hỗ trợ các tính năng hướng đối tượng. Một vài ngôn ngữ hướng đối tượng thường được nhắc tới là C++ và Java. Kết quả chung cuộc của giai đoạn này là một loạt các code chạy được, nó chỉ được đưa vào sử dụng sau khi đã trải qua nhiều vòng quay của nhiều bước thử nghiệm khác nhau. 2.2. Ưu điểm của mô hình hướng đối tượng Thông qua nguyên lý kế thừa chúng ta có thể loại bỏ những đoạn mã trùng lặp, dư thừa trong quá trình mô tả đối tượng. Rút ngắn thời gian xây dựng hệ thống và tăng năng suất lao động. Nguyên lý che giấu thông tin giúp bảo vệ an toàn chương trình trước sự truy nhập tùy tiện của các đối tượng khác. Có thể xây dựng được ánh xạ đối tượng của bài toán và đối tượng của chương trình. Có thể xây dựng được mô hình phù hợp với thực tế hơn. Kỹ thuật truyền thông điệp giúp trao đổi thông tin giữa các đối tượng giúp cho việc mô tả giao diện với các hệ thống bên ngoài đơn giản hơn. Có thể quản lý phức tạp của các sản phẩm phần mềm. Tùy thuộc vào dự án tin học mà ta có thể sử dụng các tính chất khác nhau của lập trình hướng đối tượng. Xoá bỏ được hố ngăn cách giữa các pha phân tích, thiết kế và cài đặt trong quá trình xây dựng phần mềm. Trần Thị Bình – CT13CTT02 Trang 9 2.3. Các mô hình phát triển của hệ thống phần mềm Mô hình thác nước (Waterfall). Đây là mô hình phát triển đầu tiên, được Royce đề xuất năm 1970 để mô tả sự phát triển hệ thống tin học. Quá trình phần mềm được chia thành các pha liên tiếp từ phân tích yêu cầu, phân tích các thành phần, thiết kế, lập trình đến thử nghiệm và triển khai hệ thống. Giai đoạn sau chỉ bắt đầu khi giai đoạn trước đã hoàn thành. Vì vậy, chu trình phát triển này còn được gọi là chu trình tuyến tính. Ưu điểm: Thích hợp cho những dự án lớn. Dự án thực hiện lần lượt theo các pha của một tiến trình nên việc quản lý dự án sẽ dễ dàng và thuận tiện. Trước khi lập trình thì các yêu cầu về hệ thống được xác định rất chi tiết và đầy đủ => giảm thiểu được sự thay đổi về yêu cầu trong quá trình phát triển hệ thống. Nhược điểm: Các yêu cầu của người sử dụng không phản ánh, trao đổi được với nhóm phát triển cho đến khi hoàn tất từng giai đoạn phát triển. Không cho phép thay đổi nhiều theo các đặc tả yêu cầu của hệ thống. Thời gian từ khi đề xuất dự án đến khi có sản phẩm cuối cùng thường rất dài (vài tháng -> vài năm Hình 2.1. Phương pháp mô hình thoát nước Mô hình xoắn ốc (The spiral model) Mô hình xoắn ốc do Boehm đề xuất năm 1988. Là sự kết hợp tính lặp của mô hình nguyên mẫu và tính hệ thống của mô hình thác nước. Về bản chất, mô hình mô tả sự phát triển của phần mềm qua các giai đoạn tiến hoá, mỗi giai đoạn được coi như một mô hình thác nước. Trong mô hình xoắn ốc, quy trình phát triển phần mềm được biểu diễn như một vòng xoắn ốc. Các pha trong quy trình phát triển xoắn ốc bao gồm: Thiết lập mục tiêu: xác định mục tiêu cho từng pha của dự án. Trần Thị Bình – CT13CTT02 Trang 10 Đánh giá và giảm thiểu rủi ro: rủi ro được đánh giá và thực hiện các hành động để giảm thiểu rủi ro. Phát triển và đánh giá: sau khi đánh giá rủi ro, một mô hình xây dựng hệ thống sẽ được lựa chọn từ những mô hình chung. Lập kế hoạch: đánh giá dự án và pha tiếp theo của mô hình xoắn ốc sẽ được lập kế hoạch. Ưu điểm: Linh hoạt hơn trong quá trình phát triển hệ thống cho thích hợp với những thay đổi trong đặc tả yêu cầu. Cho phép thay đổi tùy theo yêu cầu cho mỗi vòng xoắn ốc. Nó được xem như là một mô hình tổng hợp của các mô hình khác. Không chỉ áp dụng cho phần mềm mà còn phải cho cả phần cứng. Kiểm sát rủi ro ở từng giai đoạn phát triển. Nhược điểm: Các pha thực hiện bị lặp nhiều trong quá trình phát triển hệ thống. Cần có kỹ năng tốt về phân tích rủi ro. Phức tạp và không thích hợp với các dự án nhỏ và ít rủi ro. Chưa được dùng rộng rãi như mô hình thác nước hay là tạo nguyên mẫu. Đòi hỏi năng lực quản lý. Hình 2.2. Phương pháp mô hình xoắn ốc Tạo nguyên mẫu (Prototyping model) Mô hình nguyên mẫu tức là ta tạo một mẫu của hệ thống cho thấy sự hạn chế và chức năng khả năng của hệ thống đó. Sau khi xây dựng nguyên mẫu sẽ giao cho khách hàng đánh giá. Mẫu thử nghiệm này sẽ giúp khách hàng hình dung các chức năng sẽ có trong hệ thống của mình sau này. Đội ngũ phát triển sẽ tiếp nhận yêu cầu của khách hàng để chỉnh sửa cho đến khi nào khách hàng và đội ngũ phát triển hiểu chính xác các Trần Thị Bình – CT13CTT02 Trang 11 yêu cầu của khánh hàng. Sau đó sẽ đóng băng các yêu cầu đó lại và tiếp tục sang giai đoạn sau. Sau khi nguyên mẫu được hoàn thiện thì sẽ tiếp tục các giai đoạn giống như ở mô hình thác nước. Ưu điểm: Cho phép xây dựng những hệ thống thực hiện hiệu quả các chức năng mà Người sử dụng yêu cầu. Trong quá trình thực hiện cho phép kiểm tra các yêu cầu của Người sử dụng có cần thiết, có đáp ứng hay không, do vậy cho phép bổ sung kịp thời và đồng thời loại bỏ đi những điểm không cần thiết. Các chức năng, hiệu xuất và khả năng thao tác của hệ thống có thể kiểm nghiệm trong quá trình phát triển hệ thống, do vậy tổng thời gian phát triển có thể sẽ được rút ngắn. Nhược điểm: Không thích hợp cho những dự án lớn, chỉ thích hợp cho những dự án vừa và nhỏ. Hình 2.3 Phương pháp mẫu hệ thống ban đầu Mô hình phát triển nhanh (RAD model) Mô hình phát triển nhanh (RAD – Rapid Application Development) chính là mô hình tăng dần với chu kỳ phát triển cực ngắn. Để đạt được mục tiêu này, RAD dựa trên phương pháp phát triển trên cơ sở thành phần hoá hệ thống cùng với việc tái sử dụng các thành phần thích hợp. RAD thích hợp cho những hệ thống quản lý thông tin. RAD - dựa vào phương pháp luận,điều chỉnh các giai đoạn SDLC đểtạo ra một sốphần của hệthống phát triển nhanh và vào các thao tác thủ công của người sử dụng. Phần lớn RAD - dựa vào phương pháp luận mà người phân tích sử dụng các kỹ thuậtđặc biệt và công cụ máy tínhđể tăng tốc các giaiđoạn phân tích, thiết kế và thực hiện, như công cụ CASE (computer-aided software engineering). Trần Thị Bình – CT13CTT02 Trang 12 Mô hình tăng trưởng (Incremental model) Thay vì chuyển giao một lần, quá trình phát triển và chuyển giao được chia làm nhiều lần, mỗi chuyển giao đáp ứng một phần chức năng. Yêu cầu người dùng được phân loại ưu tiên, mức cao sẽ thuộc phần chuyển giao sớm Khi phát triển một bản tăng, yêu cầu tương ứng là cố định, tuy nhiên, yêu cầu cho bản tăng sau vẫn phát triển. Hình 2.4. Phương pháp mô hình tăng trưởng 2.4. Các giai đoạn phát triển phần mềm theo hướng đối tượng Quá trình phát triển phần mềm được xác định thông qua tập các hoạt động cần thực hiện để chuyển đổi các yêu cầu của khách hàng (người sử dụng) thành hệ thống phần mềm. Có bốn bước chính cần thực hiện trong quá trình phát triển phần mềm: Phân tích yêu cầu (Dự kiến kế hoạch) Phân tích hệ thống Thiết kế hệ thống Triển khai hệ thống Có thể thực hiện các bước trên theo nhiều phương pháp khác nhau. Theo đó, số các bước đề xuất của các phương pháp cũng có thể khác nhau. Các dự án có thể thực hiện theo những mô hình khác nhau như mô hình "thác nước" (waterfall), mô hình "tạo nguyên mẫu" (Prototype), mô hình "xoắn ốc", v.v. tuỳ thuộc vào từng dự án khác nhau 2.5. Các biểu đồ trong phân tích thiết kế hướng đối tượng 2.5.1. Biểu đồ Ca sử dụng (Use Case Diagram) Biểu đồ này chỉ ra tương tác giữa các Use Case và tác nhân. Use Case biểu diễn các chức năng của hệ thống. Tác nhân là con người hay hệ thống khác cung cấp hay thu nhận thông tin từ hệ thống đang được xây dựng. Mô hình UC được mô tả bởi một hay nhiều biểu đồ UC. Số lượng biểu đồ UC cho một dự án là tùy ý: - Không quá nhiều làm rối loạn. Trần Thị Bình – CT13CTT02 Trang 13 - Phải đảm bảo đầy đủ để biểu diễn đầy đủ thông tin của hệ thống. Nó là công cụ mạnh giúp thu thập yêu cầu chức năng hệ thống. Nó chỉ ra quan hệ giữa UC và tác nhân và giữa UC với nhau. Sử dụng biểu đồ để làm tài liệu UC, tác nhân và các quan hệ giữa chúng. Lợi ích chính của biểu đồ UC là làm giao tiếp: Khi quan sát các UC, customer biết hệ thống có các chức năng nào. Khi quan sát các tác nhân, customer biết ai giao tiếp với hệ thống. Khi quan sát cả UC và tác nhân, customer biết phạm vi dự án. Các chú ý khi xây dựng biểu đồ UC: Không nên mô hình hóa quan hệ kết hợp giữa tác nhân với tác nhân -> vì giao tiếp giữa các tác nhân là ở bên ngoài hệ thống.Hãy sử dụng biểu đồ luồng công việc để khảo sát quan hệ giữa các tác nhân. Không hình thành quan hệ Association giữa các UC. Biểu đồ chỉ ra có các UC nào nhưng không chỉ ra trật tự thực hiện chúng. Mỗi UC phải có tác nhân kích hoạt (trừ UC trong quan hệ extends và quan hệ includes). Nên vẽ mũi tên thể hiện association đi từ tác nhân đến UC. Có thể xem CSDL là lớp ở dưới biểu đồ UC. Có thể nhập tin vào CSDL ở UC này và xâm nhập dữ liệu trong CSDL ở UC khác. Không vẽ association giữa các UC để chỉ ra luồng thông tin . Hình 2.5.Biểu đồ Use Case của Quản lý thiết bị máy tính 2.5.2. Biểu đồ Lớp (Class Diagram) Chỉ ra tương tác giữa các lớp trong hệ thống, các lớp đực xem như kế hoạch chi tiết của các đối tượng. Trần Thị Bình – CT13CTT02 Trang 14 Một biểu đồ lớp là một dạng mô hình tĩnh. Một biểu đồ lớp miêu tả hướng nhìn tĩnh của một hệ thống bằng các khái niệm lớp và mối quan hệ giữa chúng với nhau. Mặc dù nó cũng có những nét tương tự với một mô hình dữ liệu, nhưng nên nhớ rằng các lớp không phải chỉ thể hiện cấu trúc thông tin mà còn miêu tả hình vi. Một trong các mục đích của biểu bồ lớp là tạo nền tảng cho các biểu đồ khác, thể hiện các khía cạnh của hệ thống. Để tạo một biểu đồ lớp, đầu tiên ta phải nhận diện và miêu tả các lớp. Một khi đã có số lượng các lớp, ta sẽ xét đến quan hệ giữa các lớp đó với nhau. Các bước thực hiện để thiết kế biểu đồ lớp 1. Xác định tất cả các lớp có đối tượng tương tác với nhau. 2. Vẽ chúng trong một biểu đồ lớp. 3. Xác định thuộc tính của chúng và bổ sung cho đầy đủ. 4. Phân tích các biểu đồ cộng tác để xác định các hàm và bổ sung cho các lớp. 5. Xác định các kiểu của các thuộc tính và các giá trị trả lại của phép toán. 6. Bổ sung những mối liên kết cần thiết để quản lý các quyền truy nhập của các thuộc tính. 7. Bổ sung các quan hệ phụ thuộc dữ liệu. 8. Xác định các mối quan hệ tổng quát hóa chi tiết hóa và bổ sung quan hệ kế thừa vào biểu đồ lớp. Ví dụ: Xây dựng biểu đồ quản lý thiết bị máy tính. Hình 2.6.Xây dựng biểu đồ lớp Quản lý thiết bị máy tính 2.5.3. Biểu đồ Tuần tự (Sequence Diagram) Chỉ ra luồng chức năng xuyên qua các UC, nó là biểu đồ tương tác tập trung vào mô tả trật tự các thông điệp theo thời gian. Trần Thị Bình – CT13CTT02 Trang 15 Biểu đồ tuần tự có hai trục: trục nằm dọc chỉ thời gian, trục nằm ngang chỉ ra một tập hợp các đối tượng. Một biểu đồ tuần tự cũng nêu bật sự tương tác trong một cảnh kịch (scenario) – một sự tương tác sẽ xảy ra tại một thời điểm nào đó trong quá trình thực thi của hệ thống. Từ các hình chữ nhật biểu diễn đối tượng có các đường gạch rời (dashed line) thẳng đứng biểu thị đường đời đối tượng, tức là sự tồn tại của đối tượng trong chuỗi tương tác. Trong khoảng thời gian này, đối tượng được thực thể hóa, sẵn sàng để gửi và nhận thông điệp. Quá trình giao tiếp giữa các đối tượng được thể hiện bằng các đường thẳng thông điệp nằm ngang nối các đường đời đối tượng. Mỗi tên ở đầu đường thẳng sẽ chỉ ra loại thông điệp này mang tính đồng bộ, kh...
Trang 1TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA CÔNG NGHỆ THÔNG TIN
- -
TRẦN THỊ BÌNH
PHƯƠNG PHÁP PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG VÀ ÁP DỤNG VÀO BÀI TOÁN QUẢN LÝ HOẠT ĐỘNG XUẤT NHẬP
CỦA MỘT KHO HÀNG HÓA
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC
Quảng Nam, tháng 04 năm 2015
Trang 2MỤC LỤC
PHẦN 1 MỞ ĐẦU 1
1.1 Lý do chọn đề tài 1
1.2 Mục tiêu của đề tài 1
1.3 Đối tượng và phạm vi nghiên cứu 1
1.4 Phương pháp nghiên cứu 2
1.5 Lịch sử nghiên cứu 2
1.6 Đóng góp của đề tài 2
1.7 Cấu trúc của đề tài 2
PHẦN 2 NỘI DUNG NGHIÊN CỨU 3
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 3
1.1 Giới thiệu phương pháp phân tích thiết kế hướng đối tượng 3
1.2 Một số khái niệm cơ bản 3
1.2.1 Đối tượng (Object) 3
1.2.2 Lớp (Class) 4
1.2.3 Phương pháp (Method) và ngôn ngữ mô hình hóa 4
1.2.4 Các giá trị và các thuộc tính của đối tượng 5
1.2.5 Các thao tác và phương thức 6
CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 7
2.1 Các quá trình phân tích thiết kế hướng đối tượng 7
2.1.1 Phân tích hướng đối tượng (Object Oriented Analysis - OOA) 7
2.1.2 Thiết kế hướng đối tượng (Object Oriented Design - OOD): 7
2.1.3 Lập trình hướng đối tượng (Object Oriented Programming - OOP) 8
2.2 Ưu điểm của mô hình hướng đối tượng 8
2.3 Các mô hình phát triển của hệ thống phần mềm 9
2.4 Các giai đoạn phát triển phần mềm theo hướng đối tượng 12
2.5 Các biểu đồ trong phân tích thiết kế hướng đối tượng 12
2.5.1 Biểu đồ Ca sử dụng (Use Case Diagram) 12
2.5.2 Biểu đồ Lớp (Class Diagram) 13
2.5.3 Biểu đồ Tuần tự (Sequence Diagram) 14
2.5.4 Biểu đồ Cộng tác (Collaboration Diagram) 15
2.5.5 Biểu đồ Chuyển trạng thái (State Diagram) 16
2.5.6 Biểu đồ hoạt động (Activity Diagram) 18
2.5.7 Biểu đồ Thành phần (Component Diagram) 19
2.5.8 Biểu đồ Triển khai (Development Diagram) 19
Trang 3CHƯƠNG 3: BÀI TOÁN ỨNG DỤNG: QUẢN LÝ THIẾT BỊ MÁY TÍNH CỦA CÔNG
TY TNHH THƯƠNG MẠI VÀ XÂY DỰNG AN AN SƠN 20
3.1 Ứng dụng mô hình thác nước vào phân tích thiết kế bài toán 20
3.2 Bài toán ứng dụng 20
3.2.1 Phân tích yêu cầu 20
3.2.1.1 Định nghĩa 20
3.2.1.2 Yêu cầu phi chức năng 21
3.2.1.3 Yêu cầu chức năng của hệ thống 22
3.2.2 Giai đoạn phân tích 24
3.2.2.1 Xác định các actor 25
3.2.2.2 Xác định các Use Case 25
3.2.2.3 Đặc tả các ca sử dụng 25
[1] Use Case_Đăng Nhập 25
[2] Use Case_Quản lý sản phẩm 25
[3] Use Case_Quản lý hóa đơn 26
[4] Use Case_Quản lý Nhân viên 26
[5] Use Case_Quản lý Khách hàng 27
[6] Use Case_Quản lý Nhà cung cấp 28
[7] Use Case_Lưu Cơ sở dữ liệu 29
[8] Use Case_Thống kê doanh thu 29
3.2.2.4 Xây dựng biểu đồ Use case 29
3.2.2.5 Biểu đồ tương tác 29
[1] Use Case_Đăng nhập 29
[2] Use Case_Quản lý sản phẩm 30
[3] Use Case_Lập hóa đơn 33
[4] Use Case_Quản lý nhân viên 34
[5] Use Case_Quản lý khách hàng 37
[6] Use Case_Quản lý Nhà cung cấp 40
[7] Use Case_Lưu cơ sở dữ liệu 43
[8] Use Case_Thống kê doanh thu 43
3.2.2.6 Biểu đồ lớp 44
[1] Xác định các lớp 44
[2] Biểu đồ lớp 45
3.2.2.7 Biểu đồ trạng thái 45
[1] Biểu đồ trạng thái của lớp Hóa đơn 45
[2] Biểu đồ trạng thái của lớp Nhân viên 45
[3] Biểu đồ trạng thái của lớp Sản phẩm 46
Trang 4[4] Biểu đồ trạng thái của lớp Khách hàng 46
[5] Biểu đồ trạng thái của lớp Nhà cung cấp 46
3.2.3 Giai đoạn thiết kế 46
[1] Mô hình cơ sở dữ liệu 47
[2] Mô hình quan hệ 49
3.2.4 Giai đoạn triển khai 49
[1] Form Đăng nhập 50
[2] Form Main 50
[3] Form Quản lý nhân viên 51
[4] Form Quản lý khách hàng 51
[5] Form Quản lý sản phẩm 52
[6] Form Quản lý nhà cung cấp 52
[7] Frm Quản lý hóa đơn 53
[8] Form Thanh toán 53
[9] Form Báo cáo thống kê 54
[10] Form Tìm kiếm sản phẩm 54
[11] Form Tìm kiếm nhà cung cấp 55
[12] Form Tìm kiếm khách hàng 55
[13] Form Tìm kiếm nhân viên 56
PHẦN 3 KẾT LUẬN VÀ KIẾN NGHỊ 57
3.1 Kết luận 57
3.2 Kiến nghị 57
PHẦN 4 TÀI LIỆU THAM KHẢO 58
Trang 5DANH MỤC BIỂU MẪU VÀ HÌNH ẢNH
Hình 2.1 Phương pháp mô hình thoát nước 9
Hình 2.2 Phương pháp mô hình xoắn ốc 10
Hình 2.3 Phương pháp mẫu hệ thống ban đầu 11
Hình 2.4 Phương pháp mô hình tăng trưởng 12
Hình 2.5 Biểu đồ Use Case của Quản lý thiết bị máy tính 13
Hình 2.6 Xây dựng biểu đồ lớp Quản lý thiết bị máy tính 14
Hình 2.7 đồ tuần tự mô tả hoạt động Cập nhật Nhân viên 15
Hình 2.8 Biểu đồ cộng tác mô tả hoạt động Cập nhật nhân viên 16
Hình 2.9 Biểu đồ trạng thái của lớp Hóa đơn 18
Hình 2.10 Biểu đồ triển khai của hệ thống 19
Hình 3.1 Biểu đồ Use Case tổng quát hệ thống “Bán thiết bị máy tính” 29
Hình 3.3 Biểu đồ cộng tác thực thi ca sử dụng Đăng nhập 30
Hình 3.4 Biểu đồ tuần tự thực thi ca sử dụng Thêm sản phẩm 31
Hình 3.5 Biểu đồ cộng tác thực thi ca sử dụng Thêm sản phẩm 31
Hình 3.6 Biểu đồ tuần tự thực thi ca sử dụng Cập nhật sản phẩm 32
Hình 3.7 Biểu đồ cộng tác thực thi ca sử dụng Cập nhật sản phẩm 32
Hình 3.8 Biểu đồ tuần tự thực thi ca sử dụng Xóa sản phẩm 33
Hình 3.9 Biểu đồ cộng tác thực thi ca sử dụng Xóa sản phẩm 33
Hình 3.10 Biểu đồ tuần tự thực thi ca sử dụng Lập hóa đơn 34
Hình 3.11 Biểu đồ cộng tác thực thi ca sử dụng Lập hóa đơn 34
Hình 3.12 Biểu đồ tuần tự thực thi ca sử dụng Thêm nhân viên 35
Hình 3.13 Biểu đồ cộng tác thực thi ca sử dụng Thêm nhân viên 35
Hình 3.14 Biểu đồ tuần tự thực thi ca sử dụng Cập nhật nhân viên 35
Hình 3.15 Biểu đồ tuần tự thực thi ca sử dụng Cập nhật nhân viên 36
Hình 3.16 Biểu đồ tuần tự thực thi ca sử dụng Xóa nhân viên 36
Hình 3.17 Biểu đồ cộng tác thực thi ca sử dụng Xóa nhân viên 37
Hình 3.18 Biểu đồ tuần tự thực thi ca sử dụng Thêm khách hàng 37
Hình 3.19 Biểu đồ cộng tác thực thi ca sử dụng Thêm khách hàng 38
Hình 3.20 Biểu đồ tuần tự thực thi ca sử dụng Cập nhật thông tin khách hàng 38
Hình 3.21 Biểu đồ cộng tác thực thi ca sử dụng Cập nhật thông tin khách hàng 39
Trang 6Hình 3.22 Biểu đồ tuần tự thực thi ca sử dụng Xóa khách hàng 39
Hình 3.23 Biểu đồ cộng tác thực thi ca sử dụng Xóa khách hàng 40
Hình 3.24 Biểu đồ tuần tự thực thi ca sử dụng Thêm Nhà cung cấp 40
Hình 3.25 Biểu đồ cộng tác thực thi ca sử dụng Thêm Nhà cung cấp 41
Hình 3.26 Biểu đồ tuần tự thực thi ca sử dụng Cập nhật thông tin Nhà cung cấp 41
Hình 3.27 Biểu đồ cộng tác thực thi ca sử dụng Cập nhật thông tin Nhà cung cấp 42
Hình 3.28 Biểu đồ tuần tự thực thi ca sử dụng Xóa Nhà cung cấp 42
Hình 3.29 Biểu đồ cộng tác thực thi ca sử dụng Xóa Nhà cung cấp 43
Hình 3.30 Biểu đồ tuần tự thực thi ca sử dụng Lưu cơ sở dữ liệu 43
Hình 3.31 Biểu đồ cộng tác thực thi ca sử dụng Lưu cơ sở dữ liệu 43
Hình 3.32 Biểu đồ tuần tự thực thi ca sử dụng Thống kê doanh thu 44
Hình 3.33 Biểu đồ cộng tác thực thi ca sử dụng Thống kê doanh thu 44
Hình 3.34 Biểu đồ lớp trong quản lý thiết bị máy tính 45
Hình 3.35 Biểu đồ trạng thái của lớp Hóa đơn 45
Hình 3.36 Biểu đồ trạng thái của lớp Nhân viên 45
Hình 3.37 Biểu đồ trạng thái của lớp sản phẩm 46
Hình 3.38 Biểu đồ trạng thái của lớp Khách hàng 46
Hình 3.39 Biểu đồ trạng thái của lớp Nhà cung cấp 46
Hình 3.40 Mô hình quan hệ 49
Hình 3.41 Giao diện đăng nhập 50
Hình 3.42 Giao diện chính 50
Hình 3.43 Giao diện Quản lý Nhân viên 51
Hình 3.44 Giao diện Quản lý Khách hàng 51
Hình 3.45 Giao diện Quản lý Sản phẩm 52
Hình 3.46 Giao diện Quản lý nhà cung cấp 52
Hình 3.47 Giao diện Quản lý nhà hóa đơn 53
Hình 3.48 Giao diện Thanh toán 53
Hình 3.49 Giao diện Thống kê sản phẩm 54
Hình 3.50 Giao diện tìm kiếm sản phẩm 54
Hình 3.51 Giao diện Tìm kiếm nhà cung cấp 55
Hình 3.52 Giao diện Tìm kiếm khách hàng 55
Trang 7Hình 3.53 Giao diện Tìm kiếm nhân viên 56
Trang 8Tuy nhiên, do thời gian có hạn, cũng như kinh nghiệm còn hạn chế của một sinh viên nên trong bài báo cáo khóa luận tốt nghiệp này sẽ không tránh khỏi những thiếu sót, hạn chế nhất định Vì vậy, em rất mong nhận được sự chỉ bảo, đóng góp ý kiến của các thầy cô cùng toàn thể các bạn để em có điều kiện bổ sung, nâng cao kiến thức của mình, phục vụ tốt hơn trong công tác thực tế sau này
Em xin chân thành cảm ơn Sinh viên thực hiện
Trần Thị Bình
Trang 9Các phần mềm hiện nay ngày càng hỗ trợ cho người dùng thuận tiện sử dụng, thời gian xử lý nhanh chóng, và một số nghiệp vụ được tự động hóa cao Do vậy mà trong việc phát triển phần mềm, sự đòi hỏi không chỉ là sự chính xác, xử lý được nhiều nghiệp vụ thực tế mà còn phải đáp ứng yêu cầu khác như về tốc độ, giao diện thân thiện, mô hình hóa được thực tế vào máy tính để người dùng sử dụng tiện lợi, quen thuộc, tính tương thích cao, bảo mật cao, … Các phần mềm giúp tiết kiệm một lượng lớn thời gian, công sức của con người, tăng độ chính xác và hiệu quả trong công việc Trước tình hình đó, vấn đề đặt ra là cần xây dựng một hệ thống để đáp ứng các nhu cầu cơ bản trong việc quản lý của con người hiện nay,mà cụ thể là phương pháp phân tích thiết kế hướng đối tượng Thông qua phương pháp này,có thể áp dụng vào các công việc quản lý sẽ dễ dàng hơn.Các công việc này đòi hỏi nhiều thời gian và công sức, mà sự chính xác và hiệu quả không cao, nếu làm bằng thủ công không mang tính tự động Một số nghiệp vụ như tra cứu, thống kê và hiệu chỉnh thông tin khá vất
vả Ngoài ra còn có một số khó khăn về việc lưu trữ khá đồ sộ, dễ bị thất lạc, tốn kém,… Trong khi đó các nghiệp vụ này có thể tin học hóa một cách đơn giản hơn Với sự giúp đỡ của tin học, việc quản lý sẽ trở nên đơn giản và tiện lợi hơn
Vì vậy, để tiếp cận với phương pháp này, em đã chọn đề tài “Phương pháp phân tích thiết kế hướng đối tượng và áp dụng vào bài toán quản lý hoạt động xuất nhập của một kho hàng hóa.” để làm khóa luận tốt nghiệp của mình
1.2 Mục tiêu của đề tài
Tìm hiểu sâu về phương pháp phân tích thiết kế hướng đối tượng
Từ phương pháp trên mà ta có thể vận dụng vào bài toán quản lý xuất nhập của một kho hàng hóa …một cách thuận tiện, dễ dàng hơn
1.3.Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu: Tìm hiểu lý thuyết phương pháp phân tích thiết kế hướng đối tượng dựa trên UML, từ cơ sở trên áp dụng vào bài toán xuất nhập của một kho hàng hóa
Phạm vi nghiên cứu:
Trang 10- Ứng dụng trong bài toán quản lý thiết bị máy tính tại Công ty TNHH Thương mại và xây dựng An An Sơn
- Hệ quản trị cơ sở dữ liệu SQL Server 2008
1.4 Phương pháp nghiên cứu
Phương pháp thu thập thông tin
Phương pháp thiết kế hệ thống
1.5 Lịch sử nghiên cứu
Nội dung đã được đề cập ở môn học và được nhiều tác giả nghiên cứu, tuy nhiên
để nâng cao kiến thức của bản thân, tôi lựa chọn đề tài và đi sâu tìm hiểu về phương pháp phân tích thiết kế hướng đối tượng
1.6 Đóng góp của đề tài
Hệ thống lại các kiến thức về phương pháp phân tích thiết kế hướng đối tượng Xây dựng được phần mềm quản lý hoạt động buôn bán thiết bị máy tính của Công
ty Trách nhiệm hữu hạn thương mại và xây dựng An An Sơn
1.7 Cấu trúc của đề tài
Phần 1: Mở đầu
Phần 2: Nội dung nghiên cứu gồm 3 chương
- Chương 1: Cơ sở lý thuyết
- Chương 2: Phân tích và thiết kế hệ thống
- Chương 3: Bài toán ứng dụng: Quản lý thiết bị máy tính của Công ty TNHH Thương mại và xây dựng An An Sơn
Phần 3: Kết luận và kiến nghị
Phần 4: Tài liệu tham khảo
Trang 11PHẦN 2 NỘI DUNG NGHIÊN CỨU CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1 Giới thiệu phương pháp phân tích thiết kế hướng đối tượng
Trong kỹ nghệ phần mềm để sản xuất được một sản phẩm phần mềm người ta chia quá trình phát triển sản phẩm ra nhiều giai đoạn như thu thập và phân tích yêu cầu, phân tích và thiết kế hệ thống, phát triển (coding), kiểm thử, triển khai và bảo trì Trong đó, giai đoạn phân tích, thiết kế bao giờ cũng là giai đoạn khó khăn và phức tạp nhất Giai đoạn này giúp chúng ta hiểu rõ yêu cầu đặt ra, xác định giải pháp, mô tả chi tiết giải pháp Nó trả lời 2 câu hỏi What (phần mềm này làm cái gì?) và How (làm nó như thế nào?)
Để phân tích và thiết kế một phần mềm thì có nhiều cách làm, một trong những cách làm đó là xem hệ thống gồm những đối tượng sống trong đó và tương tác với nhau Việc mô tả được tất cả các đối tượng và sự tương tác của chúng sẽ giúp chúng ta hiểu rõ hệ thống và cài đặt được nó Phương thức này gọi là Phân tích thiết kế hướng đối tượng (OOAD)
1.2 Một số khái niệm cơ bản
1.2.1.Đối tượng (Object)
Đối tượng là khái niệm cơ sở quan trọng nhất của cách tiếp cận hướng đối tượng Đối tượng là một khái niệm, một sự trừu tượng hoá hay một sự vật có nghĩa trong bài toán đang khảo sát Đó chính là các mục mà ta đang nghiên cứu, đang thảo luận về chúng Đối tượng là thực thể của hệ thống, của cơ sở dữ liệu và được xác định thông qua định danh của chúng Thông thường các đối tượng được mô tả bởi các danh từ riêng (tên gọi) hoặc được tham chiếu tới trong các mô tả của bài toán hay trong các thảo luận với người sử dụng Có những đối tượng là những thực thể có trong thế giới thực như người, sự vật cụ thể, hoặc là những khái niệm như một công thức, hay khái niệm trừu tượng, v.v Có một số đối tượng được bổ sung vào hệ thống với lý do phục
vụ cho việc cài đặt và có thể không có trong thực tế
Đối tượng là những thực thể được xác định trong thời gian hệ thống hoạt động Trong giai đoạn phân tích, ta phải đảm bảo rằng các đối tượng đều được xác định bằng các định danh Đến khâu thiết kế, ta phải lựa chọn cách thể hiện những định danh đó theo cách ghi địa chỉ bộ nhớ, gán các số hiệu, hay dùng tổ hợp một số giá trị của một
số thuộc tính để biểu diễn
Theo quan điểm của người lập trình, đối tượng được xem như là một vùng nhớ được phân chia trong máy tính để lưu trữ dữ liệu (thuộc tính) và tập các hàm thao tác trên dữ liệu được gắn với nó Bởi vì các vùng nhớ được phân hoạch là độc lập với nhau nên các đối tượng có thể tham gia vào nhiều chương trình khác nhau mà không ảnh hưởng lẫn nhau
Trang 121.2.2 Lớp (Class)
Đối tượng là thể hiện, là một đại biểu của một lớp Lớp là một mô tả về một nhóm các đối tượng có những tính chất (thuộc tính) giống nhau, có chung các hành vi ứng xử (thao tác gần như nhau), có cùng mối liên quan với các đối tượng của các lớp khác và
có chung ngữ nghĩa trong hệ thống Lớp chính là cơ chế được sử dụng để phân loại các đối tượng của một hệ thống Lớp thường xuất hiện dưới dạng những danh từ chung trong các tài liệu mô tả bài toán hay trong các thảo luận với người sử dụng Cũng như các đối tượng, lớp có thể là những nhóm thực thể có trong thế giới thực, cũng có những lớp là khái niệm trừu tượng và có những lớp được đưa vào trong thiết kế để phục vụ cho cài đặt hệ thống, v.v
Lớp và mối quan hệ của chúng có thể mô tả trong các biểu đồ lớp, biểu đồ đối tượng và một số biểu đồ khác của UML Trong biểu đồ lớp, lớp được mô tả bằng một hình hộp chữ nhật, trong đó có tên của lớp, có thể có các thuộc tính và các hàm (phương thức)
Các ký hiệu mô tả lớp trong UML
Tên của lớp Tên và thuộc tính Tên, thuộc tính và
phương thức Chúng ta nên đặt tên theo một qui tắc thống nhất như sau:
Tên của lớp thì chữ cái đầu của tất cả các từ đều viết hoa
Ví dụ: HocSinh, KhachHang, SinhVien
Tên của đối tượng, tên của thuộc tính thì viết hoa chữ cái đầu của các từ trừ từ đầu tiên
Ví dụ: hoTen, danhSachSV, …
Tên của hàm (phương thức) viết giống như tên của đối tượng nhưng có thêm cặp ngoặc đơn ‘(‘ và ‘)’
Ví dụ: hienThi(), nhapDiem(), …
1.2.3 Phương pháp (Method) và ngôn ngữ mô hình hóa
Phương pháp hay phương thức (method) là một cách trực tiếp cấu trúc hoá sự suy nghĩ và hành động của con người
Phương pháp cho người sử dụng biết phải làm gì, làm như thế nào, khi nào và tại sao (mục đích của hành động)
Phương pháp chứa các mô hình (model), các mô hình được dùng để mô tả những
gì sử dụng cho việc truyền đạt kết quả trong quá trình sử dụng phương pháp
Trang 13Điểm khác nhau chính giữa một phương pháp và một ngôn ngữ mô hình hoá (modeling language) là ngôn ngữ mô hình hoá không có một tiến trình (process) hay các câu lệnh (instruction) mô tả những công việc người sử dụng cần làm
Một mô hình được biểu diễn theo một ngôn ngữ mô hình hoá Ngôn ngữ mô hình hoá bao gồm các ký hiệu – những biểu tượng được dùng trong mô hình và một tập các quy tắc chỉ cách sử dụng chúng
Các quy tắc này bao gồm:
Syntactic (Cú pháp): cho biết hình dạng các biểu tượng và cách kết hợp chúng trong ngôn ngữ
Semantic (Ngữ nghĩa): cho biết ý nghĩa của mỗi biểu tượng, chúng được hiểu thế nào khi nằm trong hoặc không nằm trong ngữ cảnh của các biểu tượng khác
Pragmatic: định nghĩa ý nghĩa của biểu tượng để sao cho mục đích của mô hình được thể hiện và mọi người có thể hiểu được
1.2.4 Các giá trị và các thuộc tính của đối tượng
Giá trị (value) là một phần của dữ liệu Các giá trị thường là các số hoặc là các ký
Trong UML ta có thể sử dụng các ký hiệu để đặc tả các thuộc tính đó
Ký hiệu:
‘+’ đứng trước tên thuộc tính, hàm xác định tính công khai (public), mọi đối tượng trong hệ thống đều nhìn thấy được Nghĩa là mọi đối tượng đều có thể truy nhập được vào dữ liệu công khai Trong Rose ký hiệu là ổ khoá không bị khoá
‘#’ đứng trước tên thuộc tính, hàm xác định tính được bảo vệ (protected), chỉnhững đối tượng có quan hệ kế thừa với nhau nhìn thấy được Trong Rose ký hiệu
là ổ khoá bị khoá, nhưng có chìa để bên cạnh
‘-‘ đứng trước tên thuộc tính, hàm xác định tính sở hữu riêng (private), chỉ các đối tượng trong cùng lớp mới nhìn thấy được Trong Rose ký hiệu là ổ khoá bị khoá và không có chìa để bên cạnh
Trang 14Trong trường hợp không sử dụng một trong ba ký hiệu trên thì đó là trường hợp mặc định Thuộc tính quản lý truy cập mặc định của những hệ thống khác nhau có thể khác nhau,
Ví dụ :trong C++, các thuộc tính mặc định trong lớp được qui định là private, còn trong Java lại qui định khác, đó là những thuộc tính rộng hơn private Những thuộc tính trên thiết lập quyền truy cập cho mọi đối tượng trong các lớp, các gói, các hệ thống con của hệ thống phần mềm
Trang 15CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
2.1 Các quá trình phân tích thiết kế hướng đối tượng
2.1.1 Phân tích hướng đối tượng (Object Oriented Analysis - OOA)
Là giai đọan phát triển một mô hình chính xác và súc tích của vấn đề, có thành phần là các đối tượng và khái niệm đời thực, dễ hiểu đối với người sử dụng
Trong giai đoạn OOA, vấn đề được trình bày bằng các thuật ngữ tương ứng với các đối tượng có thực Thêm vào đó, hệ thống cần phải được định nghĩa sao cho người không chuyên Tin học có thể dễ dàng hiểu được
Dựa trên một vấn đề có sẵn, nhà phân tích cần ánh xạ các đối tượng hay thực thể
có thực như Khách hàng, Nhân viên, Sản phẩm … vào thiết kế để tạo ra được bản thiết
kế gần cận với tình huống thực Mô hình thiết kế sẽ chứa các thực trong một vấn đề có thực và giữ nguyên các mẫu hình về cấu trúc, quan hệ cũng như hành vi của chúng Nói một cách khác, sử dụng phương pháp hướng đối tượng chúng ta có thể mô hình hóa các thực thể thuộc một vấn đề có thực mà vẫn giữ được cấu trúc, quan hệ cũng như hành vi của chúng
Đối với ví dụ một công ty bán thiết bị máy tính, giai đoạn OOA sẽ nhận biết được các thực thể như:
Tương tác và quan hệ giữa các đối tượng trên là:
Xin chú ý là ở đây, như đã nói, ta chú ý đến cả hai khía cạnh: thông tin và cách hoạt động của hệ thống (tức là những gì có thể xảy ra với những thông tin đó)
Lối phân tích bằng kiểu ánh xạ "đời thực” vào máy tính như thế thật sự là ưu điểm lớn của phương pháp hướng đối tượng
2.1.2 Thiết kế hướng đối tượng (Object Oriented Design - OOD):
Là giai đoạn tổ chức chương trình thành các tập hợp đối tượng cộng tác, mỗi đối tượng trong đó là thực thể của một lớp Các lớp là thành viên của một cây cấu trúc với mối quan hệ thừa kế
Mục đích của giai đoạn OOD là tạo thiết kế dựa trên kết quả của giai đoạn OOA, dựa trên những quy định phi chức năng, những yêu cầu về môi trường, những yêu cầu
về khả năng thực thi, OOD tập trung vào việc cải thiện kết quả của OOA, tối ưu
Trang 16hóa giải pháp đã được cung cấp trong khi vẫn đảm bảo thoả mãn tất cả các yêu cầu đã được xác lập
Trong giai đoạn OOD, nhà thiết kế định nghĩa các chức năng, thủ tục (operations), thuộc tính (attribute) cũng như mối quan hệ của một hay nhiều lớp (class) và quyết định chúng cần phải được điều chỉnh sao cho phù hợp với môi trường phát triển Đây cũng là giai đoạn để thiết kế ngân hàng dữ liệu và áp dụng các kỹ thuật tiêu chuẩn hóa
Về cuối giai đoạn OOD, nhà thiết kế đưa ra một loạt các biểu đồ (diagram) khác nhau Các biểu đồ này có thể được chia thành hai nhóm chính là Tĩnh và Động Các biểu đồ tĩnh biểu thị các lớp và đối tượng, trong khi biểu đồ động biểu thị tương tác giữa các và phương thức hoạt động chính xác của chúng Các lớp đó sau này có thể được nhóm thành các gói, tức là các đơn vị thành phần nhỏ hơn của ứng dụng
2.1.3 Lập trình hướng đối tượng (Object Oriented Programming - OOP)
Giai đoạn xây dựng phần mềm có thể được thực hiện sử dụng kỹ thuật lập trình hướng đối tượng Đó là phương thức thực hiện thiết kế hướng đối tượng qua việc sử dụng một ngôn ngữlập trình có hỗ trợ các tính năng hướng đối tượng Một vài ngôn ngữ hướng đối tượng thường được nhắc tới là C++ và Java Kết quả chung cuộc của giai đoạn này là một loạt các code chạy được, nó chỉ được đưa vào sử dụng sau khi đã trải qua nhiều vòng quay của nhiều bước thử nghiệm khác nhau
2.2 Ưu điểm của mô hình hướng đối tượng
Thông qua nguyên lý kế thừa chúng ta có thể loại bỏ những đoạn mã trùng lặp,
dư thừa trong quá trình mô tả đối tượng
Rút ngắn thời gian xây dựng hệ thống và tăng năng suất lao động
Nguyên lý che giấu thông tin giúp bảo vệ an toàn chương trình trước sự truy nhập tùy tiện của các đối tượng khác
Có thể xây dựng được ánh xạ đối tượng của bài toán và đối tượng của chương trình
Có thể xây dựng được mô hình phù hợp với thực tế hơn
Kỹ thuật truyền thông điệp giúp trao đổi thông tin giữa các đối tượng giúp cho việc mô tả giao diện với các hệ thống bên ngoài đơn giản hơn
Trang 172.3 Các mô hình phát triển của hệ thống phần mềm
Mô hình thác nước (Waterfall)
Đây là mô hình phát triển đầu tiên, được Royce đề xuất năm 1970 để mô tả sự phát triển hệ thống tin học
Quá trình phần mềm được chia thành các pha liên tiếp từ phân tích yêu cầu, phân tích các thành phần, thiết kế, lập trình đến thử nghiệm và triển khai hệ thống
Giai đoạn sau chỉ bắt đầu khi giai đoạn trước đã hoàn thành Vì vậy, chu trình phát triển này còn được gọi là chu trình tuyến tính
Nhược điểm:
Các yêu cầu của người sử dụng không phản ánh, trao đổi được với nhóm phát triển cho đến khi hoàn tất từng giai đoạn phát triển
Không cho phép thay đổi nhiều theo các đặc tả yêu cầu của hệ thống
Thời gian từ khi đề xuất dự án đến khi có sản phẩm cuối cùng thường rất dài (vài tháng -> vài năm
Hình 2.1 Phương pháp mô hình thoát nước
Mô hình xoắn ốc (The spiral model)
Mô hình xoắn ốc do Boehm đề xuất năm 1988 Là sự kết hợp tính lặp của mô hình nguyên mẫu và tính hệ thống của mô hình thác nước Về bản chất, mô hình mô tả
sự phát triển của phần mềm qua các giai đoạn tiến hoá, mỗi giai đoạn được coi như một mô hình thác nước
Trong mô hình xoắn ốc, quy trình phát triển phần mềm được biểu diễn như một vòng xoắn ốc Các pha trong quy trình phát triển xoắn ốc bao gồm:
Thiết lập mục tiêu: xác định mục tiêu cho từng pha của dự án
Trang 18Đánh giá và giảm thiểu rủi ro: rủi ro được đánh giá và thực hiện các hành động để giảm thiểu rủi ro
Phát triển và đánh giá: sau khi đánh giá rủi ro, một mô hình xây dựng hệ thống sẽ được lựa chọn từ những mô hình chung
Lập kế hoạch: đánh giá dự án và pha tiếp theo của mô hình xoắn ốc sẽ được lập kế hoạch
Ưu điểm:
Linh hoạt hơn trong quá trình phát triển hệ thống cho thích hợp với những thay đổi trong đặc tả yêu cầu
Cho phép thay đổi tùy theo yêu cầu cho mỗi vòng xoắn ốc
Nó được xem như là một mô hình tổng hợp của các mô hình khác Không chỉ
áp dụng cho phần mềm mà còn phải cho cả phần cứng
Kiểm sát rủi ro ở từng giai đoạn phát triển
Nhược điểm:
Các pha thực hiện bị lặp nhiều trong quá trình phát triển hệ thống
Cần có kỹ năng tốt về phân tích rủi ro
Phức tạp và không thích hợp với các dự án nhỏ và ít rủi ro
Chưa được dùng rộng rãi như mô hình thác nước hay là tạo nguyên mẫu
Đòi hỏi năng lực quản lý
Hình 2.2 Phương pháp mô hình xoắn ốc
Tạo nguyên mẫu (Prototyping model)
Mô hình nguyên mẫu tức là ta tạo một mẫu của hệ thống cho thấy sự hạn chế và chức năng khả năng của hệ thống đó Sau khi xây dựng nguyên mẫu sẽ giao cho khách hàng đánh giá Mẫu thử nghiệm này sẽ giúp khách hàng hình dung các chức năng sẽ
có trong hệ thống của mình sau này Đội ngũ phát triển sẽ tiếp nhận yêu cầu của khách hàng để chỉnh sửa cho đến khi nào khách hàng và đội ngũ phát triển hiểu chính xác các
Trang 19yêu cầu của khánh hàng Sau đó sẽ đóng băng các yêu cầu đó lại và tiếp tục sang giai đoạn sau
Sau khi nguyên mẫu được hoàn thiện thì sẽ tiếp tục các giai đoạn giống như ở mô hình thác nước
Ưu điểm:
Cho phép xây dựng những hệ thống thực hiện hiệu quả các chức năng mà Người sử dụng yêu cầu
Trong quá trình thực hiện cho phép kiểm tra các yêu cầu của Người sử dụng
có cần thiết, có đáp ứng hay không, do vậy cho phép bổ sung kịp thời và đồng thời loại bỏ đi những điểm không cần thiết
Các chức năng, hiệu xuất và khả năng thao tác của hệ thống có thể kiểm nghiệm trong quá trình phát triển hệ thống, do vậy tổng thời gian phát triển có thể sẽ được rút ngắn
Nhược điểm:
Không thích hợp cho những dự án lớn, chỉ thích hợp cho những dự án vừa và nhỏ
Hình 2.3 Phương pháp mẫu hệ thống ban đầu
Mô hình phát triển nhanh (RAD model)
Mô hình phát triển nhanh (RAD – Rapid Application Development) chính là mô hình tăng dần với chu kỳ phát triển cực ngắn Để đạt được mục tiêu này, RAD dựa trên phương pháp phát triển trên cơ sở thành phần hoá hệ thống cùng với việc tái sử dụng các thành phần thích hợp RAD thích hợp cho những hệ thống quản lý thông tin RAD - dựa vào phương pháp luận,điều chỉnh các giai đoạn SDLC đểtạo ra một sốphần của hệthống phát triển nhanh và vào các thao tác thủ công của người sử dụng Phần lớn RAD - dựa vào phương pháp luận mà người phân tích sử dụng các kỹ thuậtđặc biệt và công cụ máy tínhđể tăng tốc các giaiđoạn phân tích, thiết kế và thực hiện, như công cụ CASE (computer-aided software engineering)
Trang 20 Mô hình tăng trưởng (Incremental model)
Thay vì chuyển giao một lần, quá trình phát triển và chuyển giao được chia làm nhiều lần, mỗi chuyển giao đáp ứng một phần chức năng
Yêu cầu người dùng được phân loại ưu tiên, mức cao sẽ thuộc phần chuyển giao sớm
Khi phát triển một bản tăng, yêu cầu tương ứng là cố định, tuy nhiên, yêu cầu cho bản tăng sau vẫn phát triển
Hình 2.4 Phương pháp mô hình tăng trưởng
2.4 Các giai đoạn phát triển phần mềm theo hướng đối tượng
Quá trình phát triển phần mềm được xác định thông qua tập các hoạt động cần thực hiện để chuyển đổi các yêu cầu của khách hàng (người sử dụng) thành hệ thống phần mềm
Có bốn bước chính cần thực hiện trong quá trình phát triển phần mềm:
Phân tích yêu cầu (Dự kiến kế hoạch)
2.5 Các biểu đồ trong phân tích thiết kế hướng đối tượng
2.5.1 Biểu đồ Ca sử dụng (Use Case Diagram)
Biểu đồ này chỉ ra tương tác giữa các Use Case và tác nhân Use Case biểu diễn các chức năng của hệ thống Tác nhân là con người hay hệ thống khác cung cấp hay thu nhận thông tin từ hệ thống đang được xây dựng
Mô hình UC được mô tả bởi một hay nhiều biểu đồ UC
Số lượng biểu đồ UC cho một dự án là tùy ý:
- Không quá nhiều làm rối loạn
Trang 21- Phải đảm bảo đầy đủ để biểu diễn đầy đủ thông tin của hệ thống
Nó là công cụ mạnh giúp thu thập yêu cầu chức năng hệ thống
Nó chỉ ra quan hệ giữa UC và tác nhân và giữa UC với nhau
Sử dụng biểu đồ để làm tài liệu UC, tác nhân và các quan hệ giữa chúng
Lợi ích chính của biểu đồ UC là làm giao tiếp:
Khi quan sát các UC, customer biết hệ thống có các chức năng nào
Khi quan sát các tác nhân, customer biết ai giao tiếp với hệ thống
Khi quan sát cả UC và tác nhân, customer biết phạm vi dự án
Các chú ý khi xây dựng biểu đồ UC:
Không nên mô hình hóa quan hệ kết hợp giữa tác nhân với tác nhân -> vì giao tiếp giữa các tác nhân là ở bên ngoài hệ thống.Hãy sử dụng biểu đồ luồng công việc để khảo sát quan hệ giữa các tác nhân
Không hình thành quan hệ Association giữa các UC Biểu đồ chỉ ra có các UC nào nhưng không chỉ ra trật tự thực hiện chúng
Mỗi UC phải có tác nhân kích hoạt (trừ UC trong quan hệ extends và quan hệ includes) Nên vẽ mũi tên thể hiện association đi từ tác nhân đến UC
Có thể xem CSDL là lớp ở dưới biểu đồ UC
Có thể nhập tin vào CSDL ở UC này và xâm nhập dữ liệu trong CSDL ở UC khác
Không vẽ association giữa các UC để chỉ ra luồng thông tin
Hình 2.5.Biểu đồ Use Case của Quản lý thiết bị máy tính
2.5.2 Biểu đồ Lớp (Class Diagram)
Chỉ ra tương tác giữa các lớp trong hệ thống, các lớp đực xem như kế hoạch chi tiết của các đối tượng
Trang 22Một biểu đồ lớp là một dạng mô hình tĩnh Một biểu đồ lớp miêu tả hướng nhìn tĩnh của một hệ thống bằng các khái niệm lớp và mối quan hệ giữa chúng với nhau Mặc dù nó cũng có những nét tương tự với một mô hình dữ liệu, nhưng nên nhớ rằng các lớp không phải chỉ thể hiện cấu trúc thông tin mà còn miêu tả hình vi
Một trong các mục đích của biểu bồ lớp là tạo nền tảng cho các biểu đồ khác, thể hiện các khía cạnh của hệ thống Để tạo một biểu đồ lớp, đầu tiên ta phải nhận diện và miêu tả các lớp Một khi đã có số lượng các lớp, ta sẽ xét đến quan hệ giữa các lớp đó với nhau
Các bước thực hiện để thiết kế biểu đồ lớp
1 Xác định tất cả các lớp có đối tượng tương tác với nhau
2 Vẽ chúng trong một biểu đồ lớp
3 Xác định thuộc tính của chúng và bổ sung cho đầy đủ
4 Phân tích các biểu đồ cộng tác để xác định các hàm và bổ sung cho các lớp
5 Xác định các kiểu của các thuộc tính và các giá trị trả lại của phép toán
6 Bổ sung những mối liên kết cần thiết để quản lý các quyền truy nhập của các thuộc tính
7 Bổ sung các quan hệ phụ thuộc dữ liệu
8 Xác định các mối quan hệ tổng quát hóa / chi tiết hóa và bổ sung quan hệ kế thừa vào biểu đồ lớp
Ví dụ: Xây dựng biểu đồ quản lý thiết bị máy tính
Hình 2.6.Xây dựng biểu đồ lớp Quản lý thiết bị máy tính
2.5.3 Biểu đồ Tuần tự (Sequence Diagram)
Chỉ ra luồng chức năng xuyên qua các UC, nó là biểu đồ tương tác tập trung vào
mô tả trật tự các thông điệp theo thời gian
Trang 23Biểu đồ tuần tự có hai trục: trục nằm dọc chỉ thời gian, trục nằm ngang chỉ ra một tập hợp các đối tượng Một biểu đồ tuần tự cũng nêu bật sự tương tác trong một cảnh kịch (scenario) – một sự tương tác sẽ xảy ra tại một thời điểm nào đó trong quá trình thực thi của hệ thống.
Từ các hình chữ nhật biểu diễn đối tượng có các đường gạch rời (dashed line) thẳng đứng biểu thị đường đời đối tượng, tức là sự tồn tại của đối tượng trong chuỗi tương tác Trong khoảng thời gian này, đối tượng được thực thể hóa, sẵn sàng để gửi
và nhận thông điệp Quá trình giao tiếp giữa các đối tượng được thể hiện bằng các đường thẳng thông điệp nằm ngang nối các đường đời đối tượng Mỗi tên ở đầu đường thẳng sẽ chỉ ra loại thông điệp này mang tính đồng bộ, không đồng bộ hay đơn giản
Để đọc biểu đồ tuần tự, hãy bắt đầu từ phía bên trên của biểu đồ rồi chạy dọc xuống và quan sát sự trao đổi thông điệp giữa các đối tượng xảy ra dọc theo tiến trình thời gian
Để có thể vẽ biểu đồ tuần tự, đầu tiên hãy xác định các đối tượng liên quan và thể hiện các sự kiện xảy ra giữa chúng
Khi vẽ biểu đồ tuần tự, cần chú ý:
Sự kiện được biểu diễn bằng các đường thẳng nằm ngang
Đối tượng bằng các đường nằm dọc
Thời gian được thể hiện bằng đường thẳng nằm dọc bắt đầu từ trên biểu đồ Điều đó có nghĩa là các sự kiện cần phải được thể hiện theo đúng thứ tự mà chúng xảy ra, vẽ từ trên xuống dưới
Ví dụ: Xây dựng biểu đồ tuần tự mô tả hoạt động cập nhật thông tin nhân viên của quản lý thiết bị máy tính
Hình 2.7 đồ tuần tự mô tả hoạt động Cập nhật Nhân viên
2.5.4 Biểu đồ Cộng tác (Collaboration Diagram)
Chỉ ra các thông tin như biểu đồ trình tự nhưng theo cách khác, nó tập trung tổ chức cấu trúc của các đối tượng gửi và nhận thông điệp
Trang 24Một biểu đồ cộng tác miêu tả tương tác giữa các đối tượng cũng giống như biểu đồ tuần tự, nhưng nó tập trung trước hết vào các sự kiện, tức là tập trung chủ yếu vào sự tương tác giữa các đối tượng
Trong một biểu đồ cộng tác, các đối tượng được biểu diễn bằng kí hiệu lớp Thứ tự trong biểu đồ cộng tác được thể hiện bằng cách đánh số các thông điệp Kỹ thuật đánh
số được coi là hơi có phần khó hiểu hơn so với kỹ thuật mũi tên sử dụng trong biểu đồ tuần tự Nhưng ưu điểm của biểu đồ cộng tác là nó có thể chỉ ra các chi tiết về các lệnh gọi hàm (thủ tục), yếu tố được né tránh trong biểu đồ tuần tự
Ví dụ: Xây dựng biểu đồ cộng tác mô tả hoạt động Cập nhật nhân viên trong quản
lý thiết bị máy tính
Hình 2.8 Biểu đồ cộng tác mô tả hoạt động Cập nhật nhân viên
2.5.5 Biểu đồ Chuyển trạng thái (State Diagram)
Cung cấp cách thức mô hình hóa các trạng thái khác nhau của đối tượng Trong khi biểu đồ lớp cung cấp bức tranh tĩnh về các lớp và các quan hệ của chúng thì biểu
đồ chuyển trạng thái được sử dụng để mô hình hóa các hành vi động của hệ thống
Trạng thái đối tượng
Trạng thái đối tượng là kết quả của các hoạt động trước đó của đối tượng
Đối tượng luôn ở trong một trạng thái xác định tại một thời điểm
Ví dụ : Hóa đơn mua hàng: Đã thanh toán, chưa thanh toán
Xe ô tô: Đang chạy, đang đứng
Thay đổi trạng thái đối tượng khi có sự kiện xảy ra
Biểu đồ trạng thái
Mô tả chu kỳ tồn tại của đối tượng từ khi nó sinh ra đến khi nó bị phá hủy
Sử dụng để mô hình hóa khía ca ̣nh động của lớp
Biểu đồ bao gồm các thông tin sau:
Trang 25- Các trạng thái của đối tượng
- Các hành vi của đối tượng
- Sự kiện tác động làm thay đổi trạng thái
Thông thường xây dựng biểu đồ trạng thái cho một vài đối tượng của lớp có nhiều hành vi động trong dự án Không phải mọi dự án sử dụng biểu đồ loại này
Biểu đồ trạng thái dùng để:
- Phân tích viên, người thiết kế và người sử dụng hiểu hành vi đối tượng
- Người phát triển hành vi đối tượng để cài đặt nó
Trong biểu đồ trạng thái gồm hai phần tử đồ họa:
- Trạng thái khởi đầu: khi đối tượng được tạo ra
- Trạng thái kết thúc: Khi đối tượng bị phá hủy
Xác định trạng thái
Trạng thái có các hành động kết hợp sau:
- OnEntry: Các hành động này sẽ thực hiện khi trạng thái đạt tới
- Do: Các hành động này thực hiện trong lúc trạng thái tồn tại
- OnEvent: Các hành động này thực hiện để phản ứng lại một sự kiện
- OnExit: Các hành động thực hiện khi thoát khỏi trạng thái
- Inlucde: gọi một máy trạng thái cob, được biểu diễn bởi một biểu đồ trạng thái khác
Chuyển trạng thái là bước chuyển từ trạng thái này sang trạng thái khác
Chuyển trạng thái là một bộ ba: Event[Condition] / Action các thành phần này đều không bắt buộc có
Sự kiện
Sự kiện là nguyên nhân của trạng thái
Một sự kiện có thể kích hoạt một hoặc nhiều hành động bởi một tác nhân
Các kiểu sự kiện trong UML:
- Change events: Xuất hiện khi điều kiện thỏa mãn
- Signal events: Chỉ ra việc nhận một tín hiệu ngoài từ một đối tượng (hoặc tác nhân) sang đối tượng khác
- Call event: Chỉ ra việc nhận một tín hiệu ngoài từ một đối tượng hoặc tác nhân
- Time event: Đánh dấu việc chuyển trạng thái sau một khoảng thời gian
Trạng thái cha (Superstates)
Trang 26Để giảm quá nhiều trạng thái trong biểu đồ ta có thể lồng trạng thái vào trong trạng thái khác Trạng thái con (Substate), trạng thái cha (Superstate)
Sự kết hợp này cho phép UML biểu diễn biểu đồ trạng thái theo các mức trừu tượng khác nhau
Trạng thái cha chứa trong nó một hoặc nhiều trạng thái
Ví dụ: Xây dựng biểu đồ trạng thái của lớp Nhân viên trong phân tích thiết kế hướng đối tượng
Hình 2.9 Biểu đồ trạng thái của lớp Hóa đơn
2.5.6 Biểu đồ hoạt động (Activity Diagram)
Biểu đồ hoạt động nắm bắt hành động và các kết quả của chúng Biểu đồ hoạt động tập trung vào công việc được thực hiện trong khi thực thi một thủ tục (hàm), các hoạt động trong một lần thực thi một trường hợp sử dụng hoặc trong một đối tượng Biểu đồ hoạt động là một biến thể của biểu đồ trạng thái và có một mục tiêu tương đối khác, đó là nắm bắt hành động (công việc và những hoạt động phải được thực hiện) cũng như kết quả của chúng theo sự biến đổi trạng thái Các trạng thái trong biểu đồ hoạt động (được gọi là các trạng thái hành động) sẽ chuyển sang giai đoạn kế tiếp khi hành động trong trạng thái này đã được thực hiện xong (mà không xác định bất kỳ một sự kiện nào theo như nội dung của biểu đồ trạng thái)
Một điểm phân biệt khác giữa biểu đồ hoạt động và biểu đồ trạng thái là các hành động của nó được định vị trong các luồng (Swimlane) Một luồng sẽ gom nhóm các hoạt động, chú ý tới khái niệm người chịu trách nhiệm cho chúng hoặc chúng nằm ở đâu trong một tổ chức Một biểu đồ hoạt động là một phương pháp bổ sung cho việc miêu tả tương tác, đi kèm với trách nhiệm thể hiện rõ các hành động xảy ra như thế nào, chúng làm gì (thay đổi trạng thái đối tượng), chúng xảy ra khi nào (chuỗi hành động), và chúng xảy ra ở đâu (luồng hành động)
Trang 27 Thanh tương tranh hay thanh đồng bộ
Trong hoạt động của hệ thống, có thể có nhiều luồng hành động được bắt đầu thực hiện hay kết thúc đồng thời Trong UML, thanh đồng bộ được vẽ bằng đoạn thẳng đậm được sử dụng để kết hợp nhiều luồng hành động đồng thời và để chia nhánh cho những luồng có khả năng thực hiện song song
Tuyến công việc
Tuyến công việc được sử dụng để phân hoạch các hoạt động (trạng thái) theo các nhóm đối tượng hay theo tuyến hoạt động của từng đối tượng Mỗi đối tượng hoạt động theo tuyến đã xác định, đồng thời giữa các tuyến này có sự chuyển đổi thông tin với nhau
2.5.7 Biểu đồ Thành phần (Component Diagram)
Cho ta cái nhìn vật lý của mô hình Biểu đồ thành phần cho ta thấy các thành phần phần mềm trong hệ thống và quan hệ giữa chúng Có hai loại thành phần trong biểu
đồ, đó là thành phần khả thực và thành phần thư viện
2.5.8 Biểu đồ Triển khai (Development Diagram)
Chỉ ra cấu hình các phần tử xử lý lúc chương trình chạy, các nút trên mạng và các tiến trình phần mềm thực hiện trên những phần tử đó Nó chỉ ra mối quan hệ giữa các phần cứng và phần mềm của hệ thống Biểu đồ triển khai chỉ ra toàn bộ các nút trên mạng, kết nối giữa chúng và các tiến trình chạy trên chúng
Hình 2.10 Biểu đồ triển khai của hệ thống
Trang 28CHƯƠNG 3: BÀI TOÁN ỨNG DỤNG: QUẢN LÝ THIẾT BỊ MÁY TÍNH CỦA CÔNG TY TNHH THƯƠNG MẠI VÀ XÂY DỰNG AN AN SƠN
3.1 Ứng dụng mô hình thác nước vào phân tích thiết kế bài toán
Mô hình phát triển phần mềm là một công thức cho việc phát triển một phần mềm,
nó nói với deverloper là các công đoạn để phát triển một phần mềm như thế nào Ví dụ như quy trình nấu cơm: vo gạo -> đổ nước vào nồi vừa đủ-> mang vào nồi cắm điện và bật nút xuống trạng thái cook -> cơm chính-> ăn cơm
Vậy vì sao khi làm phần mềm đòi hỏi phải có một mô hình Mô hình là sản phẩm công sức của trí tuệ và kinh nghiệm thực tế của người đi trước hay của bản thân cá nhân mình Mô hình nói lên từng bước tiến hành nó phải làm như thế nào ở bước này
và bước kế tiếp
Có rất nhiều mô hình phát triển phẩn mềm, tùy theo từng phần mềm mà áp dụng các mô hình khác nhau Với phần mềm quản lý thiết bị máy tính nó được xây dựng trên mô hình thác nước, đây là mô hình được coi là cổ điển, nó có mặt trong tất cả các
mô hình phát triển phần mềm
3.2 Bài toán ứng dụng
3.2.1 Phân tích yêu cầu
Đây là một qui trình cơ bản để hiểu tại sao (Why?) một hệ thống thông tin nên được xây dựng và xác định bằng cách nào mà một đội dự án có thể xây dựng được nó Dùng phương pháp phân tích Use Case để nắm bắt các yêu cầu của khách hàng, phân tích khả năng đáp ứng và tính khả thi của hệ thống
Đây là một bước quan trọng và sự thành công của bước này sẽ quyết định sự thành công của dự án Bởi vì một hệ thống dù có xây dựng tốt đến đâu nhưng không đáp ứng được những nhu cầu của khách hàng hệ thống sẽ thất bại Giai đoạn này gồm
2 bước: Khởi tạo dự án và Quản lý dự án
3.2.1.1 Định nghĩa
Công ty TNHH thương mại và xây dựng An An Sơn dự định sẽ thiết kế một phần mềm quản lý bán hàng, giúp người quản lý có thể bao quát được tổng thể hoạt động sản xuất kinh doanh của toàn công ty
Công ty yêu cầu một phần mềm có khả năng cập nhật danh sách các sản phẩm, tên sản phẩm mà khách hàng chọn có trong công ty Nhân viên tính tiền, lập hóa đơn thanh toán đối với mỗi sản phẩm mà khách hàng yêu cầu, khi thanh toán tiền thì hóa đơn phải được lưu trong cơ sở dữ liệu
Cuối tuần hay cuối ngày chủ quán sẽ thống kê doanh thu của quán, tiền hàng và thống kê theo mặt hàng
Trang 293.2.1.2 Yêu cầu phi chức năng
Yêu cầu sản phẩm
- Được sử dụng trong môi trường hệ điều hành Window
- Đạt hiệu quả về thời gian: thời gian cần thiết để thực hiện tra cứu thông tin không quá 10 giây Thời gian cần thiết để cập nhật dữ liệu không quá 5 giây Thời gian cần thiết để tổng hợp in báo cáo không quá 20 giây
- Độ tin cậy cao: các kết quả đưa ra chính xác, ngắn gon, đầy đủ
- Linh động: có tính mở, thuận tiện cho việc bảo trì phát triển hệ thống Có đầy
đủ các tiện ích phục vụ cho người sử dụng Có khả năng lập bảng biểu cho các bảng báo cáo theo yêu cầu của người sử dụng Phải có từng cấp độ ưu tiên cho người sử dụng và đảm bảo việc bảo mật chương trình Phải có chương trình quản trị hệ thống cho người điều hành, chương trình phải có tiện ích thuận tiện cho việc thêm bớt user, cấp phát quyền, bảo trị theo nhóm Các phân hệ của chương trình phải tuân thủ theo trật tự thực hiện yêu cầu của người sử dụng và giao diện chung
Yêu cầu phi chức năng
Yêu cầu phần mềm:
- Phần mềm IBM Rational Rose:
Rational Rose là phần mềm công cụ mạnh hỗ trợ phân tích, thiết kế hệ thống phần mềm theo hướng đối tượng Nó giúp ta mô hình hóa hệ thống trước khi viết mã chương trình Rational Rose hỗ trợ cho việc làm mô hình doanh nghiệp Giúp ta phân tích hệ thống và làm cho chúng ta có thể thiết kế được mô hình
Ưu điểm: Cung cấp nhiều tính năng
Mô hình hướng đối tượng
Cung cấp cho UML, COM, OMT
Kiểm tra ngữ nghĩa
Hỗ trợ phát sinh mã cho một số ngôn ngữ
Nhược điểm:
Phải cân chỉnh nhiều cho mô hình được đẹp
Trong bản free không hỗ trợ phát sinh mã cho một số ngôn ngữ
Không lùi về những bước đã làm
Dung lượng khá nặng
- SQL Server 2005 trở lên
Microsoft SQl server là một hệ quản trị cơ sở dữ liệu quan hệ (relational database management system – RDBMS) do Microsoft phát triển SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ mạng máy tính hoạt động theo mô hình khách chủ cho phép đồng thời cùng lúc có nhiều người dùng truy xuất đến dữ liệu, quản lý việc truy nhập hợp lệ và các quyền hạn của từng người dùng trên mạng Ngôn ngữ truy vấn quan
Trang 30trọng của Microsoft SQL server là Transact-SQL Transact-SQL là ngôn ngữ SQL mở rộng dựa trên SQL chuẩn của ISO (International Organization for Standardization) vàANSI (American National Standards Institute) được sử dụng trong SQL Server
Yêu cầu cấu hình phần cứng đối với người sử dụng
Bảo mật: Mỗi người sử dụng trong hệ thống cần được phép truy cập đến các chức năng và thông tin cần thiết liên quan đến nhiệm vụ và trách nhiệm của mình, đồng thời không được truy cập đến các chức năng và nằm ngoài phạm vi trách nhiệm của mình Việc phân quyền trách nhiệm do quản trị hệ thống đảm nhiệm
An toàn: Tất cả các thông tin được lưu trữ,không bị mất mát thông tin, không có sự nhầm lẫn sai lệch, thông tin chính xác và được lưu trữ rõ ràng không dư thừa thông tin Tương thích: Dễ tương thích giữa các hệ thống chương trình
3.2.1.3.Yêu cầu chức năng của hệ thống
Qua khảo sát thực tế và tư liệu tại công ty, các chức năng được đặt ra cho hệ thống phần mềm là:
R1 Đăng nhập vào hệ thống
R1.1 Yêu cầu đăng nhập hệ thống
R1.2 Nhập thông tin đăng nhập
R1.3 Xác nhận thông tin đăng nhập
R1.4 Thông báo kết quả
Trang 31R3 Quản lý hóa đơn
R3.1 Tiếp nhận số lượng cần mua của khách
R3.2 Tạo hóa đơn bán
R3.3 Đưa ra thông tin phiếu xuất
R3.4 In hóa đơn
R3.5 Thu tiền và thối tiền thừa (nếu có)
R4 Quản lý nhân viên
R4.1 Mở cửa sổ chương trình Quản lý nhân viên
R4.2 Thêm thông tin nhân viên
R4.2.1 Yêu cầu thêm thông tin nhân viên
R4.2.2 Nhập thông tin nhân viên
R4.2.3 Xác nhận thông tin nhân viên
R4.2.4 Trả kết quả
R4.3 Cập nhật thông tin nhân viên
R4.3.1 Yêu cầu cập nhật thông tin nhân viên
R4.3.2 Cập nhật thông tin nhân viên
R4.3.3 Yêu cầu ghi nhận thông tin
R4.3.4 Trả kết quả
R4.4 Xóa thông tin nhân viên:
R4.4.1 Yêu cầu xóa nhân viên
R4.4.2 Chọn nhân viên cần xóa
R4.4.3 Kết quả xóa nhân viên
R5 Quản lý khách hàng
R5.1 Mở cửa sổ chương trình Quản lý khách hàng
R5.2 Thêm thông tin khách hàng
R5.2.1 Yêu cầu thêm thông tin khách hàng
R5.4 Xóa thông tin khách hàng
R5.4.1 Yêu cầu xóa khách hàng
R5.4.2 Chọn khách hàng cần xóa
Trang 32R5.4.3 Kết quả xóa khách hàng
R6 Quản lý nhà cung cấp
R6.1 Mở cửa sổ chương trình Quản lý nhà cung cấp
R6.2 Thêm thông tin nhà cung cấp
R6.2.1 Yêu cầu thêm thông tin nhà cung cấp
R6.2.2 Nhập thông tin nhà cung cấp
R6.2.3 Xác nhận thông tin nhà cung cấp
R6.2.4 Trả kết quả
R6.3 Cập nhật thông tin nhà cung cấp
R6.3.1 Yêu cầu cập nhật thông tin nhà cung cấp
R6.3.2 Cập nhật thông tin nhà cung cấp
R6.3.3 Yêu cầu ghi nhận thông tin
R6.3.4 Trả kết quả
R6.4 Xóa thông tin nhà cung cấp
R6.4.1 Yêu cầu xóa nhà cung cấp
R6.4.2 Chọn nhà cung cấp cần xóa
R6.4.3 Kết quả xóa nhà cung cấp
R7 Lưu cơ sở dữ liệu
R8 Thống kê doanh thu
R8.1 Yêu cầu thống kê doanh thu
R8.2 Chọn chi tiêu cần thống kê
R8.3 Kết quả thống kê
3.2.2 Giai đoạn phân tích
Giai đoạn phân tích trả lời những câu hỏi (Who) “Ai sẽ sử dụng hệ thống?”, (What) “Hệ thống sẽ làm gì?” (Where-When) “Ở đâu và khi nào hệ thống sẽ được sử dụng?”
Bước đầu tiên trong giai đoạn này là phân tích hệ thống, đội dự án nghiên cứu tỉ
mỉ hệ thống hiện tại (nếu có), xác định cơ hội triển khai và phát thảo ý niệm chung cho
hệ thống mới Sau khi đã biết được người dùng muốn gì, chúng ta tập trung mô tả lại
hệ thống, các khái niệm chính trong lĩnh vực của hệ thống cần xây dựng, trong hướng đối tượng gọi là các lớp lĩnh vực (domain class), mối quan hệ và sự tương tác giữa các đối tượng đó Mục đích chính là hiểu hệ thống hoạt động như thế nào?
Bước kế tiếp là tổng hợp các thông tin hoặc tổng hợp các yêu cầu cho hệ thống, thiết kế mô hình UC: xác định các hoạt động của hệ thống để nhóm lại trong những
UC chung; tiếp đến xây dựng các mô hình cấu trúc gồm các lớp, biểu đồ lớp
Bước cuối cùng là xây dựng mô hình hành vi có thể có trong từng UC, từng lớp đối tượng
Trang 333.2.2.1.Xác định các actor
Tác nhân (actor) được hiểu là một vai trò quan trọng tham gia vào hệ thống không giống như một con người cụ thể hoặc một công việc Một đối tượng có thể tham gia vào một hoặc nhiều vai trò
Qua quá trình khảo sát và phân tích tài liệu hệ thống, chúng ta có thể nhận ra các
tác nhân:
- Khách hàng: là người mua hàng
- Giám đốc: đăng nhập vào hệ thống có chức năng: quản lý thu, quản lý chi, quản
lý nhân viên, xem thông tin khách hàng,… là người quản lý toàn bộ công ty
- Người quản lý: đăng nhập vào hệ thống có chức năng: quản lý thu, quản lý chi, quản lý nhập, quản lý xuất, lưu các phiếu vào cơ sở dữ liệu, quản lý nhân viên, xem thông tin khách hàng,… là người quản lý hệ thống bán hàng
- Nhân viên: đăng nhập vào hệ thống chức năng: bán hàng, thêm khách hàng, lập hóa đơn, quản lý khách hàng, xem danh sách các mặt hàng
- Nhà cung cấp: cung cấp các mặt hàng, báo giá sản phẩm
- Người quản trị: Quản lý và bảo trì hệ thống
3.2.2.2 Xác định các Use Case
- Đăng nhập hệ thống
- Quản lý sản phẩm
- Quản lý hóa đơn
- Quản lý nhân viên
- Quản lý khách hàng
- Quản lý nhà cung cấp
- Lưu cơ sở dữ liệu
- Thống kê doanh thu
3.2.2.3 Đặc tả các ca sử dụng
[1] Use Case_Đăng Nhập
- Tên ca sử dụng: Đăng nhập
- Các tác nhân: Giám đốc, Nhân viên, Người quản lý
- Mô tả: Khi thành viênmuốn đăng nhập vào hệ thống thì hệ thống sẽ yêu cầu nhập tên, mật khẩu Nếu mật khẩu đúng thì hệ thống sẽ xử lý và cho phép thực hiện các thao tác tiếp theo Nếu sai thì yêu cầu nhập lại tên, mật khẩu và tiếp tục thực hiện bước tiếp theo
- Tham chiếu tới: Các chức năng R1, R1.1, R1.2, R1.3, R1.4
[2].Use Case_Quản lý sản phẩm
Thêm sản phẩm
- Tên Use Case: Thêm sản phẩm