Phương pháp nghiên cứu Để nghiên cứu quy trình quản lý bán hàng, quản lý công nợ và xây dựng phần mềm quản lý bán hàng phù hợp với yêu cầu thực tế ở đại lý xe máy, tác giả đã sử dụng các
Trang 1MỤC LỤC
Trang
MỤC LỤC i
DANH MỤC HÌNH ẢNH v
DANH MỤC BẢNG BIỂU vii
1 Lý do chọn đề tài 1
2 Mục tiêu nghiên cứu 2
3 Đối tượng và phạm vi nghiên cứu 2
4 Phương pháp nghiên cứu 3
5 Dự kiến kết quả đạt được của đề tài 3
6 Kết cấu của đề tài 4
NỘI DUNG NGHIÊN CỨU 5
CHƯƠNG 1: CƠ SỞ LÝ LUẬN VỀ PHÁT TRIỂN HỆ THỐNG THÔNG TIN QUẢN LÝ 5
1.1 Tổng quan về hệ thống thông tin quản lý 5
1.1.1 Khái niệm hệ thống thông tin quản lý 5
1.1.2 Các loại thông tin quản lý 5
1.1.3 Cấu trúc hệ thống thông tin quản lý 6
1.1.4 Quy trình phát triển hệ thống thông tin quản lý 6
1.1.4.1 Khái niệm về quy trình phát triển hệ thống thông tin quản lý 6
1.1.4.2 Giới thiệu về mô hình thác nước 7
1.2 Ngôn ngữ lập trình C# 9
1.3 Tổng quan về nền tảng lập trình NET Framework 11
1.3.1 Giới thiệu về NET Framework 11
1.3.2 Các thành phần của NET Framework 12
1.3.3 Nền tảng lập trình NET Framework 4.5 12
1.3.3.1 Tổng quan về nền tảng NET Framework 4.5 12
1.3.3.2 Các tính năng của NET Framework 4.5 14
Đại học Kinh tế Huế
Trang 21.4 Tổng quan về kiến trúc ADO NET 15
1.5 Hệ quản trị cơ sở dữ liệu SQL Server 16
1.5.1 Ngôn ngữ truy vấn có cấu trúc (SQL - Structure Query Language) 16
1.5.1.1 Khái niệm về SQL 16
1.5.1.2 Đặc điểm của SQL 16
1.5.1.3 Vai trò của SQL 16
1.5.2 Microsoft SQL Server 17
1.5.2.1 Tổng quan về Microsoft SQL Server 17
1.5.2.2 Thành phần của Microsoft SQL Server 17
1.6 Các phương pháp nghiên cứu, giải pháp công nghệ được ứng dụng để xây dựng phần mềm 18
1.6.1 Phương pháp lập trình hướng chức năng (Procedure – Oriented Programming) 18
1.6.1.1 Giới thiệu 18
1.6.1.2 Các khái niệm 19
1.6.2 Sử dụng mô hình 3 lớp trong thiết kế 21
CHƯƠNG 2: BÀI TOÁN QUẢN LÝ BÁN HÀNG TẠI ĐẠI LÝ XE MÁY 24
2.1 Mô tả bài toán 24
2.2 Xác định yêu cầu 26
CHƯƠNG 3: XÂY DỰNG PHẦN MỀM QUẢN LÝ BÁN HÀNG TẠI ĐẠI LÝ XE MÁY 27
3.1 Phân tích hệ thống Quản lý bán hàng tại đại lý xe máy 27
3.1.1 Phân tích yêu cầu 27
3.1.1.1 Quản lý hệ thống 27
3.1.1.2 Quản lý danh mục 27
3.1.1.3 Quản lý bán hàng 27
3.1.1.4 Quản lý nhập mua 27
3.1.1.5 Quản lý công nợ - tồn kho đầu kỳ 28
3.1.1.6 Thống kê báo cáo 28
3.1.2 Sơ đồ chức năng (BFD – Business Function Diagram) 28
Đại học Kinh tế Huế
Trang 33.1.3 Sơ đồ ngữ cảnh (Context Diagram) 30
3.1.4 Sơ đồ luồng dữ liệu (DFD – Data Flow Diagram) 31
3.1.4.1 Sơ đồ phân rã mức 0 32
3.1.4.2 Sơ đồ phân rã mức 1 cho chức năng 1.0 33
3.1.4.3 Sơ đồ phân rã mức 1 cho chức năng 2.0 33
3.1.4.4 Sơ đồ phân rã mức 1 cho chức năng 3.0 34
3.1.4.5 Sơ đồ phân rã mức 1 cho chức năng 4.0 34
3.1.4.6 Sơ đồ phân rã mức 1 cho chức năng 5.0 34
3.1.4.7 Sơ đồ phân rã mức 1 cho chức năng 6.0 35
3.1.5 Sơ đồ luồng thông tin (IFD – Information Flow Diagram) 35
3.1.5.1 Sơ đồ luồng thông tin nhập mua 35
3.1.5.2 Sơ đồ luồng thông tin bán hàng 36
3.2 Thiết kế 36
3.2.1 Thiết kế cơ sở dữ liệu 36
3.2.1.1 Xác định các thực thể và các thuộc tính của thực thể 36
3.2.1.2 Sơ đồ thực thể mối quan hệ (ERD – Entity Relationship Diagram) 39
3.2.1.3 Chuyển các mối quan hệ thành lược đồ quan hệ 39
3.2.1.4 Chuẩn hóa cơ sở dữ liệu 41
3.2.2 Thiết kế thuật toán 47
3.2.2.1 Kí hiệu sử dụng 47
3.2.2.2 Một số giải thuật trong chương trình 47
3.2.3 Thiết kế giao diện 52
3.3 Xây dựng và thử nghiệm 54
PHẦN KẾT LUẬN 55
TÀI LIỆU THAM KHẢO 57
PHỤ LỤC 58
Đại học Kinh tế Huế
Trang 4DANH MỤC CHỮ VIẾT TẮT
STT Ký hiệu
Trang 5DANH MỤC HÌNH ẢNH
Trang
Hình 1.1 Mô hình thác nước 7
Hình 1.2 Kiến trúc của NET Framework 11
Hình 1.3 Mô hình NET Framework 4.5 13
Hình 1.4 Kiến trúc mô hình 3 lớp 21
Hình 3.1 Sơ đồ chức năng Quản lý bán hàng tại đại lý xe máy 28
Hình 3.2 Sơ đồ chức năng Quản lý hệ thống 29
Hình 3.3 Sơ đồ chức năng Quản lý danh mục 29
Hình 3.4 Sơ đồ chức năng Quản lý Bán hàng 29
Hình 3.5 Sơ đồ chức năng Quản lý Kho 30
Hình 3.6 Sơ đồ chức năng Thống kê 30
Hình 3.7 Sơ đồ ngữ cảnh hệ thống quản lý bán hàng tại đại lý xe máy 31
Hình 3.8 Sơ đồ luồng dữ liệu mức 0 32
Hình 3.9 Sơ đồ luồng dữ liệu mức 1 cho chức năng 1.0 33
Hình 3.10 Sơ đồ luồng dữ liệu mức 1 cho chức năng 2.0 33
Hình 3.11 Sơ đồ luồng dữ liệu mức 1 cho chức năng 3.0 34
Hình 3.12 Sơ đồ luồng dữ liệu mức 1 cho chức năng 4.0 34
Hình 3.13 Sơ đồ luồng dữ liệu mức 1 cho chức năng 5.0 34
Hình 3.14 Sơ đồ luồng dữ liệu mức 1 cho chức năng 6.0 35
Hình 3.15 Sơ đồ luồng thông tin nhập mua 35
Hình 3.16 Sơ đồ luồng thông tin bán hàng 36
Hình 3.17 Sơ đồ thực thể mối quan hệ 39
Hình 3.18 Giải thuật đăng nhập 47
Hình 3.19 Giải thuật cập nhật dữ liệu 48
Hình 3.20 Giải thuật xóa dữ liệu 49
Đại học Kinh tế Huế
Trang 6Hình 3.21 Giải thuật nhập kho 50
Hình 3.22 Giải thuật bán hàng 51
Hình 3.23 Giao diện trang chủ 52
Hình 3.24 Giao diện hóa đơn 52
Hình 3.25 Giao diện phiếu thu 53
Hình 3.26 Giao diện báo cáo tồn kho 53
Hình 3.27 Giao diện xây dựng phần mềm trên Visial Studio 2012 54
Hình 3.28 Giao diện quản lý dữ liệu trên SQL Server 2012 54
Đại học Kinh tế Huế
Trang 7DANH MỤC BẢNG BIỂU
Trang
Bảng 3.1 Cấu trúc dữ liệu bảng Chứng Từ (B00DmCt) 41
Bảng 3.2 Cấu trúc dữ liệu bảng Trạng Thái Chứng Từ (B00DocStatus) 41
Bảng 3.3 Cấu trúc dữ liệu bảng Người Dùng (B00UserList) 41
Bảng 3.4 Cấu trúc dữ liệu bảng Khách Hàng (B20Customer) 41
Bảng 3.5 Cấu trúc dữ liệu bảng Linh Kiện (B20Item) 42
Bảng 3.6 Cấu trúc dữ liệu bảng Định Mức Linh Kiện (B20ItemNorm) 42
Bảng 3.7 Cấu trúc dữ liệu bảng Kho (B20Warehouse) 42
Bảng 3.8 Cấu trúc dữ liệu bảng Đầu Phiếu (B30AccDoc) 43
Bảng 3.9 Cấu trúc dữ liệu bảng Phiếu Chi (B30AccDocCashPayment) 43
Bảng 3.10 Cấu trúc dữ liệu bảngPhiếu Thu (B30AccDocCashReceipt) 44
Bảng 3.11 Cấu trúc dữ liệu bảng Phiếu Xuất (B30AccDocInventory) 44
Bảng 3.12 Cấu trúc dữ liệu bảng Phiếu Nhập (B30AccDocPurchase) 44
Bảng 3.13 Cấu trúc dữ liệu bảng Hóa Đơn (B30AccDocSales) 45
Bảng 3.14 Cấu trúc dữ liệu bảng Bảng Giá (B30BizDoc) 45
Bảng 3.15 Cấu trúc dữ liệu bảng Chi Tiết Bảng Giá (B30BizDocPriceTableDealer) 46 Bảng 3.16 Cấu trúc dữ liệu bảng Công Nợ Đầu Kỳ (B30OpenBalance) 46
Bảng 3.17 Cấu trúc dữ liệu bảng Tồn Kho Đầu Kỳ (B30OpenInventory) 46
Bảng 3.18 Bảng kí hiệu sơ đồ thuật toán 47
Đại học Kinh tế Huế
Trang 8PHẦN MỞ ĐẦU
1 Lý do chọn đề tài
Những năm gần đây, ngành công nghệ thông tin đã phát triển một cách nhanh chóng và có nhiều bước tiến vượt bậc Tuy đi sau nhiều nước, nhưng ngành công nghệ thông tin ở nước ta có tốc độ khá nhanh và đang dần dần được ứng dụng rộng rãi trong nhiều lĩnh vực của nền kinh tế, góp phần thúc đẩy sự phát triển của xã hội
Một trong những lĩnh vực đang được ứng dụng tin học hóa rất phổ biến ở nước
ta là lĩnh vực hệ thống thông tin quản lý Tin học hóa trong quản lý đã giúp cho các nhà quản lý điều hành công việc một cách khoa học, chính xác và hiệu quả Tất cả các
cơ quan, công ty, tổ chức đều muốn tin học hóa vào các hoạt động quản lý của mình
Hiệu quả quản lý là một lĩnh vực được nhà quản lý quan tâm và điều này phụ thuộc rất nhiều vào hệ thống thông tin mà cụ thể là các chương trình quản lý dựa trên máy tính Nó giúp con người giải phóng sức lao động, thực hiện công việc một cách hiệu quả mà hình thức quản lý thủ công trên giấy trước đây không thể quản lý triệt để nên thường xuyên xảy ra nhầm lẫn, sai số, thất lạc số liệu gây mất thời gian, công sức
mà hiệu quả mang lại không cao
Quản lý bán hàng trong các doanh nghiệp là một công việc quan trọng, đòi hỏi
bộ phận quản lý phải thực hiện nhiều nghiệp vụ phức tạp Một doanh nghiệp muốn phát triển khả năng sản xuất để đáp ứng nhu cầu khách hàng một cách hiệu quả nhất thì không thể thiếu một hệ thống thông tin hỗ trợ thường xuyên và kịp thời Vì thế, việc tin học hóa công tác quản lý, khai thác và điều hành kinh doanh là một đòi hỏi ngày càng cấp thiết hơn bao giờ hết
Tại các cửa hàng xe máy, hiện nay vẫn đang tồn tại cơ chế quản lý rất thủ công
và chủ cửa hàng cũng như các nhân viên quản lý rất quan tâm đến vấn đề ứng dụng công nghệ tin học vào công tác quản lý nhằm giảm bớt sức lao động của con người, tiết kiệm thời gian, giúp cho công tác quản lý gọn nhẹ, đáp ứng nhanh chóng, kịp thời cho nhu cầu quản lý của mình, góp phần nâng cao hiệu quả kinh doanh của cửa hàng
Đại học Kinh tế Huế
Trang 9Chính vì những lí do trên, tác giả đã quyết định chọn đề tài: “Xây dựng phần mềm quản lý bán hàng tại đại lý xe máy dựa trên nền tảng Winform bằng ngôn ngữ C#” để làm đề tài cho khóa luận của mình
2 Mục tiêu nghiên cứu
* Mục tiêu tổng quát:
Trên cơ sở phân tích các nghiệp vụ quản lý bán hàng và quy trình quản lý công
nợ tại đại lý xe máy cũng như hiểu rõ quy trình xây dựng phần mềm, tác giả tiến hành xây dựng phần mềm Quản lý bán hàng tại đại lý xe máy
* Mục tiêu cụ thể:
- Nghiên cứu và nắm vững các quy trình bán hàng, quy trình quản lý thông tin
về tình hình công nợ phải trả của khách hàng đối với cửa hàng và của cửa hàng đối với
nhà cung cấp
- Nghiên cứu các công cụ, nền tảng lập trình được sử dụng để xây dựng hệ thống: ADO NET, C Sharp, MS SQL Server 2012
- Hiểu rõ quy trình xây dựng và phát triển hệ thống thông tin quản lý
- Xây dựng phần mềm Quản lý bán hàng tại đại lý xe máy
3 Đối tượng và phạm vi nghiên cứu
* Đối tượng nghiên cứu:
- Các quy trình quản lý bán hàng và quản lý công nợ tại đại lý xe máy
- Cơ chế, cách thức hoạt động của nghiệp vụ lưu trữ, quản lý bán hàng và quản
lý công nợ tại đại lý xe máy
- Các công cụ, nền tảng lập trình để xây dựng hệ thống: ADO NET, C Sharp,
- Thời gian: Từ ngày 19/01/2016 đến hết ngày 15/05/2016
Đại học Kinh tế Huế
Trang 104 Phương pháp nghiên cứu
Để nghiên cứu quy trình quản lý bán hàng, quản lý công nợ và xây dựng phần mềm quản lý bán hàng phù hợp với yêu cầu thực tế ở đại lý xe máy, tác giả đã sử dụng các phương pháp trong quá trình thực hiện đề tài:
- Phương pháp thu thập thông tin:
+ Phương pháp quan sát: trực tiếp quan sát hệ thống quản lý bán hàng và quản lý công nợ tại đại lý xe máy, để phân tích ưu nhược điểm, các quy trình cơ bản đối với hệ thống quản lý công nợ
+ Phương pháp thu thập tài liệu: chủ động tìm kiếm và nghiên cứu các tài liệu liên quan đến đề tài thực hiện, để từ đó nắm vững quy định về quản lý bán hàng
và quản lý công nợ giúp xây dựng phần mềm đạt yêu cầu
+ Phương pháp phỏng vấn: phỏng vấn về quá trình quản lý bán hàng và quản lý công nợ hiện tại tại cửa hàng, cũng như yêu cầu và mong muốn của nhân viên quản lý và chủ cửa hàng trong việc quản lý bán hàng và công nợ nhằm khắc phục và xây dựng phần mền đáp ứng được nhu cầu và nguyện vọng của người sử dụng
- Phương pháp mô hình hóa: sử dụng các mô hình, sơ đồ để mô tả lại các quy
trình, nghiệp vụ quản lý bán hàng và quản lý công nợ tại cửa hàng
- Phương pháp phát triển hệ thống thông tin: Dựa trên những thông tin thu được
để tiến hành phân tích, thiết kế phần mềm bao gồm những chức năng chính của phần mềm sẽ xây dựng thông qua quá trình mô hình hóa phần mềm, chuẩn hóa cơ sở dữ liệu
và mã hóa để đưa ra sản phẩm phần mềm phù hợp với yêu cầu
5 Dự kiến kết quả đạt được của đề tài
- Nắm vững quy trình quản lý bán hàng, quy trình quản lý công nợ của khách
hàng và đối với nhà cung cấp
- Nắm rõ các công cụ, nền tảng lập trình được sử dụng để xây dựng hệ thống
- Hiểu rõ quy trình xây dựng, phát triển hệ thống thông tin quản lý
- Xây dựng phần mềm hoàn chỉnh Quản lý bán hàng tại đại lý xe máy
Đại học Kinh tế Huế
Trang 116 Kết cấu của đề tài
Ngoài phần mở đầu và kết luận, nội dung của khóa luận được kết cấu thành 3 chương như sau:
Chương 1: Cơ sở lý luận về phát triển hệ thống thông tin quản lý
Chương 2: Bài toán quản lý bán hàng tại đại lý xe máy
Chương 3: Xây dựng phần mềm Quản lý bán hàng tại đại lý xe máy
Đại học Kinh tế Huế
Trang 12NỘI DUNG NGHIÊN CỨU CHƯƠNG 1: CƠ SỞ LÝ LUẬN VỀ PHÁT TRIỂN
HỆ THỐNG THÔNG TIN QUẢN LÝ 1.1 Tổng quan về hệ thống thông tin quản lý
1.1.1 Khái niệm hệ thống thông tin quản lý
của tổ chức Hệ thống bao gồm con người, thiết bị và quy trình thu thập, phân tích, đánh giá và phân phối những thông tin cần thiết, kịp thời, chính xác cho những người soạn
thảo các quyết định trong tổ chức
Hệ thống thông tin quản lý cũng là tên gọi của một chuyên ngành khoa học Ngành khoa học này thường được xem là một phân ngành của khoa học quản lý và quản trị kinh doanh Ngoài ra, do ngày nay việc xử lý dữ liệu thành thông tin và quản lý thông tin liên quan đến công nghệ thông tin, nó cũng được coi là một phân ngành trong toán
học, nghiên cứu việc tích hợp hệ thống máy tính vào mục đích tổ chức
1.1.2 Các loại thông tin quản lý
Thông tin quản lý là những dữ liệu được xử lý và sẵn sàng phục vụ công tác quản lý tổ chức Có 3 loại thông tin quản lý trong một tổ chức, đó là thông tin chiến lược, thông tin chiến thuật, và thông tin điều hành
* Thông tin chiến lược: Là thông tin sử dụng cho chính sách dài hạn của tổ chức, chủ yếu phục vụ cho các nhà quản lý cao cấp khi dự đoán tương lai
* Thông tin chiến thuật: Là thông tin sử dụng cho chính sách ngắn hạn, chủ yếu phục vụ cho các nhà quản lý phòng ban trong tổ chức
* Thông tin điều hành: Sử dụng cho công tác điều hành tổ chức hằng ngày và
chủ yếu phụ vụ cho người giám sát hoạt động tác nghiệp của tổ chức
Đại học Kinh tế Huế
Trang 131.1.3 Cấu trúc hệ thống thông tin quản lý
Một hệ thống thông tin quản lý được thiết kế cấu trúc tốt gồm bốn hệ thống con,
đó là các hệ thống ghi chép nội bộ, hệ thống tình báo, hệ thống nghiên cứu và hệ thống
hỗ trợ quyết định
* Hệ thống ghi chép nội bộ: Đảm bảo cung cấp những số liệu hiện thời, nhiều tổ
chức đã phát triển những hệ thống ghi chép nội bộ tiên tiến có sử dụng máy tính để có thể cung cấp thông tin nhanh và đầy đủ hơn
* Hệ thống tình báo: Cung cấp cho các nhà quản lý những thông tin hàng ngày,
tình hình đang diễn ra về những diễn biến của môi trường bên ngoài
* Hệ thống nghiên cứu thông tin: Thu thập những thông tin liên quan đến một
vấn đề cụ thể đặt ra trước tổ chức, đặc điểm của việc nghiên cứu thông tin tốt là có phương pháp khoa học, sử dụng nhiều phương pháp, xây dựng mô hình, lượng định tỷ
lệ chi phí/lợi ích của giá trị của thông tin
* Hệ thống hỗ trợ quyết định: Gồm các phương pháp thống kê và các mô hình
quyết định để hỗ trợ các nhà quản lý ban hành các quyết định đúng đắn hơn
1.1.4 Quy trình phát triển hệ thống thông tin quản lý
1.1.4.1 Khái niệm về quy trình phát triển hệ thống thông tin quản lý
Quy trình phát triển hệ thống là một tập hợp các hoạt động, phương pháp, thực
nghiệm, kết quả và các công cụ tự động hóa mà các nhân sự sử dụng để phát triển và cải thiện không ngừng hệ thống thông tin và phần mềm
Một quy trình phù hợp để phát triển hệ thống phải bảo đảm:
- Hiệu quả để cho phép nhà quản lý điều chuyển nguồn lực giữa các dự án
- Tài liệu nhất quán nhằm giảm chi phí thời gian sống để bảo trì hệ thống (bởi
các đội phát triển khác) về sau
- Chất lượng nhất quán xuyên suốt các dự án
Đại học Kinh tế Huế
Trang 141.1.4.2 Giới thiệu về mô hình thác nước
Để xây dựng phần mềm, tác giả lựa chọn áp dụng mô hình thác nước Mô hình thác nước (waterfall model) là một mô hình của quy trình phát triển phần mềm, trong
đó quy trình phát triển giống như một dòng chảy, với các pha được thực hiện theo trật
tự nghiêm ngặt và không có sự nhảy vượt
Hình 1.1 Mô hình thác nước
Nguồn: Mô hình thác nước (Waterfall model) - http://trantronglekhanh.wordpress.com
Mô hình thác nước có ưu điểm là: Dễ quản lý; Thời gian hoàn thành dự án thường được dự báo với độ chính xác hơn; Các tài liệu đầu ra của từng giai đoạn cũng được xây dựng đầy đủ và hệ thống hơn là: phân tích yêu cầu, thiết kế triển khai thực hiện, kiểm thử, liên kết và bảo trì Dựa vào mô hình thác nước trên ta sẽ có 6 bước để xây dựng 1 phần mềm:
Đại học Kinh tế Huế
Trang 15Bước 1: Khảo sát tìm hiểu yêu cầu
Mô tả trừu tượng các dịch vụ mà hệ thống được mong đợi phải cung cấp và các ràng buộc mà hệ thống phải tuân thủ khi vận hành Nó chỉ có các đặc tả phẩm hạnh bên ngoài của hệ thống mà không liên quan đến các đặc tính thiết kế Nó phải được viết sao cho người ta có thể hiểu được mà không cần một kiến thức chuyên môn đặc biệt nào
Bước 2: Phân tích các yêu cầu
Bước này là bước rất quan trọng vì nó là bước đầu tiên để hình thành nên 1 phần mềm Với sản phẩm phần mềm được xây dựng, việc hiểu đầy đủ các đặc điểm của nó là điều không dễ Quá trình xác định các chức năng và các ràng buộc của phần mềm gọi là tìm hiểu và xác định yêu cầu Để có được điều này thì cần phải trả lời câu hỏi "cái gì? - what?" chứ không phải là "như thế nào? - how?" Tìm hiểu, xác định và phân tích yêu cầu là bước hình thành bài toán, do vậy các yêu cầu của bài toán cần phải được tìm hiểu
và phân tích theo chiều rộng (ngang) và theo chiều sâu Vì vậy ta cần phải tìm hiểu và phân tích đầy đủ các tất cả các yêu cầu một cách tối ưu nhất để dễ dàng tiến hành các bước tiếp theo
Bước 3: Thiết kế phần mềm và hệ thống
Xây dựng ứng dụng phần mềm là một dây chuyền các chuyển đổi, mà ở đó phân tích nhằm xác định ứng dụng sẽ thực hiện cái gì (what?) còn thiết kế nhằm để trả lời câu hỏi phần mềm cụ thể sẽ như thế nào (how?) Tức là xác định cách thức thực hiện những
gì đã được đặt ra ở phần phân tích Trong ba giai đoạn: thiết kế, cài đặt và bảo trì thì thiết kế là giai đoạn quan trọng nhất, chịu trách nhiệm đến 80% đối với sự thành công của một sản phẩm Quá trình thiết kế tốt là cơ sở để quản lý và giảm chi phí cho công việc bảo trì phần mềm sau này
Bước 4: Cài đặt và thử nghiệm đơn thể phần mềm
Cài đặt là việc thực thi những gì đã thiết kế Nếu trong quá trình cài đặt có xuất hiện vấn đề thì phải quay lại sửa bản thiết kế Cài đặt là một công đoạn trong việc phát triển phần mềm và nó được xem là một hệ quả tất yếu của thiết kế Tuy vậy, phong cách lập trình và các đặc trưng của ngôn ngữ lập trình có ảnh hưởng lớn đến chất lượng của phần mềm Một chương trình được cài đặt tốt đem lại cho ta thuận lợi trong việc bảo trì sau này
Đại học Kinh tế Huế
Trang 16Bước 5: Thử nghiệm tổng quát phần mềm
Sản phẩm phần mềm được gọi là đúng nếu nó thực hiện được chính xác những tiêu chuẩn mà người thiết kế đã đặt ra Để có một đánh giá chính xác về cấp độ đúng của phần mềm, ta phải kiểm tra chất lượng phần mềm Như thế, kiểm tra là quá trình tìm lỗi và nó là một đánh giá cuối cùng về các đặc tả, thiết kế và mã hoá Mục đích của kiểm tra là đảm bảo rằng tất cả các thành phần của ứng dụng ăn khớp, vận hành như mong đợi và phù hợp các tiêu chuẩn thiết kế
Bước 6: Bảo trì và phát triển phần mềm
Bảo trì là giai đoạn cuối cùng của một chu trình phát triển phần mềm Các chương trình máy tính luôn thay đổi - phải mở rộng, sửa lỗi, tối ưu hoá và theo thống kê thì bảo trì chiếm đến 70% toàn bộ công sức bỏ ra cho một dự án phần mềm Do vậy, bảo trì là một hoạt động phức tạp nhưng nó lại là vô cùng cần thiết trong chu trình sống của sản phẩm phần mềm để đảm bảo cho phần mềm phù hợp với người sử dụng
1.2 Ngôn ngữ lập trình C#
Ngôn ngữ C Sharp (C#) được xây dựng và kiến trúc bởi Anders Hejlsberg, người
đã viết nên trình biên dịch Pascal và có nhiều đóng góp cho Delphi cũng như Java C#
là một trong rất nhiều ngôn ngữ lập trình được hỗ trợ bởi NET Framework (như C++, Java…) Có thể hiểu đơn giản đây là một trung tâm biên dịch, trong đó tất cả các ngôn ngữ được hỗ trợ bởi NET Framework sẽ được chuyển đổi ra ngôn ngữ trung gian
Microsoft (Microsoft Intermediate Language – MSIL) rồi từ đấy mới được biên dịch tức
thời (Just in time Compiler – JIT Compiler) thành các file thực thi như exe Một thành
tố quan trọng nữa trong kiến trúc NET Framework chính là bộ thực thi ngôn ngữ chung (.NET Common Language Runtime – CLR), khối chức năng cung cấp tất cả các dịch
vụ mà chương trình cần giao tiếp với phần cứng, với hệ điều hành
* Các tính năng cơ bản của ngôn ngữ lập trình C#:
Ngôn ngữ C# là một ngôn ngữ được dẫn xuất từ Java, VB, C và C++, nhưng nó được tạo nên từ nền tảng phát triển hơn Microsoft bắt đầu với công việc trong C và C++
và thêm vào những đặc tính mới để làm cho ngôn ngữ này dễ sử dụng hơn Nhiều trong
số những đặc tính này khá giống với những đặc tính có trong ngôn ngữ Java Không
Đại học Kinh tế Huế
Trang 17dừng lại ở đó, Microsoft đưa ra một số mục đích khi xây dựng ngôn ngữ này Những mục đích này được tóm tắt như sau:
- C# là ngôn ngữ đơn giản và hiện đại
- C# là ngôn ngữ hướng đối tượng
- C# là ngôn ngữ mạnh mẽ và mềm dẻo
- C# là ngôn ngữ có ít từ khóa
- C# là ngôn ngữ hướng module
- C# loại bỏ một vài sự phức tạp của những ngôn ngữ như Java và C++, bao gồm việc loại bỏ những macro, những template, đa kế thừa, và lớp cơ sở ảo (virtual base class) Chúng là những nguyên nhân gây ra sự nhầm lẫn hay dẫn đến những vấn đề cho các người phát triển C++
- Ngôn ngữ C# đơn giản vì nó dựa trên nền tảng C và C++ 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
* Các ứng dụng của C#
C# có thể sử dụng để viết các kiểu ứng dụng khác nhau như:
- Các ứng dụng game
- Các ứng dụng cho doanh nghiệp
- Các ứng dụng cho thiết bị di động: PC Pocket, PDA, cell phone
- Các ứng dụng quản lý đơn giản
- Các ứng dụng phân tán phức tạp trải rộng qua nhiều thành phố, đất nước
* Các lợi ích của C#
- Hỗ trợ ngôn ngữ xuyên suốt (Cross Language Support): hỗ trợ khả năng chuyển đổi dễ dàng giữa các ngôn ngữ
- Hỗ trợ các giao thức Internet chung
- Triển khai đơn giản
- Hỗ trợ tài liệu XML: các chú thích XML có thể được thêm vào các đoạn code
và sau đó có thể được chiết xuất để làm tài liệu cho các đoạn code để cho phép các lập trình viên khi sử dụng biết được ý nghĩa của các đoạn code đã viết
Đại học Kinh tế Huế
Trang 181.3 Tổng quan về nền tảng lập trình NET Framework
1.3.1 Giới thiệu về NET Framework
chương trình được viết trên nền NET Framework sẽ được triển khai trong môi trường phần mềm(ngược lại vớimôi trường phần cứng) được biết đến với tên Common Language Runtime (CLR) Môi trường phần mềm này là một máy ảotrong đó cung cấp
và các xử lý lỗi ngoại lệ (exception handling)
.NET Framework bao gồm tập các thư viện lập trình lớn, và những thư viện này
hỗ trợ việc xây dựng các chương trình phần mềm như lập trình giao diện; truy cập, kết nốicơ sở dữ liệu; ứng dụng web; các giải thuật, cấu trúc dữ liệu; giao tiếp mạng CLR
cùng với bộ thư viện này là 2 thành phần chính của NET Framework
.NET Framework đơn giản hóa việc viết ứng dụng bằng cách cung cấp nhiều thành phần được thiết kế sẵn, người lập trình chỉ cần học cách sử dụng và tùy theo sự sáng tạo mà gắn kết các thành phần đó lại với nhau Nhiều công cụ được tạo ra để hỗ trợ
xây dựng ứng dụng NET, và IDE (Integrated Developement Environment – Môi trường phát triển tích hợp) được phát triển và hỗ trợ bởi chính Microsoft làVisual Studio
Hình 1.2 Kiến trúc của NET Framework
Nguồn: Net Framework: 10 năm nhìn lại - http://www.pcworld.com.vn
Đại học Kinh tế Huế
Trang 191.3.2 Các thành phần của NET Framework
- Bộ thực thi ngôn ngữ chung (Common Language Runtime - CLR): là trung tâm
điểm của NET Framework Đây là một hầm máy để chạy các tính năng của NET Trong NET, tất cả mọi ngỗ ngữ lập trình đều được biên dịch ra Microsoft Intermediate Language (IT) Do bắt buộc mọi ngôn ngữ đều phải dùng các loại kiểu dữ liệu nên CLR
có thể kiểm soát mọi giao diện, gọi giữa các thành phần và cho phép các ngôn ngữ có thể tích hợp với nhau một cách thông suốt
- Các lớp cơ sở (The Base Classes): Các lớp cơ sở cho chúng ta những đặc tính
của runtime và cung cấp những dịch vụ cấp cao khác mà những người lập trình đòi hỏi thông quan namespace Namespace là một cách đặt tên để giúp sắp đặt các lớp ta dùng trong chương trình một cách thứ tự để dễ tìm kiếm chúng Tất cả các mã trong NET bằng C# hay một ngôn ngữ nào khác đều được chứa trong namespace
- ASP NET: là một khung lập trình được xây dựng trên bộ thực thi ngôn ngữ
chung (CLR) và được sử dụng trên một máy chủ phục vụ để tạo ra các ứng dụng web mạnh Web Form của ASP NET cho phép xây dựng các giao diện người dùng Web động một cách hiệu quả Các dịch vụ của ASP NET cung cấp những khối hợp nhất cho việc xây dựng các ứng dụng trên nền tảng web phân tán Những dịch vụ web dựa trên các chuẩn Internet mở Bộ thực thi ngôn ngữ chung CLR cung cấp sự hỗ trợ dựng sẵn
để tạo và đưa ra những dịch vụ web thông qua việc sử dụng một khái niệm trừu tượng hóa lập trình phù hợp và thân thiện với nhà phát triển cho cả Web form và Visual basic
1.3.3 Nền tảng lập trình NET Framework 4.5
1.3.3.1 Tổng quan về nền tảng NET Framework 4.5
Microsoft NET Framework 4.5 là một trong những phần mềm hỗ trợ giúp máy
tính chạy được các ứng dụng, lập trình nhanh nhạy hơn bao giờ hết Ưu điểm vượt trội của NET Framework 4.5 đó là khả năng tạo nên môi trường lập trình mạnh mẽ, tạo liên kết dữ liệu rộng lớn cho người sử dụng máy tính
Đại học Kinh tế Huế
Trang 20Hình 1.3 Mô hình NET Framework 4.5
Nguồn: Microsoft NET framework 4.5 - http://www.dotnet-tricks.com/
Hiện nay Microsoft NET Framework 4.5 có khả năng cung cấp nền tảng và môi trường lập trình cho các lập trình viên làm việc với nó, nó hỗ trợ truy cập và kết nối cơ
sở dữ liệu người dùng một cách nhanh chóng và chính xác, nó bao gồm phần lớn thư viện mã của các giải pháp phổ biến để lập trình các vấn đề được nêu ra trước đó và một máy ảo để giúp người dùng quản lý việc thực hiện các chương trình bằng văn bản cho chương trình khung mà không cần tới những công cụ test phức tạp nào khác
Microsoft NET Framework 4.5 bao gồm hai thành phần chính: môi trường thực thi cho các ứng dụng (CLR), đó là động cơ thực hiện xử lý các ứng dụng đang chạy, và NET Framework Class Library, cung cấp một thư viện các thử nghiệm và lập trình, sử dụng lại mã mà các nhà phát triển có thể gọi từ các ứng dụng riêng của họ
Phiên bản mới nhất của Microsoft NET Framework cải tiến về chức năng với khả năng tương thích tốt hơn, có độ linh hoạt với nhiều ứng dụng hiện nay Phiên bản này cũng bổ sung các hàm APIs cho ứng dụng ASP.NET, tính năng workflow…
Đại học Kinh tế Huế
Trang 21Phiên bản mới nhất của Microsoft NET Framework cải tiến về chức năng với khả năng tương thích tốt hơn có độ linh hoạt với nhiều ứng dụng hiện nay Phiên bản này cũng bổ sung các hàm APIs cho ứng dụng ASP.NET, tính năng workflow…
chỉ trên các hệ điều hành mới như win 8.1 hay win 10 mà còn những phiên bản trước
đó Nếu đang dùng hệ điều hành thấp hơn, có thể sử dụng NET Framework 4.5 hay.NET Framework 3.0 để hỗ trợ quản lý bộ nhớ cũng như hỗ trợ nhiều chương trình,
* Thư viện lập trình phong phú:
Thay vì phải viết một lượng lớn các mã để xử lý các hoạt động lập trình ở mức
độ thấp, thông thường các lập trình viên có thể sử dụng một thư viện lập trình được tích hợp trên chương trình để dễ dàng tiếp cận các mã nguồn và các đối tượng cần thiết từ NET Framework Class Library
* Hỗ trợ nhiều ứng dụng:
.NET Framework tích hợp các thư viện cho các khu vực cụ thể của phát triển ứng dụng, chẳng hạn như ASP NET cho ứng dụng web, ADO NET để truy cập dữ liệu và Windows Communication Foundation cho các ứng dụng hướng dịch vụ
* Khả năng tương thích cao:
mã khác nhau thành ngôn ngữ chung thông qua trung tâm ngôn ngữ chung (CIL) Ngoài
ra, phần mềm này có thể cài đặt và sử dụng bằng một phiên bản đặc biệt có thể chạy mà không cần sửa đổi nếu có cập nhật phiên bản mới
Đại học Kinh tế Huế
Trang 221.4 Tổng quan về kiến trúc ADO NET
Với các công cụ lập trình xử lý dữ liệu như ADO (Active Data Object), Microsoft đem lại cho người lập trình một công cụ rất tự nhiên khi thực hiện các thao tác trên dữ liệu ADO được cải tiến liên tục trong các phiên bản hệ điều hành Windows hay Microsoft Office Tuy nhiên, với sự ra đời của NET, ADO không chỉ là thành phần (Component) độc lập nhưng gắn liền với NET Framework để cung cấp các dịch vụ xử
* Kiến trúc của ADO NET
Kiến trúc ADO NET có thể chia làm hai phần chính:
- Các thư viện quản lý (Managed Provider Component): bao gồm các đối tượng như DataAdapter, DataReader,… giữ nhiệm vụ làm việc trực tiếp với dữ liệu như database, file,…
- Thư viện dữ liệu (Content Component): Bao gồm các đối tượng như DataSet, DataTable, … đại diện cho dữ liệu thực sự cần làm việc DataReader là đối tượng giúp truy cập dữ liệu nhanh chóng nhưng forward-only và read-only
Dữ liệu (DataSet) có thể coi là một bản sao gọn nhẹ của CSDL trong bộ nhớ với nhiều bảng và các mối quan hệ
Mô hình kết nối (DataAdapter) là đối tượng kết nối giữa DataSet và CSDL, nó bao gồm hai đối tượng Connection và Command để cung cấp dữ liệu cho DataSet cũng như cập nhật dữ liệu từ DataSet xuống CSDL
Đại học Kinh tế Huế
Trang 231.5 Hệ quản trị cơ sở dữ liệu SQL Server
1.5.1 Ngôn ngữ truy vấn có cấu trúc (SQL - Structure Query Language)
1.5.1.1 Khái niệm về SQL
SQL là một công cụ quản lý dữ liệu được sử dụng phổ biến ở nhiều lĩnh vực và
nó bao gồm tập các câu lệnh sử dụng để tương tác với cơ sở dữ liệu quan hệ Hầu hết các ngôn ngữ bậc cao đều có trình hỗ trợ SQL như Visual Basic, Oracle, C++, C#, …
SQL được sử dụng để điều khiển tất cả các chức năng mà một hệ quản trị cơ sở
dữ liệu cung cấp cho người dùng bao gồm: định nghĩa dữ liệu, truy xuất và thao tác dữ liệu, điều khiển và truy cập
SQL là một ngôn ngữ hoàn thiện được sử dụng trong các hệ thống cơ sở dữ liệu
và là một thành phần không thể thiếu trong các hệ quản trị cơ sở dữ liệu
1.5.1.2 Đặc điểm của SQL
- SQL là ngôn ngữ tựa tiếng Anh
- SQL là ngôn ngữ phi thủ tục, nó không yêu cầu cách thức truy nhậ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ễ sử dụng và ít khả năng mắc lỗi
- SQL cung cấp tập lệnh phong phú cho các công việc hỏi đáp dữ liệu
- Chèn, cập nhật, xóa các hàm trong một quan hệ
- Điều khiển việc truy nhậ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 của cơ sở dữ liệu
- Đảm bảo tính nhất quán và sự ràng buộc của cơ sở dữ liệu
- SQL sử dụng các kiểu dữ liệu cơ bản: Integer, Number(n,p), varchar(n), char(n), nvarchar(n), data, …
1.5.1.3 Vai trò của SQL
SQL là một phần của hệ quản trị cơ sở dữ liệu, nó xuất hiện trong các hệ quản trị
cơ sở dữ liệu với vai trò ngôn ngữ và là công cụ giao tiếp giữa người sử dụng và hệ quản trị cơ sở dữ liệu SQL có vai trò như sau:
- SQL là ngôn ngữ hỏi có tính tương tác: Người sử dụng có thể dễ dàng thông qua các trình tiện ích để gửi các yêu cầu dưới dạng các câu lệnh SQL đến cơ sở dữ liệu
và nhận kết quả trả về từ cơ sở dữ liệu
Đại học Kinh tế Huế
Trang 24- SQL là ngôn ngữ lập trình cơ sở dữ liệu: Thông qua SQL, người quản trị cơ sở
dữ liệu có thể quản lý được cơ sở dữ liệu, định nghĩa các cấu trúc lưu trữ dữ liệu, điều khiển truy cập cơ sở dữ liệu
- SQL là ngôn ngữ truy cập dữ liệu trên Internet: SQL với vai trò là ngôn ngữ để tương tác với dữ liệu trong các cơ sở dữ liệu trên Internet
- SQL là ngôn ngữ cơ sở dữ liệu phân tán: Đối với các hệ quản trị cơ sở dữ liệu phân tán, mỗi hệ thống sử dụng SQL để giao tiếp với các hệ thống khác trên mạng, gửi
và nhận các yêu cầu truy xuất dữ liệu với nhau
- SQL là ngôn ngữ sử dụng cho các cổng giao tiếp cơ sở dữ liệu: SQL thường được dùng như là một chuẩn ngôn ngữ để giao tiếp giữa các hệ quản trị cơ sở dữ liệu khi hệ thống máy tính có nhiều hệ quản trị cơ sở dữ liệu khác nhau
1.5.2 Microsoft SQL Server
1.5.2.1 Tổng quan về Microsoft SQL Server
SQL là một hệ thống quản trị CSDL quan hệ nhiều người dùng kiểu khách/chủ Đây là hệ thống cơ bản dùng lưu trữ dữ liệu cho hầu hết các ứng dụng lớn hiện nay
SQL server sử dụng ngôn ngữ lập trình và truy vấn CSDL Transact - SQL, một phiên bản của SQL Với Transact - SQL, có thể truy xuất dữ liệu, cập nhật và quản lý
hệ thống CSDL quan hệ
Với mỗi máy chủ chỉ có một hệ thống quản trị CSDL SQL Server Nếu muốn có
nhiều hệ thống quản trị CSDL cần có nhiều máy chủ tương ứng
1.5.2.2 Thành phần của Microsoft SQL Server
- Bảng dữ liệu (Tables): Bảng dữ liệu là đối tượng chính của CSDL dùng lưu trữ
dữ liệu cần quản lý Mỗi bảng dữ liệu có 1 hay nhiều trường Mỗi trường ứng với một loại dữ liệu cần lưu trữ
Bảng dữ liệu còn có các thành phần liên quan như:
- Ràng buộc (Constranit): Constraint là các chỉ định ràng buộc dữ liệu trong bảng
dữ liệu hoặc các bảng dữ liệu khác nhau theo một quy tắc nào đó
- Bẫy lỗi (Triggers): Bẫy lỗi thường chứa các mã lệnh kiểm tra dữ liệu, có tính năng tự động thực hiện khi có hành động nào đó xảy ra đối với dữ liệu trong bảng dữ liệu như thêm, sửa, xóa
Đại học Kinh tế Huế
Trang 25- Chỉ mục (Indexs): Hỗ trợ cho việc sắp xếp và tìm kiếm nhanh thông tin trên bảng dữ liệu
- Sơ đồ quan hệ (Diagram): Thể hiện mối quan hệ dữ liệu giữa các bảng dữ liệu
- Khung nhìn hay bảng dữ liệu ảo (Views): Là đối tượng dùng hiển thị dữ liệu được rút trích, tính toán từ các bảng dữ liệu theo nhu cầu của người dùng
- Thủ tục thường trú (Stored Procedure): Chứa các lệnh T - SQL dùng thực hiện một số tác vụ nào đó Thủ tục thường trú có thể nhận và truyền tham số Thủ tục thường trú được biên dịch trước, do đó thời gian được thực hiện nhanh khi được gọi Có nhiều thủ tục thường trú hệ thống được định nghĩa với tiền tố “sp_” có nhiệm vụ thu thập thông tin từ các bảng dữ liệu hệ thống và rất có ích cho việc quản trị
- Hàm do người dùng định nghĩa (User Defined Function)
- Người dùng (User): Chứa danh sách người dùng sử dụng CSDL Người quản trị hệ thống cao nhất có tên người dùng là dbo, tên đăng nhập hệ thống mặc định là sa Tài khoản sa luôn tồn tại và không thể bỏ đi Để thay đổi mật khẩu của sa, cách nhanh nhất là: Mở trình Query Analyzer (phân tích truy vấn), thực hiện thủ tục hệ thống: EXEC SP_PASSWORD NULL, <NewPass>
- Các qui định vai trò và chức năng người dùng trong hệ thống tại máy chủ (Roles)
- Các qui tắc ràng buộc dữ liệu được lưu trữ trên bảng dữ liệu (Rules)
- Các khai báo giá trị mặc định (Defaults)
- Kiểu dữ liệu cho người dùng tự định nghĩa (User Defined Data Type)
- Tập phân loại dữ liệu văn bản (Full Text Catalogs)
1.6 Các phương pháp nghiên cứu, giải pháp công nghệ được ứng dụng để xây dựng phần mềm
Trang 26Phương pháp lập trình thủ tục chính là cách thực hiện phương pháp hướng chức năng kể trên Phương pháp thủ tục chia một chương trình (chức năng) lớn thành các khối chức năng hay hàm (thủ tục) đủ nhỏ để dễ lập trình và kiểm tra Mỗi hàm có một điểm bắt đầu và một điểm kết thúc, có dữ liệu và logic riêng Trong một hệ thống chương tình, các biến có các phạm vi nhìn thấy nhất định Trong chương trình, các hàm làm việc độc lập với nhau Dữ liệu được chuyển đổi qua lại thông qua các tham số gọi hàm
Việc chia chương trình thành các hàm cho phép nhiều người có thể tham gia vào việc xây dựng chương trình Mỗi người xây dựng một hoặc một số các hàm độc lập với nhau Phương pháp này dẫn đến một khái niệm mới – sự trừu tượng hóa Sự trừu tượng hóa có thể xem như khả năng quan sát một sự việc mà không cần xem xét đến các chi tiết bên trong của nó Trong một chương trình thủ tục, chúng ta chỉ cần biết một hàm nào đó có thể làm được những công việc cụ thể gì là đủ Còn làm thế nào để thực hiện công việc đó là không quan trọng, chừng nào hàm còn tin cậy được thì còn có thể dùng
nó mà không cần phải biết nó thực hiện đúng đắn chức năng của mình như thế nào Điều này gọi là sự trừu tượng hóa theo chức năng (functional abstraction) (hay còn gọi là sự chuyên môn hóa) và là nền tảng của lập trình thủ tục
1.6.1.2 Các khái niệm
* Trừu tượng
Khái niệm trừu tượng là sự cho phép tập trung vào vấn đề ở mức tổng quát nào
đó, không xét tới các chi tiết mức thấp hơn không liên quan Việc trừu tượng hóa cho phép ta làm việc với khái niệm và thuật ngữ quen thuộc trong môi trường vấn đề mà không phải biến đổi chúng thành một cấu trúc không quen thuộc
Khi xét vấn đề cho việc tìm ra giải pháp module, chúng ta có thể đặt ra nhiều mức độ trừu tượng Tại mức trừu tượng cao nhất: phát biểu bằng ngôn ngữ môi trường của vấn đề Tại mức trừu tượng thấp hơn, thường lấy khuynh hướng thủ tục Tại mức thấp nhất, giải pháp được phát biểu theo cách có thể cài đặt trực tiếp
Trong mỗi bước của tiến trình đều là sự làm mịn cho một mức trừu tượng của giải pháp Khi chuyển qua các mức trừu tượng khác nhau, chúng ta làm việc để tạo ra các trừu tượng thủ tục, trừu tượng dữ liệu và trừu tượng điều khiển
Đại học Kinh tế Huế
Trang 27* Chương trình con
Một chương trình con (hay được gọi là hàm, thủ tục, hay thủ tục con) là một chuỗi mã để thực thi một thao tác đặc thù nào đó như là một phần của chương trình lớn hơn Đây là các câu lệnh được nhóm vào một khối và được đặt tên và tên này tùy theo ngôn ngữ có thể được gán cho một kiểu dữ liệu Những khối mã này có thể được tập trung lại làm thành các thư viện phần mềm Các chương trình con có thể được gọi ra để thi hành (thường là qua tên của chương trình con đó) Điều này cho phép các chương trình dùng tới những chương trình con nhiều lần mà không cần phải lặp lại các khối mã giống nhau một khi đã hoàn tất việc viết mã cho các chương trình con đó chỉ một lần
* Lập trình cấu trúc
Là một tập hợp con của lập trình thủ tục Trong một chương trình máy tính, các khối chức năng có thể được thực hiện không chỉ theo trình tự mà còn có thể theo các tình huống và lặp lại nhiều lần Phương pháp lập trình cấu trúc được dựa trên các mô hình toán học của Bohm và Guiseppe Theo đó, một chương trình máy tính có thể được viết dựa trên ba cấu trúc: trình tự, quyết định và vòng lặp
- Trình tự nghĩa là các câu lệnh được thực hiện theo trình tự nhất định: trên xuống
- Quyết định là sự quy định sẽ thực hiện chương trình như thế nào phụ thuộc vào
sự thỏa mãn các điều kiện nhất định
- Vòng lặp thể hiện sự thực hiện có tính lặp lại một số đoạn lệnh của chương trình khi các điều kiện nào đó vẫn được thỏa mãn Thông qua các cấu trúc trên, mã chương trình trở nên sáng sủa và dễ đọc
Phương pháp lập trình thủ tục hay lập trình cấu trúc đường đi đối với phương pháp phân tích trên xuống (top – down) Theo phương pháp này, người thiết kế hệ thống chia các chức năng (hàm) chính của hệ thống thành các chức năng nhỏ hơn, đến lượt mình, các chức năng nhỏ này lại được chia tiếp thành các chức năng nhỏ hơn nữa cho đến khi được các khối (hàm) chương trình đủ nhỏ Việc phân tích này được thể hiện trực quan theo sơ đồ khối
Đại học Kinh tế Huế
Trang 281.6.2 Sử dụng mô hình 3 lớp trong thiết kế
Mô hình 3 lớp được cấu thành từ: Lớp giao diện (Presentation Layers - PL), lớp logic nghiệp vụ (Business Logic Layers - BLL), và lớp truy cập dữ liệu (Data Access
Layers - DAL) Các lớp này sẽ giao tiếp với nhau thông qua các dịch vụ (services) mà mỗi lớp cung cấp để tạo nên ứng dụng, lớp này cũng không cần biết bên trong lớp kia làm
gì mà chỉ cần biết lớp kia cung cấp dịch vụ gì cho người dùng và sử dụng nó mà thôi
sử dụng các dịch vụ do BLL cung cấp Trong NET thì bạn có thể dùng Windows
Forms, ASP NET hay Mobile Forms để hiện thực lớp này
Lưu ý : Lớp này không nên sử dụng trực tiếp các dịch vụ của DAL mà nên sử dụng thông qua các dịch vụ của BLL vì khi bạn sử dụng trực tiếp như vậy, chúng ta có thể bỏ qua các ràng buộc, các logic nghiệp vụ mà ứng dụng cần phải có
Đại học Kinh tế Huế
Trang 29- Lớp nghiệp vụ logic (BLL)
Lớp này thực hiện các nghiệp vụ chính của hệ thống, sử dụng các dịch vụ do DAL cung cấp, và cung cấp các dịch vụ cho PL Lớp này cũng có thể sử dụng các dịch
vụ của các nhà cung cấp thứ 3 để thực hiện công việc của mình
- Lớp truy cập dữ liệu (DAL)
Lớp này thực hiện các nghiệp vụ liên quan đến lưu trữ và truy xuất dữ liệu của ứng dụng Thường lớp này sẽ sử dụng các dịch vụ của các hệ quản trị cơ sở dữ liệu như SQL Server, Oracle,… để thực hiện nhiệm vụ của mình Trong lớp này có các thành phần chính là Data Access Logic, Data Sources, Servive Agents)
* Cách vận hành của mô hình
Đối với mô hình 3 lớp, các yêu cầu được xử lý tuần tự qua các lớp như hình minh họa ở trên Đầu tiên người dùng giao tiếp với DAL để gửi đi thông tin yêu cầu Tại lớp này, các thông tin sẽ được kiểm tra sơ bộ, nếu hợp lệ chúng sẽ được chuyển xuống (BLL) Tại BLL, các thông tin sẽ được nhào nặn, tính toán theo đúng yêu cầu đã gửi, nếu không cần đến CSDL thì BLL sẽ gửi trả kết quả về cho PL, ngược lại nó sẽ đẩy thông tin (dữ liệu đã xử lý) xuống DAL DAL sẽ thao tác với CSDL và trả kết quả về cho BLL, BLL kiểm tra và gửi nó lên giao diện đồ họa người dùng (Graphic User Interface – GUI) để hiển thị cho người dùng Một khi gặp lỗi (các trường hợp không đúng dữ liệu) thì đang ở lớp nào thì trả mã lỗi lên trên lớp cao hơn nó một bậc cho tới lớp GUI thì sẽ thông báo mã lỗi ra cho người dùng biết Thông tin được vận chuyển giữa các lớp thông qua một đối tượng được gọi là Data Transfer Object (DTO), đơn giản đây
chỉ là các lớp đại diện cho các đối tượng được lưu trữ trong CSDL
* Những ưu điểm khi sử dụng mô hình 3 lớp
Trước hết phải nói rằng việc tổ chức dự án phần mềm dưới dạng mô hình 3 lớp
sẽ giúp cho dự án có cấu trúc sáng sủa, rõ ràng, dễ dùng lại Từ đó việc phát triển và bảo trì hệ thống sẽ thuận lợi hơn Điều này giúp chúng ta tiết kiệm nhiều thời gian hơn khi
mở rộng chương trình trong tương lai Khi dự án thay đổi hệ quản trị cơ sở dữ liệu hoặc chuyển ứng dụng từ dạng webform sang dạng winform thì chúng ta chỉ tốn ít thời gian
Đại học Kinh tế Huế
Trang 30để thay đổi trên lớp DAL hoặc GUI mà thôi, giữ nguyên hai lớp còn lại mà không cần
phải thay đổi toàn bộ dự án
Một điều cũng vô cùng quan trọng đối với người lập trình viên đó là việc xử lý và bẫy các lỗi thời gian chạy Mô hình 3 lớp hỗ trợ cho người lập trình xác định loại lỗi xuất hiện tại lớp nào và dễ dàng đưa ra cách xử lý chúng ở từng lớp cụ thể
Ngoài ra, mô hình này còn tạo ra một không gian làm việc rất tốt để người thiết kế giao diện lẫn người lập trình có thể làm việc chung với nhau một cách dễ dàng Việc phân ứng dụng ra thành 3 lớp cũng thuận lợi cho việc phân chia nhiệm vụ của các lập trình viên theo các lớp khác nhau
Đại học Kinh tế Huế
Trang 31CHƯƠNG 2: BÀI TOÁN QUẢN LÝ BÁN HÀNG
TẠI ĐẠI LÝ XE MÁY 2.1 Mô tả bài toán
Để nâng cao hiệu quả quản lý, đại lý bán xe máy muốn quản lý công việc của mình bằng phần mềm thay vì phải làm thủ công Phần mềm được xây dựng nhằm tin học hóa các quy trình quản lý tại cửa hàng Các quy trình quản lý cần tin học hóa bao gồm:
* Quy trình quản lý công nợ:
Đại lý xe máy quản lý công nợ theo định kỳ hàng tháng, hàng năm hoặc khi có yêu cầu để theo dõi công nợ phải thu của khách hàng cũng như công nợ phải trả cho nhà cung cấp Việc quản lý công nợ được thực hiện trên cơ sở thông tin từ Hóa đơn, Phiếu nhập mua, Phiếu xuất kho, Phiếu thu, Phiếu chi Công nợ phải thu và công nợ phải trả được tính theo công thức sau:
Công nợ phải thu = Công nợ đầu kỳ + Phát sinh trong kỳ - Lượng đã thu
Công nợ phải trả = Công nợ đầu kỳ + Phát sinh trong kỳ - Lượng đã trả
Phiếu nhập mua được lập đối với mỗi lần nhập từ một nhà cung cấp khác nhau Thông tin trên Phiếu nhập mua bao gồm: Số chứng từ, ngày chứng từ, nhà cung cấp, mã linh kiện, số lượng, mã kho, đơn vị tính, số lượng, đơn giá, thành tiền
Sau khi lập phiếu nhập mua, đại lý tiến hành trả tiền cho nhà cung cấp Lúc đó, một phiếu chi được lập bao gồm các thông tin: ngày lập phiếu, số tiền chi để trả cho nhà cung cấp, mô tả Phiếu chi này được quản lý để làm căn cứ thống kê công nợ của đại lý đối với nhà cung cấp
Đại học Kinh tế Huế
Trang 32Đại lý quản lý thông tin linh kiện bao gồm: mã linh kiện, mã khác, mã thay đổi, tên linh kiện, tên tiếng anh, mẫu linh kiện, mã màu, mã tem, tên màu, tiêu chuẩn đóng gói
Linh kiện nhập về có 2 trạng thái: là linh kiện có định mức và linh kiện không có định mức Đối với loại linh kiện có định mức, cửa hàng sẽ tiến hành lưu giữ định mức của linh kiện đó Thông tin định mức linh kiện bao gồm: mã bộ linh kiện, mã linh kiện chi tiết, số lượng linh kiện chi tiết, giá trị linh kiện chi tiết (nếu có)
Đại lý có nhiều kho hàng, của hàng tiến hành lưu giữ thông tin của kho bao gồm:
mã kho, tên kho, tên khác
Ngoài ra, đại lý còn quản lý tồn kho đối với từng loại linh kiện khác nhau Công thức tính tồn kho như sau: Tồn kho = Tồn kho đầu kỳ + Số lượng nhập – Số lượng xuất
* Quy trình bán hàng:
Các đối tượng giao dịch chính của cửa hàng bao gồm khách hàng và nhà cung cấp Cửa hàng lưu giữ thông tin của đối tượng bao gồm: mã đối tượng, tên đối tượng,
số điện thoại, địa chỉ
Khi khách hàng đến mua hàng, sau khi chọn được sản phẩm cần mua, khách hàng tiến hành các thủ tục mua hàng, một hóa đơn được lập để giao cho khách hàng, thông tin trong hóa đơn bao gồm: mã chứng từ, ngày chứng từ, mã linh kiện, mã kho, đơn vị tính, số lượng, đơn giá, thành tiền
Sau khi khách hàng nhận hàng và tiền hành trả tiền hàng, một phiếu thu được lập, bao gồm các thông tin: ngày lập phiếu, số tiền đã thu của khách hàng, mô tả Phiếu này được quản lý để làm căn cứ để thống kê công nợ của khách hàng đối với đại lý
Bên cạnh đó, của hàng tiến hành xuất kho, một phiếu xuất kho được lập Thông tin trên phiếu xuất kho bao gồm: số chứng từ, ngày chứng từ, mã đối tượng người đại diện, địa chỉ, mã tiền tệ, mã linh kiện, mã kho, đơn vị tính, số lượng, đơn giá, thành tiền
Bảng giá được cửa hàng quản lý để báo giá cho khách hàng biết, thông tin trên bảng giá bao gồm: mã chứng từ, số hiệu bảng giá, ngày chứng từ, mã linh kiện, giá bán đại lý cấp 1, giá bán lẻ, ngày áp dụng
Đại học Kinh tế Huế
Trang 33* Thống kê:
Việc thống kê theo định kỳ hoặc khi có yêu cầu thống kê bao gồm: thống kê công
nợ, thống kê tồn kho và thống kê doanh thu Chủ cửa hàng dựa vào các bản thống kê để theo dõi tình hình công nợ của khách hàng đối với cửa hàng, cũng như của cửa hàng đối với nhà cung cấp và để theo dõi tình hình kinh doanh của cửa hàng
2.2 Xác định yêu cầu
Phần mềm quản lý bán hàng cho phép quản lý thông tin của khách hàng, nhà cung cấp, linh kiện, định mức linh kiện, bảng giá Có thể cập nhật các thông tin của khách hàng, nhà cung cấp, linh kiện, định mức linh kiện Nhập tập tin từ excel theo mẫu,
in ấn, tải về dạng tập tin excel danh sách
Khi khách hàng mua hàng, khách hàng sẽ nhận được hóa đơn từ đại lý, bao gồm toàn bộ thông tin về linh kiện đã mua, số lượng, đơn giá, thành tiền Phiếu thu được lập
để ghi nhận số tiền thực trả của khách hàng, nhằm quản lý công nợ của khách hàng đối với đại lý Nếu có sai sót, khách hàng thông báo với nhân viên của đại lý để điều chỉnh lại thông tin
Tương tự, khi đại lý nhập hàng từ nhà cung cấp, đại lý tiến hành lập phiếu nhập mua bao gồm toàn bộ thông tin về linh kiện đã nhập, số lượng, đơn giá, thành tiền Đồng thời lập phiếu chi để ghi nhận số tiền đã trả cho nhà cung cấp, nhằm quản lý công nợ của đại lý đối với nhà cung cấp
Đối với khách hàng lần đầu mua hàng tại đại lý, hoặc nhà cung cấp mới của đại
lý, nhân viên tiến hành thêm mới khách hàng và nhà cung cấp vào danh sách đối tượng
Phần mềm còn cho phép cập nhật thông tin bảng giá khi có sự thay đổi về giá của các linh kiện
Phần mềm còn hỗ trợ xem thống kê về công nợ đầu kỳ của đại lý đối với nhà cung cấp cũng như của khách hàng đối với đại lý và thống kê doanh thu thông qua tính toán và hiển thị dưới dạng biểu đồ Cuối cùng phần mềm còn cho phép in ra các mẫu chứng từ theo chuẩn của bộ tài chính như: phiếu thu, phiếu chi, hóa đơn GTGT
Đại học Kinh tế Huế
Trang 34CHƯƠNG 3: XÂY DỰNG PHẦN MỀM QUẢN LÝ BÁN HÀNG
TẠI ĐẠI LÝ XE MÁY 3.1 Phân tích hệ thống Quản lý bán hàng tại đại lý xe máy
3.1.1 Phân tích yêu cầu
Phân tích hệ thống là việc xác định xem chức năng nghiệp vụ của hệ thống là gì Trong giai đoạn này bao gồm việc nghiên cứu hệ thống hiện thời, tìm ra nguyên lý hoạt động của nó và những vị trí mà nó có thể được nâng cao, cải thiện Bên cạnh đó là việc nghiên cứu xem xét các chức năng mà hệ thống cần cung cấp và các mối quan hệ của chúng, bên trong cũng như phía bên ngoài hệ thống
Mục đích: Xác định một cách chính xác và cụ thể các chức năng chính của hệ thống thông tin Trong giai đoạn này cần phải xác định rõ ràng những gì mà hệ thống cần phải thực hiện phân tích phải đề cập đến những mô tả cơ sở, các mô tả này sẽ được trình bày rõ trong một tài liệu gửi cho người sử dụng phê chuẩn trước khi tiến hành những công việc tiếp theo
Trang 353.1.1.5 Quản lý công nợ - tồn kho đầu kỳ
Chức năng này có nhiệm vụ quản lý công tồn kho đầu kỳ, công nợ đầu kỳ của khách hàng và nhà cung cấp
3.1.1.6 Thống kê báo cáo
Chức năng này có nhiệm vụ thống kê công nợ đầu kỳ, tồn kho đầu kỳ và thống kê doanh thu
3.1.2 Sơ đồ chức năng (BFD – Business Function Diagram)
Xác định chức năng nghiệp vụ là bước đầu tiên của việc phân tích hệ thống Để phân tích yêu cầu thông tin của tổ chức thì cần phải biết được tổ chức đó thực hiện những chức năng, nhiệm vụ gì Từ đó, tìm ra các thông tin, các dữ liệu được sử dụng và tạo ra trong các chức năng Đồng thời cũng phải tìm ra những hạn chế, mối ràng buộc đặt lên các chức năng đó
Qua khảo sát quy trình hoạt động, nghiên cứu các nghiệp vụ của hệ thống hiện tại, tác giả đưa ra sơ đồ chức năng của phần mềm với 6 chức năng sau:
Hình 3.1 Sơ đồ chức năng Quản lý bán hàng tại đại lý xe máy
Đại học Kinh tế Huế
Trang 36Hình 3.2 Sơ đồ chức năng Quản lý hệ thống
Hình 3.3 Sơ đồ chức năng Quản lý danh mục
Hình 3.4 Sơ đồ chức năng Quản lý Bán hàng
Đại học Kinh tế Huế
Trang 37Hình 3.5 Sơ đồ chức năng Quản lý Kho
Hình 3.6 Sơ đồ chức năng Thống kê
3.1.3 Sơ đồ ngữ cảnh (Context Diagram)
Sơ đồ ngữ cảnh thể hiện khái quát nội dung chính của hệ thống thông tin Sơ đồ chỉ bao gồm một xử lý chung nhất nêu bật chức năng của hệ thống thông tin Xung quanh là các thực thể ngoài, chỉ nguồn phát và đích nhận thông tin cùng với các dòng thông tin đi vào và đi ra hệ thống thông tin Sơ đồ ngữ cảnh là sơ đồ hình học được xây dựng theo điểm công tác nào đó dùng để làm rõ mối quan hệ thông tin giữa các điểm công tác của hệ thống Điểm trung tâm là điểm đang xét, các điểm công tác khác có liên
hệ thông tin với điểm trung tâm sẽ được mô tả bằng mũi tên và ghi chú kèm theo Sơ đồ ngữ cảnh có 2 tác nhân chính là:
Đại học Kinh tế Huế
Trang 38- Tác nhân bên ngoài (Extenal entity) là một người, một nhóm người hoặc một tổ chức bên ngoài lĩnh vực nghiên cứu của hệ thống nhưng có một số hình thức tiếp xúc với hệ thống Chúng là nguồn gốc cung cấp thông tin cho hệ thống và là nơi nhận các sản phẩm của hệ thống Kí hiệu là hình chữ nhật
- Tác nhân bên trong (Intenal entity) là chức năng hoặc xử lý bên trong hệ thống được mô tả ở trang khác của mô hình Kí hiệu là hình tròn
Dựa vào mô tả bài toán cùng với sơ đồ tổ chức và sơ đồ chức năng có thể phân tích để thu được sơ đồ ngữ cảnh của bài toán như sau:
Hình 3.7 Sơ đồ ngữ cảnh hệ thống quản lý bán hàng tại đại lý xe máy
3.1.4 Sơ đồ luồng dữ liệu (DFD – Data Flow Diagram)
Từ sơ đồ chức năng BFD và sơ đồ ngữ cảnh cùng với các luồng thông tin trong
hệ thống, tác giả mô hình hóa thành mô hình DFD như sau:
Đại học Kinh tế Huế