CƠ SỞ LÝ THUYẾT
Ngôn ngữ Java
- Giới thiệu về ngôn ngữ Java
Java là một trong những ngôn ngữ lập trình hướng đối tượng Nó được sử dụng trong phát triển phần mềm, trang web, game hay ứng dụng trên các thiết bị di động.
Java được khởi đầu bởi James Gosling và bạn đồng nghiệp ở Sun MicroSystem năm 1991
Ban đầu Java được tạo ra nhằm mục đích viết phần mềm cho các sản phẩm gia dụng, và có tên là Oak Java được phát hành năm 1994, đến năm 2010 được Oracle mua lại từ Sun MicroSystem.
Java được tạo ra với tiêu chí “Viết (code) một lần, thực thi khắp nơi” (Write Once, Run Anywhere – WORA) Chương trình phần mềm viết bằng Java có thể chạy trên mọi nền tảng (platform) khác nhau thông qua một môi trường thực thi với điều kiện có môi trường thực thi thích hợp hỗ trợ nền tảng đó.
- Máy ảo Java (JVM - Java Virtual Machine)
Tất cả các chương trình muốn thực thi được thì phải được biên dịch ra mã máy Mã máy của từng kiến trúc CPU của mỗi máy tính là khác nhau (tập lệnh mã máy của CPU Intel, CPU Solarix, CPU Macintosh … là khác nhau), vì vậy trước đây một chương trình sau khi được biên dịch xong chỉ có thể chạy được trên một kiến trúc CPU cụ thể nào đó Đối với CPU Intel chúng ta có thể chạy các hệ điều hành như Microsoft Windows, Unix,Linux, OS/2, …
Chương trình thực thi được trên Windows được biên dịch dưới dạng file có đuôi EXE còn trên Linux thì được biên dịch dưới dạng file có đuôi ELF, vì vậy trước đây một chương trình chạy được trên Windows muốn chạy được trên hệ điều hành khác như Linux chẳng hạn thì phải chỉnh sửa và biên dịch lại
Ngôn ngữ lập trình Java ra đời, nhờ vào máy ảo Java mà khó khăn nêu trên đã được khắc phục Một chương trình viết bằng ngôn ngữ lập trình Java sẽ được biên dịch ra mã của máy ảo java (mã java bytecode) Sau đó máy ảo Java chịu trách nhiệm chuyển mã java bytecode thành mã máy tương ứng Sun Microsystem chịu trách nhiệm phát triển các máy ảo Java chạy trên các hệ điều hành trên các kiến trúc CPU khác nhau.
Java là một ngôn ngữ lập trình vừa biên dịch vừa thông dịch Chương trình nguồn viết bằng ngôn ngữ lập trình Java có đuôi *.java đầu tiên được biên dịch thành tập tin có đuôi *.class và sau đó sẽ được trình thông dịch thông dịch thành mã máy
Một chương trình viết bằng ngôn ngữ Java có thể chạy trên nhiều máy tính có hệ điều hành khác nhau (Windows, Unix, Linux, …) với điều kiện ở đó có cài đặt máy ảo java (Java Virtual Machine).
Hướng đối tượng trong Java tương tự như C++ nhưng Java là một ngôn ngữ lập trình hướng đối tượng hoàn toàn Tất cả mọi thứ đề cập đến trong Java đều liên quan đến các đối tượng được định nghĩa trước, thậm chí hàm chính của một chương trình viết bằng Java (đó là hàm main) cũng phải đặt bên trong một lớp Hướng đối tượng trong Java không có tính đa kế thừa (multi inheritance) như trong C++ mà thay vào đó Java đưa ra khái niệm interface để hỗ trợ tính đa kế thừa
- Đa nhiệm - đa luồng (MultiTasking - Multithreading):
Java hỗ trợ lập trình đa nhiệm, đa luồng cho phép nhiều tiến trình, tiểu trình có thể chạy song song cùng một thời điểm và tương tác với nhau.
Chương trình ứng dụng viết bằng ngôn ngữ Java chỉ cần chạy được trên máy ảo Java là có thể chạy được trên bất kỳ máy tính, hệ điều hành nào có máy ảo Java “Viết một lần, chạy mọi nơi” (Write Once, Run Anywhere).
- Hỗ trợ mạnh cho việc phát triển ứng dụng:
Công nghệ Java phát triển mạnh mẽ nhờ vào “đại gia Sun Microsystem” cung cấp nhiều công cụ, thư viện lập trình phong phú hỗ trợ cho việc phát triển nhiều loại hình ứng dụng khác nhau cụ thể như:
+ J2SE (Java 2 Standard Edition) hỗ trợ phát triển những ứng dụng đơn, ứng dụng client-server.
+ J2EE (Java 2 Enterprise Edition) hỗ trợ phát triển các ứng dụng thương mại.
+ J2ME (Java 2 Micro Edition) hỗ trợ phát triển các ứng dụng trên các thiết bị di động, không dây, …
MVC là viết tắt của cụm từ “Model-View-Controller” Đây là mô hình thiết kế được sử dụng trong kỹ thuật phần mềm MVC là một mẫu kiến trúc phần mềm để tạo lập giao diện người dùng trên máy tính MVC chia thành ba phần được kết nối với nhau và mỗi thành phần đều có mô •t nhiê •m vụ riêng của nó và đô •c lâ •p với các thành phần khác Tên gọi 3 thành phần:
Model (dữ liệu): Quản lí xử lí các dữ liê •u.
View (giao diện): Nới hiển thị dữ liê •u cho người dùng.
Controller (bộ điều khiển): Điều khiển sự tương tác của hai thành phần Model và View.
Mô hình MVC (MVC pattern) thường được dùng để phát triển giao diện người dùng Nó cung cấp các thành phần cơ bản để thiết kế một chương trình cho máy tính hoặc điện thoại di động, cũng như là các ứng dụng web.
MySQL
Tính linh hoạt: Máy chủ cơ sở dữ liệu MySQL cung cấp đặc tính linh hoạt, có sức chứa để xử lý các ứng dụng được nhúng sâu với dung lượng chỉ 1MB để chạy các kho dữ liệu đồ sộ lên đến hàng terabytes thông tin Sự linh hoạt về flatform là một đặc tính lớn của MySQL với tất cả các phiên bản của Linux, Unix, và Windows đang được hỗ trợ Và dĩ nhiên, tính chất mã nguồn mở của MySQL cho phép sự tùy biến hoàn toàn theo ý muốn để thêm vào các yêu cầu thích hợp cho database server.
Tính thực thi cao: Kiến trúc storage-engine cho phép các chuyên gia cơ sở dữ liệu cấu hình máy chủ cơ sở dữ liệu MySQL đặc trưng cho các ứng dụng đặc thù Dù ứng dụng là một hệ thống xử lý giao dịch tốc độ cao hay web site dung lượng lớn phục vụ hàng triệu yêu cầu mỗi ngày, MySQL có thể đáp ứng khả năng xử lý những đòi hỏi khắt khe nhất của bất kì hệ thống nào Với các tiện ích tải tốc độ cao, đặc biệt bộ nhớ caches, và các cơ chế xử lý nâng cao khác, MySQL đưa ra tất cả các vũ khí cần phải có cho các hệ thống doanh nghiệp khó tính ngày nay.
Có thể sử dụng ngay: Sự đáng tin cậy cao và tính “mì ăn liền” là những tiêu chuẩn đảm bảo của MySQL MySQL đưa ra nhiều tùy chọn có thể dùng ngay từ cấu hình tái tạo chủ/tớ tốc độ cao, để các nhà phân phối thứ 3 đưa ra những giải pháp có thể dùng ngay duy nhất cho server cơ sở dữ liệu MySQL.
Hỗ trợ giao dịch mạnh: MySQL đưa ra một trong số những engine giao dịch cơ sở dữ liệu mạnh nhất trên thị trường Các đặc trưng bao gồm hỗ trợ giao dịch ACID hoàn thiện ( Atomic – tự động, Consistent – thống nhất, Isolated – độc lập, Durable – bền vững), khóa mức dòng không hạn chế, khả năng giao dịch được phân loại, và hỗ trợ giao dịch đa dạng (multi-version) mà người đọc không bao giờ gây trở ngại cho người viết và ngược lại Tính toàn vẹn của dữ liệu cũng phải được bảo đảm trong suốt quá trình server có hiệu lực, các mức giao dịch độc lập được chuyên môn hóa, và phát hiện khóa chết ngay lập tức.
Nơi lưu trữ Web và Data đáng tin cậy: MySQL là nhà máy chuẩn cho các web sites phải trao đổi thường xuyên vì nó có engine xử lý tốc độ cao, khả năng chèn dữ liệu nhanh, và hỗ trợ mạnh cho các chức năng chuyên dụng của web như tìm kiếm văn bản nhanh Những tính năng này cũng được áp dụng cho môi trường lưu trữ dữ liệu mà MySQL tăng cường đến hàng terabyte cho các server đơn Các tính năng khác như bảng nhớ chính, cây B và chỉ số băm, và bảng lưu trữ đã được cô lại để giảm các yêu cầu lưu trữ đến 80% làm cho MySQL trở thành lựa chọn tốt nhất cho cả ứng dụng web và các ứng dụng doanh nghiệp.
Chế độ bảo mật dữ liệu mạnh: Vì bảo mật dữ liệu cho một công ty là công việc số một của các chuyên gia về cơ sở dữ liệu, MySQL đưa ra tính năng bảo mật đặc biệt chắc chắn dữ liệu sẽ được bảo mật tuyệt đối Trong việc xác nhận truy cập cơ sở dữ liệu, MySQL cung cấp các kĩ thuật mạnh mà chắc chắn chỉ có người sử dụng đã được xác nhận mới có thể truy nhập được vào server cơ sở dữ liệu, với khả năng này để chặn người dùng ngay từ mức máy khách là điều có thể làm được SSH và SSL cũng được hỗ trợ để chắc chắn các kết nối được an toàn và bảo mật Một đối tượng framework đặc quyền được đưa ra mà người sử dụng chỉ có thể nhìn thấy dữ liệu, các hàm mã hóa và giải mã dữ liệu mạnh chắc chắn rằng dữ liệu sẽ được bảo mật Cuối cùng, tiện ích backup và recovery cung cấp bởi MySQL và các hãng phần mềm thứ
3 cho phép backup logic và vật lý hoàn thiện cũng như recovery toàn bộ hoặc tại một thời điểm nào đó.
Sự phát triển ứng dụng hỗn hợp: Một trong số các lý do khiến cho
MySQL là cơ sở dữ liệu mã nguồn mở phổ biến nhất thế giới là nó cung cấp hỗ trợ hỗn hợp cho bất kì sự phát triển ứng dụng nào cần Trong cơ sở dữ liệu, hỗ trợ có thể được tìm thấy trong các stored procedure, trigger, function, view,cursor, ANSI-standard SQL, và nhiều nữa Với các ứng dụng nhúng, thư viện plug-in có sẵn để nhúng vào cơ sở dữ liệu MySQL hỗ trợ trong bất kì ứng dụng nào MySQL cũng cung cấp các bộ kết nối như: ODBC, JDBC, … để cho phép tất cả các form của ứng dụng sử dụng MySQL như một server quản lí dữ liệu được ưu tiên.
Dễ dàng quản lý: MySQL trình diễn khả năng cài đặt nhanh đặc biệt với thời gian ở mức trung bình từ lúc download phần mềm đến khi cài đặt hoàn thành chỉ mất chưa đầy 15 phút Điều này đúng cho dù flatform là Microsoft Windows, Linux, Macintosh hay Unix Khi đã được cài đặt, tính năng tự quản lý như tự động mở rộng không gian, tự khởi động lại, và cấu hình động sẵn sàng cho người quản trị cơ sở dữ liệu làm việc MySQL cũng cung cấp một bộ hoàn thiện các công cụ quản lý đồ họa cho phép một DBA quản lý, sửa chữa, và điều khiển hoạt động của nhiều server MySQL từ một máy trạm đơn Nhiều công cụ của các hãng phần mềm thứ 3 cũng có sẵn trong MySQL để điều khiển các tác vụ từ thiết kế dữ liệu và ETL, đến việc quản trị cơ sở dữ liệu hoàn thiện, quản lý công việc, và thực hiện kiểm tra.
Nhiều công ty lưỡng lự trong việc giao phó toàn bộ cho
Mã nguồn mở: phần mềm mã nguồn mở vì họ tin họ không thể tìm được một cách hỗ trợ hay mạng lưới an toàn phục vụ chuyên nghiệp, hiện tại, họ tin vào phần mềm có bản quyền để chắc chắn về sự thành công toàn diện cho các ứng dụng chủ chốt của họ Những lo lắng của họ có thể được dẹp bỏ với MySQL, sự bồi thường là có trong mạng lưới MySQL
Chi phí thấp: Bằng cách sử dụng MySQL cho các dự án phát triển mới, các công ty đang thấy rõ việc tiết kiệm chi phí Được hoàn thành thông qua sử dụng server cơ sở dữ liệu MySQL và kiến trúc scale-out, các doanh nghiệp đã tìm ra cái mà họ có thể đạt được ở mức ngạc nhiên về khả năng xử lý Thêm vào đó, tính tin cậy và dễ duy trì của MySQL ở mức trung bình mà người quản trị cơ sở dữ liệu không phải mất nhiều thời gian sửa chữa hay vấn đề thời gian chết.
Lý thuyết về Phân tích thiết kế hệ thống
- Là quy trình để phát triển và bảo trì một ứng dụng hệ thống thông tin với mục đích nâng cao hiệu quả công việc.
- PTTK HT được thực hiện dựa trên quy trình công nghệ phần mềm gồm phương pháp luận, công nghệ và công cụ.
- Phương pháp luận: trình tự của cách tiếp cận từng bước để phát triển sản phẩm cuối cùng là HTTT.
- Kỹ năng: trình tự mà người phân tích hệ thống theo để thực hiện các công việc như phỏng vấn người dùng để xác nhận yêu cầu, lập kế hoạch, vẽ biểu đồ,…
- Công cụ: chương trình máy tính Ví dụ như CASE( computer- aided sofware engineering) để thực hiện các kỹ năng cụ thể một cách dễ dàng.
- Phương pháp luận, kỹ thuật, công cụ tạo nên một cách tiếp cận có hệ thống để phân tích và thiết kế hệ thống.
- Đóng vai trò cốt lõi trong việc phát triển hệ thống: Phân tích hệ thống là nghiên cứu vấn đề trong tổ chức, đưa ra giải pháp để nâng cao tổ chức.
Kết nối Java với MySQL
- Nếu như Java là ngôn ngữ lập trình thì MySQL là hệ quản trị cơ sở dữ liệu. Trong hầu hết các ứng dụng thì việc kết nối cơ sở dữ liệu là cần thiết Chẳng hạn ứng dụng quản lý kinh doanh, thông tin về khách hàng, thông tin về mặc hàng, … sẽ được lưu trữ trong database.
Người dùng muốn thêm/cập nhật thông tin khách hàng thông qua giao diện ứng dụng (giao diện ứng dụng có thể sử dụng các ngôn ngữ lập trình như C#, Java, …)
Cài đặt MySQL Bạn có thể cài XAMPP hoặc tải và cài MySQL riêng Ở đây, chúng tôi sử dụng MySQL được cài trong XAMPP Tạo một database tên mysql_db gồm một table là DEPT và thêm dữ liệu vào cho bảng DEPT
PHÂN TÍCH THIẾT KẾ HỆ THỐNG QUẢN LÝ
Phân tích hiện trạng và yêu cầu
Hệ thống quản lý bán hàng còn vấp phải sự bất cập nhờ việc sữa đổi thông tin bán hàng nhưng ở một số trường hợp vẫn giữ nguyên thông tin cũ chưa được cập nhật Muốn tìm thông tin nào đó phải mất nhiều thời gian.
Yêu cầu đặt ra là chương trình phải khắc phục được những hạn chế, việc chỉnh sửa thông tin phải được đồng nhất Quản lý bán hàng cần phải có đầy đủ thông tin.
Xác định các Actor
- Người quản lý cửa hàng
Là người thực hiện nhập/xuất, tạo mới và chỉnh sửa thông tin, ngoài ra còn thực hiện việc quản lý thông tin các đơn hàng Khi khách hàng mua hàng sẽ thực hiện các công việc như tìm kiếm, tạo đơn hàng và quản lý đơn hàng.
Biểu đồ chức năng
ADMIN là người quản lý và là người có thể xem và thực hiện tất cả các chức năng Phân quyền cho nhân viên gồm 5 người (có thể hơn) từng chức năng
Tác nhân: người quản lý cửa hàng có nhiệm vụ quản lý các thông tin của cửa hàng
- Đăng nhập, tạo mới người dùng, xử lý người dùng quên mật khẩu
- Hiển thị danh sách trong cơ sở dữ liệu (có và không có điều kiện)
- Cài đặt các thông tin cơ bản cửa hàng.
- Thêm xóa sửa mặt hàng nào đó
- Hiển thị số liệu thống kê
- Tìm kiếm theo tên sách
- Nhập xuất dữ liệu file excel
2.3.1 Mô hình phân rã đăng nhập hệ thống a, Mô hình phân rã quản lý tài khoản b, Mô hình phân rã quản lý tài khoản c, Mô hình phân rã mật khẩu
2.3.2 Mô hình phân rã báo cáo thống kê
2.3.3 Mô hình phân rã quản lý bán hàng
2.3.4 Mô hình phân rã quản lý thông tin hàng hóa
Biểu đồ luồng dữ liệu
Quản lý kinh doanh giày dép
Biểu đồ thực thể liên kết (E-R)
THIẾT KẾ GIAO DIỆN VÀ CÀI ĐẶT CHƯƠNG TRÌNH
Tạo cơ sở dữ liệu
Xây dựng database trên myPHPadmin của xampp Ta đặt tên cho cở sở dữ liệu cho dự án là ‘qlcuahanggiaydb’.
Trong cơ sở dữ liệu ta xây dựng các bảng:
Xây dựng các models package
Về điểm chung các file này chứa các thuộc tính, thông tin kiểu dữ liệu, hàm khởi tạo Constructor và các phương thức Getter và Setter:
Tạo Java package để chứa các file cấu hình model java
Sử dụng thành phần DTO, BUS, DAO để tổ chức và xử lý dữ liệu
DTO (Data Transfer Object): DTO là một lớp đối tượng đơn giản được sử dụng để chứa dữ liệu và truyền dữ liệu giữa các thành phần của ứng dụng DTO thường chỉ chứa các trường dữ liệu (không có phương thức) và được sử dụng để đảm bảo việc chuyển dữ liệu giữa các thành phần diễn ra dễ dàng và hiệu quả Tóm lại là DTO chứa dữ liệu xây dựng dưới dạng hướng đối tượng.
BUS (Business Logic): BUS (Business Service hoặc Business Layer) là một thành phần trong mô hình phát triển ứng dụng sử dụng để xử lý logic nghiệp vụ (business logic) BUS chịu trách nhiệm xử lý các yêu cầu nghiệp vụ, kiểm tra dữ liệu và thực hiện các hoạt động liên quan đến logic kinh doanh Thông qua BUS, các quy tắc và logic kinh doanh của ứng dụng được triển khai và thực thi.
DAO (Data Access Object): DAO là một thành phần trong mô hình phát triển ứng dụng sử dụng để thực hiện các hoạt động truy vấn và thao tác với cơ sở dữ liệu DAO chịu trách nhiệm xử lý việc truy xuất, cập nhật và xử lý dữ liệu từ cơ sở dữ liệu Nó cung cấp các phương thức để thực hiện các thao tác CRUD (Create, Read, Update, Delete) trên các bảng và đối tượng trong cơ sở dữ liệu.
GUI (Graphical User Interface) là cách tạo giao diện đồ họa cho các ứng dụng Java Nó cho phép người dùng tương tác với ứng dụng thông qua các thành phần như nút bấm, hộp văn bản, danh sách, menu, v.v.
Trong Java, có một số thư viện hỗ trợ việc xây dựng giao diện đồ họa, phổ biến nhất là Swing.
Swing: Swing là một bộ công cụ GUI mạnh mẽ được cung cấp bởi Java Nó cung cấp các lớp và thành phần để xây dựng giao diện người dùng, chẳng hạn như JFrame, JDialog, JButton, JTextField, v.v Swing được sử dụng rộng rãi và hỗ trợ trên hầu hết các phiên bản Java Và ở trong bài tập lớn lần này em sử dụng Jframe để thiết kế giao diện.
Giao diện đăng nhập
Phần mềm có một login gồm có: Tài khoản và Mật khẩu Người dùng phải nhập đúng tên Tài khoản và Mật khẩu đã đăng ký thì mới có thể đăng nhập vào hệ thống
Nếu người dùng đăng nhập vào hệ thống với tài khoản admin thì người dùng có thể thực hiện tất cả chức năng của chương trình Còn nếu người dùng đăng nhập với tài khoản khác thì sẽ bị giới hạn chức năng quản lý dữ liệu
Và đây là một số form chức năng quản lý của chương trình, với quyền đăng nhập là ADMIN thì bạn có thể sử dụng được tất cả các chức năng của chương trình.
Giao diện chính sau khi đăng nhập
Phân quyền này sẽ có đầy đủ những chức năng bao gồm:
Thư ký: là người sẽ thống kê và nhập xuất file excel.
Sau khi chọn thống kê thì sẽ hiển thị:
Thống kê doanh thu theo ngày, theo quý, theo tháng, theo năm và sẽ hiển thị bảng hóa đơn, phiếu nhập, Tổng thu, Tổng chi và Lợi nhuận.
Sau khi chọn xuất Excel chương trình hiển thị:
Cụ thể đó chỉnh là xuất 2 file excel Hóa đơn và Nhập hàng.
Nhân viên kiểm tra hàng hóa: sẽ là người thực hiện công việc thêm, sửa, xóa và tìm kiếm sản phẩm.
Sau khi chọn vào mục hàng hóa thì chương trình hiển thị:
Nhân viên nhập hàng: Tạo mới 1 phiếu nhập và ghi thông tin chi tiết của phiếu nhập đó với tùng sản phẩm mà người dùng nhập.
Sau khi chọn nhập hàng màn hình sẽ hiển thị:
Nhân viên làm khuyễn mãi: Tạo mới 1 mã khuyến mãi và cho biết thời gian khuyến mãi của chương trình khuyến mãi đó đối với những loại sản phẩm nào với tỉ lệ khuyến mãi là bao nhiêu.
Sau khi chọn mục khuyến mãi sẽ hiển thị:
Nhân viên lập hóa đơn:
- Tạo 1 hóa đơn với các thông tin chi tiết của hóa đơn đó.
- Sau khi làm xong hóa đơn có thể xuất hóa đơn đó ra file ảnh.
Hướng phát triển trong tương lai
- Khắc phục những chỗ thay vì hiển thị mã thì hiển thị tên.
- Xử lý được với 1 luồng dữ liệu lớn.
- Có thể tích hợp trên nhiều hệ điều hành khác như: Linux, Android, ISO,
- Thiết kế giao diện để trình bày giao diện hợp lý và đẹp hơn.
- Xuất ra 1 file Apllication để cài đặt nhanh gọn không cần phải tải NetBeans về.
- Thống kê nhiều danh mục.
- Đọc file Excel và ghi vào database.
- Sửa những lỗi nhập số nhập chữ thì hiển thị cho người dùng biết mình nhập sai.
- Khi đăng nhập hay check tài khoản khách hàng thì sẽ áp dụng thêm nhận dạng thẻ, …
Cùng với sự phát triển không ngừng của công nghệ thông tin đang được phát triển mạnh mẽ, nhanh chóng và xâm nhập vào nhiều lĩnh vực khoa học, kỹ thuật cũng như trong cuộc sống Nó trở thành công cụ đắc lực trong nhiều ngành nghề như giao thông, quân sự, y học
Bằng Internet, chúng ta đã thực hiện được nhiều công việc với tốc độc nhanh hơn và chi phí cũng thấp hơn nhiều so với các thức truyền thống vì vậy hang loạt nhà hàng đã ứng dụng công nghệ thông tin vào quản lý.
Cơ bản hệ thống đã thực hiện được các chức năng đề ra
Đặt bàn và Gọi món theo yêu cầu của khách hàng.
Quản lý thông tin nhân viên.
Quản lý thông tin món ăn.
Trong quá trình thực hiện bài làm của em sẽ không tránh khỏi những thiếu xót, rất mong được sự giúp đỡ và góp ý kiến của các thầy cô.
Em xin chân thành cảm ơn!