Tải bản đầy đủ (.pdf) (58 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (13.61 MB, 58 trang )

LỜ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!

1


LỜ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

2


MỤ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
3


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


4


DANH 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
5


Hì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

6


LỜI MỞ ĐẦU
Trong thời đại ngày nay, công nghệ thông tin đã trở nên phổ biến và đóng vai
trò quan trọng trong nhiều lĩnh vực của cuộc sống, kinh tế, xã hội.
Sự phát triển và phổ rộng của internet như đầu nối giúp xã hội trở văn minh,
mọi thông tin liên lạc trở nên dễ dàng hơn. Ứng dụng công nghệ thông tin vào phát
triển kinh tế xã hội ngày càng rộng rãi.
Nhữ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ỏ.

7


CHƯƠ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
8


chú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
9



giú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.
10


1.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.
Hướng dẫn cài đặt:
1. Download bộ nguồn CodeIgniter tại website phiên
bản hiện tại: 2.2.1.
2. Mở tập tin application/config/config.php bằng một chương trình soạn thảo,
thay đổi giá trị $config['base_url']. Đây là đường dẫn tuyệt đối đến thư mục
CodeIgniter trên server.
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.

11



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

12


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

13


1.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.
Ví dụ:
$route['product/view/(:num)'] = "product/view/$1";
Ý nghĩa: Gọi đến phương thức view() trong lớp Product với tham số truyền
vào là giá trị kiểu số.
$route['product/:any'] = "product/find_product";
Ý nghĩa: Tất cả các yêu cầu bắt đầu bằng product sẽ gọi đến hàm
find_product() của lớp Product.
14


Ta 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
15


Cá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ể
16


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

17


CHƯƠ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ế
18


phươ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:

19


Cô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
Nhà cung cấp: Bình Minh
Ngày nhập: 15/01/2017 07:30:12

STT

Mã hàng

Tên hàng hóa

Đơn giá


SL

Thành tiền

Người nhập: Nguyễn Anh Tuấn
Tổng tiền hàng:

0

Tiền thuế:

0

Tổng thanh toán:

0

Đã thanh toán:

0

Còn nợ:

0

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:
20


Cô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 XUẤT HÀNG HÓA
AH0032
Khách hàng: Doanh nghiệp Quang An
Ngày nhập: 15/02/2017 07:30:12
Thu ngân:Lý diệu Thảo

STT

Mã hàng

Tên hàng hóa

Đơn giá

SL

Thành tiền

Người nhập: Nguyễn Hà Anh
Tổng tiền hàng:


0

Phí chuyển:

0

Tổng thanh toán:

0

Đã thanh toán:

0

Còn nợ:

0

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.

21


Cô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

Thẻ kho cho biết thông tin về tình trạng của hàng trong kho và là căn cứ để
theo dõi tình trạng của hàng hóa trong kho.
2.2. Phân tích thiết kế hệ thống
2.2.1. Tác nhân của hệ thống

Hình 2.1: Tác nhân hệ thống
22


2.2.2. Usecase tổng quan

Hình 2.1: Usecase tổng quan
2.2.3. Danh sách các usecase
STT
1


Tên tác nhân
Giám đốc

Tên Use-case

Ý nghĩa/Ghi chú

Quản lý hệ

Quản lý người dùng đăng nhập hệ

thống

thống.
Cập nhật thông tin tài khoản của
người dùng.
Phân quyền người dùng theo từng
nhóm cụ thể.

2

Bộ phận quản lý

Quản lý khách

Quản lý thông tin khách hàng là cá

hàng

nhân viên, công ty hay các đại lý.

Cho phép người quản lý có thể thêm
mới, cập nhật khách hàng.
23


3

Bộ phận quản lý

Quản lý Hàng

Quản lý thêm mới, tìm kiếm, cập

hóa

nhật các mặt hàng kinh doanh của
doanh nghiệp.

4

5

6

Bộ phận quản lý

Bộ phận quản lý

Bộ phận quản lý


Quản lý Đơn

Quản lý thêm mới, tìm kiếm, cập

hàng.

nhật đơn hàng của các khách hàng.

Quản lý Nhập

Lưu dữ thông tin những lần nhập

hàng

hàng vào kho.

Quản lý Tồn

Quản lý báo cáo về hiện trạng trong

kho

kho, những mặt hàng đang tồn,
những mặt hàng bán chạy, mặt hàng
đã hết.

7

8


Giám đốc,bộ

Tìm kiếm

Cho phép tra cứu thông tin, tìm kiếm

phận quản lý,

các loại hàng hóa ,khách hàng,nhà

nhân viên

cung cấp …một cách nhanh chóng.

Bộ phận quản lý,

Báo cáo thống

Cho phép kết xuất các báo cáo nhằm

nhân viên



báo cáo cho Ban giám đốc hay quản
trị viên.

24



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


×