Báo cáo Nghiên cứu khoa học - Nghiên cứu phần mềm bãi giữ xe thông minh

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC QUỐC TẾ SÀI GÒN NGUYỄN MỸ DUYÊN BÁO CÁO NGHIÊN CỨU KHOA HỌC NGHIÊN CỨU PHẦN MỀM BÃI GIỮ XE THÔNG MINH CHUYÊN NGÀNH: KỸ THUẬT PHẦN MỀM TPHCM – 2021 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC QUỐC TẾ SÀI GÒN BÁO CÁO NGHIÊN CỨU KHOA HỌC ĐỀ TÀI: NGHIÊN CỨU PHẦN MỀM BÃI GIỮ XE THÔNG MINH Chuyên ngành: KỸ THUẬT PHẦN MỀM Mã số: 17DPM GIẢNG VIÊN HƯỚNG DẪN: ThS.Võ Anh Tiến ThS.Huỳnh Nguyễn Mộng Thu SINH VIÊN THỰC HIỆN: Họ và tên: Nguy

pdf37 trang | Chia sẻ: huong20 | Ngày: 04/01/2022 | Lượt xem: 384 | Lượt tải: 0download
Tóm tắt tài liệu Báo cáo Nghiên cứu khoa học - Nghiên cứu phần mềm bãi giữ xe thông minh, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
yễn Mỹ Duyên Mã số sinh viên: 81011701402 TPHCM – 2021 i LỜI CAM ĐOAN Tôi xin cam đoan các kết quả trình bày trong báo cáo nghiên cứu khoa học là công trình nghiên cứu của tôi dưới sự hướng dẫn của giảng viên hướng dẫn. Các số liệu, các kết quả trình bày trong báo cáo hoàn toàn trung thực và được thực hiện bởi chính tôi. Các dữ liệu tham khảo được trích dẫn đầy đủ. Tp. Hồ Chí Minh, ngày 08 tháng 05 năm 2021 Nguyễn Mỹ Duyên ii LỜI CẢM ƠN Để hoàn thành báo cáo nghiên cứu khoa học trên lập trình Windows với đề tài "bãi giữ xe thông minh", trước tiên cho phép em xin gửi lời cảm ơn đến cô Huỳnh Nguyễn Mộng Thu và thầy Võ Anh Tiến đã giúp đỡ em rất nhiệt tình trong suốt thời gian qua. Hơn nữa, đồ án của em sẽ không thể hoàn thành tốt nếu không có sự hướng dẫn tận tình của quý thầy, cô giảng viên khoa Công nghệ thông tin - Trường Đại học Quốc tế Sài Gòn. Thời gian thực hiện báo cáo nghiên cứu khoa học tuy ngắn, nhưng nhờ sự hướng dẫn của cô và thầy đã tạo cơ hội cho em áp dụng nền tảng môn học lập trình Windows vào công tác nghiên cứu. Trong suốt thời gian hoàn thành khóa luận, em đã có cơ hội rèn luyện được các kỹ năng làm việc và nâng cao hiểu biết của mình trong việc thực hiện viết báo cáo và xây dựng chương trình, từ đó nhận thức rõ hơn về tầm quan trọng của kiến thức cũng như kỹ năng thực hiệnbáo cáo nghiên cứu khoa học. Một lần nữa cho phép em xin chân thành cảm ơn cô Huỳnh Nguyễn Mộng Thu và thầy Võ Anh Tiến cùng quý thầy, cô giảng viên khoa Công nghệ thông tin - Trường Đại học Quốc tế Sài Gòn đã tạo điều kiện cho sinh viên chúng em có cơ hội được phát triển ý tưởng sáng tạo, tìm tòi, học hỏi và biết cách áp dụng những kiến thức đã học để xây dựng ứng dụng thực tế, đó chính là kết quả của quá trình truyền đạt kiến thức của quý thầy, cô và sự trao dồi kiến thức của bản thân em. Em xin cảm ơn quý thầy, cô giảng viên trong Khoa đã giúp đỡ em hoàn thành báo cáo nghiên cứu khoa học này. iii MỤC LỤC LỜI CẢM ƠN ................................ ii MỤC LỤC .................................. iii DANH MỤC CÁC HÌNH VẼ ..................... iv DANH MỤC CÁC BẢNG BIỂU ................... v CHƯƠNG 1. TỔNG QUAN 1 1.1 Thực trạng hiện nay . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Nhiệm vụ đồ án . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Phạm vi ứng dụng . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.4 Đối tượng sử dụng . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.5 Mục tiêu của ứng dụng . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.6 Các bước xây dựng đồ án . . . . . . . . . . . . . . . . . . . . . . . 3 1.7 Phương án lưu trữ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 CHƯƠNG 2. CƠ SỞ LÝ THUYẾT 4 2.1 C Sharp (C#) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.1.1 Tổng quan về C# . . . . . . . . . . . . . . . . . . . . . . . . 4 2.1.2 Môi trường lập trình C# . . . . . . . . . . . . . . . . . . . . 7 2.2 Microsoft SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.2.1 SQL Server là gì? . . . . . . . . . . . . . . . . . . . . . . . . 8 2.2.2 Đặc điểm của SQL Server . . . . . . . . . . . . . . . . . . . 9 2.3 Linq to SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.3.1 Linq to SQL là gì? . . . . . . . . . . . . . . . . . . . . . . . 10 2.3.2 Kiến trúc và các thành phần của Linq . . . . . . . . . . . . 11 2.3.3 Cách thức vận hành . . . . . . . . . . . . . . . . . . . . . . 11 2.3.4 Sự khác nhau giữa Linq to SQL và Entity Framework . . . 12 2.3.5 Ưu điểm của Linq to SQL . . . . . . . . . . . . . . . . . . . 13 iv CHƯƠNG 3. PHÂN TÍCH THIẾT KẾ 15 3.1 Xác định yêu cầu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.1.1 Yêu cầu chức năng . . . . . . . . . . . . . . . . . . . . . . . 15 3.1.2 Phân quyền người dùng . . . . . . . . . . . . . . . . . . . . 15 3.1.3 Danh sách Use Case . . . . . . . . . . . . . . . . . . . . . . 16 3.1.4 Sơ đồ Use Case . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.1.5 Mô hình hóa các yêu cầu . . . . . . . . . . . . . . . . . . . . 17 3.2 Mô hình cơ sở dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.2.1 Mô hình cơ sở dữ liệu . . . . . . . . . . . . . . . . . . . . . 21 3.2.2 Chi tiết các thực thể . . . . . . . . . . . . . . . . . . . . . . 22 CHƯƠNG 4. KẾT QUẢ THỰC NGHIỆM 24 4.1 Thực nghiệm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 4.1.1 Giao diện chương trình . . . . . . . . . . . . . . . . . . . . . 24 4.1.2 Giao diện làm việc của Quản trị viên - Gia hạn thẻ . . . . 25 4.1.3 Giao diện làm việc của Quản trị viên - Thống kê . . . . . . 25 4.1.4 Giao diện làm việc của Quản trị viên - Báo cáo . . . . . . 26 4.2 Các thiết kế hệ thống . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.2.1 Biểu mẫu Đăng nhập . . . . . . . . . . . . . . . . . . . . . . 26 CHƯƠNG 5. KẾT LUẬN 28 5.1 Kết quả đạt được . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 5.1.1 Ưu điểm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 5.1.2 Nhược điểm . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 5.1.3 Hướng phát triển . . . . . . . . . . . . . . . . . . . . . . . . 28 TÀI LIỆU THAM KHẢO 29 v DANH MỤC CÁC HÌNH VẼ Hình 2.1 Quá trình chuyển đổi MSIL code thành Native code . . . . . 5 Hình 2.2 Ứng dụng đa nền tảng . . . . . . . . . . . . . . . . . . . . . . 7 Hình 2.3 Kiến trúc và các thành phần của Linq . . . . . . . . . . . . . 12 Hình 3.1 Sơ đồ Use Case. . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Hình 3.2 Biểu đồ luồng dữ liệu mức 0 . . . . . . . . . . . . . . . . . . . 17 Hình 3.3 Biểu đồ tiến trình "1.0 xe vào" . . . . . . . . . . . . . . . . . 18 Hình 3.4 Biểu đồ tiến trình "2.0 xe ra" . . . . . . . . . . . . . . . . . . 19 Hình 3.5 Biểu đồ tiến trình "3.0 giải quyết sự cố" . . . . . . . . . . . . 20 Hình 3.6 Mô hình cơ sở dữ liệu. . . . . . . . . . . . . . . . . . . . . . . 21 Hình 4.1 Giao diện chương trình. . . . . . . . . . . . . . . . . . . . . . 24 Hình 4.2 Giao diện gia hạn thẻ tháng. . . . . . . . . . . . . . . . . . . 25 Hình 4.3 Giao diện thống kê doanh thu. . . . . . . . . . . . . . . . . . 25 Hình 4.4 Giao diện báo cáo doanh thu. . . . . . . . . . . . . . . . . . . 26 Hình 4.5 Biểu mẫu Đăng nhập. . . . . . . . . . . . . . . . . . . . . . . 27 vi DANH MỤC CÁC BẢNG BIỂU Bảng 2.1 Bảng so sánh sự khác nhau giữa Linq to SQL và Entity Framework.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Bảng 3.1 Bảng chi tiết phân quyền người dùng . . . . . . . . . . . . . 15 Bảng 3.2 Bảng danh sách Use Case . . . . . . . . . . . . . . . . . . . . 16 Bảng 3.3 Bảng chi tiết mô hình mô tả hoạt động xe. . . . . . . . . . . 17 Bảng 3.4 Bảng mô tả thuật toán mô hình hoạt động bãi giữ xe. . . . 18 Bảng 3.5 Bảng mô tả thuật toán mô hình hoạt động bxe vào. . . . . . 19 Bảng 3.6 Bảng mô tả thuật toán mô hình hoạt động xe ra. . . . . . . 20 Bảng 3.7 Bảng mô tả thuật toán mô hình hoạt giải quyết vấn đề. . . 21 Bảng 3.8 Bảng chi tiết thực thể tài khoản. . . . . . . . . . . . . . . . . 22 Bảng 3.9 Bảng chi tiết thực thể bãi xe. . . . . . . . . . . . . . . . . . . 22 Bảng 3.10 Bảng chi tiết thực thể bãi xe. . . . . . . . . . . . . . . . . . . 23 Bảng 4.1 Bảng chi tiết biểu mẫu đăng nhập. . . . . . . . . . . . . . . . 26 1 CHƯƠNG 1. TỔNG QUAN 1.1. Thực trạng hiện nay Quản lý nhà xe là một công việc quan trọng trong bất cứ trường học hay công ty nào, nó ảnh hưởng mạnh mẽ đến sự phát triển của một tổ chức. Vì vậy, việc quản lý bãi xe đòi hỏi phải có sự chính xác và tối ưu để tạo ra một môi trường làm việc hiệu quả nhất. Hiện nay, nhiều trường đã xây dựng hệ thống quản lý nhà xe và đã thu được nhiều kết quả khả quan đáp ứng nhu cầu đa dạng của mọi người và xây dựng mục tiêu của tổ chức. Hệ thống quản lý nơi đỗ xe là một hệ thống dùng để quản lý, xử lý, lưu trữ, truyền đạt, phân phối các thông tin có liên quan đến hình ảnh biển số, giảng viên trong trường để hỗ trợ cho việc ra quyết định. Hệ thống có vai trò quan trọng trong hoạt động của cơ quan, các chức năng do hệ thống mang lại có vai trò tối ưu trong việc ra kiểm soát thông tin xe tại cơ quan. Hệ thống quản lý bãi gửi xe thông minh sử dụng công nghệ kiểm soát ra vào bằng thẻ từ dành cho hệ thống các phương tiện vận tải, xe ô tô, xe máy, sử dụng các thiết bị công nghệ thay thế sức con người. Mang đến sự nhanh gọn và chính xác trong quản lý an ninh bãi xe. Hệ thống cho phép ghi vé xe và kiểm soát ra vào một cách tự động, thông minh và nhanh chóng hơn. Các thông tin được ghi lại như biển số xe, số thẻ xe, vé xe, ảnh xe, ảnh người gửi xe. . . Đồng thời sử dụng hệ thống phần mềm giúp người quản lý dễ dàng điều hành bãi đỗ xe hơn. Thực hiện được các báo cáo về số lượng xe ra vào, kiểm soát doanh thu cho bãi xe và nhiều tiện ích khác. 2 1.2. Nhiệm vụ đồ án Từ những vấn đề trên, em quyết định xây dựng một phần mềm phục vụ nhu cầu quản lý bãi giữ xe cho một trường đại học hay một nhà xe vừa và nhỏ, giúp tăng năng suất công việc, giảm thiểu tối đa sai sót có thể xảy ra và ứng dụng tin học hóa, tự động hóa vào công tác quản lý hiệu quả nhất. 1.3. Phạm vi ứng dụng • Đơn vị sử dụng: Trường Đại học Quốc tế Sài Gòn. • Tên dự án: Xây dựng hệ thống bãi giữ xe thông minh. 1.4. Đối tượng sử dụng Sản phẩm được thiết kế để phục vụ cho các đối tượng: Cán bộ nhà trường Sinh viên Giảng viên 1.5. Mục tiêu của ứng dụng Ứng dụng được thiết kế để thực hiện: Không phải quản lý thủ công (giấy, tờ, sổ sách..). Không cần quá nhiều người. Một lượng lớn sinh viên thì quản lý thủ công rất khó khăn. Do vậy phần mềm này với mục đích nâng cao hiệu quả trong quá trình lưu trữ thông tin của xe. Bảo mật về phần thẻ giả. Tiết kiệm được thời gian trong quản lý so với quản lý thủ công, tiết kiệm nhân lực và không va quẹt hay quá tải. 3 1.6. Các bước xây dựng đồ án Lập kế hoạch phát triển hệ thống. Phân tích hệ thống. Thiết kế . Cài đặt . Kiểm tra . Biên soạn tài liệu và hướng dẫn. 1.7. Phương án lưu trữ Ở ứng dụng này, em sử dụng hệ quản trị cơ sở dữ liệu MSSQL Server với những lí do sau: Cho phép tạo nhiều cơ sở dữ liệu. Duy trì lưu trữ bền vững. Bảo mật cao. Phân tích dữ liệu bằng SSAS - SQL Server Analysis Services. Tạo được báo cáo bằng SSRS - SQL Server Reporting Services. Thực hiện quá trình ETL (Extract-Transform-Load) bằng SSIS - SQL Server Integration Services. Kết hợp hoàn hảo với WinForm trên C sharp và bunifu ui. 4 CHƯƠNG 2. CƠ SỞ LÝ THUYẾT 2.1. C Sharp (C#) 2.1.1. Tổng quan về C# 2.1.1.1. C# là gì? C# (hay C sharp) là một ngôn ngữ lập trình đơn giản, được phát triển bởi đội ngũ kỹ sư của Microsoft vào năm 2000, trong đó người dẫn đầu là Anders Hejlsberg và Scott Wiltamuth. C# là ngôn ngữ lập trình hiện đại, hướng đối tượng và nó được xây dựng trên nền tảng của hai ngôn ngữ mạnh nhất là C++ và Java. C# được thiết kế cho Common Language Infrastructure (CLI), mà gồm Ex- ecutable Code và Runtime Environment, cho phép chúng ta sử dụng các ngôn ngữ high-level đa dạng trên các nền tảng và cấu trúc máy tính khác nhau. Cùng với sự hỗ trợ mạnh mẽ của .NET Framework giúp cho việc tạo một ứng dụng Windows Forms hay WPF (Windows Presentation Foundation), . . . trở nên rất dễ dàng. Trong các ứng dụng Windows truyền thống, mã nguồn chương trình được biên dịch trực tiếp thành mã thực thi của hệ điều hành. Trong các ứng dụng sử dụng .NET Framework, mã nguồn chương trình (, VB.NET) được biên dịch thành mã ngôn ngữ trung gian MSIL (Microsoft in- termediate language). Sau đó mã này được biên dịch bởi Common Language Runtime (CLR) để trở thành mã thực thi của hệ điều hành. Hình bên dưới thể hiện quá trình chuyển đổi MSIL code thành native code. 5 Hình 2.1: Quá trình chuyển đổi MSIL code thành Native code 2.1.1.2. Đặc trưng của C# Các đặc điểm để làm cho C# là ngôn ngữ lập trình chuyên nghiệp được sử dụng rộng rãi: • Như chúng ta biết C# là ngôn ngữ đơn giản được dựng trên nền tảng C++ và Java nên ngôn ngữ C# khá đơn giản. Nếu chúng ta thân thiện với C và C++ hoặc thậm chí là Java, chúng ta sẽ thấy C# khá giống về diện mạo, cú pháp, biểu thức, toán tử và những chức năng khác được lấy trực tiếp từ ngôn ngữ C và C++, nhưng nó đã được cải tiến để làm cho ngôn ngữ đơn giản hơn. Một vài trong các sự cải tiến là loại bỏ các dư thừa, hay là thêm vào những cú pháp thay đổi. • C# là ngôn ngữ hiện đại : xử lý ngoại lệ, những kiểu dữ liệu mở rộng, bảo mật mã nguồn..v..v.... Đây là những đặc tính được cho là của một ngôn ngữ 6 hiện đại cần có. Và C# chứa tất cả các đặt tính vừa nêu trên. • Nó còn là một ngôn ngữ lập trình thuần hướng đối tượng. Là một ngôn ngữ ít từ khóa. Ưu điểm nổi bật của C#: • C# có cấu trúc khá gần gũi với các ngôn ngữ lập trình truyền thống, nên cũng khá dể dàng tiếp cận và học nhanh với C#. • C# có thể biên dịch trên nhiều nền tảng máy tính khác nhau. • C# được xây dựng trên nền tảng của C++ và Java nên nó được thừa hưởng những ưu điểm của ngôn ngữ đó. • C# là một phần của .NET Framework nên được sự chống lưng khá lớn đến từ bộ phận này. • C# có IDE Visual Studio cùng nhiều plug-in vô cùng mạnh mẽ. Version của C#: • .NET Framework được Microsoft đưa ra chính thức từ năm 2002. .NET Framework chỉ hoạt động trên Windows. Những nền tảng ứng dụng như WPF, Winforms, ASP.NET(1-4) hoạt động dựa trên .NET Framework. • Mono là phiên bản cộng đồng nhằm mang .NET đến những nền tảng ngoài Windows. Mono được phát triển chủ yếu nhằm xây dựng những ứng dụng với giao diện người dùng và được sử dụng rất rộng rãi: Unity Game, Xam- ari... • Cho đến năm 2013, Microsoft định hướng đi đa nền tảng và phát triển .NET core. .NET core hiện được sử dụng trong các ứng dụng Universal Windows platform và ASP.NET Core. Từ đây, C# có thể được sử dụng để phát triển các loại ứng dụng đa nền tảng trên các hệ điều hành khác nhau (Windows, Linux, MacOS,. . . ) 7 Nền tảng .NET: • Từ version C# 1.0#: Visual Studio .NET 2002,..., cho đến hiện nay version C#8: Visual Studio .Net 2019. Chuong2/Images/.NetFram.png Hình 2.2: Ứng dụng đa nền tảng 2.1.2. Môi trường lập trình C# Microsoft Visual Studio 2019 là một môi trường phát triển tích hợp (IDE) từ Microsoft. Nó được sử dụng để phát triển 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. Visual Studio sử dụng nền tảng phát triển phần mềm của Microsoft như Windows API, Windows Forms, Windows Presentation Foundation, Windows Store và Microsoft Silverlight. Nó có thể sản xuất cả hai ngôn ngữ máy và mã số quản lý. Visual Studio 2019 bao gồm một trình soạn thảo mã hỗ trợ IntelliSense cũng 8 như cải tiến mã nguồn. Trình gỡ lỗi tích hợp hoạt động cả về trình gỡ lỗi mức độ mã nguồn và gỡ lỗi mức độ máy. Công cụ tích hợp khác bao gồm một mẫu thiết kế các hình thức xây dựng giao diện ứng dụng, thiết kế web, thiết kế lớp và thiết kế giản đồ cơ sở dữ liệu. Nó chấp nhận các plug-in nâng cao các chức năng ở hầu hết các cấp bao gồm thêm hỗ trợ cho các hệ thống quản lý phiên bản (như Subversion) và bổ sung thêm bộ công cụ mới như biên tập và thiết kế trực quan cho các miền ngôn ngữ cụ thể hoặc bộ công cụ dành cho các khía cạnh khác trong quy trình phát triển phần mềm. Nó hỗ trợ nhiều ngôn ngữ lập trình khác nhau và cho phép trình biên tập mã và gỡ lỗi để hỗ trợ (mức độ khác nhau) hầu như mọi ngôn ngữ lập trình. Các ngôn ngữ tích hợp gồm có C, C++ và C++/CLI (thông qua Visual C++), VB.NET (thông qua Visual Basic.NET), C# (thông qua Visual C#) và F# (như của Visual Studio 2010). Hỗ trợ cho các ngôn ngữ khác như J++/J#, Python và Ruby thông qua dịch vụ cài đặt riêng rẽ. Nó cũng hỗ trợ XML/XSLT, HTML/XHTML, JavaScript và CSS. 2.2. Microsoft SQL Server 2.2.1. SQL Server là gì? SQL Server là phần mềm được Microsoft phát triển dựa trên RDBMS. Cũng là một ORDBMS (Hệ quản trị cơ sở dữ liệu quan hệ đối tượng) . Một nền tảng độc lập. Phần mềm sử dụng cả giao diện dòng lệnh và giao diện GUI. Hỗ trợ ngôn ngữ SQL (trước đây là SEQUEL - ngôn ngữ truy vấn tiếng Anh có cấu trúc) - vốn là sản phẩm của IBM. 9 2.2.2. Đặc điểm của SQL Server SQL là ngôn ngữ phi thủ tục, không yêu cầu cách thức truy cập cơ sở dữ liệu như thế nào. Tất cả các thông báo của SQL rất dễ dàng sử dụng và ít mắc lỗi. SQL cung cấp các tập lệnh phong phú cho các công việc hỏi đáp dữ liệu như: Chèn, xóa và cập nhật các hàng trong 1 quan hệ. Tạo, thêm, xóa và sửa đổi các đối tượng trong của cơ sở dữ liệu. Điều khiển việc truy cấp tới cơ sở dữ liệu và các đối tượng của cơ sở dữ liệu để đảm bảo tính bảo mật, tính nhất quán và sự ràng buộc của cơ sở dữ liệu. Đối tượng của SQL server là các bảng dữ liệu với các cột và các hàng. Cột được gọi là trường dữ liệu và hàng là bản ghi của bảng. Cột dữ liệu và kiểu dữ liệu xác định tạo nên cấu trúc của bảng. Khi bảng được tổ chức thành một hệ thống cho một mục đích sử dụng cụ thể vào công việc nào đó sẽ trở thành một cơ sở dữ liệu. 2.3. Linq to SQL Một truy vấn là một diễn tả để lấy dữ liệu từ 1 nguồn dữ liệu nào đó. Các truy vấn thường được dùng trong các ngôn ngữ truy vấn đặc trưng. Các ngôn ngữ truy vấn khác nhau được phát triển khác nhau để áp dụng cho các nguồn dữ liệu khác nhau, ví dụ SQL dùng cho cơ sở dữ liệu quan hệ và XQuery dùng cho XML. Vì vậy, các nhà phát triển phải học các ngôn ngữ truy vấn cho mỗi dạng nguồn dữ liệu hoặc định dạng dữ liệu. Do đó, Microsoft mới nghĩ ra việc xây dựng 1 ngôn ngữ truy vấn nào đó mà có thể dùng cho tất cả nguồn dữ liệu, tất cả các định dạng dữ liệu khác nhau. Ngôn ngữ truy vấn đó là LINQ. Mục đích ra đời của LINQ hay LINQ to SQL là để phục vụ cho hệ quản trị cơ sở dữ liệu SQL Server và nền tảng .NET nói chung hay ngôn ngữ lập trình C#/VB.NET nói riêng chứ không phải mục đích đại trà cho các ngôn ngữ lập trình hay các hệ quản trị cơ sở dữ liệu khác. Ta biết rằng: 10 C# là một ngôn ngữ lập trình hướng đối tượng hoàn toàn. SQL Server là một hệ quản trị cơ sở dữ liệu (DBMS) theo mô hình quan hệ, mô hình CSDL quan hệ ghi các dữ liệu theo dòng trong các bảng dữ liệu. Muốn dùng ngôn ngữ C# viết mã để lấy dữ liệu từ SQL Server nhưng tổ chức mô hình dữ liệu của C# và SQL Server là khác nhau. Để giải quyết tình trạng trên, một kỹ thuật gọi là ORM (Object Relational Mapping) ra đời nhằm mục đích chuyển đổi dữ liệu giữa các hệ thống khác (không phải là mô hình hướng đối tượng) sang các đối tượng trong ngôn ngữ lập trình hướng đối tượng. Tiếp đó LINQ to SQL ra đời dựa trên kỹ thuật ORM xóa bỏ khoảng cách giữa mô hình lập trình hướng đối tượng C#/VB.NET với hệ quản trị cơ sở dữ liệu SQL Server khi đã mô hình hóa theo hướng đối tượng các bảng trong Database thành các lớp tương ứng khi lập trình. Sự ra đời của LINQ to SQL giúp các lập trình viên .NET bớt đi gánh nặng phụ thuộc bên thứ 3 (dùng SQL để truy vấn). LINQ to SQL đồng thời đồng bộ hóa dữ liệu lấy ra và trả về khi truy xuất dữ liệu bằng việc các Data Model hứng dữ liệu trả về được tạo tự động sao cho tương thích với kiểu dữ liệu tương ứng của chúng khi ánh xạ vào cơ sở dữ liệu. Điều này làm tránh tình trạng mất hoặc sai lệch dữ liệu khi truy xuất và thao tác với Database. Trên hết, một công cụ được phát hành cho nền tảng duy nhất là .NET với những thành viên trong .NET sử dụng thì hiệu suất của LINQ to SQL sẽ tốt hơn so với những công cụ bên thứ 3. 2.3.1. Linq to SQL là gì? LINQ (Language Integrated Query, tạm dịch là ngôn ngữ truy vấn tích hợp) đưa ra 1 mô hình bền vững để hoạt động với các dạng nguồn dữ liệu và định dạng dữ liệu khác nhau. Trong LINQ, bạn phải làm quen với chuyện làm việc với các đối tượng (objects). LINQ cho phép dùng các đoạn code đơn giản để truy vấn và chuyển đổi dữ liệu trong các tài liệu XML, cơ sở dữ liệu SQL, tập dữ liệu ADO.NET, các tập hợp .NET, và bất kỳ định dạng nào mà LINQ provider 11 hỗ trợ. LINQ to SQL là một phiên bản hiện thực hóa của O/RM có bên trong .NET Framework bản “Orcas” (nay là .NET 3.5), nó cho phép bạn mô hình hóa một cơ sở dữ liệu dùng các lóp .NET. Sau đó bạn có thế truy vấn cơ sở dữ liệu dùng LINQ, cũng như cập nhật/thêm/xóa dữ liệu từ đó. LINQ to SQL hồ trợ đầy đủ transaction, view và các stored procedure. Nó cũng cung cấp một cách dề dàng để thêm khả năng kiếm tra tính hợp lệ của dữ liệu và các quy tắc vào trong mô hình dữ liệu của bạn. 2.3.2. Kiến trúc và các thành phần của Linq SQL Sever Databases: LinQ to SQL: Cho phép truy vấn các cơ sở dữ liệu quan hệ. XML documents: LinQ to XML: Sử dụng LinQ to XML với mục đích truy vấn file XML Documents. ADO.NET datasets: LINQ to Dataset: Cho phép truy vấn các Dataset hoặc DataTable. .NET Collections, Strings, Files, . . . : LinQ to Objects: Cho phép truy vấn các đối tượng trong một tập các phần tử nguồn, các kiểu đối tượng này phải thực thi giao diện Ienumrable. Entity Framework: LinQ to Entities: Cho phép truy vấn các thực thể bên trong Entity Framework. 2.3.3. Cách thức vận hành Tất cả các hoạt động truy vấn LINQ đều bao gồm 3 tác vụ: Kết nối với nguồn dữ liệu (data source). Tạo truy vấn. Thực thi truy vấn. 12 Hình 2.3: Kiến trúc và các thành phần của Linq 2.3.4. Sự khác nhau giữa Linq to SQL và Entity Framework Linq to SQL cho phép ta truy vấn và chỉnh sửa dữ liệu của SQL Server sử dụng cú pháp của Linq. Entity framework là một ORM, cho phép chúng ta truy vấn và chỉnh sửa RDBMS như SQL Server, Oracle, DB2, MySQL... cũng bằng cách sử dụng cú pháp Linq. Bây giờ, EF được sử dụng thường xuyên trong ứng dụng .NET để truy vấn tới cơ sở dữ liệu.Và sau đây là một số điểm khác nhau giữa Linq to SQL và Entity Framework: 13 Bảng 2.1: Bảng so sánh sự khác nhau giữa Linq to SQL và Entity Framework.. USE CASE Ý NGHĨA Có thể works trên nhưng db khác Chỉ làm việc được với SQL nhau như Oracle, DB2, MYSQL, Server Database. SQL Server etc. Nó tạo ra một file .dbml để duy Các mối quan hệ được duy trì sử trì mối quan hệ Nó tạo ra một dụng 3 file khác nhau .csdl, .msl và file .edmx lúc đầu. .ssdl. Không hỗ trợ cho kiểu phức Hỗ trợ các kiểu phức tạp. tạp. Không thể tạo db từ model Có thể tạo db từ model. Chỉ cho phép 1-1 ánh xạ giữa Cho phép một-một, một-nhiều và; các lớp thực thể và quan hệ các nhiều-nhiều ánh xạ giữa các lớp thực tables / views. thể và các quan hệ tables / views. USE CASE Ý NGHĨA Cho phép bạn truy vấn dữ liệu sử Cho phép bạn truy vấn dữ liệu dụng Entity SQL, ObjectContext, bằng DbContext. DbContext. Nó cung cấp một phương pháp Code first cho phép sử dụng Depen- tiếp cận kết chặt chẽ. dency Injection pattern Có thể được sử dụng để phát triển Có thể được sử dụng để phát ứng dụng nhanh chóng với RDBMS triển ứng dụng nhanh chóng như SQL Server, Oracle, DB2 và chỉ với SQL Server. MySQL vv. 2.3.5. Ưu điểm của Linq to SQL Một công cụ hỗ trợ đắc lực: Khi sử dụng LINQ to SQL với hệ quản trị cơ sở dữ liệu SQL Server, người dùng không phải tạo các lớp Data Model để hứng dữ liệu trả về khi truy vấn dữ liệu vì LINQ to SQL đã tạo sẵn những lớp này với đầy đủ các thuộc tính và kiểu dữ liệu phù hợp với kiểu dữ liệu các cột bạn qui định trong Database . 14 Giao diện trực quan và tự động: LINQ to SQL cung cấp giao diện trực quan về mối quan hệ các bảng dữ liệu sau khi được mô hình hóa. Các lớp DataContext sẽ được tạo ra tự động khi Import file LINQ to SQL vào Project. Các lớp DataContext nhận nhiệm vụ mở kết nối đến cơ sở dữ liệu, thực hiện truy vấn hay thay đổi dữ liệu. Các lớp thuộc tính được mô hình hóa từ các bảng dữ liệu trong hệ quản trị cơ sở dữ liệu được truy cập thông qua các lớp DataContext. Lớp DataContext này gần như là một lớp bao (Wrapper Class), những thay đổi từ các bảng dữ liệu trong cơ sở dữ liệu thì lớp này sẽ cập nhật và thay đổi tương ứng (chúng cũng sẽ cập nhật vào các lớp Data Modal được tạo tự động). Điều này khiến cho việc thay đổi thuộc tính dữ liệu trong database diễn ra dễ dàng và người lập trình không mất quá nhiều công sức để chỉnh sửa lại code. LINQ nhưng bản chất vẫn là SQL: Các câu truy vấn LINQ sẽ được chuyển sang câu truy vấn SQL trước khi đưa vào SQL Server để truy vấn dữ liệu (LINQ to SQL giống như việc mang SQL vào và viết bằng C#, tuy vậy bản chất vẫn là SQL). LINQ to SQL là một công cụ tốt đối với những lập trình viên .NET. Cấu trúc, câu lệnh của nó dễ học và quen thuộc (C#/VB.NET). LINQ to SQL rút ngắn thời gian phát triển phần mềm trên nền tảng .NET khi muốn thao tác và truy xuất dữ liệu từ cơ sở dữ liệu, hệ thống tạo vào hỗ trợ tất cả những thứ cơ bản như lớp DataContext, các lớp Data Model để hứng dữ liệu, lập trình viên chỉ cần truy xuất và thao tác với dữ liệu. 15 CHƯƠNG 3. PHÂN TÍCH THIẾT KẾ 3.1. Xác định yêu cầu 3.1.1. Yêu cầu chức năng Mỗi nhân viên và quản trị viên đều có một tài khoản riêng. Hiển thị nhập xuất thông tin, báo cáo, đổi mật khẩu, đăng kí thẻ tháng, hưỡng dẫn chỗ trống giữ xe.... Quản lý thông tin xe ra vào, quản lý báo cáo, tính tiền vé vãng lai. Báo cáo doanh thu theo tháng, thông tin vé tháng. 3.1.2. Phân quyền người dùng Bảng 3.1: Bảng chi tiết phân quyền người dùng STT TÊN CHỦ ĐỀ NỘI DUNG CHỦ ĐỀ Xem thông tin báo cáo. Gia hạn thông tin vé 1 Quản trị viên tháng, thống,.... 2 Nhân viên viên Xem thông tin xe ra vào và tính tiền. 16 3.1.3. Danh sách Use Case Bảng danh sách Use Case Bảng 3.2: Bảng danh sách Use Case STT USE CASE Ý NGHĨA Quản trị viên và nhân viên buộc phải đăng 1 Login nhập trước khi vào giao diện chính. Quản trị viên và nhân viênsẽ thấy được hoạt động quét thẻ. Nếu xảy ra lỗi nhân viên hoặc 2 Manhinhhienthiquetthe quản trị viên báo cáo triển khai khắc phục sự cố kịp thời. Quản trị viên sẽ gia hạn thẻ tháng cho người 3 Giahanthethang dugnf muốn đăng kí tháng,... Quản trị viên sẽ báo cáo về các nội dung tổng 4 BaoCao hợp như doanh thu xe tháng, gia hạn xe tháng, doanh thu vãng lai theo tháng,... 3.1.4. Sơ đồ Use Case Hình 3.1: Sơ đồ Use Case. 17 3.1.5. Mô hình hóa các yêu cầu 3.1.5.1. Biểu đồ luồng dữ liệu mức 0 Mô hình mô tả hoạt động bãi giữ xe Hình 3.2: Biểu đồ luồng dữ liệu mức 0 Mô tả ký hiệu Bảng 3.3: Bảng chi tiết mô hình mô tả hoạt động xe. STT USE CASE Ý NGHĨA Phân loại xe (xe số, xe tay ga, xe hơ,...). Thẻ 1 D1, D2 xe (vé tháng, vé khách vãng lai). Số xe vào (ghi sô xe đầu vào). Số xe ra (hiện 2 D3, D4 số xe khi ra đúng với số xe khi vào không). Biên bản (Sai sót hệ thống ảnh hưởng khách 3 D5, D6 hàng).Trả về thông tin sau khi lưu thành công. Thanh toán sau khi kiểm tra đúng mã số và 4 D7 không phải thẻ giả. 18 Mô tả thuật toán Bảng 3.4: Bảng mô tả thuật toán mô hình hoạt động bãi giữ xe. STT USE CASE Ý NGHĨA 1 1.0 Nhận dữ liệu từ D1. Xuất dữ liệu D2. 2 2.0 Nhận thẻ xe từ khách. Xuất dữ liệu D4 và D6. Nhận dữ liệu từ khác và trả về cách giải quyết 3 3.0 vấn đề. Xuất dữ liệu D5 Nhận dữ liệu D3, D4, D6. Xuất dữ liệu D7. Trả 4 4.0 về báo cáo lãnh đạo khi được yêu cầu. 3.1.5.2. Tiến trình xe vào Mô hình mô tả hoạt động quét thẻ vào Hình 3.3: Biểu đồ tiến trình "1.0 xe vào" 19 Mô tả thuật toán Bảng 3.5: Bảng mô tả thuật toán mô hình hoạt động bxe vào. STT USE CASE Ý NGHĨA Nhận dữ liệu từ khách và D1. Truyền dữ liệu 1 1.1 sang 1.2. 2 1.2 Nhận dữ liệu từ D1, D3, D4, 1.1 và 1.3.. Nhận lại dữ liệu từ 1.2 khi kiểm tra hoàn tất 3 1.3 và xuất dữ liệu ra thẻ và 4.1. 4 1.4 Nhận dữ liệu 3.1 và xuất dữ liệu ra D3. 3.1.5.3. Tiến trình xe ra Mô hình mô tả hoạt động quét thẻ xe ra Hình 3.4: Biểu đồ tiến trình "2.0 xe ra" 20 Mô tả thuật toán Bảng 3.6: Bảng mô tả thuật toán mô hình hoạt động xe ra. STT USE CASE Ý NGHĨA Nhận dữ thẻ từ khách. Truyền dữ liệu kiểm tra 1 2.1 sang 2.2. Nhận dữ liệu kiểm tra từ 2.1 và D5. Xuất dữ 2 2.2 liệu 2.3. Nhận lại dữ liệu từ 2.2 và xuất dữ liệu D5 và 3 2.3 truyền sang 2.4 xử lý.. Nhận dữ liệu từ 2.3 và xuất dữ liệu ra D3 và 4 2.4 xác nhận thanh toán cho xe ra. 3.1.5.4. Tiến trình giải quyết sự cố Mô hình mô tả hoạt động giải quyết sự cố Hình 3.5: Biểu đồ tiến trình "3.0 giải quyết sự cố" 21 Mô tả thuật toán Bảng 3.7: Bảng mô tả thuật toán mô hình hoạt giải quyết vấn đề. STT USE CASE Ý NGHĨA 1 3.1 Nhận dữ liệu từ d3 và D4. Nhận dữ liệu kiểm tra từ 3.1 và xuất cho khách 2 3.2 hàng nếu sai. Nhận lại dữ liệu từ 3.2 xử lý và truyền sang 3 3.3 D6 và 3.4 Nhận dữ liệu từ 3.3 và xác nhận thanh toán 4 3.4 cho khách hàng. 3.2. Mô hình cơ sở dữ liệu 3.2.1. Mô hình cơ sở dữ liệu Mô hình cơ sở dữ liệu Hình 3.6: Mô hình cơ sở dữ liệu. 22 3.2.2. Chi tiết các thực thể 3.2.2.1. Thực thể tài khoản Bảng 3.8: Bảng chi tiết thực thể tài khoản. THUỘC KIỂU CHO STT MÔ TẢ TÍNH DỮ LIỆU PHÉP RỖNG 1 Username varchar(100) Không rỗng Tên đăng nhập 2 Displayname nvarchar(600) rỗng Tên hiển thị 3 Password nvarchar(700) rỗng Mật khẩu Quyền hạn (loại tài 4 Type int Rỗng khoản: user or ad- min...) 3.2.2.2. Thực thể bãi xe Bảng 3.9: Bảng chi tiết thực thể bãi xe. THUỘC KIỂU CHO STT MÔ TẢ TÍNH DỮ LIỆU PHÉP RỖNG 1 CardID varchar(50) Không rỗng Mã thẻ 2 Time datetime rỗng Thời gian 3 Status nvarchar(100) rỗng Trạng thái Loại thẻ (thẻ tháng, 4 Type nvarchar(100) rỗng khách vãng lai...) 5 Image varchar(50) rỗng Hình ảnh 23 3.2.2.3. Thực thể thống kê Bảng 3.10: Bảng chi tiết thực thể bãi xe. THUỘC KIỂU CHO STT MÔ TẢ TÍNH DỮ LIỆU PHÉP RỖNG 1 CardID varchar(50) Không rỗng Mã thẻ 2 TimeIn datetime rỗng Thời gian xe vào 3 TimeOut datetime rỗng Thời gian xe ra Loại thẻ (thẻ tháng, 4 Type nvarchar(100) rỗng khách vãng lai...) 5 Money int rỗng Tính tiền 24 CHƯƠNG 4. KẾT QUẢ THỰC NGHIỆM 4.1. Thực nghiệm 4.1.1. Giao diện chương trình Hình 4.1: Giao diện chương trình. Đây là giao diện chương trình sau

Các file đính kèm theo tài liệu này:

  • pdfbao_cao_nghien_cuu_khoa_hoc_nghien_cuu_phan_mem_bai_giu_xe_t.pdf
Tài liệu liên quan