1. Trang chủ
  2. » Luận Văn - Báo Cáo

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 6 0

Đ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

Thông tin cơ bản

Tiêu đề 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
Tác giả Nguyễn Thị Yến Nhi
Người hướng dẫn ThS. Huỳnh Tấn Khải
Trường học Trường Đại Học Quảng Nam
Chuyên ngành Công Nghệ Thông Tin
Thể loại Khóa Luận Tốt Nghiệp Đại Học
Năm xuất bản 2017
Thành phố Quảng Nam
Định dạng
Số trang 92
Dung lượng 1,79 MB

Cấu trúc

  • Phần 1. MỞ ĐẦU (9)
    • 1. Lý do chọn đề tài (9)
    • 2. Mục tiêu của đề tài (9)
    • 3. Đối tượng và phạm vi nghiên cứu (10)
    • 4. Phương pháp nghiên cứu (10)
    • 5. Đóng góp của đề tài (10)
    • 6. Cấu trúc của đề tài (10)
  • Phần 2. NỘI DUNG NGHIÊN CỨU (11)
  • Chương 1. CƠ SỞ LÝ THUYẾT (11)
    • 1.1. Tổng quan về phân tích và thiết kế hướng đối tượng (11)
      • 1.1.1. Cơ bản về phân tích thiết kế hướng đối tượng (11)
      • 1.1.2. Mục đích của mô hình hướng đối tượng (12)
      • 1.1.3. Sử dụng UML để phát triển phần mềm hệ thống (13)
      • 1.1.4. Các biểu đồ (Diagram) (14)
      • 1.1.5. Các quan sát (Các kiểu xem) (16)
    • 1.2. Giới thiệu về Entity Framework Code First (17)
      • 1.2.1. Entity Framework Code First là gì? (17)
      • 1.2.2. Cài đặt Entity Framework (18)
      • 1.2.3. Tạo cơ sở dữ liệu từ Entity Framework (20)
    • 1.3. Giới thiệu về Visual Studio 2015 (21)
    • 1.4. Giới thiệu về Microsoft SQL Server 2016 (22)
    • 1.5. Giới thiệu về mô hình MVVM (23)
      • 1.5.1. Giới thiệu (23)
      • 1.5.2. Các thành phần của mô hình MVVM (23)
      • 1.5.3. Các điểm chính về mô hình MVVM (24)
      • 1.5.4. Ứng dụng và lợi ích của mô hình MVVM (25)
    • 1.6. Giới thiệu lập trình di động (25)
    • 1.7. Công nghệ lập trình đa nền tảng Xamarin (25)
      • 1.7.1. Giới thiệu về lập trình đa nền tảng (25)
      • 1.7.2. Giới thiệu về Xamarin (26)
      • 1.7.3. Tại sao nên chọn lập trình di động với Xamarin? (26)
      • 1.7.4. Đặc điểm của Xamarin (27)
      • 1.7.5. Kiến trúc của Xamarin (28)
      • 1.7.6. Môi trường phát triển (28)
  • Chương 2. PHÂN TÍCH VÀ THIẾT KẾ CHƯƠNG TRÌNH (29)
    • 2.1. Phân tích hệ thống phần mềm (29)
      • 2.1.1. Use Case (29)
      • 2.1.2. Đặt tả Use Case (30)
      • 2.1.3. Thiết kế các lớp (50)
      • 2.1.4. Biểu đồ cộng tác (56)
      • 2.1.5. Biểu đồ lớp (61)
      • 2.1.6. Biểu đồ trạng thái (71)
      • 2.1.7. Biểu đồ thành phần và biểu đồ triển khai (74)
    • 2.2. Ứng dụng công nghệ Xamarin kết hợp cùng mô hình MVVM vào dự án (76)
      • 2.2.1. Cách thức lấy dữ liệu cho ứng dụng (76)
      • 2.2.2. Mô tả cách thiết kế mã nguồn 1 module trong ứng dụng Xamarin với Visual Studio (76)
  • 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 (78)
    • 3.1. Chương trình Quản lý kho (78)
      • 3.1.1. Form đăng nhập (78)
      • 3.1.2. Form Main (78)
      • 3.1.3. Form nhân viên (79)
      • 3.1.4. Form khách hàng (79)
      • 3.1.5. Form kho hàng (80)
      • 3.1.6. Form đơn vị tính (80)
      • 3.1.7. Form nhóm sản phẩm (81)
      • 3.1.8. Form sản phẩm (81)
      • 3.1.9. Form phiếu thu (82)
      • 3.1.10. Form phiếu chi (82)
      • 3.1.11. Form phiếu nhập (83)
      • 3.1.12. Form phiếu xuất (83)
      • 3.1.13. Form báo cáo tồn kho (84)
      • 3.1.14. Form báo cáo tổng hợp công nợ (85)
      • 3.1.15. Form báo cáo chi tiết công nợ (86)
    • 3.2. Kết quả báo cáo trên thiết bị di động (87)
  • Phần 3. KẾT LUẬN VÀ KIẾN NGHỊ (90)
    • 1. Kết luận (90)
    • 2. Kiến nghị (90)
  • Phần 4. TÀI LIỆU THAM KHẢO (91)

Nội dung

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

NỘI DUNG NGHIÊN CỨU

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

CƠ SỞ LÝ THUYẾT

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

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:

- 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ẽ

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

+ 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

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

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)

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

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

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

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; }

[Display(Name = "Tên Sản phẩm")] public string Ten { get; set; }

[Display(Name = "Nhóm")] public int IdNhom { get; set; }

[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; }

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; }

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

 Điều khiển phiên bản GIT (quản lý mã nguồn), v.v.

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.

Giới thiệu về mô hình MVVM

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

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

- 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.

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#.

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

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ị

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

(*) 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

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

- 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

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

PHÂN TÍCH VÀ THIẾT KẾ CHƯƠNG TRÌNH

Phân tích hệ thống phần mềm

 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

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

Kết hợp (Association): Nhân viên, người quản lý

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

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

+ 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

Kết hợp (Association): Người quản lý

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 Người quản lý thoát khỏi hệ thống

Các luồng sự kiện con:

Các luồng sự kiện thay thế/ngoại lệ: c Đặc tả UC sửa thông tin sản phẩm

Tên Use-Case: Sửa thông tin sản phẩm

ID: 3 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: Ca sử dụng mô tả việc người quản lý sửa thông tin về các sản phẩm có trong hệ thống

Khởi sự: Người quản lý sau khi đăng nhập vào hệ thống

Kết hợp (Association): Người quản lý

Các luồng sự kiện thông thường:

1 Người quản lý chọn danh mục "Sản phẩm"

2 Hệ thống hiển thị form quản lý danh sách sản phẩm

4 Người quản lý nhập các giá trị cần thay đổi

5 Nhấn nút lưu thông tin

6 Nếu việc cập nhập thành công thì thông báo trạng thái lưu thành công

Các luồng sự kiện con:

Các luồng sự kiện thay thế/ngoại lệ:

5a Nếu việc cập nhập thông tin không hợp lệ thì thực hiện:

+ Hệ thống báo việc nhập dữ liệu không hợp lệ

+ Người quản lý nhập lại thông tin

+ Nếu việc cập nhập thành công thì thực hiện thông báo lưu thành công

+ UC kết thúc d Đặc tả UC xóa thông tin sản phẩm

Tên Use-Case: Xóa thông tin sản phẩm

ID: 4 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: Ca sử dụng mô tả việc người quản lý xóa thông tin về các sản phẩm đã trùng lặp trong danh sách

Khởi sự: Người quản lý đăng nhập vào hệ thống khi muốn xóa một sản phẩm nào đó trong hệ thống

Kết hợp (Association): Người quản lý

Các luồng sự kiện thông thường:

1 Người quản lý chọn vào danh mục "Sản phẩm"

2 Hệ thống hiển thị danh sách sản phẩm

3 Chọn vào sản phẩm cần xóa

4 Chọn chức năng xóa sản phẩm

Các luồng sự kiện con:

Các luồng sự kiện thay thế/ngoại lệ: e Đặc tả UC tìm kiếm sản phẩm

Tên Use-Case: Tìm kiếm sản phẩm

ID: 5 Mức độ quan trọng: Cao

Tác nhân chính: Nhân viên, người quản lý

Kiểu Use-Case: Chi tiết, cần thiết

Mô tả vắn tắt: Ca sử dụng mô tả việc người sử dụng muốn tìm kiếm thông tin về sản phẩm như: thông số, xuất sứ, giá bán của sản phẩm

Khởi sự: Người sử dụng tìm kiếm sau khi truy cập vào hệ thống

Kết hợp (Association): Nhân viên, người quản lý

Các luồng sự kiện thông thường:

1 Chọn vào danh mục "Sản phẩm"

2 Hệ thống hiển thị khung tìm kiếm

3 Nhập thông tin cần thiết vào khung tìm kiếm

4 Hệ thống thông báo kết quả tìm kiếm

Các luồng sự kiện con:

Các luồng sự kiện thay thế/ngoại lệ:

4a Nếu nhập không đúng sẽ thông báo và yêu cầu nhập lại f Thêm sản phẩm

Tên Use-Case: Thêm sản phẩm ID: 6 Mức độ quan trọng: Cao

Tác nhân chính: Nhân viên, người quản lý

Kiểu Use-Case: Chi tiết, cần thiết

Mô tả vắn tắt: Ca sử dụng mô tả việc người sử dụng thêm sản phẩm mới vào trong hệ thống

Khởi sự: Người sử dụng sau khi đăng nhập vào hệ thống

Kết hợp (Association): Nhân viên, người quản lý

Các luồng sự kiện thông thường:

1 Người sử dụng chọn danh mục "Sản phẩm"

2 Hiển thị from quản lý sản phẩm

3 Chọn chức năng thêm sản phẩm

4 Người sử dụng nhập các thông tin của sản phẩm mới

5 Nhấn nút lưu thông tin

6 Nếu việc cập nhật thành công thì thông báo lưu thành công sản phẩm mới

Các luồng sự kiện con:

Các luồng sự kiện thay thế/ngoại lệ:

5a Nếu thông tin sản phẩm đã tồn tại trong hệ thống:

+ Hệ thống báo sản phẩm đã tồn tại

+ Người quản lý nhập lại thông tin

+ Nếu việc cập nhập thành công thì thực hiện thông báo lưu thành công

+ UC kết thúc g Đặc tả UC sửa thông tin phiếu nhập

Tên Use-Case: Sửa thông tin phiếu nhập

ID: 7 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: Ca sử dụng mô tả việc người quản lý sửa thông tin về phiếu nhập có trong hệ thống

Khởi sự: Người quản lý sau khi đăng nhập vào hệ thống

Kết hợp (Association): Người quản lý

Các luồng sự kiện thông thường:

1 Người quản lý chọn danh mục "Phiếu nhập"

2 Hệ thống hiển thị form danh sách các phiếu nhập

3 Chọn chức năng sửa cho phiếu cần chỉnh sửa

4 Người quản lý nhập các thông tin cần thay đổi

5 Nhấn nút lưu thông tin

6 Nếu việc cập nhập thành công thì thực hiện thông báo lưu thành công

Các luồng sự kiện con:

Các luồng sự kiện thay thế/ngoại lệ:

5a Nếu việc cập nhập thông tin không hợp lệ thì thực hiện:

+ Hệ thống báo việc nhập dữ liệu không hợp lệ

+ Người quản lý nhập lại thông tin

+ Nếu việc cập nhập thành công thì thông báo lưu thành công

+ UC kết thúc h Đặc tả UC xóa thông tin phiếu nhập

Tên Use-Case: Xóa thông tin phiếu nhập

ID: 8 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: Ca sử dụng mô tả việc người quản lý xóa thông tin về phiếu nhập có trong hệ thống

Khởi sự: Người quản lý đăng nhập vào hệ thống khi muốn xóa một phiếu nào đó trong hệ thống

Kết hợp (Association): Người quản lý

Các luồng sự kiện thông thường:

1 Người quản lý chọn vào danh mục "Phiếu nhập"

2 Hệ thống hiển thị form danh sách phiếu nhập

3 Chọn vào phiếu cần xóa

4 Chọn chức năng xóa phiếu

Các luồng sự kiện con:

Các luồng sự kiện thay thế/ngoại lệ: i Đặc tả UC tìm kiếm thông tin phiếu nhập

Tên Use-Case: Tìm kiếm thông tin phiếu nhập

ID: 9 Mức độ quan trọng: Cao

Tác nhân chính: Nhân viê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: Ca sử dụng mô tả việc người sử dụng muốn tìm kiếm thông tin về phiếu nhập như: nhà cung cấp, sản phẩm,

Khởi sự: Người sử dụng tìm kiếm sau khi truy cập vào hệ thống

Kết hợp (Association): Nhân viên, người quản lý

Các luồng sự kiện thông thường:

1 Chọn vào danh mục "Phiếu nhập"

2 Hệ thống hiển thị khung tìm kiếm

3 Nhập thông tin cần thiết vào khung tìm kiếm

4 Hệ thống thông báo kết quả tìm kiếm

Các luồng sự kiện con:

Các luồng sự kiện thay thế/ngoại lệ: j Đặc tả UC thêm phiếu nhập

Tên Use-Case: Thêm phiếu nhập ID: 10 Mức độ quan trọng: Cao

Tác nhân chính: Nhân viê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: Ca sử dụng mô tả việc người sử dụngthêm phiếu nhập mới vào trong hệ thống

Khởi sự: Người sử dụng sau khi đăng nhập vào hệ thống

Kết hợp (Association): Nhân viên, người quản lý

Các luồng sự kiện thông thường:

1 Người sử dụng chọn danh mục "Phiếu nhập"

2 Hiển thị form danh sách phiếu nhập

3 Chọn chức năng thêm mới

4 Người sử dụng chọn nhà cung cấp, các sản phẩm cần thêm,

5 Nhấn nút lưu thông tin

6 Nếu việc cập nhật thành công thì thông báo lưu thành công

Các luồng sự kiện con:

Các luồng sự kiện thay thế/ngoại lệ: k Đặc tả UC sửa thông tin phiếu xuất

Tên Use-Case: Sửa thông tin phiếu xuất

ID: 11 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: Ca sử dụng mô tả việc người quản lý sửa thông tin về phiếu xuất có trong hệ thống

Khởi sự: Người quản lý sau khi đăng nhập vào hệ thống

Kết hợp (Association): Người quản lý

Các luồng sự kiện thông thường:

1 Người quản lý chọn danh mục "Phiếu xuất"

2 Hệ thống hiển thị form danh sách các phiếu xuất

3 Chọn chức năng sửa cho phiếu cần chỉnh sửa

4 Người quản lý nhập các thông tin cần thay đổi

5 Nhấn nút lưu thông tin

6 Nếu việc cập nhập thành công thì thực hiện thông báo lưu thành công

Các luồng sự kiện con:

Các luồng sự kiện thay thế/ngoại lệ:

5a Nếu việc cập nhập thông tin không hợp lệ thì thực hiện:

+ Hệ thống báo việc nhập dữ liệu không hợp lệ

+ Người quản lý nhập lại thông tin

+ Nếu việc cập nhập thành công thì thông báo lưu thành công

+ UC kết thúc l Đặc tả UC xóa thông tin phiếu xuất

Tên Use-Case: Xóa thông tin phiếu xuất

ID: 12 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: Ca sử dụng mô tả việc người quản lý xóa thông tin về phiếu xuất có trong hệ thống

Khởi sự: Người quản lý đăng nhập vào hệ thống khi muốn xóa một phiếu nào đó trong hệ thống

Kết hợp (Association): Người quản lý

Các luồng sự kiện thông thường:

1 Người quản lý chọn vào danh mục "Phiếu xuất"

2 Hệ thống hiển thị form danh sách phiếu xuất

3 Chọn vào phiếu cần xóa

4 Chọn chức năng xóa phiếu

Các luồng sự kiện con:

Các luồng sự kiện thay thế/ngoại lệ: m Đặc tả UC tìm kiếm thông tin phiếu xuất

Tên Use-Case: Tìm kiếm thông tin phiếu xuất

ID: 13 Mức độ quan trọng: Cao

Tác nhân chính: Nhân viê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: Ca sử dụng mô tả việc người sử dụng muốn tìm kiếm thông tin về phiếu xuất như: khách hàng, sản phẩm,

Khởi sự: Người sử dụng tìm kiếm sau khi truy cập vào hệ thống

Kết hợp (Association): Nhân viên, người quản lý

Các luồng sự kiện thông thường:

1 Chọn vào danh mục "Phiếu xuất"

2 Hệ thống hiển thị khung tìm kiếm

3 Nhập thông tin cần thiết vào khung tìm kiếm

4 Hệ thống thông báo kết quả tìm kiếm

Các luồng sự kiện con:

Các luồng sự kiện thay thế/ngoại lệ: n Đặc tả UC thêm thông tin phiếu xuất

Tên Use-Case: Thêm phiếu xuất ID: 14 Mức độ quan trọng: Cao

Tác nhân chính: Nhân viê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: Ca sử dụng mô tả việc người sử dụng thêm phiếu xuất mới vào trong hệ thống

Khởi sự: Người sử dụng sau khi đăng nhập vào hệ thống

Kết hợp (Association): Nhân viên, người quản lý

Các luồng sự kiện thông thường:

1 Người sử dụng chọn danh mục "Phiếu xuất"

2 Hiển thị form danh sách phiếu xuất

3 Chọn chức năng thêm mới

4 Người sử dụng chọn khách hàng, các sản phẩm cần thêm, v.v

5 Nhấn nút lưu thông tin

6 Nếu việc cập nhật thành công thì thông báo lưu thành công

Các luồng sự kiện con:

Các luồng sự kiện thay thế/ngoại lệ: o Đặc tả UC sửa thông tin phiếu thu

Tên Use-Case: Sửa thông tin phiếu thu

ID: 15 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: Ca sử dụng mô tả việc người quản lý sửa thông tin về phiếu thu có trong hệ thống

Khởi sự: Người quản lý sau khi đăng nhập vào hệ thống

Kết hợp (Association): Người quản lý

Các luồng sự kiện thông thường:

1 Người quản lý chọn danh mục "Phiếu thu"

2 Hệ thống hiển thị form danh sách phiếu thu

3 Chọn chức năng sửa cho phiếu cần chỉnh sửa

4 Người quản lý nhập các thông tin thay đổi

5 Nhấn nút lưu thông tin

6 Nếu việc cập nhập thành công thì thực hiện thông báo lưu thành công

Các luồng sự kiện con:

Các luồng sự kiện thay thế/ngoại lệ: p Đặc tả UC xóa thông tin phiếu thu

Tên Use-Case: Xóa thông tin phiếu thu

ID: 16 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: Ca sử dụng mô tả việc người quản lý xóa thông tin về phiếu thu có trong hệ thống

Khởi sự: Người quản lý đăng nhập vào hệ thống khi muốn xóa một phiếu nào đó trong hệ thống

Kết hợp (Association): Người quản lý

Các luồng sự kiện thông thường:

1 Người quản lý chọn vào danh mục "Phiếu thu"

2 Hệ thống hiển thị form danh sách phiếu thu

3 Chọn vào phiếu cần xóa

4 Chọn chức năng xóa phiếu

Các luồng sự kiện con:

Các luồng sự kiện thay thế/ngoại lệ: q Đặc tả UC tìm kiếm thông tin phiếu thu

Tên Use-Case: Tìm kiếm thông tin phiếu thu

ID: 17 Mức độ quan trọng: Cao

Tác nhân chính: Nhân viên, người quản lý

Kiểu Use-Case: Chi tiết, cần thiết

Mô tả vắn tắt: Ca sử dụng mô tả việc người sử dụng muốn tìm kiếm thông tin về phiếu thu như: khách hàng, nội dung thu

Khởi sự: Người sử dụng tìm kiếm sau khi truy cập vào hệ thống

Kết hợp (Association): Nhân viên, người quản lý

Các luồng sự kiện thông thường:

1 Chọn vào danh mục "Phiếu thu"

2 Hệ thống hiển thị khung tìm kiếm

3 Nhập thông tin cần thiết vào khung tìm kiếm

4 Hệ thống thông báo kết quả tìm kiếm

Các luồng sự kiện con:

Các luồng sự kiện thay thế/ngoại lệ: r Đặc tả UC thêm phiếu thu

Tên Use-Case: Thêm phiếu thu ID: 18 Mức độ quan trọng: Cao

Tác nhân chính: Nhân viên, người quản lý

Kiểu Use-Case: Chi tiết, cần thiết

Mô tả vắn tắt: Ca sử dụng mô tả việc người sử dụng thêm phiếu thu mới vào trong hệ thống

Khởi sự: Người sử dụng sau khi đăng nhập vào hệ thống

Kết hợp (Association): Nhân viên, người quản lý

Các luồng sự kiện thông thường:

1 Người sử dụng chọn danh mục "Phiếu thu"

2 Hiển thị form danh sách phiếu thu

3 Chọn chức năng thêm mới

4 Người sử dụng chọn khách hàng, nhập nội dung thu

5 Nhấn nút lưu thông tin

6 Nếu việc cập nhật thành công thì thông báo lưu thành công

Các luồng sự kiện con:

Các luồng sự kiện thay thế/ngoại lệ: s Đặc tả UC sửa thông tin phiếu chi

Tên Use-Case: Sửa thông tin phiếu chi

ID: 19 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: Ca sử dụng mô tả việc người quản lý sửa thông tin về phiếu chi có trong hệ thống

Khởi sự: Người quản lý sau khi đăng nhập vào hệ thống

Kết hợp (Association): Người quản lý

Các luồng sự kiện thông thường:

1 Người quản lý chọn danh mục "Phiếu chi"

2 Hệ thống hiển thị form danh sách phiếu chi

3 Chọn chức năng sửa cho phiếu cần chỉnh sửa

4 Người quản lý nhập các thông tin thay đổi

5 Nhấn nút lưu thông tin

6 Nếu việc cập nhập thành công thì thực hiện thông báo lưu thành

Các luồng sự kiện con:

Các luồng sự kiện thay thế/ngoại lệ: t Đặc tả UC xóa thông tin phiếu chi

Tên Use-Case: Xóa thông tin phiếu chi

ID: 20 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: Ca sử dụng mô tả việc người quản lý xóa thông tin về phiếu chi có trong hệ thống

Khởi sự: Người quản lý đăng nhập vào hệ thống khi muốn xóa một phiếu nào đó trong hệ thống

Kết hợp (Association): Người quản lý

Các luồng sự kiện thông thường:

1 Người quản lý chọn vào danh mục "Phiếu chi"

2 Hệ thống hiển thị form danh sách phiếu chi

3 Chọn vào phiếu cần xóa

4 Chọn chức năng xóa phiếu

Các luồng sự kiện con:

Các luồng sự kiện thay thế/ngoại lệ: u Đặc tả UC tìm kiếm thông tin phiếu chi

Tên Use-Case: Tìm kiếm thông tin phiếu chi

ID: 21 Mức độ quan trọng: Cao

Tác nhân chính: Nhân viê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: Ca sử dụng mô tả việc người sử dụng muốn tìm kiếm thông tin về phiếu chi như: đối tác, nội dung chi

Khởi sự: Người sử dụng tìm kiếm sau khi truy cập vào hệ thống

Kết hợp (Association): Nhân viên, người quản lý

Các luồng sự kiện thông thường:

1 Chọn vào danh mục "Phiếu chi"

2 Hệ thống hiển thị khung tìm kiếm

3 Nhập thông tin cần thiết vào khung tìm kiếm

4 Hệ thống thông báo kết quả tìm kiếm

Các luồng sự kiện con:

Các luồng sự kiện thay thế/ngoại lệ: v Đặc tả UC thêm phiếu chi

Tên Use-Case: Thêm phiếu chi ID: 18 Mức độ quan trọng: Cao

Tác nhân chính: Nhân viên, người quản lý

Kiểu Use-Case: Chi tiết, cần thiết

Mô tả vắn tắt: Ca sử dụng mô tả việc người sử dụng thêm phiếu chi mới vào trong hệ thống

Khởi sự: Người sử dụng sau khi đăng nhập vào hệ thống

Kết hợp (Association): Nhân viên, người quản lý

Các luồng sự kiện thông thường:

1 Người sử dụng chọn danh mục "Phiếu chi"

2 Hiển thị form danh sách phiếu chi

3 Chọn chức năng thêm mới

4 Người sử dụng chọn khách hàng, nhập nội dung thu

5 Nhấn nút lưu thông tin

6 Nếu việc cập nhật thành công thì thông báo lưu thành công

Các luồng sự kiện con:

Các luồng sự kiện thay thế/ngoại lệ: w Đặc tả UC xem thông tin báo cáo thống kê

Tên Use-Case: Xem thông tin báo cáo thống kê

ID: 22 Mức độ quan trọng: Cao

Tác nhân chính: Nhân viê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: Ca sử dụng mô tả việc người sử dụng xem thông tin về báo cáo có trong hệ thống

Khởi sự: Người sử dụng sau khi truy cập vào hệ thống

Kết hợp (Association): Nhân viên, người quản lý

Các luồng sự kiện thông thường:

1 Người sử dụng chọn danh mục báo cáo cần xem

2 Hệ thống hiển thị thông tin về form báo cáo

3 Người sử dụng xem thông tin chi tiết về báo cáo cần xem

Các luồng sự kiện con:

Các luồng sự kiện thay thế/ngoại lệ:

2.1.3 Thi ế t k ế các l ớ p a Xác định các lớp biên

Lớp biên là các lớp nhằm chuyển đổi thông tin giao tiếp giữa các tác nhân và hệ thống Đó chính là các giao diện để tác nhân giao tiếp với hệ thống, cho phép thu thập thông tin hay xuất các kết quả Mỗi cặp tác nhân-ca sử dụng có ít nhất 01 lớp biên

Dựa vào các ca sử dụng đã được xây dựng ở trên, hệ thống có các lớp biên như sau:

 Đố i v ớ i ca s ử d ụ ng Đă ng nh ậ p:

- Lớp I_NSD_DN: Giao diện cho phép người sử dụng nhập các thông tin đăng nhập vào hệ thống

 Đố i v ớ i ca s ử d ụ ng qu ả n lý nhân viên

- Lớp I_NQL_QLNV: Giao diện chính giao tiếp giữa tác nhân người quản lý với hệ thống

- Lớp I_NQL_CNTTNV: Giao diện cho phép người quản lý thêm, sửa, xóa thông tin hồ sơ của nhân viên

- Lớp I_NQL_TKNV: Giao diện cho phép người quản lý tìm kiếm nhân viên có trong hệ thống

 Đố i v ớ i ca s ử d ụ ng qu ả n lý s ả n ph ẩ m

- Lớp I_NSD_QLSP: Giao diện chính giao tiếp giữa tác nhân người sử dụng và hệ thống

- Lớp I_NQL_CNTTSP: Giao diện cho phép người quản lýcập nhật sản phẩm

- Lớp I_NSD_TKTTSP: Giao diện cho người sử dụng tìm kiếm sản phẩm

 Đố i v ớ i ca s ử d ụ ng qu ả n lý phi ế u thu

- Lớp I_NSD_QLPT: Giao diện chính giao tiếp giữa tác nhân người sử dụng với hệ thống

- Lớp I_NQL_CNTTPT: Giao diện cho phép người quản lýcập nhật thông tin phiếu thu

- Lớp I_NSD_TKTTPT: Giao diện cho người sử dụng tìm kiếm phiếu thu

 Đố i v ớ i ca s ử d ụ ng qu ả n lý phi ế u chi

- Lớp I_NSD_QLPC: Giao diện chính giao tiếp giữa tác nhân người sử dụng với hệ thống

- Lớp I_NQL_CNTTPC: Giao diện cho phép người quản lý cập nhật thông tin phiếu chi

- Lớp I_NSD_TKTTPC: Giao diện cho người sử dụng tìm kiếm phiếu chi

 Đố i v ớ i ca s ử d ụ ng qu ả n lý phi ế u nh ậ p

- Lớp I_NSD_QLPN: Giao diện chính giao tiếp giữa tác nhân người sử dụng với hệ thống

- Lớp I_NQL_CNTTPN: Giao diện cho phép người quản lý cập nhật thông tin phiếu nhập

- Lớp I_NSD_TKTTPN: Giao diện cho người sử dụng tìm kiếm phiếu nhập

 Đố i v ớ i ca s ử d ụ ng qu ả n lý phi ế u xu ấ t

- Lớp I_NSD_QLPX: Giao diện chính giao tiếp giữa tác nhân người sử dụng với hệ thống

- Lớp I_NQL_CNTTPX: Giao diện cho người quản lý cập nhật thông tin phiếu xuất

- Lớp I_NSD_TKTTPX: Giao diện cho người sử dụng tìm kiếm phiếu xuất

 Đố i v ớ i ca s ử d ụ ng qu ả n lý báo cáo – th ố ng kê

- Lớp I_NSD_BCTK: Giao diện chính giao tiếp giữa tác nhân người quản lý và hệ thống b Xác định các lớp điều khiển

Lớp điều khiển là các lớp điều hành sự diễn biến trong một ca sử dụng Các lớp điều khiển chứa các quy tắc nghiệp vụ và đứng trung gian giữa lớp biên và lớp thực thể, cho phép từ màn hình có thể truy xuất được các thông tin chứa trong các lớp thực thể Mỗi ca sử dụng có ít nhất một lớp điều khiển

Các lớp điều khiển chính của hệ thống:

- Lớp C_NSD_DN: Lớp điều khiển cho ca sử dụng đăng nhập hệ thống

- Lớp C_NQL_QLNV: Lớp điều khiển cho ca sử dụng quản lý nhân viên

- Lớp C_NSD_QLSP: Lớp điều khiển cho quản lý sản phẩm

- Lớp C_NSD_QLPT: Lớp điều khiển cho ca sử dụng quản lý phiếu thu trong hệ thống

- Lớp C_NSD_QLPC: Lớp điều khiển cho ca sử dụng quản lý phiếu chi trong hệ thống

- Lớp C_NSD_QLPN: Lớp điều khiển cho ca sử dụng quản lý phiếu nhập của hệ thống

- Lớp C_NSD_QLPX: Lớp điều khiển cho ca sử dụng quản lý phiếu xuất của hệ thống

- Lớp C_NQL_BCTK: Lớp điều khiển cho ca sử dụng quản lý báo cáo thống kê c Xác định các lớp thực thể

- Lớp Đơn vị tính ( DonViTinh ) gồm các thuộc tính:

 Id: Mã đơn vị tính

 Ten: Tên đơn vị tính

- Lớp Vai trò (AppRole) gồm các thuộc tính:

- Lớp Khách hàng (KhachHang) gồm các thuộc tính:

 DiaChi: Địa chỉ khách hàng

 SoDienThoai: Số điện thoại của khách hàng

 KyHieu: Ký hiệu viết tắt của khách hàng

 DangHopTac: Còn đang hợp tác

- Lớp Kho hàng ( KhoHang ) gồm các thuộc tính:

 DiaChi: Địa chỉ kho hàng

- Lớp Nhóm sản phẩm ( NhomSanPham ) gồm các thuộc tính:

 Id: Mã nhóm sản phẩm

 Ten: Tên nhóm sản phẩm

 KyHieu: Ký hiệu viết tắt nhóm sản phẩm

- Lớp Phiếu Chi ( PhieuChi ) gồm các thuộc tính:

 NoiDung: Nội dung phiếu chi

 SoTien: Số tiền cần chi

 PTTT: Phương thức thanh toán

 UserId: Mã người tạo phiếu

 SoPhieu: Số của phiếu chi

- Lớp Phiếu Thu ( PhieuThu ) gồm các thuộc tính:

 NoiDung: Nội dung phiếu thu

 PTTT: Phương thức thanh toán

 UserId: Mã người tạo phiếu

 SoPhieu: Số của phiếu thu

- Lớp Phiếu nhập ( PhieuNhap ) gồm các thuộc tính:

 NoiDung: Nội dung phiếu nhập

 NgayTao: Ngày tạo phiếu nhập

 UserId: Mã người tạo phiếu

 TienThanhToan: Số tiền thanh toán

 SoPhieu: Số của phiếu nhập

- Lớp Phiếu nhập kho chi tiết ( PhieuNhapCT ) gồm các thuộc tính:

 Id: Mã phiếu nhập kho chi tiết

 IdPhieuNhap: Mã phiếu nhập kho

 DonGia: Đơn giá sản phẩm

 SoLuong: Số lượng sản phẩm

 ChietKhau: Chiết khấu từng sản phẩm

 GiaVon: Giá ban đầu của sản phẩm

- Lớp Phiếu xuất ( PhieuXuat ) gồm các thuộc tính:

 NoiDung: Nội dung phiếu xuất

 NgayTao: Ngày tạo phiếu xuất

 UserId: Mã người tạo phiếu

 TienThanhToan: Số tiền thanh toán

 SoPhieu: Số của phiếu xuất

- Lớp Phiếu xuất kho chi tiết ( PhieuXuatKhoChiTiet ) gồm các thuộc tính:

 Id: Mã phiếu xuất kho chi tiết

 IdPhieuXuat: Mã phiếu xuất kho

 DonGia: Đơn giá sản phẩm

 SoLuong: Số lượng sản phẩm

 ChietKhau: Chiết khấu từng sản phẩm

 GiaVon: Giá ban đầu của sản phẩm

- LớpNgười dùng ( AppUser ) gồm các thuộc tính:

 PasswordHash: Mật khẩu người dùng

- Lớp Sản Phẩm ( SanPham ) gồm các thuộc tính:

 IdNhom: Mã nhóm sản phẩm

 IdDVT: Mã đơn vị tính sản phẩm

 KyHieu: Ký hiệu viết tắt của sản phẩm

 DangSuDung: Sản phẩm đang sử dụng

2.1.4 Bi ể u đồ c ộ ng tác a Biểu đồ tuần tự cho ca sử dụng Đăng nhập:

Hình 0.2 Biểu đồ tuần tự cho ca sử dụng đăng nhập b Biểu đồ tuần tự cho ca sử dụng Quản lý nhân viên: sd Dang nhap

:I_NSD_DN :C_NSD_DN :TaiKhoan

:NSD ycDangNhap() hienThiDangNhap() chonDangNhap(tenDN, matKhau) ycKiemTra(tenDN, matKhau) kiemTraTK(String, String) ketQua() ketQua() hienThiThongBao()

Hình 0.3 Biểu đồ tuần tự cho ca sử dụng quản lý nhân viên c Biểu đồ tuần tự cho ca sử dụng Quản lý sản phẩm:

Hình 0.4 Biểu đồ tuần tự cho ca sử dụng quản lý sản phẩm sd User Interface Mo

Nguoi quan ly :I NQL_QLNV :C NQL_QLNV Nhan vien

Yeu cau nhap thong tin()

Luu ho so nhan vien() sd User Interface Mo

Nguoi su dung :I NSD_QLSP :C NSD_QLSP San pham

Yc nhap tt sp moi()

Yc kiem tra tt sp moi()

Kiem tra tt sp() Hien thi ket qua()

Luu sp moi vao csdl()

Trang 50 d Biểu đồ tuần tự cho ca sử dụng Quản lý phiếu thu:

Hình 0.5 Biểu đồ tuần tự cho ca sử dụng quản lý phiếu thu e Biểu đồ tuần tự cho ca sử dụng Quản lý phiếu chi:

Hình 0.6 Biểu đồ tuần tự cho ca sử dụng quản lý phiếu chi f Biểu đồ tuần tự cho ca sử dụng Quản lý phiếu nhập: sd User Interface Mo

Nguoi su dung :I NSD_QLPT :C NSD_QLPT Phieu thu

Yc nhap tt hoa don moi()

Nhap tt hoa don moi()

Gui tt hoa don moi()

Yc kiem tra tt hoa don moi()

Gui tt hoa don moi()

Kiem tra tt() Hien thi ket qua()

Luu hoa don moi vao csdl() sd User Interface Mo

Nguoi su dung :I NSD_QLPC :C NSD_QLPC Phieu chi

Yc nhap tt hoa don moi()

Nhap tt hoa don moi()

Gui tt hoa don moi()

Yc kiem tra tt hoa don moi()

Gui tt hoa don moi()

Kiem tra tt() Hien thi ket qua()

Luu hoa don moi vao csdl()

Hình 0.7 Biểu đồ tuần tự cho ca sử dụng quản lý phiếu nhập g Biểu đồ tuần tự cho ca sử dụng Quản lý phiếu xuất:

Hình 0.8 Biểu đồ tuần tự cho ca sử dụng quản lý phiếu xuất h Biểu đồ tuần tự cho ca sử dụng Quản lý Báo cáo thống kê: sd User Interface Mo

Nguoi su dung :I NSD_QLPN :C NSD_QLPN Phieu nhap

Yc nhap tt hoa don moi()

Nhap tt hoa don moi()

Gui tt hoa don moi()

Yc kiem tra tt hoa don moi()

Gui tt hoa don moi()

Kiem tra tt() Hien thi ket qua()

Luu hoa don moi vao csdl() sd User Interface Mo

Nguoi su dung :I NSD_QLPX :C NSD_QLPX Phieu xuat

Yc nhap tt hoa don moi()

Nhap tt hoa don moi()

Gui tt hoa don moi()

Yc kiem tra tt hoa don moi()

Gui tt hoa don moi()

Kiem tra tt() Hien thi ket qua()

Luu hoa don moi vao csdl()

Hình 0.9 Biểu đồ tuần tự cho ca sử dụng quản lý báo cáo thống kê sd User Interface Mo

Nguoi su dung :I NSD_BCTK :C NSD_BCTK Bao cao_Thong ke

Yeu cau bao cao, thong ke()

Hình 0.10 Biểu đồ lớp Thiết kế cơ sở dữ liệu của hệ thống

Chuyển các quan hệ ở lớp thành các bảng dữ liệu trong cơ sở dữ liệu class Class Mo

+ Them thong tin san pham() : void + Sua thong tin san pham() : void + Xoa thong tin san pham() : void + Tim kiem thong tin san pham() : void

+ Xem thong tin khach hang() : void + Sua thong tin khach hang() : void + Xoa thong tin khach hang() : void + Them thong tin khach hang() : void + Tim kiem thong tin khach hang() : void

+ Sua thong tin phieu thu() : void

+ Xoa thong tin phieu thu() : void

+ Tim kiem thong tin phieu thu() : void

+ Them thong tin phieu thu() : void

+ Xoa thong tin phieu chi() : void + Sua thong tin phieu chi() : void + Them thong tin phieu chi() : void + Tim kiem thong tin phieu chi() : void + In phieu chi() : void

+ Sua thong tin phieu nhap() : void

+ Xoa thong tin phieu nhap() : void

+ Them thong tin phieu nhap() : void

+ Tim kiem thong tin phieu nhap() : void

+ Sua thong tin phieu xuat() : void + Xoa thong tin phieu xuat() : void + Them thong tin phieu xuat() : void + Tim kiem thong tin phieu xuat() : void + In phieu xuat() : void

+ Sua thong tin nhap kho chi tiet() : void

+ Xoa thong tin nhap kho chi tiet() : void

+ Tim kiem thong tin nhap kho chi tiet() : void

+ Them thong tin nhap kho chi tiet() : void

+ Sua thong tin phieu xuat kho chi tiet() : void + Xoa thong tin phieu xuat kho chi tiet() : void + Them thong tin phieu xuat kho chi tiet() : void + Tim kiem thong tin phieu xuat kho chi tiet() : void

+ Sua thong tin nhom hang hoa() : void + Xoa thong tin nhom hang hoa() : void + Them thong tin nhom hang hoa() : void + Tim kiem thong tin nhom hang hoa() : void

+ Sua thong tin don vi tinh() : void + Xoa thong tin don vi tinh() : void + Them thong tin don vi tinh() : void + Tim kiem thong tin don vi tinh() : void

Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả Ràng buộc (nếu có)

PK Id int Mã đơn vị tính

Ten nvarchar 255 Tên đơn vị tính GhiChu nvarchar Max Ghi chú

Bảng 2.1 Bảng đơn vị tính

Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả Ràng buộc (nếu có)

PK Id int Mã vai trò

Name nvarchar 255 Tên vai trò

Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả

PK Id int Mã khách hàng

Ten nvarchar 255 Tên khách hàng

DiaChi nvarchar 255 Địa chỉ khách hàng

SoDienThoai nvarchar 255 Số điện thoại khách hàng

Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả

KyHieu nvarchar 255 Ký hiệu viết tắt của khách Nhom nvarchar 255 Nhóm khách hàng

DangHopTac bit Còn đang hợp tác

GhiChu nvarchar Max Ghi chú

Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả Ràng buộc

PK Id int Mã kho hàng

Ten nvarchar 255 Tên kho hàng

DiaChi nvarchar 255 Địa chỉ kho hàng

GhiChu nvarchar Max Ghi chú

Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả Ràng buộc

PK Id int Mã nhóm sản phẩm

Ten nvarchar 255 Tên nhóm sản phẩm

Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả Ràng buộc

KyHieu nvarchar 255 Ký hiệu viết tắt

GhiChu nvarchar Max Ghi chú

Bảng 2.5 Bảng nhóm sản phẩm

Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả Ràng buộc

PK Id int Mã phiếu chi

NoiDung nvarchar 255 Nội dung chi

NgayTao datetime Ngày tạo phiếu

FK IdKH int Mã khách hàng

FK UserId int Mã người dùng

SoTien float Số tiền cần chi

PTTT nvarchar 255 Phương thức thanh toán SoPhieu nvarchar 255 Số phiếu chi

GhiChu nvarchar Max Ghi chú

Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả

PK Id int Mã phiếu thu

NoiDung nvarchar 255 Nội dung thu

NgayTao datetime Ngày tạo phiếu

FK IdKH int Mã khách hàng

FK UserId int Mã người dùng

SoTien float Số tiền thu

PTTT nvarchar 255 Phương thức thanh toán

SoPhieu nvarchar 255 Số phiếu thu

GhiChu nvarchar Max Ghi chú

Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả

PK Id int Mã phiếu nhập

NoiDung nvarchar 255 Nội dung phiếu nhập

NgayTao datetime Ngày tạo phiếu

FK IdKH int Mã khách hàng

FK UserId int Mã người dùng

Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả

TienThanhToan float Số tiền thanh toán

SoPhieu nvarchar 255 Số phiếu nhập

GhiChu nvarchar Max Ghi chú

Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả

PK Id int Mã phiếu nhập chi tiết

FK IdPhieuNhap int Mã phiếu nhập

FK IdSanPham int Mã sản phẩm

FK IdKhoHang int Mã kho hàng

GhiChu nvarchar Max Ghi chú

Bảng 2.9 Bảng phiếu nhập chi tiết

Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả

PK Id int Mã phiếu xuất

NoiDung nvarchar 255 Nội dung phiếu xuất

NgayTao datetime Ngày tạo hóa đơn

FK IdKH int Mã khách hàng

FK UserId int Mã người dùng

TienThanhToan float Số tiền thanh toán

SoPhieu nvarchar 255 Số phiếu xuất

GhiChu nvarchar Max Ghi chú

Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả

PK Id int Mã phiếu xuất chi tiết

FK IdPhieuNhap int Mã phiếu xuất

FK IdSanPham int Mã sản phẩm

FK IdKhoHang int Mã kho hàng

Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả

GhiChu nvarchar Max Ghi chú

Bảng 2.11 Bảng phiếu xuất chi tiết

Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả Ràng buộc

PK Id int Mã người dùng

UserName nvarchar 30 Tên người dùng

Fullname nvarchar 255 Tên đầy đủ

PhoneNumber int Số điện thoại

FK RoleId int Mã vai trò

IsActive bit Được kích hoạt

Khó a Tên trường Kiểu dữ liệu Độ rộng Mô tả Ràng buộc

PK Id int Mã sản phẩm

Ten nvarchar 255 Tên sản phẩm

FK IdNhom int Mã nhóm sản phẩm

FK IdDVT int Mã đơn vị tính

GiaBan float Giá bán sỉ

KyHieu nvarchar 255 Ký hiệu sản phẩm

DangSuDung bit Đang được sử dụng

 Cơ sở dữ liệu quản lý kho hàng

Trang 62 Hình 0.11 Cơ sở dữ liệu quản lý kho hàng

Id Ten DiaChi KyHieu DangHopTac Nhom GhiChu SoDienThoai

Id IdKhachHang UserId SoTien PTTT GhiChu NoiDung SoPhieu NgayTao

Id IdKhachHang UserId TienThanhToan GhiChu NgayTao NoiDung SoPhieu

Id IdPhieuXuat IdSanPham IdKhoHang SoLuong DonGia GiaVon ChietKhau GhiChu

Id Ten IdNhom KyHieu IdDonViTinh GiaNhap DangSuDung GhiChu GiaBan

IdUserNamePasswordHashFullnamePhoneNumberRoleIdIsActive

2.1.6 Bi ể u đồ tr ạ ng thái a Biểu đồ trang thái lớp Quản lý nhân viên

Hình 0.12 Biểu đồ trạng thái lớp nhân viên b Biểu đồ trạng thái lớp Quản lý sản phẩm

Hình 0.13 Biểu đồ trạng thái lớp sản phẩm c Biểu đồ trạng thái lớp Quản lý phiếu thu act User Interface Model

Tao ho so Nhap thong tin ho so

Kiem tra thong tin ho so

Luu thong tin vao csdl

Co nhan vien moi act Ket thuc

Dang nhap Kiem tra dang nhap

Dung (chap nhan dang nhap)

Goi thong tin Nguoi dung dang nhap

Sai (yeu cau nhap lai)

Yeu cau them san pham

Sai (yeu cau nhap lai)Thoat khoi chuong trinh

Hình 0.14 Biểu đồ trạng thái lớp phiếu thu d Biểu đồ trạng thái lớp Quản lý phiếu chi

Hình 0.15 Biểu đồ trạng thái lớp phiếu chi e Biểu đồ trạng thái lớp Quản lý phiếu nhập act Ket thuc

Dang nhap Kiem tra dang nhap

Dung (chap nhan dang nhap)

Goi thong tin Nguoi dung dang nhap

Sai (yeu cau nhap lai)

Sai (yeu cau nhap lai) Thoat khoi chuong trinh act Ket thuc

Dang nhap Kiem tra dang nhap

Dung (chap nhan dang nhap)

Goi thong tin Nguoi dung dang nhap

Sai (yeu cau nhap lai)

Sai (yeu cau nhap lai)Thoat khoi chuong trinh

Hình 0.16 Biểu đồ trạng thái lớp phiếu nhập f Biểu đồ trạng thái lớp Quản lý phiếu xuất

Hình 0.17 Biểu đồ trạng thái lớp phiếu xuất g Biểu đồ trạng thái lớp Quản lý báo cáo thống kê act Ket thuc

Dang nhap Kiem tra dang nhap

Dung (chap nhan dang nhap)

Goi thong tin Nguoi dung dang nhap

Sai (yeu cau nhap lai)

Sai (yeu cau nhap lai) Thoat khoi chuong trinh act Ket thuc

Dang nhap Kiem tra dang nhap

Dung (chap nhan dang nhap)

Goi thong tin Nguoi dung dang nhap

Sai (yeu cau nhap lai)

Sai (yeu cau nhap lai)Thoat khoi chuong trinh

Hình 0.18 Biểu đồ trạng thái lớp báo cáo thống kê

2.1.7 Bi ể u đồ thành ph ầ n và bi ể u đồ tri ể n khai

Biểu đồ thành phần dùng để mô tả các thành phần phần mềm cấu thành hệ thống và mối quan hệ giữa chúng

 Gói Phần mềm hệ thống: Chứa thành phần Giao diện giao tiếp với người dùng

 Gói Users: Bao gồm các thành phần:

- Thành phần Điều khiển: dùng để chứa các thành phần điều khiển cần thiết cho thành phần Giao diện

- Thành phần Thủ tục: đặc tả các thuộc tính, các phương thức để thao tác với các đối tượng trong CSDL

 Gói Cơ sở dữ liệu: Chứa thành phần Cơ sở dữ liệu của hệ thống act Ket thuc

Dang nhap Kiem tra dang nhap Ket thuc

Dang nhap thanh cong bao cao ton kho In bao cao

Dung (chap nhan dang nhap)

Goi thong tin Nguoi dung dang nhap

Sai (yeu cau nhap lai)

Thoat khoi dang nhap xem bao cao

Hình 0.19 Biểu đồ thành phần

Hình 0.20 Biểu đồ triển khai deployment BieuDoTrienKhai

Ứng dụng công nghệ Xamarin kết hợp cùng mô hình MVVM vào dự án

2.2.1 Cách th ứ c l ấ y d ữ li ệ u cho ứ ng d ụ ng

Dữ liệu được lấy từ máy chủ (SQL Server, MySQL Server, v.v.) của các ứng dụng truyền thống đang hoạt động Thông qua 1 Web API và dữ liệu nhận về ở dạng JSON

Hình 0.21 Mô hình truyền dữ liệu cho ứng dụng

2.2.2 Mô t ả cách thi ế t k ế mã ngu ồ n 1 module trong ứ ng d ụ ng Xamarin v ớ i

Hình 0.22 Tầng Molels của 1ớp "sanpham"

Trang 69 Hình 0.23 Tầng ViewModel của 1ớp "sanpham"

Hình 0.24 Mã XAML trong thiết kế tầng View cho lớp "sanpham" (sản phẩm)

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

Chương trình Quản lý kho

Khi người sử dụng đăng nhập đúng tên và mật khẩu thì cho phép sử dụng phần mềm Nếu đăng nhập sai thì yêu cầu nhập lại

Form giao diện của hệ thống

Hình 0.6 Form đơn vị tính

Hình 0.7 Form nhóm sản phẩm

Hiển thị tất cả các sản phẩm có trong hệ thống

Hình 0.13 Form báo cáo tồn kho

Hình 0.14 In báo cáo tồn kho

3.1.14 Form báo cáo t ổ ng h ợ p công n ợ

Hình 0.15 Form công nợ tổng hợp

Hình 0.16 In công nợ tổng hợp

3.1.15 Form báo cáo chi ti ế t công n ợ

Hình 0.17 Form công nợ chi tiết

Hình 0.18 In công nợ chi tiết

Kết quả báo cáo trên thiết bị di động

Kết quả sau khi hoàn thành ứng dụng xem báo cáo trên mobile:

Sau quá trình phân tích từ các yêu cầu đã đặt ra, việc kết hợp giữa nền tảng Xamarin với mô hình thiết kế MVVM Ứng dụng thử nghiệm đã đạt được các kết quả như sau:

+ Có thể lấy được dữ liệu từ máy chủ, các dữ liệu này chính xác theo thời gian thực và hoàn toàn tương ứng với số liệu mà các hệ thống phần mềm trên máy tính đã thống kê

+ Với việc kết hợp mô hình MVVM: Quá trình nâng cấp và thay đổi các chức năng trong ứng dụng sẽ được thực hiện dễ dàng hơn Mã nguồn không bị chồng chéo nhiều giữa mã xử lý giao diện và mã xử lý dữ liệu + Ứng dụng sau khi hoàn thành sẽ ở cấp độ gốc (Native) của nền tảng hoạt động, cho nên sẽ đạt được hiệu suất cao nhất

Hình 0.19 Giao diện chính của ứng dụng Hình 0.20 Trang danh sách sản phẩm

Trang 80 Hình 0.21 Trang báo cáo công nợ nhà cung cấp

Hình 0.22 Trang báo cáo công nợ khách hàng

Trang 81 Hình 0.23 Trang báo cáo hàng tồn kho

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

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w