TÌM HIỂU MÔ HÌNH MVVM VÀ CÔNG CỤ ĐA NỀN XAMARIN XÂY DỰNG PHẦN MỀM QUẢN LÝ KHO XEM BÁO CÁO TRÊN THIẾT BỊ DI ĐỘNG - Full 10 điểm

92 0 0
TÌM HIỂU MÔ HÌNH MVVM VÀ CÔNG CỤ ĐA NỀN XAMARIN XÂY DỰNG PHẦN MỀM QUẢN LÝ KHO XEM BÁO CÁO TRÊN THIẾT BỊ DI ĐỘNG - Full 10 điểm

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

UBND TỈNH QUẢNG NAM TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA CÔNG NGHỆ THÔNG TIN ---------- KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC Tên đề tài: TÌM HIỂU MÔ HÌNH MVVM VÀ CÔNG CỤ ĐA NỀN XAMARIN XÂY DỰNG PHẦN MỀM QUẢN LÝ KHO XEM BÁO CÁO TRÊN THIẾT BỊ DI ĐỘNG Sinh viên thực hiện NGUYỄN THỊ YẾN NHI MSSV: 2113021019 CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN KHÓA: 2013 – 2017 Cán bộ hướng dẫn ThS. HUỲNH TẤN KHẢI MSCB: 1245 Quảng Nam, tháng 4 năm 2017 MỤC LỤC Phần 1. MỞ ĐẦU ................................................................................................ 1 1. Lý do chọn đề tài ................................................................................... 1 2. Mục tiêu của đề tài ................................................................................ 1 3. Đối tượng và phạm vi nghiên cứu ......................................................... 2 4. Phương pháp nghiên cứu ....................................................................... 2 5. Đóng góp của đề tài ............................................................................... 2 6. 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. Tổng quan về phân tích và thiết kế hướng đối tượng............................ 3 1.1.1. Cơ bản về phân tích thiết kế hướng đối tượng ................................ 3 1.1.2. Mục đích của mô hình hướng đối tượng ......................................... 4 1.1.3. Sử dụng UML để phát triển phần mềm hệ thống ............................ 5 1.1.4. Các biểu đồ (Diagram) ................................................................... 6 1.1.5. Các quan sát (Các kiểu xem) .......................................................... 8 1.2. Giới thiệu về Entity Framework Code First .......................................... 9 1.2.1. Entity Framework Code First là gì? ............................................... 9 1.2.2. Cài đặt Entity Framework............................................................. 10 1.2.3. Tạo cơ sở dữ liệu từ Entity Framework ........................................ 12 1.3. Giới thiệu về Visual Studio 2015 ........................................................ 13 1.4. Giới thiệu về Microsoft SQL Server 2016 .......................................... 14 1.5. Giới thiệu về mô hình MVVM ............................................................ 15 1.5.1. Giới thiệu....................................................................................... 15 1.5.2. Các thành phần của mô hình MVVM ............................................ 15 1.5.3. Các điểm chính về mô hình MVVM .............................................. 16 1.5.4. Ứng dụng và lợi ích của mô hình MVVM ..................................... 17 1.6. Giới thiệu lập trình di động ................................................................. 17 1.7. Công nghệ lập trình đa nền tảng Xamarin........................................... 17 1.7.1. Giới thiệu về lập trình đa nền tảng ............................................... 17 1.7.2. Giới thiệu về Xamarin ................................................................... 18 1.7.3. Tại sao nên chọn lập trình di động với Xamarin? ........................ 18 1.7.4. Đặc điểm của Xamarin.................................................................. 19 1.7.5. Kiến trúc của Xamarin .................................................................. 20 1.7.6. Môi trường phát triển .................................................................... 20 Chương 2. PHÂN TÍCH VÀ THIẾT KẾ CHƯƠNG TRÌNH ...................... 21 2.1. Phân tích hệ thống phần mềm ............................................................. 21 2.1.1. Use Case ........................................................................................ 21 2.1.2. Đặt tả Use Case ............................................................................ 22 2.1.3. Thiết kế các lớp ............................................................................. 42 2.1.4. Biểu đồ cộng tác ............................................................................ 48 2.1.5. Biểu đồ lớp .................................................................................... 53 2.1.6. Biểu đồ trạng thái.......................................................................... 63 2.1.7. Biểu đồ thành phần và biểu đồ triển khai. .................................... 66 2.2. Ứng dụng công nghệ Xamarin kết hợp cùng mô hình MVVM vào dự án ............................................................................................................. 68 2.2.1. Cách thức lấy dữ liệu cho ứng dụng ............................................. 68 2.2.2. Mô tả cách thiết kế mã nguồn 1 module trong ứng dụ ng Xamarin với Visual Studio ......................................................................................... 68 Chương 3. XÂY DỰNG CHƯƠNG TRÌNH QUẢN LÝ KHO VÀ XEM BÁO CÁO TRÊN THIẾT BỊ DI ĐỘNG ......................................................... 70 3.1. Chương trình Quản lý kho ................................................................... 70 3.1.1. Form đăng nhập ............................................................................ 70 3.1.2. Form Main .................................................................................... 70 3.1.3. Form nhân viên ............................................................................. 71 3.1.4. Form khách hàng .......................................................................... 71 3.1.5. Form kho hàng .............................................................................. 72 3.1.6. Form đơn vị tính ............................................................................ 72 3.1.7. Form nhóm sản phẩm.................................................................... 73 3.1.8. Form sản phẩm ............................................................................. 73 3.1.9. Form phiếu thu .............................................................................. 74 3.1.10. Form phiếu chi ........................................................................... 74 3.1.11. Form phiếu nhập ........................................................................ 75 3.1.12. Form phiếu xuất ......................................................................... 75 3.1.13. Form báo cáo tồn kho ................................................................ 76 3.1.14. Form báo cáo tổng hợp công nợ ................................................ 77 3.1.15. Form báo cáo chi tiết công nợ ................................................... 78 3.2. Kết quả báo cáo trên thiết bị di động .................................................. 79 Phần 3. KẾT LUẬN VÀ KIẾN NGHỊ ............................................................ 82 1. Kết luận ....................................................................................................... 82 2. Kiến nghị ..................................................................................................... 82 Phần 4. TÀI LIỆU THAM KHẢO .................................................................. 83 DANH MỤC BIỂU MẪU, HÌNH ẢNH Hình 1.1. Các bản vẽ trong OOAD sử dụng UML ............................................... 7 Hình 1.2. Các View trong OOAD sử dụng UML ................................................. 9 Hình 1.3. Kiến trúc của Entity Framework ......................................................... 10 Hình 1.4. Mối quan hệ giữa các thành phần trong mô hình MVVM .................. 16 Hình 1.5. Minh họa quá trình hình thành và phát triển Xamarin ........................ 18 Hình 1.6. Mô hình kiến trúc của Xamarin .......................................................... 20 Hình 2.1. Sơ đồ Use Case tổng quát Quản lý kho hàng ...................................... 22 Hình 2.2. Biểu đồ tuần tự cho ca sử dụng đăng nhập ......................................... 48 Hình 2.3. Biểu đồ tuần tự cho ca sử dụng quản lý nhân viên ............................. 49 Hình 2.4. Biểu đồ tuần tự cho ca sử dụng quản lý sản phẩm .............................. 49 Hình 2.5. Biểu đồ tuần tự cho ca sử dụng quản lý phiếu thu .............................. 50 Hình 2.6. Biểu đồ tuần tự cho ca sử dụng quản lý phiếu chi .............................. 50 Hình 2.7. Biểu đồ tuần tự cho ca sử dụng quản lý phiếu nhập ........................... 51 Hình 2.8. Biểu đồ tuần tự cho ca sử dụng quản lý phiếu xuất ............................ 51 Hình 2.9. Biểu đồ tuần tự cho ca sử dụng quản lý báo cáo thống kê.................. 52 Hình 2.10. Biểu đồ lớp ........................................................................................ 53 Hình 2.11. Cơ sở dữ liệu quản lý kho hàng ........................................................ 62 Hình 2.12. Biểu đồ trạng thái lớp nhân viên ....................................................... 63 Hình 2.13. Biểu đồ trạng thái lớp sản phẩm ....................................................... 63 Hình 2.14. Biểu đồ trạng thái lớp phiếu thu ........................................................ 64 Hình 2.15. Biểu đồ trạng thái lớp phiếu chi ........................................................ 64 Hình 2.16. Biểu đồ trạng thái lớp phiếu nhập ..................................................... 65 Hình 2.17. Biểu đồ trạng thái lớp phiếu xuất ...................................................... 65 Hình 2.18. Biểu đồ trạng thái lớp báo cáo thống kê ........................................... 66 Hình 2.19. Biểu đồ thành phần............................................................................ 67 Hình 2.20. Biểu đồ triển khai .............................................................................. 67 Hình 2.21. Mô hình truyền dữ liệu cho ứng dụng ............................................... 68 Hình 2.22. Tầng Molels của 1ớp "sanpham"...................................................... 68 Hình 2.23. Tầng ViewModel của 1ớp "sanpham" .............................................. 69 Hình 2.24. Mã XAML trong thiết kế tầng View cho lớp "sanpham" (sản phẩm). ............................................................................................................................. 69 Hình 3.1. Form đăng nhập................................................................................... 70 Hình 3.2. Form chính .......................................................................................... 70 Hình 3.3. Form nhân viên.................................................................................... 71 Hình 3.4. Form khách hàng ................................................................................. 71 Hình 3.5. Form kho hàng .................................................................................... 72 Hình 3.6. Form đơn vị tính .................................................................................. 72 Hình 3.7. Form nhóm sản phẩm .......................................................................... 73 Hình 3.8. Form sản phẩm .................................................................................... 73 Hình 3.9. Form phiếu thu .................................................................................... 74 Hình 3.10. Form phiếu chi .................................................................................. 74 Hình 3.11. Form phiếu nhập ............................................................................... 75 Hình 3.12. Form phiếu xuất ................................................................................ 75 Hình 3.13. Form báo cáo tồn kho ........................................................................ 76 Hình 3.14. In báo cáo tồn kho ............................................................................. 76 Hình 3.15. Form công nợ tổng hợp ..................................................................... 77 Hình 3.16. In công nợ tổng hợp .......................................................................... 77 Hình 3.17. Form công nợ chi tiết ........................................................................ 78 Hình 3.18. In công nợ chi tiết.............................................................................. 78 Hình 3.19. Giao diện chính của ứng dụng .......................................................... 79 Hình 3.20. Trang danh sách sản phẩm ................................................................ 79 Hình 3.21. Trang báo cáo công nợ nhà cung cấp ................................................ 80 Hình 3.22. Trang báo cáo công nợ khách hàng................................................... 80 Hình 3.23. Trang báo cáo hàng tồn kho .............................................................. 81 DANH MỤC TỪ VIẾT TẮT Từ viết tắt Viết đầy đủ Nghĩa tiếng Việt (nếu có) C Controler Trình điều khiển I Interface Giao diện DN Đăng nhập NV Nhân viên NQL Người quản lý QLPT Quản lý phiếu thu QLPC Quản lý phiếu chi QLPN Quản lý phiếu nhập QLPX Quản lý phiếu xuất QLSP Quản lý sản phẩm NSD Người sử dụng OOAD Object Oriented Analysis and Design Phân tích và thiết kế hướng đối tượng QLNV Quản lý nhân viên BCTK Báo cáo thống kê UML Unified Modeling Language Ngôn ngữ UML UP Unified Process Quá trình hợp nhất USDP Unified Software Development Process Quá trình phát triển phần mềm hợp nhất DDD Domain Driven Design Thiết kế hướng lĩnh vực API Application Programming Interface Giao diện lập trình ứng dụng UC Use Case Ca sử dụng RUP Rational Unified Process Quá trình phát triển hợp nhất SQL Structured Query Language Ngôn ngữ truy vấn mang tính cấu trúc LỜI CẢM ƠN Lời đầu tiên em xin chân thành cảm ơn sự hướng dẫn và giúp đỡ tận tình của thầy Huỳnh Tấn Khải, giảng viên khoa Công nghệ thông tin trường đại học Quảng Nam. Trong suốt thời gian thực hiện báo cáo khóa luận tốt nghiệp, mặc dù rất bận rộn trong công việc nhưng thầy vẫn dành nhiều thời gian và tâm huyết trong việc hướng dẫn em. Thầy đã cung cấp cho em rất nhiều hiểu biết về lĩnh vực mới khi em mới bắt đầu bước vào thực hiện khóa luận. Trong quá trình thực hiện bài báo cáo này, thầy luôn định hướng, góp ý và sửa chữa những chỗ sai giúp em không bị lạc lối trong biển kiến thức rộng lớn. Cho đến hôm nay, đề tài khóa luận của em đã được hoàn thành, cũng nhờ sự nhắc nhở, đôn đốc, sự giúp đỡ nhiệt tình của thầy. Em xin chân thành cảm ơn các thầy cô và bạn bè trong khoa Công nghệ thông tin đã giúp đỡ để bài báo cáo của em được hoàn chỉnh hơn. Tuy nhiên, do thời gian có hạn cũng như kiến thức còn non yếu, đề tài báo cáo sẽ không thể tránh khỏi những thiếu sót nhất định. Em rất mong nhận được sự góp ý của Quý thầy, cô và bạn đọc để bài báo cáo được hoàn thiện hơn. Trang 1 Phần 1. MỞ ĐẦU 1. Lý do chọn đề tài Ngày 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 công nghệ vào tất cả các ngành, các lĩnh vực. Các hệ thống phần mềm ngày càng trở nên dễ sử dụng và thời gian xử lý các yêu cầu được rút ngắn hơn, hướng tới sự tự động hóa cao. Do vậy, việc phát triển phần mềm không chỉ đòi hỏi về sự chính xác của số liệu, nghiệp vụ mà còn phải đáp ứng yêu cầu về tốc độ, giao diện tối ưu, phải mô hình hóa được thực tế vào ứng dụng để người dùng và các hệ thống phần mềm có độ tương tác cao, an toàn, thân thiện và bảo mật hơn… Từ đó giúp tiết kiệm thời gian, công sức của con người, tăng độ chính xác và hiệu quả trong quá trình xử lý công việc. Sự ra đời của các thiết bị di động thông minh chạy trên hệ điều hành iOS, Android, Windows Phone đã mang lại cuộc cách mạng lớn về cách thức sử dụng thiết bị di động trong cuộc sống và công việc. Hiện nay số lượng thiết bị cầm tay đã vượt qua số lượng máy tính cá nhân. Điều này đã thực sự mở ra một kỷ nguyên công nghệ mới. Nhu cầu ứng dụng công nghệ di động để hỗ trợ cho công việc và cuộc sống đang trở thành một yêu cầu cấp thiết. Từ đó lập trình ứng dụng di động (mobile apps) đang là xu hướng mạnh mẽ, nó đã thúc đẩy nền công nghiệp lập trình mobile tìm kiếm cách thức mới để truyền tải được những ứng dụng đến người dùng 1 cách nhanh chóng. Vì vậy, trong bài báo cáo này em đã chọn đề tài: “ Tìm hiểu mô hình MVVM và công cụ đa nền Xamarin. Xây dựng phần mềm Quản lý kho xem báo cáo trên thiết bị di động” với sự hướng dẫn của thầy Huỳnh Tấn Khải để báo cáo khóa luận tốt nghiệp của mình. 2. Mục tiêu của đề tài Tìm hiểu về phân tích thiết kế hướng đối tượng. Trang 2 Tìm hiểu về mô hình MVVM. Tìm hiểu công cụ đa nền Xamarin. Xây dựng phần mềm Quản lý kho kết hợp xem báo cáo trên thiết bị di động. 3. Đối tượng và phạm vi nghiên cứu Nghiên cứu về phân tích thiết kế hướng đối tượng dựa trên UML. Nghiên cứu kiến trúc lập trình Entity Framework Code-First. Nghiên cứu mô hình MVVM kết hợp công nghệ lập trình đa nền Xamarin. Môi trường phát triển: Visual Studio 2015, hệ quản trị cơ sở dữ liệu: SQL Server 2016. Xây dựng Phần mềm Quản lý kho, xây dựng ứng dụng xem số liệu báo cáo trên ứng dụng di động. 4. Phương pháp nghiên cứu Thu thập thông tin liên quan đến đề tài từ việc tìm kiếm tài liệu phân tích thiết kế hướng đối tượng ở trường, thư viện, Internet, … Đọc tài liệu, chọn những công cụ cần thiết cho việc thiết kế hệ thống và xây dựng phần mềm. 5. Đóng góp của đề tài Hiện nay hầu hết các hệ thống phần mềm của doanh nghiệp đang hoạt động cố định dựa trên nền tảng máy tính PC truyền thống và chưa thể tương tác được với các thiết bị di động như: điện thoại thông minh, máy tính bảng, v.v. Vì vậy, sự kết hợp giữa các ứng dụng trên thiết bị di động với hệ thống phần mềm có sẵn trên máy tính PC sẽ giúp cho doanh nghiệp tiết kiệm được thời gian, nâng cao hiệu quả trong ứng dụng công nghệ thông tin. Giúp người quản lý thuận tiện hơn trong việc điều hành doanh nghiệp của mình. 6. Cấu trúc của đề tài Ngoài phần mở đầu và kết luận, phần nội dung gồm ba chương:  Chương 1: Cơ sở lý thuyết.  Chương 2: Phân tích và thiết kế chương trình. Trang 3  Chương 3: Xây dựng chương trình quản lý kho và xem báo cáo trên thiết bị di động. Phần 2. NỘI DUNG NGHIÊN CỨU Chương 1. CƠ SỞ LÝ THUYẾT 1.1. Tổng quan về phân tích và thiết kế hướng đối tượng 1.1.1. Cơ bản về phân tích thiết kế hướng đối tượng a. Khái niệm về phân tích và thiết kế hướng đối tượ ng (Object Oriented Analysis and Design – OOAD) 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, 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). b. Giới thiệu về UML (Unified Modeling Language) UML là ngôn ngữ mô hình hóa hợp nhất dùng để biểu diễn hệ thống. Nói một cách đơn giản là nó dùng để tạo ra các bản vẽ nhằm mô tả thiết kế hệ thống. Các bản vẽ này được sử dụng để các nhóm thiết kế trao đổi với nhau cũng như dùng để thi công hệ thống (phát triển), thuyết phục khách hàng, các nhà đầu tư, v.v. (Giống như trong xây dựng người ta dùng các bản vẽ thiết kế để hướng dẫn và kiểm soát thi công). c. Tại sao phải sử dụng OOAD và UML Trang 4 OOAD cần các bản vẽ để mô tả hệ thống được thiết kế, còn UML là ngôn ngữ mô tả các bản vẽ nên cần nội dung thể hiện. Do vậy, chúng ta phân tích và thiết kế theo hướng đối tượng và sử dụng UML để biểu diễn các thiết kế đó nên chúng thường đi đôi với nhau. UML sử dụng để vẽ cho nhiều lĩnh vực khác nhau như phần mềm, cơ khí, xây dựng, v.v. trong phạm vi bài viết này chỉ nghiên cứu cách sử dụng UML cho phân tích và thiết kế hướng đối tượng trong ngành phần mềm. OOAD sử dụng UML bao gồm các thành phần sau: - View (góc nhìn) - Diagram (bản vẽ) - Notations (ký hiệu) - Mechanisms (qui tắc, cơ chế) 1.1.2. Mục đích của mô hình hướng đối tượng Mô hình được các hệ thống (không chỉ hệ thống phần mềm) và sử dụng được tất cả các khái niệm hướng đối tượng một cách thống nhất. Cho phép đặc tả, hỗ trợ để đặc tả tường minh (trực quan) mối quan hệ giữa các khái niệm cơ bản trong hệ thống, đồng thời mô tả được mọi trạng thái hoạt động của hệ thống đối tượng. Nghĩa là cho phép mô tả được cả mô hình tĩnh lẫn mô hình động một cách đầy đủ và trực quan. Tận dụng được những khả năng sử dụng lại và kế thừa ở phạm vi diện rộng để xây dựng được những hệ thống phức tạp và nhạy cảm như: các hệ thống động, hệ thống thời gian thực, hệ thống nhúng thời gian thực, v.v. Tạo ra những ngôn ngữ mô hình hoá sử dụng được cho cả người lẫn máy tính. Tóm lại, UML là ngôn ngữ mô hình hoá, ngôn ngữ đặc tả và ngôn ngữ xây dựng mô hình trong quá trình phát triển phần mềm, đặc biệt là trong phân tích và thiết kế hệ thống hướng đối tượng. UML là ngôn ngữ hình thức, thống nhất và chuẩn hoá mô hình hệ thống một cách trực quan. Nghĩa là các thành phần trong mô hình được thể hiện bởi các ký hiệu đồ hoạ, biểu đồ và thể hiện đầy đủ mối quan hệ giữa các chúng một cách thống nhất và có logic chặt chẽ. Trang 5 1.1.3. Sử dụng UML để phát triển phần mềm hệ thống UML được phát triển để đặc tả quá trình phát triển phần mềm, nhằm mô hình hoá hệ thống. Quá trình phát triển phần mềm này gọi là quá trình phát triển phần mềm hợp nhất (USDP) hay quá trình phát triển hợp nhất (RUP), gọi tắt là quá trình hợp nhất (UP). RUP là tập các quy tắc hướng dẫn về phương diện kỹ thuật và tổ chức để phát triển phần mềm, nhấn mạnh chủ yếu vào các bước phân tích và thiết kế. RUP được cấu trúc theo hai chiều: 1. Chiều thời gian : chia quá trình thành các pha thực hiện và các bước lặp, bao gồm các pha thực hiện: (i) Khởi động (Inception): xác định dự án tổng thể (ii) Soạn thảo dự án tỉ mỉ (Elaboration): + Lập kế hoạch cho những hoạt động cần thiết + Xác định những tài nguyên cần để thực hiện dự án + Xác định các tính chất, đặc trưng của dự án + Xây dựng kiến trúc cho hệ thống. (iii) Xác định những sản phẩm ở mỗi pha thực hiện. (iv)Chuyển giao: cung cấp sản phẩm cho cộng đồng người sử dụng. 2. Chiều thành phần : các sản phẩm cùng với các hoạt động được xác định đầy đủ, bao gồm các hoạt động: + Mô hình hoá nghiệp vụ: thiết lập các khả năng của hệ thống cần xây dựng và nhu cầu của người sử dụng. + Phân tích các yêu cầu: chi tiết các yêu cầu chức năng và phi chức năng của hệ thống. + Phân tích thiết kế hệ thống: mô tả hệ thống thực hiện các yêu cầu và hỗ trợ cài đặt. + Cài đặt chương trình: lập trình những kết quả thiết kế nêu trên để hệ thống hoạt động đúng theo yêu cầu. + Kiểm thử, kiểm chứng các thành phần và toàn bộ hệ thống. Trang 6 + Triển khai hệ thống: khai thác hệ thống và huấn luyện người sử dụng. UP bao gồm con người, dự án, sản phẩm, quy trình và công cụ. Con người là những người tham gia dự án để tạo ra sản phẩm phần mềm theo một quá trình với sự hỗ trợ của công cụ được cung cấp. UP là quá trình phát triển phần mềm được hướng dẫn bởi các ca sử dụng. Nghĩa là các yêu cầu của người sử dụng được mô tả trong các ca sử dụng, là chuỗi các hành động được thực hiện bởi hệ thống nhằm cung cấp các dịch vụ, các thông tin cho khách hàng. Các ca sử dụng bao gồm chuỗi các công việc được xem là nền tảng để tạo ra mô hình thiết kế và cài đặt hệ thống. UP cũng là quy trình tập trung vào kiến trúc, được lặp và phát triển tăng trưởng liên tục. Kiến trúc của hệ thống phải được thiết kế nhằm đáp ứng các yêu cầu của các ca sử dụng chính, trong giới hạn của chuẩn phần cứng mà hệ thống sẽ chạy và của cấu trúc cả hệ thống lẫn các hệ thống con. Tính lặp của quá trình phát triển phần mềm được thể hiện ở chỗ là một dự án được chia thành các dự án nhỏ và được thực hiện lặp lại trong từng bước thực hiện. Mỗi dự án nhỏ đều thực hiện phân tích, thiết kế, cài đặt và kiểm thử, v.v. Mỗi phần việc đó được phát triển tăng trưởng và cả dự án cũng được thực hiện theo sự tăng trưởng này. UP không chỉ tạo ra một hệ thống phần mềm hoàn chỉnh mà còn tạo ra một số sản phẩm trung gian như các mô hình. Các mô hình chính trong UP là mô hình nghiệp vụ (ca sử dụng), mô hình khái niệm, mô hình thiết kế, mô hình triển khai và mô hình trắc nghiệm. Các mô hình này có sự phụ thuộc theo vết phát triển, nghĩa là có thể lần theo từng mô hình để đến được mô hình trước. 1.1.4. Các biểu đồ (Diagram) Diagram là các sơ đồ hay các các bản vẽ được dùng để thể hiện các góc nhìn của hệ thống. Trang 7 Hình 0.1. Các bản vẽ trong OOAD sử dụng UML Trong đó:  Biểu đồ ca sử dụng (Use Case Diagram): Bản vẽ mô tả về ca sử dụng của hệ thống. Bản vẽ này sẽ giúp chúng ta biết được ai sử dụng hệ thống, hệ thống có những chức năng gì. Lập được bản vẽ này bạn sẽ hiểu được yêu cầu của hệ thống cần xây dựng.  Biểu đồ lớp (Class Diagram): Bản vẽ này mô tả cấu trúc của hệ thống, tức hệ thống được cấu tạo từ những thành phần nào. Nó mô tả khía cạnh tĩnh của hệ thống.  Biểu đồ đối tượng (Object Diagram): Tương tự như Class Diagram nhưng nó mô tả đến đối tượng thay vì lớp (Class).  Biểu đồ trình tự (Sequence Diagarm): Là bản vẽ mô tả sự tương tác của các đối tượng trong hệ thống với nhau được mô tả tuần tự các bước tương tác theo thời gian.  Biểu đồ cộng tác (Collaboration Diagram): Tương tự như Sequence Diagram nhưng nhấn mạnh về sự tương tác thay vì tuần tự theo thời gian.  Biểu đồ trạng thái (State Diagram): Bản vẽ mô tả sự thay đổi trạng thái của một đối tượng. Nó được dùng để theo dõi các đối tượng có trạng thái thay đổi nhiều trong hệ thống.  Biểu đồ hoạt động (Activity Diagram): Bản vẽ mô tả các hoạt động của đối tượng, thường được sử dụng để hiểu về nghiệp vụ của hệ thống. Trang 8  Biểu đồ thành phần (Component Diagram): Bản vẽ mô tả về việc bố trí các thành phần của hệ thống cũng như việc sử dụng các thành phần đó.  Biểu đồ triển khai (Deployment Diagram): Bản vẽ mô tả việc triển khai của hệ thống như việc kết nối, cài đặt, hiệu năng của hệ thống, v.v. 1.1.5. Các quan sát (Các kiểu xem) Khi xem xét một hệ thống, chúng ta cần xây dựng mô hình từ những hướng nhìn (View- khía cạnh) khác nhau, xuất phát từ thực tế là những người làm việc với hệ thống, với các vai trò khác nhau sẽ nhìn hệ thống từ những khía cạnh khác nhau. UML xét hệ thống trên 5 khía cạnh:  Use Case View: cung cấp góc nhìn về các ca sử dụng giúp chúng ta hiểu hệ thống có gì? ai dùng và dùng nó như thế nào.  Logical View: cung cấp góc nhìn về cấu trúc hệ thống, xem nó được tổ chức như thế nào. Bên trong nó có gì.  Process View: cung cấp góc nhìn động về hệ thống, xem các thành phần trong hệ thống tương tác với nhau như thế nào.  Component View: Cũng là một góc nhìn về cấu trúc giúp chúng ta hiểu cách phân bổ và sử dụng lại các thành phần trong hệ thống ra sao.  Deployment View: cung cấp góc nhìn về triển khai hệ thống, nó cũng ảnh hưởng lớn đến kiến trúc hệ thống. Tập hợp các góc nhìn này sẽ giúp chúng ta hiểu rõ hệ thống cần phân tích, thiết kế. Trong Hình 0.2 chúng ta thấy góc nhìn Use Case View nằm ở giữa và chi phối tất cả các góc nhìn còn lại. Chính vì thế chúng ta thường thấy các tài liệu nói về 4 view + 1 chứ không phải 5 view nhằm nhấn mạnh vai trò của Use Case View. Trang 9 Hình 0.2. Các View trong OOAD sử dụng UML 1.2. Giới thiệu về Entity Framework Code First 1.2.1. Entity Framework Code First là gì? Entity Framework Code First được giới thiệu từ Entity Framework 4.1. Code First chủ yếu là hữu ích trong Domain Driven Design (DDD). Trong cách tiếp cận Code First, có thể tập trung vào việc thiết kế Domain và bắt đầu tạo ra các lớp theo yêu cầu của Domain chứ không phải thiết kế cơ sở dữ liệu trước rồi sau đó tạo ra các lớp phù hợp với thiết kế cơ sở dữ liệu đó. Code First API sẽ tạo ra cơ sở dữ liệu dựa trên các lớp thực thể và lớp cấu hình. ADO.NET Entity Framework là một nền tảng được sử dụng để làm việc với database thông qua cơ chế ánh xạ Object/Relational Mapping (ORM). Nhờ đó, có thể truy vấn, thao tác với database gián tiếp thông qua các đối tượng lập trình. Tạo cơ sở dữ liệu với Entity Framework Code First Trang 10 Hình 0.3. Kiến trúc của Entity Framework 1.2.2. Cài đặt Entity Framework Đầu tiên, tạo ứng dụng điều khiển. Nhấp chuột phải vào dự án trong giải pháp và chọn Quản lý gói NuGet. Thao tác này sẽ mở hộp thoại Manage NuGet Packages. Bây giờ, chọn Online ở thanh bên trái và tìm kiếm Entity Framework như thể hiện dưới đây. Trang 11 Nó sẽ tìm kiếm tất cả các gói có liên quan đến Entity Framework. Chọn Entity Framework và nhấp vào Cài đặt. Nhấp vào nút Tôi chấp nhận trong hộp thoại Chấp nhận Giấy phép để bắt đầu cài đặt. Trang 12 1.2.3. Tạo cơ sở dữ liệu từ Entity Framework Cấu trúc 1 lớp: Tạo lớp sản phẩm (Class SanPham) namespace iStore.Models { [Table("SanPham")] public class SanPham { public SanPham() { } public int Id { get; set; } [Index(IsUnique = true)] [StringLength(255)] [Display(Name = "Tên Sản phẩm")] public string Ten { get; set; } [Display(Name = "Nhóm")] public int IdNhom { get; set; } [StringLength(255)] [Display(Name = "Ký hiệu")] public string KyHieu { get; set; } [Display(Name = "ĐVT")] public int IdDonViTinh { get; set; } [Display(Name = "Giá nhập")] public double GiaNhap { get; set; } [Display(Name = "Giá bán")] Trang 13 public double GiaLe { get; set; } [Display(Name = "Hạn sử dụng")] public DateTime HanSuDung { get; set; } [Display(Name = "Ghi chú")] public string GhiChu { get; set; } } } 1.3. Giới thiệu về Visual Studio 2015 Microsoft Visual Studio 2015 là công cụ lập trình mạnh mẽ được sử dụng để phát triển các chương trình máy tính cho Microsoft Windows, cũng như các trang web, các ứng dụng web và các dịch vụ web. Tải Microsoft Visual Studio về máy, lập trình viên có thể khai thác hoàn toàn Visual Studio, .NET trên Linux, Mac OS và hỗ trợ lập trình ứng dụng cho Android, iOS. Microsoft Visual Studio 2015 được xem là một giải pháp toàn diện cho các lập trình viên để phát triển và quản lý ứng dụng trên nhiều thiết bị và nền tảng khác nhau. Trong phiên bản mới nhất này sẽ mở rộng khả năng lập trình cho các nền tảng iOS, Android và Windows nhờ việc hỗ trợ các công cụ biên soạn Slang, LLVM và C++. Visual Studio hỗ trợ nhiều ngôn ngữ lập trình khác nhau và cho phép các lập trình viên biên tập mã và gỡ lỗi để hỗ trợ (mức độ khác nhau) với hầu hết các ngôn ngữ lập trình, cung cấp một dịch vụ ngôn ngữ cụ thể tồn tại. Ứng dụng này được xây dựng trong ngôn ngữ bao gồm C, C ++, C ++/ CLI (thông qua Visual C ++), VB.NET (thông qua Visual Basic .NET), C # (thông qua Visual C #) và F # (như Visual Studio 2010). Ngoài ra nó còn hỗ trợ cho các ngôn ngữ khác như M, Python, Ruby và nhiều loại khác thông qua các cài đặt ngôn ngữ riêng. Bên cạnh đấy, nó cũng hỗ trợ XML / XSLT, HTML / XHTML, JavaScript và CSS. Một số điểm mới của Visual Studio 2015  Visual Studio C++ cho các phát triển nền tảng chéo.  Visual Studio Emulator cho Android.  C++, C# và Visual Basic. Trang 14  .NET Framework 4.6.  Entity Framework.  Visual Studio IDE.  Debugging and Diagnostics.  ASP.NET.  TypeScript.  Unit Tests.  Điều khiển phiên bản GIT (quản lý mã nguồn), v.v. 1.4. Giới thiệu về Microsoft SQL Server 2016 SQL Server 2016 là hệ quản trị CSDL được xây dựng cho nhiệm vụ phân tích thông tin quan trọng. Đây là bước tiến vượt trội của Microsoft trong nền tảng CSDL với khả năng phân tích theo thời gian thực. SQL Server 2016 là bộ giải pháp mới sẽ đưa lại nền tảng dữ liệu an toàn, ổn định, hiệu suất cao với khả năng tương thích cao cho các doanh nghiệp, những đơn vị cần giải quyết bài toán khai thác thông tin và ra quyết định, từ đó ổn định công tác vận hành và nâng cao năng lực xử lý cạnh tranh để tạo ra cơ hội phát triển kinh doanh lớn mạnh hơn. SQL Server 2016 có thể quản trị tốt dữ liệu quan hệ và hơn thế như hệ dữ liệu JSON, XML, Hadoop... tích hợp các dữ liệu lưu trữ tại doanh nghiệp với dữ liệu đám mây. Hỗ trợ các ứng dụng đòi hỏi bảo mật cao với những công nghệ mới "luôn mã hóa" giúp bảo vệ dữ liệu người dùng toàn vẹn, luôn hoạt động mà không ảnh hưởng tới hiệu suất của CSDL. SQL Server 2016 tích hợp những giải pháp quản trị dữ liệu lớn mới tổng hợp các dữ liệu quan hệ với dữ liệu không quan hệ dựa trên nền tảng PolyBase được dựng sẵn, giúp người dùng có thể truy vấn các dữ liệu phi cấu trúc nhờ sự đơn giản hóa của công nghệ T-SQL. SQL Server 2016 được hỗ trợ như một giải pháp đám mây lai giúp giảm đi chi phí lưu trữ, cải thiện sự sẵn sàng và đơn giản hóa trong vận hành nhờ công Trang 15 nghệ dàn trải CSDL (Stretch Database). Hơn thế, các bản sao (replicas) có thể được đặt trong Azure (một giải pháp trên nền tảng đám mây của Microsoft) để giúp khách hàng hiệu quả hơn về mặt khôi phục dữ liệu sau thảm họa và cập nhật. 1.5. Giới thiệu về mô hình MVVM 1.5.1. Giới thiệu Mô hình MVVM được phát triển bởi Microsoft, được dẫn dắt bởi kiến trúc sư Ken Cooper và Ted Peters với mục đích làm đơn giản hóa việc lập trình sự kiện của giao diện người dùng. Về sau John Gossman, một kiến trúc sư trong dự án WPF (Windows Presentation Foundation) và Silverlight của Microsoft đã công bố mô hình này vào năm 2005. Đa số các ứng dụng thuộc bất kì nền tảng nào cũng có thể chia thành hai phần: giao diện (View) và dữ liệu (Model). Vì việc tách riêng các phần này, cần phải có một phần trung gian nào đó nối kết hai phần này lại, và chúng tạo nên một mô hình (pattern). MVVM là viết tắt của Model-View-ViewModel. Mô hình này hỗ trợ ràng buộc dữ liệu (data binding) 2 chiều giữa giao diện và dữ liệu. Điều này cho phép mô hình tự động cập nhật các thay đổi của dữ liệu và dễ dàng thay đổi giao diện (GUI) của ứng dụng mà không cần phải thay đổi mã nguồn quá nhiều. 1.5.2. Các thành phần của mô hình MVVM View : Là thành phần duy nhất mà người dùng có thể tương tác được trong chương trình, nó chính là thành phần mô tả dữ liệu. Một điểm khác biệt so với các ứng dụng truyền thống là View trong mô hình này tích cực hơn, nó có khả năng thực hiện các hành vi và phản hồi lại người dùng thông qua tính năng binding (*). (*) Binding: là việc liên kết một thành phần từ dữ liệu nguồ n (data source) với một thành phần trên giao diện (GUI). Là cách liên kết một-một giữa mộ t thuộc tính của control và một thành phần của data source. Dữ liệu giữ a 2 thành phần này luôn đồng bộ với nhau. Trang 16 Model : Model đại diện cho các dữ liệu, thông tin mà chúng ta cần thao tác. Đơn vị của Model chính là Class. Các class trong Model của MVVM đều giống như các class bình thường khác, chúng đều có một số các phương thức, thuộc tính… hay khả năng tự động lưu dữ liệu của nó và cơ sở dữ liệu. Ví dụ một model về Thông tin liên lạc sẽ bao gồm: tên, số điện thoại, địa chỉ… Cần phải lưu ý rằng model chỉ lưu giữ thông tin mà thôi, nó không quan tâm đến các hoạt động hay dịch vụ có thể thay đổi, điều khiển các thông tin đó. Ví dụ như nó không có trách nhiệm phải định dạng đoạn văn bản hiển thị như thế nào... ViewModel: Là class trung gian giữa View và Model, nó định nghĩa cách dữ liệu tương tác với người dùng thông qua View. Một lưu ý quan trọng đó là ViewModel không mô tả giao diện sẽ trông như thế nào. Nó chỉ mô tả cách mà View hoạt động và thông tin nào sẽ được cung cấp cho người dùng. Nói cách khác ViewModel là model của View. Hình 0.4. Mối quan hệ giữa các thành phần trong mô hình MVVM 1.5.3. Các điểm chính về mô hình MVVM - Người dùng (User) tương tác với View. - View và ViewModel quan hệ nhiều - một, có nghĩa nhiều view có thể được ánh xạ bởi 1 ViewModel. - View có một tham chiếu đến ViewModel nhưng ViewModel không có thông tin về View. Trang 17 - Hỗ trợ ràng buộc dữ liệu 2 chiều giữa View và ViewModel. 1.5.4. Ứng dụng và lợi ích của mô hình MVVM Ý tưởng chính của MVVM là tạo mẫu cho phần View và giữ cho các lớp View tách biệt khỏi lớp ViewModel. Về lý thuyết, việc này cho phép chúng ta thay đổi giao diện của ứng dụng mà chỉ cần viết lại phần View, các tính năng của View được định nghĩa trong ViewModel sẽ vẫn tiếp tục được giữ lại như trước. Đây chính là chìa khóa để thiết kế sản phẩm với khả năng bảo trì hệ thống dễ dàng. Điều này cũng rất hữu ích cho việc duy trì một chương trình theo thời gian. Việc giữ Model tách biệt làm cho ứng dụng dễ dàng được mở rộng sang lĩnh vực khác mà không cần sao chép mã hoặc phá vỡ kiến trúc đã xây dựng. Với việc sử dụng mô hình MVVM, đơn vị phát triển có thể giao phần View lại cho người thiết kế giao diện (designer) thực hiện công việc của họ. Họ có thể thay đổi giao diện như thế nào tùy thích (tất nhiên là vẫn phải theo một quy định nào đó) trong khi DataSource và các tính năng tương tác giữa giao diện với người dùng trong ViewModel vẫn giữ nguyên như cũ và hoạt động một cách chính xác. 1.6. Giới thiệu lập trình di động Lập trình ứng dụng di động là việc sử dụng các ngôn ngữ lập trình để viết và phát triển các phần mềm cài đặt trên các thiết bị di động sử dụng hệ điều hành. Trên thị trường ứng dụng di động hiện nay, 3 hệ điều hành chiếm thị phần cao nhất là: Android, iOS và Windows Phone . Đối với nền tảng Android thì phải sử dụng ngôn ngữ lập trình Java và để lập trình cho nền tảng iOS thì phải sử dụng ngôn ngữ lập trình Objective-C hoặc mới hơn là Swift, còn Windows Phone thì sử dụng C#. 1.7. Công nghệ lập trình đa nền tảng Xamarin 1.7.1. Giới thiệu về lập trình đa nền tảng Đa nền tảng là gì? Đa nền tảng (cross-platform hay multi-platform) là một thuật ngữ chỉ các phần mềm máy tính, di động hay các phương thức điện toán và Trang 18 các khái niệm được thực thi đầy đủ và vận hành cùng nhau trên nhiều nền tảng máy tính, di động. Ví dụ: Ứng dụng di động có thể thực thi đầy đủ các chức năng trên hệ điề u hành Android, iOS, Windows Phone thì được gọi là ứng dụng chạy được đa nề n tảng. Có một số công cụ hỗ trợ lập trình đa nền tảng như: PhoneGap, Titanium, Xamarin, v.v. 1.7.2. Giới thiệu về Xamarin Xamarin được thành lập từ tháng 5/2011 từ dự án Mono Open source – một Platform cho phép chạy công nghệ .NET Framework trên tất cả các nền tảng: Linux, Android, iOS, v.v. do Miguel de Icaza và Nat Friedman sáng lập với cộng đồng khoảng 1.3 triệu lập trình viên, độc quyền sử dụng công cụ của hãng tạo nên các ứng dụng di động bằng C#, cho phép chạy cross-platform (xuyên nền tảng) dành cho iOS, Android và Windows. Hình 0.5. Minh họa quá trình hình thành và phát triển Xamarin 1.7.3. Tại sao nên chọn lập trình di động với Xamarin? Xây dựng các native app (*) cho nhiều nền tảng dựa trên chung một nguồn dữ liệu bằng mã C#, sử dụng cùng IDE (**) và API (***). Giao diện tương thích với từng nền tảng, truy cập API gốc và hiệu suất của thiết bị. Trang 19 Bất cứ điều gì có thể làm trong Objective - C, Swift hay Java đều có thể làm trong C# với Xamarin. Hỗ trợ cùng lúc cho các phiên bản hệ điều hành mới. Giả i thích: (*) Native app: là một loại ứng dụng được thiết kế để chỉ chạy trên một hệ điều hành hoặc một thiết bị cụ thể, muốn chạy trên hệ điều hành hay thiế t bị khác sẽ phải có sự thay đổi nhất đị nh. (**) IDE (Integrated Development Environment): là phần mềm cung cấ p cho các lập trình viên một môi trường tích hợp bao gồm nhiều công cụ khác nhau như chương trình viết mã lệ nh. (***) API (Application Programming Interface - giao diện lập trình ứ ng dụng): là 1 giao tiếp phần mềm được dùng bởi các ứng dụng khác nhau. 1.7.4. Đặc điểm của Xamarin Xamarin hỗ trợ truy cập hoàn toàn tới SDK gốc của từng nền tảng và thêm một số tiện ích mới như sau: - Kết nối – Binding – Hoàn toàn với SDK gốc: + Chuyển đổi trực tiếp những phương thức trong SDK của Android và iOS sang ngôn ngữ .Net. + Cung cấp trình dò lỗi và kiểm tra “compile – time” hoặc trong quá trình phát triển, giảm thiểu lỗi runtime và tăng chất lượng ứng dụng. - Tương thích với Objective – C, Java, C và C++: chèn trực tiếp các thư viện Objective-C, Java, C, và C++, giúp lập trình viên có thể sử dụng các thứ viện của bên-thứ-3 một cách dễ dàng. - Cấu trúc ngôn ngữ hiện đại: Ngôn ngữ C# có một số điểm mới hơn so với Objective-C và Java như: Dynamic Language Features, Lambdas, LINQ, Parallel Programming, Generics, v.v. - Các lớp thư viện cơ bản (base class library - BCL): Gồm rất nhiều class hỗ trợ toàn diện và sắp xếp hợp lý, như XML, Database, Serialization, IO, String, Networking và nhiều thứ khác. Trang 20 - Môi trường phát triển mới (IDE): + Bộ công cụ Xamarin Studio trên Mac OS + Bộ công cụ Xamarin Studio hoặc Visual Studio trên Windows Hỗ trợ Cross Platform: Ứng dụng có thể được viết với 90% mã nguồn được chia sẻ hoặc dùng chung. Qua đó có thể giảm đáng kể chi phí và thời gian phát triển ứng dụng di động cho 3 nền tảng phổ biến nhất hiện nay là iOS, Android và Windows Phone. 1.7.5. Kiến trúc của Xamarin Hình 0.6. Mô hình kiến trúc của Xamarin 1.7.6. Môi trường phát triển Có thể phát triển ứng dụng trên môi trường Windows với Xamarin Studio hoặc Visual Studio để làm trình soạn thảo phát triển ứng dụng. Nếu ứng dụng hướng đến các thiết bị iOS thì cần phải có một máy Mac, có cài đặt Xcode và kèm theo Xamarin Studio cho nền tảng iOS. Trang 21 Chương 2. PHÂN TÍCH VÀ THIẾT KẾ CHƯƠNG TRÌNH 2.1. Phân tích hệ thống phần mềm 2.1.1. Use Case  Tác nhân của hệ thống Người sử dụng: Nhân viên, Người quản lý  Use Case (ca sử dụng UC) - Đăng nhập hệ thống: Mô tả người sử dụng (người quản lý, nhân viên, ...) đăng nhập vào hệ thống bằng tài khoản đã được khởi tạo để thực hiện các chức năng đã được phân quyền để tương tác với chương trình. - Quản lý sản phẩm: Mô tả người sử dụng tìm kiếm các sản phẩm có trong hệ thống và bên cạnh đó người dùng có thể xem thông tin về các sản phẩm hiện có. - Quản lý phiếu nhập: Mô tả việc cập nhập hàng hóa từ các nhà cung cấp, hàng trả từ khách hàng trong hệ thống. Bên cạnh đó cho phép người quản lý kiểm tra và xác nhận thông tin đơn hàng. - Quản lý phiếu xuất: Mô tả việc xuất hàng hóa đến khách hàng trong hệ thống. Bên cạnh đó cho phép người quản lý kiểm tra và xác nhận thông tin đơn hàng. - Quản lý phiếu thu: Mô tả số tiền thanh toán của các khách hàng, đối tác có trong hệ thống. Bên cạnh đó cho phép người quản lý kiểm tra và xác nhận thông tin đơn hàng. - Quản lý phiếu chi: Mô tả số tiền phải trả của đơn vị sử dụng đối với các khách hàng, đối tác có trong hệ thống. Bên cạnh đó cho phép người quản lý kiểm tra và xác nhận thông tin đơn hàng. - Quản lý thành viên: Cho phép người quản lý có thể cập nhật, tìm kiếm, cấp quyền và xem thông tin các thành viên có trong hệ thống. - Quản lý báo cáo thống kê: Mô tả chi tiết các đơn hàng đã nhập - xuất, hàng tồn kho, xem các khoản tiền cần phải thu - phải trả (công nợ) của Trang 22 đơn vị sử dụng với các đối tác có trong hệ thống theo thời gian. Hình 0.1. Sơ đồ Use Case tổng quát Quản lý kho hàng 2.1.2. Đặt tả Use Case a. Đặc tả UC đăng nhập Tên Use-Case: Đăng nhập ID: 1 Mức độ quan trọng: Cao Tác nhân chính : Nhânviên, người quản lý Kiểu Use-Case: Chi tiết, cần thiết Những ngườ i tham gia và quan tâm: Mô tả vắn tắt: Người sử dụng phải nhập tên và mật khẩu vào cửa sổ đăng nhập khi mở hệ thống. Hệ thống sẽ bắt đầu kiểm tra tên và mật khẩu nhập vào. Nếu thông tin nhập vào là đúng thì sẽ thông báo đăng nhập thành công và cho vào cửa sổ chương trình, ngược lại nếu thông tin nhập sai thì sẽ thông báo ra màn hình và yêu cầu nhập lại. Khởi sự: Người sử dụng sau khi đăng ký và muốn đăng nhập vào hệ thống. Các mối quan hệ: uc User Interface Mo... Nguoi quan ly Nhan v ien Dang nhap Quan ly nhan v ien Quan ly san pham Quan ly phieu thu Quan ly phieu nhap Quan ly bao cao - thong ke them, sua, xoa, tim kiem them, sua, xoa, tim kiem, inphieu xem,timkiem, inphieu Quan ly phieu chi Quan ly phieu xuat them, sua, xoa, tim kiem, inphieu Trang 23 Kết hợp (Association): Nhân viên, người quản lý Bao hàm (Include): Mở rộng (Extend): Khái quát hóa (Generalization): Các luồng sự kiện thông thường: 1. Người sử dụng đăng nhập vào hệ thống. 2. Form đăng nhập hiển thị. 3. Nhập tên, mật khẩu vào ô nhập liệu. 4. Hệ thống kiểm tra tên, mật khẩu của người sử dụng. 5. Nếu việc đăng nhập thành công thì được phép truy cập hệ thống. 6. UC kết thúc. Các luồng sự kiệ n con: Các luồng sự kiện thay thế/ngoại lệ: 3a. Người dùng nhập sai tên hoặc mật khẩu thì đăng nhập không thành công. + Hệ thống thông báo quá trình đăng nhập không thành công. + Hệ thống yêu cầu nhập lại tên và mật khẩu. 3b. Thoát khỏi hệ thống. + Người dùng kích chọn vào nút "Thoát" để hủy bỏ việc đăng nhập. b. Đặc tả UC cấp quyền cho nhân viên Tên Use-Case: Cấp quyền cho nhân viên ID: 2 Mức độ quan trọng: cao Tác nhân chính: Người quản lý Kiểu Use-Case: Chi tiết, cần thiết Những người tham gia và quan tâm: Nhân viên Mô tả vắn tắt: Người quản lý có thể cấp quyền sử dụng và đăng nhập cho các thành viên đã được khởi tạo. Khởi sự: Sau khi người quản lý đăng nhập vào hệ thống. Các mối quan hệ: Trang 24 Kết hợp (Association): Người quản lý Bao hàm (Include): Mở rộng (Extend): Khái quát hóa (Generalization): Các luồng sự kiện thông thường: 1. Người quản lý đăng nhập vào hệ thống. 2. Người quản lý chọn danh mục quản lý "Nhân viên". 3. Cấp quyền nhân viên trong danh sách nhân viên. 4. N

UBND TỈNH QUẢNG NAM TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA CÔNG NGHỆ THÔNG TIN - - KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC Tên đề tài: TÌM HIỂU MƠ HÌNH MVVM VÀ CÔNG CỤ ĐA NỀN XAMARIN XÂY DỰNG PHẦN MỀM QUẢN LÝ KHO XEM BÁO CÁO TRÊN THIẾT BỊ DI ĐỘNG Sinh viên thực NGUYỄN THỊ YẾN NHI MSSV: 2113021019 CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN KHÓA: 2013 – 2017 Cán hướng dẫn ThS HUỲNH TẤN KHẢI MSCB: 1245 Quảng Nam, tháng năm 2017 MỤC LỤC Phần MỞ ĐẦU 1 Lý chọn đề tài Mục tiêu đề tài Đối tượng phạm vi nghiên cứu Phương pháp nghiên cứu Đóng góp đề tài Cấu trúc đề tài Phần NỘI DUNG NGHIÊN CỨU Chương CƠ SỞ LÝ THUYẾT 1.1 Tổng quan phân tích thiết kế hướng đối tượng 1.1.1 Cơ phân tích thiết kế hướng đối tượng 1.1.2 Mục đích mơ hình hướng đối tượng 1.1.3 Sử dụng UML để phát triển phần mềm hệ thống 1.1.4 Các biểu đồ (Diagram) 1.1.5 Các quan sát (Các kiểu xem) 1.2 Giới thiệu Entity Framework Code First 1.2.1 Entity Framework Code First gì? 1.2.2 Cài đặt Entity Framework 10 1.2.3 Tạo sở liệu từ Entity Framework 12 1.3 Giới thiệu Visual Studio 2015 13 1.4 Giới thiệu Microsoft SQL Server 2016 14 1.5 Giới thiệu mơ hình MVVM 15 1.5.1 Giới thiệu 15 1.5.2 Các thành phần mơ hình MVVM 15 1.5.3 Các điểm mơ hình MVVM 16 1.5.4 Ứng dụng lợi ích mơ hình MVVM 17 1.6 Giới thiệu lập trình di động 17 1.7 Cơng nghệ lập trình đa tảng Xamarin 17 1.7.1 Giới thiệu lập trình đa tảng 17 1.7.2 Giới thiệu Xamarin 18 1.7.3 Tại nên chọn lập trình di động với Xamarin? 18 1.7.4 Đặc điểm Xamarin 19 1.7.5 Kiến trúc Xamarin 20 1.7.6 Môi trường phát triển 20 Chương PHÂN TÍCH VÀ THIẾT KẾ CHƯƠNG TRÌNH 21 2.1 Phân tích hệ thống phần mềm 21 2.1.1 Use Case 21 2.1.2 Đặt tả Use Case 22 2.1.3 Thiết kế lớp 42 2.1.4 Biểu đồ cộng tác 48 2.1.5 Biểu đồ lớp 53 2.1.6 Biểu đồ trạng thái 63 2.1.7 Biểu đồ thành phần biểu đồ triển khai 66 2.2 Ứng dụng công nghệ Xamarin kết hợp mơ hình MVVM vào dự án 68 2.2.1 Cách thức lấy liệu cho ứng dụng 68 2.2.2 Mô tả cách thiết kế mã nguồn module ứng dụng Xamarin với Visual Studio 68 Chương XÂY DỰNG CHƯƠNG TRÌNH QUẢN LÝ KHO VÀ XEM BÁO CÁO TRÊN THIẾT BỊ DI ĐỘNG 70 3.1 Chương trình Quản lý kho 70 3.1.1 Form đăng nhập 70 3.1.2 Form Main 70 3.1.3 Form nhân viên 71 3.1.4 Form khách hàng 71 3.1.5 Form kho hàng 72 3.1.6 Form đơn vị tính 72 3.1.7 Form nhóm sản phẩm 73 3.1.8 Form sản phẩm 73 3.1.9 Form phiếu thu 74 3.1.10 Form phiếu chi 74 3.1.11 Form phiếu nhập 75 3.1.12 Form phiếu xuất 75 3.1.13 Form báo cáo tồn kho 76 3.1.14 Form báo cáo tổng hợp công nợ 77 3.1.15 Form báo cáo chi tiết công nợ 78 3.2 Kết báo cáo thiết bị di động 79 Phần KẾT LUẬN VÀ KIẾN NGHỊ 82 Kết luận 82 Kiến nghị 82 Phần TÀI LIỆU THAM KHẢO 83 DANH MỤC BIỂU MẪU, HÌNH ẢNH Hình 1.1 Các vẽ OOAD sử dụng UML Hình 1.2 Các View OOAD sử dụng UML Hình 1.3 Kiến trúc Entity Framework 10 Hình 1.4 Mối quan hệ thành phần mơ hình MVVM 16 Hình 1.5 Minh họa trình hình thành phát triển Xamarin 18 Hình 1.6 Mơ hình kiến trúc Xamarin 20 Hình 2.1 Sơ đồ Use Case tổng quát Quản lý kho hàng 22 Hình 2.2 Biểu đồ cho ca sử dụng đăng nhập 48 Hình 2.3 Biểu đồ cho ca sử dụng quản lý nhân viên 49 Hình 2.4 Biểu đồ cho ca sử dụng quản lý sản phẩm 49 Hình 2.5 Biểu đồ cho ca sử dụng quản lý phiếu thu 50 Hình 2.6 Biểu đồ cho ca sử dụng quản lý phiếu chi 50 Hình 2.7 Biểu đồ cho ca sử dụng quản lý phiếu nhập 51 Hình 2.8 Biểu đồ cho ca sử dụng quản lý phiếu xuất 51 Hình 2.9 Biểu đồ cho ca sử dụng quản lý báo cáo thống kê 52 Hình 2.10 Biểu đồ lớp 53 Hình 2.11 Cơ sở liệu quản lý kho hàng 62 Hình 2.12 Biểu đồ trạng thái lớp nhân viên 63 Hình 2.13 Biểu đồ trạng thái lớp sản phẩm 63 Hình 2.14 Biểu đồ trạng thái lớp phiếu thu 64 Hình 2.15 Biểu đồ trạng thái lớp phiếu chi 64 Hình 2.16 Biểu đồ trạng thái lớp phiếu nhập 65 Hình 2.17 Biểu đồ trạng thái lớp phiếu xuất 65 Hình 2.18 Biểu đồ trạng thái lớp báo cáo thống kê 66 Hình 2.19 Biểu đồ thành phần 67 Hình 2.20 Biểu đồ triển khai 67 Hình 2.21 Mơ hình truyền liệu cho ứng dụng 68 Hình 2.22 Tầng Molels 1ớp "sanpham" 68 Hình 2.23 Tầng ViewModel 1ớp "sanpham" 69 Hình 2.24 Mã XAML thiết kế tầng View cho lớp "sanpham" (sản phẩm) 69 Hình 3.1 Form đăng nhập 70 Hình 3.2 Form 70 Hình 3.3 Form nhân viên 71 Hình 3.4 Form khách hàng 71 Hình 3.5 Form kho hàng 72 Hình 3.6 Form đơn vị tính 72 Hình 3.7 Form nhóm sản phẩm 73 Hình 3.8 Form sản phẩm 73 Hình 3.9 Form phiếu thu 74 Hình 3.10 Form phiếu chi 74 Hình 3.11 Form phiếu nhập 75 Hình 3.12 Form phiếu xuất 75 Hình 3.13 Form báo cáo tồn kho 76 Hình 3.14 In báo cáo tồn kho 76 Hình 3.15 Form cơng nợ tổng hợp 77 Hình 3.16 In cơng nợ tổng hợp 77 Hình 3.17 Form công nợ chi tiết 78 Hình 3.18 In cơng nợ chi tiết 78 Hình 3.19 Giao diện ứng dụng 79 Hình 3.20 Trang danh sách sản phẩm 79 Hình 3.21 Trang báo cáo cơng nợ nhà cung cấp 80 Hình 3.22 Trang báo cáo cơng nợ khách hàng 80 Hình 3.23 Trang báo cáo hàng tồn kho 81 DANH MỤC TỪ VIẾT TẮT Từ viết tắt Viết đầy đủ Nghĩa tiếng Việt (nếu có) Trình điều khiển C Controler I Interface Giao diện DN Đăng nhập NV Nhân viên NQL Người quản lý QLPT Quản lý phiếu thu QLPC Quản lý phiếu chi QLPN Quản lý phiếu nhập QLPX Quản lý phiếu xuất QLSP Quản lý sản phẩm Phân tích thiết kế hướng đối NSD tượng OOAD Người sử dụng QLNV Ngôn ngữ UML BCTK Object Oriented Analysis Quá trình hợp UML and Design Quá trình phát triển phần UP Quản lý nhân viên mềm hợp USDP Thiết kế hướng lĩnh vực DDD Báo cáo thống kê API Giao diện lập trình ứng dụng UC Unified Modeling Language Ca sử dụng RUP Quá trình phát triển hợp Unified Process Unified Software Development Process Domain Driven Design Application Programming Interface Use Case Rational Unified Process SQL Structured Query Language Ngôn ngữ truy vấn mang tính cấu trúc LỜI CẢM ƠN Lời em xin chân thành cảm ơn hướng dẫn giúp đỡ tận tình thầy Huỳnh Tấn Khải, giảng viên khoa Công nghệ thông tin trường đại học Quảng Nam Trong suốt thời gian thực báo cáo khóa luận tốt nghiệp, bận rộn công việc thầy dành nhiều thời gian tâm huyết việc hướng dẫn em Thầy cung cấp cho em nhiều hiểu biết lĩnh vực em bắt đầu bước vào thực khóa luận Trong q trình thực báo cáo này, thầy ln định hướng, góp ý sửa chữa chỗ sai giúp em không bị lạc lối biển kiến thức rộng lớn Cho đến hôm nay, đề tài khóa luận em hồn thành, nhờ nhắc nhở, đôn đốc, giúp đỡ nhiệt tình thầy Em xin chân thành cảm ơn thầy cô bạn bè khoa Công nghệ thông tin giúp đỡ để báo cáo em hoàn chỉnh Tuy nhiên, thời gian có hạn kiến thức cịn non yếu, đề tài báo cáo khơng thể tránh khỏi thiếu sót định Em mong nhận góp ý Q thầy, bạn đọc để báo cáo hoàn thiện Phần MỞ ĐẦU Lý chọn đề tài Ngày nay, công nghệ thông tin xem ngành mũi nhọn quốc gia, đặc biệt nước phát triển, tiến hành cơng nghiệp hóa - đại hóa nước ta Sự bùng nổ thơng tin phát triển mạnh mẽ công nghệ kỹ thuật số, muốn phát triển phải áp dụng công nghệ vào tất ngành, lĩnh vực Các hệ thống phần mềm ngày trở nên dễ sử dụng thời gian xử lý yêu cầu rút ngắn hơn, hướng tới tự động hóa cao Do vậy, việc phát triển phần mềm khơng địi hỏi xác số liệu, nghiệp vụ mà phải đáp ứng yêu cầu tốc độ, giao diện tối ưu, phải mơ hình hóa thực tế vào ứng dụng để người dùng hệ thống phần mềm có độ tương tác cao, an toàn, thân thiện bảo mật hơn… Từ giúp tiết kiệm thời gian, cơng sức người, tăng độ xác hiệu trình xử lý cơng việc Sự đời thiết bị di động thông minh chạy hệ điều hành iOS, Android, Windows Phone mang lại cách mạng lớn cách thức sử dụng thiết bị di động sống công việc Hiện số lượng thiết bị cầm tay vượt qua số lượng máy tính cá nhân Điều thực mở kỷ nguyên công nghệ Nhu cầu ứng dụng công nghệ di động để hỗ trợ cho công việc sống trở thành u cầu cấp thiết Từ lập trình ứng dụng di động (mobile apps) xu hướng mạnh mẽ, thúc đẩy cơng nghiệp lập trình mobile tìm kiếm cách thức để truyền tải ứng dụng đến người dùng cách nhanh chóng Vì vậy, báo cáo em chọn đề tài: “Tìm hiểu mơ hình MVVM cơng cụ đa Xamarin Xây dựng phần mềm Quản lý kho xem báo cáo thiết bị di động” với hướng dẫn thầy Huỳnh Tấn Khải để báo cáo khóa luận tốt nghiệp Mục tiêu đề tài Tìm hiểu phân tích thiết kế hướng đối tượng Trang Tìm hiểu mơ hình MVVM Tìm hiểu cơng cụ đa Xamarin Xây dựng phần mềm Quản lý kho kết hợp xem báo cáo thiết bị di động Đối tượng phạm vi nghiên cứu Nghiên cứu phân tích thiết kế hướng đối tượng dựa UML Nghiên cứu kiến trúc lập trình Entity Framework Code-First Nghiên cứu mơ hình MVVM kết hợp cơng nghệ lập trình đa Xamarin Mơi trường phát triển: Visual Studio 2015, hệ quản trị sở liệu: SQL Server 2016 Xây dựng Phần mềm Quản lý kho, xây dựng ứng dụng xem số liệu báo cáo ứng dụng di động Phương pháp nghiên cứu Thu thập thông tin liên quan đến đề tài từ việc tìm kiếm tài liệu phân tích thiết kế hướng đối tượng trường, thư viện, Internet, … Đọc tài liệu, chọn công cụ cần thiết cho việc thiết kế hệ thống xây dựng phần mềm Đóng góp đề tài Hiện hầu hết hệ thống phần mềm doanh nghiệp hoạt động cố định dựa tảng máy tính PC truyền thống chưa thể tương tác với thiết bị di động như: điện thoại thơng minh, máy tính bảng, v.v Vì vậy, kết hợp ứng dụng thiết bị di động với hệ thống phần mềm có sẵn máy tính PC giúp cho doanh nghiệp tiết kiệm thời gian, nâng cao hiệu ứng dụng công nghệ thông tin Giúp người quản lý thuận tiện việc điều hành doanh nghiệp Cấu trúc đề tài Ngồi phần mở đầu kết luận, phần nội dung gồm ba chương:  Chương 1: Cơ sở lý thuyết  Chương 2: Phân tích thiết kế chương trình Trang

Ngày đăng: 01/03/2024, 12:22

Tài liệu cùng người dùng

Tài liệu liên quan