Hệ quản trị CSDL MySQL MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng.. MySQL là m
Trang 1LỜI CẢM ƠN
Em xin chân thành cảm ơn sự giúp đỡ nhiệt tình của thầy giáo,PGS-TS Phạm Việt Bình, người đã định hướng,giúp đỡ em trong suốt quá trình thực hiện
đồ án để em có thể hoàn thành tốt đề tài của mình
Em cũng xin gửi lời cảm ơn đến các thầy cô giáo, giảng viên Khoa Công Nghệ Thông Tin – Trường Đại Học Công Nghệ Thông Tin và Truyền Thông Thái Nguyên – Đại học Thái Nguyên và các thầy cô đã giảng dạy em trong suốt quá trình
em học tập tại trường
Con cũng xin gửi lời cảm ơn chân thành đến gia đình, bố mẹ và bạn bè đã luôn là nguồn động viên to lớn giúp đỡ con vượt qua những khó khăn trong suốt quá trình học tập
Mặc dù đã cố gắng hoàn thiện đồ án với tất cả nỗ lực của bản thân, nhưng chắc không thể tránh khỏi những thiếu sót Kính mong quý thầy cô đóng góp ý kiến
để em có thể hoàn thiện kiến thức của bản thân!
Em rất tự hào về ngồi trường mà mình đang theo học, và tự hào về tất cả thầy
cô của mình.Kính chúc các thầy cô mạnh khỏe và công tác tốt
Em xin chân thành cảm ơn!
Trang 2LỜI CAM ĐOAN
Em xin cam đoan rằng:
Số liệu và kết quả nghiên cứu trong đồ án này là hoàn toàn trung thực và chưa từng được sử dụng hoặc công bố trong bất kỳ công trình nào khác
Các nội dung lý thuyết, sơ đồ phân tích được nghiên cứu và áp dụng từ phần tài liệu tham khảo, chương trình demo do em tự thiết kế
Mọi sự giúp đỡ cho việc thực hiện đồ án này đã được cám ơn và các thông tin trích dẫn trong đồ án đều được ghi rõ nguồn gốc
Thái nguyên, tháng 05 năm 2017 Sinh viên thực hiện
Nguyễn Hữu Khang
Trang 3MỤC LỤC
LỜI CẢM ƠN 1
LỜI CAM ĐOAN 2
MỤC LỤC 3
DANH MỤC HÌNH ẢNH 5
LỜI MỞ ĐẦU 7
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 8
1.1 Giới thiệu 8
1.1.1 Tổng quan 8
1.1.2 Hoạt động ngôn ngữ PHP 8
1.1.3 Hệ quản trị CSDL MySQL 9
1.2 Tìm hiểu về CodeIgniter 9
1.2.1 Giới thiệu về CodeIgniter 9
1.2.2 Những điểm nổi bật 10
1.2.3 Cài đặt 11
1.2.4 Mô hình Model-View-Controller trong CodeIgniter 11
1.2.5 Cấu trúc CodeIgniter 13
1.2.6 CodeIgniter URL 14
1.3 Tổng quan ngôn ngữ UML 15
1.3.1 Giới thiệu về UML 15
1.3.2 UML là ngôn ngữ để hiển thị 16
1.3.3 UML là ngôn ngữ đặc tả 16
1.3.4 UML là ngôn ngữ để xậy dựng 16
1.3.5 UML là ngôn ngữ tài liệu 17
CHƯƠNG 2 KHẢO SÁT, PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 18
2.1 Khảo sát hệ thống 18
2.1.1 Giới thiệu 18
2.1.2 Tình trạng kinh doanh của công ty 18
2.1.3.Một số biểu mẫu 19
2.2 Phân tích thiết kế hệ thống 22
2.2.1 Tác nhân của hệ thống 22
Trang 42.2.2 Usecase tổng quan 23
2.2.3 Danh sách các usecase 23
2.2.4 Usecase cho từng chức năng 25
2.2.5 Đặc tả một số usecase 29
2.2.6 Biểu đồ hoạt động 39
2.2.7 Biểu đồ trình tự 42
2.2.8 Biểu đồ lớp 48
2.2.9 Chi tiết cơ sở dữ liệu 49
CHƯƠNG 3 THIẾT KẾ XÂY DỰNG PHẦN MỀM 52
3.1 Giới thiệu phần mềm 52
3.2 Giao diện phần mềm 52
3.2.1 Giao diện trang chủ 52
3.2.2 Giao diện trang quản lý khách hàng 53
3.2.3 Giao diện trang đơn hàng 54
3.2.4 Giao diện trang Hàng hóa 55
3.2.5 Giao diện trang nhập kho 56
3.2.6 Giao diện trang tồn kho 56
KẾT LUẬN 57
TÀI LIỆU THAM KHẢO 58
Trang 5DANH MỤC HÌNH ẢNH
Hình 1.1: Minh họa mô hình MVC 12
Hình 1.2: Cấu trúc CodeIgniter 13
Hình 2.1: Tác nhân hệ thống 22
Hình 2.1: Usecase tổng quan 23
Hình 2.2: Usecase quản lý hệ thống 25
Hình 2.3: Usecase quản lý đơn hàng 25
Hình 2.4: Usecase quản lý hàng hóa 26
Hình 2.5: Usecase quản lý nhà cung cấp 26
Hình 2.6: Usecase quản lý khách hàng 27
Hình 2.7: Usecase quản lý nhập hàng 27
Hình 2.8: Usecase tồn kho 28
Hình 2.11: Biểu đồ hoạt động đăng nhập vào hệ thống 39
Hình 2.12: Biểu đồ hoạt động đăng xuất ra khỏi hệ thống 39
Hình 2.13: Biểu đồ hoạt động đổi mật khẩu 40
Hình 2.14: Biểu đồ hoạt động thêm thành viên vào hệ thống 40
Hình 2.15: Biểu đồ hoạt động xóa thành viên 41
Hình 2.16: Biểu đồ hoạt động xem thông tin hàng hóa 41
Hình 2.17: Biểu đồ tuần tự đăng nhập 42
Hình 2.19: Biểu đồ tuần tự thay đổi mật khẩu 42
Hình 2.26: Biểu đồ tuần tự thêm người dùng đăng nhập 43
Hình 2.27: Biểu đồ tuần tự phiếu nhập kho 43
Hình 2.20: Biểu đồ tuần tự thêm mới hàng hóa 44
Hình 2.21: Biểu đồ tuần tự cập nhật hàng hóa 45
Hình 2.22: Biểu đồ tuần tự thêm mới khách hàng 45
Hình 2.23: Biểu đồn tuần tự cập nhật khách hàng 46
Hình 2.24: Biểu đồ tuần tự thêm mới nhà cung cấp 46
Hình 2.25: Biểu đồ tuần tự cập nhật nhà cung cấp 47
Hình 2.28: Biểu đồ tuần tự tìm kiếm 47
Hình 2.29: Biểu đồ tuần tự thống kê 48
Hình 3.2: Giao diện trang chủ 52
Trang 6Hình 3.5: Giao diện trang quản lý khách hàng 53
Hình 3.6: Giao diện trang thêm khách hàng 53
Hình 3.8: Giao diện trang nhà cung cấp 53
Hình 3.9: Giao diện trang chi tiết nhà cung cấp 54
Hình 3.13: Giao diện trang quản lý đơn hàng 54
Hình 3.14: Giao diện trang thêm mới đơn hàng 54
Hình 3.10: Giao diện trang quản lý hàng hóa 55
Hình 3.11: Giao diện trang thêm hàng hóa 55
Hình 3.12: Giao diện trang chi tiết hàng hóa 55
Hình 3.16: Danh sách phiếu nhập 56
Hình 3.17: Giao diện trang tạo phiếu nhập 56
Hình 3.17: Giao diện trang tồn kho 56
Trang 7Những doanh nghiệp lớn nhỏ không ngừng mọc lên Giới trẻ khởi nghiệp cũng cần có môi trường ,nắm bắt thông tin cần thiết để bắt kịp xu thế thị trường Để quản lý tốt cho công ty ,doanh nghiệp của mình không chỉ cần đội ngũ nhân viên có năng lực mà cần phải áp dụng những phần mềm tiên tiến ,những kỹ thuật mới vào trong việc quản lý công ty
Xuất phát từ những thực tế đó,em đã tìm hiểu và chọn đề tài :”Xây dựng, thiết kế phần mềm quản lý bán hàng cho công ty thực phẩm Hà Lan” nhằm đáp
ứng nhu cầu quản lý bán hàng cho các doanh nghiệp,công ty vừa và nhỏ
Trang 8CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 1.1 Giới thiệu
1.1.1 Tổng quan
PHP là chữ viết tắt của “Personal Home Page” do Rasmus Lerdorf tạo ra năm 1994 Vì tính hữu dụng của nó và khả năng phát triển, PHP bắt đầu được sử
dụng trong môi trường chuyên nghiệp và nó trở thành ”Hypertext Preprocessor”
Thực chất PHP là ngôn ngữ kịch bản nhúng trong HTML, nói một cách đơn giản đó là một trang HTML có nhúng mã PHP và nó có thể được đặt rải rác trong HTML
PHP là một ngôn ngữ lập trình được kết nối chặt chẽ với máy chủ, là một công nghệ phía máy chủ (Server-Side) và không phụ thuộc vào môi trường (cross-platform) Đây là hai yếu tố rất quan trọng, thứ nhất khi nói công nghệ phía máy chủ tức là nói đến mọi thứ trong PHP đều xảy ra trên máy chủ, thứ hai, chính
vì tính chất không phụ thuộc môi trường cho phép PHP chạy trên hầu hết trên các
hệ điều hành như Windows, Unixvà nhiều biến thể của nó Đặc biệt các mã kịch bản PHP viết trên máy chủ này sẽ làm việc bình thường trên máy chủ khác mà không cần phải chỉnh sửa hoặc chỉnh sửa rất ít
Khi một trang Web muốn được dùng ngôn ngữ PHP thì phải đáp ứng được tất cả các quá trình xử lý thông tin trong trang Web đó, sau đó đưa ra kết quả ngôn ngữ HTML
1.1.2 Hoạt động ngôn ngữ PHP
Vì PHP là ngôn ngữ của máy chủ nên mã lệnh của PHP sẽ tập trung trên máy chủ để phục vụ các trang Web theo yêu cầu của người dùng thông qua trình duyệt
Khi người dùng truy cập Website viết bằng PHP, máy chủ đọc mã lệnh PHP
và xử lí chúng theo các hướng dẫn được mã hóa Mã lệnh PHP yêu cầu máy chủ gửi một dữ liệu thích hợp (mã lệnh HTML) đến trình duyệt Web Trình duyệt xem nó như là một trang HTML têu chuẩn Như ta đã nói, PHP cũng chính là một trang HTML nhưng có nhúng mã PHP và có phần mở rộng là HTML Phần mở của PHP được đặt trong thẻ mở <?php và thẻ đóng ?> Khi trình duyệt truy cập vào một trang PHP, Server sẽ đọc nội dung file PHP lên và lọc ra các đoạn mã PHP và thực thi các đoạn mã đó, lấy kết quả nhận được của đoạn mã PHP thay thế vào chỗ ban đầu của
Trang 9chúng trong file PHP, cuối cùng Server trả về kết quả cuối cùng là một trang nội dung HTML về cho trình duyệt
1.1.3 Hệ quản trị CSDL MySQL
MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới
và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng Vì MySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên internet MySQL miễn phí hoàn toàn cho nên bạn có thể tải về MySQL
từ trang chủ Nó có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32 cho các hệ điều hành dòng Windows, Linux, Mac OS X, Unix, FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS,
MySQL là một trong những ví dụ rất cơ bản về Hệ Quản trị Cơ sở dữ liệu quan hệ sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL)
MySQL được sử dụng cho việc bổ trợ PHP, Perl, và nhiều ngôn ngữ khác, nó làm nơi lưu trữ những thông tin trên các trang web viết bằng PHP hay Perl,
Một số đặc điểm của MySQL:
- MySQL là một phần mềm quản trị CSDL dạng server-based (gần tương đương với SQL Server của Microsoft)
- MySQL quản lý dữ liệu thông qua các CSDL, mỗi CSDL có thể có nhiều bảng quan hệ chứa dữ liệu
- MySQL có cơ chế phân quyền người sử dụng riêng, mỗi người dùng có thể được quản lý một hoặc nhiều CSDL khác nhau, mỗi người dùng có một tên truy cập (user name) và mật khẩu tương ứng để truy xuất đến CSDL
- Khi ta truy vấn tới CSDL MySQL, ta phải cung cấp tên truy cập và mật khẩu của tài khoản có quyền sử dụng CSDL đó Nếu không, chúng ta sẽ không làm được gì cả giống như quyền chứng thực người dung trong SQL Server vậy
1.2 Tìm hiểu về CodeIgniter
1.2.1 Giới thiệu về CodeIgniter
CodeIgniter (CI) là một PHP Framework theo cấu trúc MVC được viết trên PHP4 và hỗ trợ cả PHP4 và PHP5 Nó là một tập hợp các thư viện viết sẵn trên PHP
Trang 10giúp chúng ta phát triển web bằng PHP nhanh hơn là cách viết lắp ghép thông thường.Phiên bản đầu tiên được phát hành ngày 28.02.2006, phiên bản hiện tại: 2.2.1 (phát hành ngày 1.2015) Ý tưởng xây dựng CodeIgniter được dựa trên Ruby
on Rails, một nền tảng ứng dụng web được viết bằng ngôn ngữ Ruby Hiện tại, CodeIgniter đang được phát triển bởi ExpressionEngine Development Team thuộc EllisLab, Inc
1.2.2 Những điểm nổi bật
Được thiết kế theo mô hình Model-View-Controller: Mô hình MVC giúp tách thành phần hiển thị giao diện (presentation) và xử lý (business logic) của một phần mềm thành những thành phần độc lập, từ đó giúp cho việc thiết kế, xử lý và bảo trì mã nguồn dễ dàng, đồng thời tăng khả năng mở rộng của phần mềm CodeIgniter vận dụng mô hình này trong thiết kế, giúp tách biệt các tập tin giao diện với các tập tin xử lý dữ liệu, nâng cao khả năng quản lý và dễ bảo trì
Nhỏ gọn: Gói cài đặt chỉ 404KB (không bao gồm phần User Guide) So với
các PHP framework khác như CakePHP (1.3MB), Symfony (5.08MB) hay Zend Framework (5.66MB)kích thước của CodeIgniter giúp giảm thiểu đ|ng kể không gian lưu trữ
Tốc độ nhanh: CodeIgniter được đánh giá là PHP framework có tốc độ
nhanh nhất hiện nay Bằng cơ chế lưu nội dung vào bộ đệm (cache), kiểm tra bộ đệm trước khi tiến hành thực hiện yêu cầu, CodeIgniter giảm số lần truy cập và xử
lý dữ liệu, từ đó tối ưu hóa tốc độ tải trang
Miễn phí: CodeIgniter được phát hành dưới giấy phép Apache/BSD mở
rộng, cho phép người dùng tự do thay đổi, phát triển và phân phối mã nguồn
Hỗ trợ Search Engine Optimization: Cấu trúc URL của CodeIgniter rất thân
thiện với các robot tìm kiếm
Hệ thống thư viện phong phú: CodeIgniter cung cấp các thư viện phục vụ
cho những tác vụ thường gặp nhất trong lập trình web, chẳng hạn như truy cập cơ
sở dữ liệu, gửi email, kiểm tra dữ liệu, quản lý session, xử lý ảnhđến những chức năng nâng cao như XML-RPC, mã hóa, bảo mật
Bảo mật hệ thống: Cơ chế kiểm tra dữ liệu chặt chẽ, ngăn ngừa XSS và SQL
Injection của CodeIgniter giúp giảm thiểu các nguy cơ bảo mật cho hệ thống
Trang 111.2.3 Cài đặt
Yêu cầu hệ thống: CodeIgniter có thể hoạt động trên nhiều hệ điều hành và
server, yêu cầu có cài đặt PHP phiên bản 4.x hoặc cao hơn; hệ quản trị cơ sở dữ liệu: MySQL (4.1+), MySQLi, Mircrosoft SQL Server, Postgres, Oracle, SQLite, và ODBC
3 Nếu ứng dụng có tương tác với cơ sở dữ liệu, thiết lập các giá trị cần thiết trong tập tin application/config/database.php
4 Upload tất cả thư mục và tập tin của CodeIgniter lên server
Để nâng cao tính bảo mật hệ thống, người dùng có thể đổi tên thư mục system của CodeIgniter Sau khi đổi tên, người dùng phải thay đổi giá trị biến
$system_folder trong tập tin index.php
1.2.4 Mô hình Model-View-Controller trong CodeIgniter
Model-View-Control (MVC) là một kiến trúc phần mềm, hiện đang được xem là một mẫu thiết kế trong công nghệ phần mềm Mô hình MVC tách biệt phần
xử lý dữ liệu ra khỏi phần giao diện, cho phép phát triển, kiểm tra và bảo trì các thành phần một cách độc lập
Trang 12Hình 1.1: Minh họa mô hình MVC
Trong đó:
-Model thể hiện các cấu trúc dữ liệu Các lớp thuộc thành phần Model thường thực hiện các tác vụ như truy vấn, thêm, xóa, cập nhật dữ liệu Khi dữ liệu trong Model thay đổi, thành phần View sẽ được cập nhật lại
-View là thành phần thể hiện dữ liệu trong Model thành các giao diện tương tác với người sử dụng Một Model có thể có nhiều View tùy thuộc vào các mục đích khác nhau
-Controller đóng vai trò trung gian giữa Model và View Thông tin người dùng từ View được gửi cho Controller xử lý, sau đó Controller tương tác với Model để lấy dữ liệu được yêu cầu, sau cùng Controller trả dữ liệu này về cho View
Mô hình MVC thường được sử dụng trong các ứng dụng web, vì thành phần View (mã HTML/XHTML) được sinh ra từ các ngôn ngữ lập trình web Thành phần Controller sẽ nhận các dữ liệu GET/POST, xử lý những dữ liệu này, sau đó chuyển sang Model xử lý
Model sẽ trả dữ liệu về phía Controller, sau đó Controller sinh mã HTML/XHTML để thể hiện trên View
Trang 131.2.5 Cấu trúc CodeIgniter
Hình 1.2: Cấu trúc CodeIgniter
-Tập tin index.php được xem như controller đầu vào, tiếp nhận các yêu cầu
từ phía client và chuyển các yêu cầu này cho hệ thống xử lý
-Thư mục system bao gồm phần lõi của CodeIgniter Chúng bao gồm các thư viện xây dựng sẵn, các tập tin ngôn ngữ, ghi chú về hệ thống Trong số đó, các thư mục sau khá quan trọng:
-Thư mục application: Dành cho lập trình viên, các tập tin được lập trình cho ứng dụng sẽ lưu trong thư mục này
Thư mục config: Chứa các tập tin cấu hình hệ thống
Thư mục controllers: chứa các lớp controller
Thư mục errors: chứa các tập tin lỗi
Thư mục helpers: chứa các hàm tiện ích do người dùng định nghĩa
Thư mục hooks: chứa các tập tin để mở rộng mã nguồn CodeIgniter
Thư mục language: chứa các tập tin ngôn ngữ
Thư mục libraries: chứa các thư viện cho người dùng dùng định nghĩa
Thư mục models: chứa các lớp model
Thư mục views: chứa các lớp view
Ta cũng có thể đổi tên của thư mục application thành tên tùy ý Sau khi đổi tên, cần thiết lập tên mới cho biến $application_folder trong tập tin index.php Ngoài ra, ta cũng có thể tạo nhiều ứng dụng trong cùng một bộ cài đặt CodeIgniter bằng cách tạo ra các thư mục con bên trong system/application Các thư mục này có cùng cấu trúc giống như thư mục application gốc
Trang 141.2.6 CodeIgniter URL
Theo mặc định, cấu trúc URL của CodeIgniter được thiết kế dựa vào các segment thay cho kiểu query truyền thống Cách tiếp cận này giúp URL trở nên ngắn gọn, có ý nghĩa, dễ ghi nhớ và thân thiện với các bộ máy tìm kiếm Một URL trong CodeIgniter có dạng:
domain.com/index.php/controller/method/param/
Trong đó:
Segment controller là tên của lớp controller được gọi
Segment method là tên của phương thức trong lớp controller ở trên
Segment param là các đối số của phương thức đó
Như vậy, URI domain.com/index.php/product/view/1 sẽ mang ý nghĩa: Gọi đến phương thức view() thuộc lớp Product với đối số truyền vào bằng 1
Định tuyến URI (URI Routing)
Trong thực tế, URI domain.com/index.php/product/view/1 lại không thân thiện với các bộ máy tìm kiếm bằng URI
domain.com/index.php/product/view/appple-ipad-1 CodeIgniter cho phép lập trình viên có thể thay đổi cơ chế xử lý URL mặc định thông qua chức năng Định hướng URI bằng cách thiết lập các quy luật trong tập tin application/config/routes.php Tập tin này chứa mảng $route, với khóa là URI mới và giá trị l{ URI cũ Các quy luật được đọc theo thứ tự từ trên xuống, quy luật trước có độ ưu tiên cao hơn quy luật sau CodeIgniter cho phép sử dụng các ký tự đại diện (wildcard) để thay thế CodeIgniter đã quy định sẵn hai ký tự đại diện:
:num tương ứng với các giá trị số
:any tương ứng với bất kỳ giá trị nào
Trang 15Ta cũng có thể sử dụng biểu thức chính quy (Regular Expression) để thiết lập các quy luật Chẳng hạn:
$route['product/([a-z]+)/(\d+)'] = "$1/id_$2";
Thêm hậu tố vào URL
Các bộ máy tìm kiếm có xu hướng thân thiện hơn với các tập tin HTML Bằng cách thay đổi giá trị biến $config['url_suffix'] trong tập tin system/application/config/config.php, ta có thể thêm hậu tố HTML hay bất cứ hậu
tố nào khác vào cho URL
1.3 Tổng quan ngôn ngữ UML
1.3.1 Giới thiệu về UML
UML là ngôn ngữ chuẩn để viết kế hoạch chi tiết phần mềm Nó phù hợp cho việc mô hình hóa các hệ thống như hệ thông tin doanh nghiệp, các ứng dụng phân tán trên nền Web, hệ thông nhúng thời gian thực… Các khung nhìn của ngôn ngữ được quan sát từ góc độ phát triển và triển khai hệ thống, nó không khó hiểu và
dễ sử dụng UML là ngôn ngữ mô hình được cả con người và máy sử dụng Nhớ lại rằng phương pháp là cách cấu trúc rõ ràng suy nghĩ và hành động của ai đó Phương pháp cho người sử dụng biết làm cái gì, làm như thế nào, khi nào làm việc đó và tại sao lại làm như vậy Phương pháp chứa mô hình và các mô hình này đươc sử dụng
để mô tả cái gì đó Sự khác nhau chủ yếu của phương pháp và ngôn ngữ mô hình hóa là ngôn ngữ mô hình hóa thiếu tiến trình cho biết làm cái gì, làm như thế nào, khi nào làm việc đó và tại sao lại làm nhu vậy Như mọi ngôn ngữ mô hình hóa khác, UML có ký pháp (các biểu tượng sử dụng trong mô hình) và tập các luật sử
dụng nó Các luật bao gồm cú pháp, ngữ nghĩa và pragmatic (luật hình thành câu có
nghĩa)
Cần chú ý rằng ngay cả khi nắm chắc ngôn ngữ UML, không có gì đảm bảo
sẽ có mô hình tốt Tương tự nhà văn viết tiểu thuyết bằng ngôn ngữ tự nhiên, ngôn ngữ chỉ là công cụ, còn tiểu thuyết có hay hay không là phục thuộc hoàn toàn vào nhà văn
Để sử dụng UML có hiệu quả, đòi hỏi phải hiểu được ba vấn đề chính sau [BRJ99]
Các phần tử cơ bản của mô hình UML
Trang 16Các qui định liên kết các phần tử mô hình
Một số cơ chế chung áp dụng cho ngôn ngữ này
UML là ngôn ngữ và nó chỉ là một phần của tiến trình phát triển phần mềm,
độc lập với tiến trình Tuy nhiên UML rất phù hợp với các tiến trình hướng trường hợp sử dụng (Use case – UC), lấy kiến trúc làm trung tâm, tương tác tăng dần
1.3.2 UML là ngôn ngữ để hiển thị
Với nhiều lập trình viên, không có khoảng cách từ ý tưởng đến cài đặt mã trình Họ suy nghĩ vấn đề và viết ngay mã trình cho nó Thực tế là có thể trực tiếp viết mã trình cho một số việc, trực tiếp mô tả thuật toán và biểu thức bằng văn bản Tuy nhiên, việc giao tiếp giữa mô hình khái niệm với những cái khác trong vòng đời phát triển phần mềm sẽ khó khăn khi mọi người không sử dụng chung một ngôn ngữ cho dự án Nếu dự án hay tổ chức nào đó đưa ra ngôn ngữ riêng của họ thì người mới tham gia dự án sẽ gặp rất nhiều khó khăn Hơn nữa, một số vấn đề của hệ thống phần mềm sẽ được hiểu rõ ràng hơn thông qua mô hình thay cho ngôn ngữ lập trình văn bản Thí dụ, có thể suy luận ra ý nghĩa phân cấp lớp nhưng không thể hiểu thấu đáo nếu bắt đầu trực tiếp bằng mã trình của lớp trong phân cấp Tương tự,
ta không thể hiểu rõ hệ thống trên nền Web nếu không có mô hình UML giúp xây dựng mô hình để dễ dàng giao tiếp Một số công việc phù hợp với mô hình hóa băng văn bản, một số công việc khác lại phù hợp hơn với mô hình hóa bằng đồ họa UML là ngôn ngữ đồ họa Với nhiều hệ thống, mô hình trong ngôn ngữ đồ họa dễ hiểu hơn so với ngôn ngữ lập trình Sau mỗi biểu tượng đồ họa của ngôn ngữ UML
là ngữ nghĩa Vậy, khi xây dựng mô hình trong UML thì người phát triển khác hay các công cụ hỗ trợ mô hình hóa có thể hiểu mô hình một cách rõ ràng
1.3.3 UML là ngôn ngữ đặc tả
Đặc tả là mô tả rõ ràng những điểm mấu chốt của vấn đề UML cho phép mô
tả mô hình chính xác, không nhập nhằng và hoàn thiện UML hướng tới đặc tả thiết
kế, phân tích và quyết dịnh cái đặt trong quá trình phát triển và triển khai hệ thống phần mềm
1.3.4 UML là ngôn ngữ để xậy dựng
UML là không phải là ngôn ngữ lập trình trực quan, nhưng mô hình của nó
có thể kết nối trực tiếp tới các ngôn ngữ lập trình khác nhau Có nghĩa rằng có thể
Trang 17ánh xạ mô hình trong UML tới các ngôn ngữ lập trình khác nhau như Java, C++ hay các bảng CSDL quan hệ, CSDL hướng đối tượng Ánh xạ này cho khả năng biến đổi thuận từ mô hình UML sang ngôn ngữ lập trình Đồng thời, cho khả năng biến đổi ngược lại từ cài đặt về mô hình UML; có nghĩa rằng nó cho khả năng làm việc với văn bản hay đồ họa một cách nhất quán
1.3.5 UML là ngôn ngữ tài liệu
UML hướng tới làm tài liệu kiến trúc hệ thống và các chi tiết của nó UML cho khả năng biểu diễn yêu cầu, thử nghiệm, mô hình hóa các hoạt động lập kế hoạch và quản lý sản phẩm
UML cho biết giới hạn của hệ thống và các chức năng chính của nó thông qua UC và tác nhân
Trong UML, các UC được mô tả bằng biểu đồ logic
Biểu diễn cấu trúc tĩnh của hệ thống nhờ biểu đồ lớp
Mô hình hóa các hành vi đối tượng bằng biểu đồ chuyển trạng thái
Phản ảnh kiến trúc cài đặt vật lý bằng biểu đồ thành phần và biểu đồ triển khai
Mở rộng các chức năng bằng stereotypes
Trang 18CHƯƠNG 2 KHẢO SÁT, PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 2.1 Khảo sát hệ thống
2.1.1 Giới thiệu
Công ty TNHH thực phẩm Hà Lan được thành lập ngày 25/1/2017 tại Ba Hàng, Phổ Yên ,Thái Nguyên -là một trong số những công ty chuyên cung cấp các loại thực phẩm sạch ,an toàn đã qua kiểm định chất lượng
Khởi nguồn từ tư duy thực phẩm sạch, từ một cửa hàng chuyên cung cấp thực phẩm nhỏ lẻ cho người tiêu dùng sau khi đạt được sự uy tín nhất định từ người tiêu dùng Cửa hàng đã có những đơn hàng lớn từ một số doanh nghiệp tư nhân Thương hiệu không ngừng được khẳng định trên thị trường Vào đầu năm 2017, cửa hàng đã phát triển lên thành lập công ty TNHH thực phẩm Hà Lan Sau khi thành lập đã được sự ủng hộ của rất nhiều khách hàng lớn đến từ các công ty, doanh nghiệp trên Thái Nguyên
Thực phẩm Hà Lan có hệ thống nông sản sạch với nông trại có quy mô hàng ngàn ha.Với hệ thống chăm sóc ,chăn nuôi áp dụng công nghệ cao luôn mang đến những sản phẩm tốt nhất cho người tiêu dùng Đặc biệt những khách hàng lớn có thể đến và kiểm định chất lượng nguồn thực phẩm sạch do Hà Lan tự cung cấp từ nông trại
2.1.2 Tình trạng kinh doanh của công ty
Hiện nay , công ty đã đạt được những thành tựu lớn , đã đạt được rất nhiều đơn hàng từ các doanh nghiệp Ngoài nguồn thực phẩm tự cấp ,công ty cũng nhập các nguồn thực phẩm phong phú từ nhiều nhà cung cấp uy tín khác.Việc quản lý các đơn hàng , mặt hàng cũng như các nhân viên gặp không ít khó khăn Việc quản lý trên biểu mẫu, sổ sách, việc lưu lại các hồ sơ được lặp đi lặp lại và kiểm tra qua nhiều khâu sẽ tốn thời gian và nhân lực, nhưng cũng khó tránh khỏi sai sót dữ liệu hoặc không hoàn toàn chính xác Nếu có sai xót thì việc tìm kiếm dữ liệu để khắc phục cũng sẽ rất khó khăn.Công việc hàng ngày của công ty thông qua nhiều giai đoạn, khối lượng công việc lớn xảy ra liên tục, đặc biệt là công việc nhập và xuất hàng hóa Dữ liệu luôn biến động và đòi hỏi tính chính xác cao
Vì vậy, việc áp dụng công nghệ thông tin vào thay thế và nâng cấp hệ thống quản lý hàng của công ty được đặt lên hàng đầu Đưa máy tính vào xử lý để hạn chế
Trang 19phương pháp xử lý bằng tay,đồng thời nó có thể giúp việc xử lý chính xác và nhanh gọn
Hiện nay việc đầu tư cơ sở vật chất cho hệ thống thông tin quản lý kinh doanh không còn là vấn đề khó khăn hàng đầu nữa, mà vấn đề đặt ra là tính chính xác, nhanh,
an toàn và độ bảo mật cũng như khả năng quản lý toàn diện để tăng tính cạnh tranh và giảm bớt thời gian kinh doanh đang là vấn đề mới cho mọi ngành quản lý
Qua quá trình khảo sát và tìm hiểu,tôi đã nắm bắt được hiện trạng công ty như vậy Với một công ty thực phẩm sạch có tiềm năng phát triển như vậy cần có một hệ thống quản lý bán hàng đạt chuẩn đáp ứng nhu cầu phát triển của công ty
2.1.3.Một số biểu mẫu
a Nhập kho
Ngoài một số sản phẩm công ty tự cấp,để nhập các mặt hàng, công ty cần
có một bộ phận nghiên cứu thị trường, nắm bắt được chất lượng và giá cả các loại thực phẩm để điều hòa lượng cung cầu phù hợp giữa nhà cung cấp và khách hàng
Nguồn hàng được nhập thông qua đơn đặt hàng, đó là hợp đồng mua bán giữa công ty với nhà cung cấp
Các mặt hàng nhập về sẽ được kiểm tra xem có đúng số lượng, chất lượng rồi phân loại từng mặt hàng cho nhập vào kho Các báo cáo liên quan đến việc nhập hàng hóa được thể hiện qua phiếu nhập sau:
Trang 20Công ty thực phẩm Hà Lan
Địa chỉ: 129 Ba Hàng,Phổ Yên, Thái Nguyên
Điện thoại: 0280365486
PHIẾU NHẬP KHO AH0035
STT Mã hàng Tên hàng hóa Đơn giá SL Thành tiền
Phiếu nhập kho Cho biết các thông tin liên quan đến phiếu nhập kho: thời gian nhập, nhà cung cấp, các loại hàng hóa nhập nhập…
b.Xuất kho
Hàng hóa xuất kho sẽ căn cứ theo mức độ nhập kho và đơn đặt hàng của từng loại hàng Có những mặt hàng đang gây sốt, đang thịnh hành được người dùng đặt mua nhiều trong khi nhập lại khó khăn thì bộ phận xuất khó phải có những báo cáo, thống kê kịp thời để công ty có những giải pháp kịp thời đáp ứng như cầu về những hàng hóa đó.Các báo cáo liên quan đến việc xuất hàng hóa thể hiện qua phiếu xuất hàng hóa:
Trang 21Thu ngân:Lý diệu Thảo
Người nhập: Nguyễn Hà Anh
STT Mã hàng Tên hàng hóa Đơn giá SL Thành tiền
Phiếu xuất hàng hóa cho biết các thông tin đến nghiệp vụ xuất kho, thời gian xuất kho và các loại hàng hóa được xuất kho
c.Thẻ kho
Thẻ kho để biết thông tin về các loại hàng hóa nhập vào kho, số lượng ,ngày nhập Xem báo cáo mức độ tồn kho,hàng bán nhanh chậm
Trang 22Công ty thực phẩm Hà Lan
Địa chỉ: 129 Ba Hàng,Phổ Yên, Thái Nguyên
Điện thoại: 0280365486
THẺ KHO Thẻ lập ngày: 15/10/2014 15:35:01
Tên hàng hóa: Ba rọi heo rút sườn
STT Chứng từ Ngày Diễn Giải Nhập Xuất Tồn
Trang 243 Bộ phận quản lý Quản lý Hàng
hóa
Quản lý thêm mới, tìm kiếm, cập nhật các mặt hàng kinh doanh của doanh nghiệp
4 Bộ phận quản lý Quản lý Đơn
Trang 252.2.4 Usecase cho từng chức năng
Usecase quản lý hệ thống
Hình 2.2: Usecase quản lý hệ thống Usecase quản lý đơn hàng
Hình 2.3: Usecase quản lý đơn hàng
Trang 26Usecase quản lý hàng hóa
Hình 2.4: Usecase quản lý hàng hóa Usecase quản lý nhà cung cấp
Hình 2.5: Usecase quản lý nhà cung cấp
Trang 27Usecase quản lý khách hàng
Hình 2.6: Usecase quản lý khách hàng Usecase quản lý nhập hàng
Hình 2.7: Usecase quản lý nhập hàng
Trang 28Usecase quản lý tồn kho
Hình 2.8: Usecase tồn kho
Trang 29Điều kiện trước Người dùng phải có thông tin tài khoản đăng nhập
4 Người dùng được chuyển sang giao diện mặc định theo vài trò của mình đã xác thực hệ thống
5 Kết thúc
Luồng rẽ nhánh Trường hợp người dùng quên mật khẩu thì chuyển sang
Use Case quên mật khẩu
Điều kiện sau
Nếu Use Case thực hiện thành công Người dùng được quyền khai thác thông tin dịch vụ trong hệ thống theo vai trò và quyền hạn cho phép
Giao diện Gồm 2 nút Textbox nhập tài khoản và mật khẩu, 1 nút
đăng nhập, 1 nút quên mật khẩu