MỤC LỤC

MỤC LỤC .............................................................................................................................i

DANH MỤC CÁC KÍ HIỆU VÀ CHỮ VIẾT TẮT ............................................................v

DANH MỤC HÌNH ẢNH, SƠ ĐỒ, BIỂU ĐỒ...................................................................vi

DANH MỤC BẢNG BIỂU.............................................................................................. viii

PHẦN MỞ ĐẦU ..................................................................................................................1

1. Lý do chọn đề tài ..................................................................................................... 1

2. Mục tiêu nghiên cứu ................................................................................................ 2

3. Đối tượng, 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 ......................................................................................... 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Ề XÂY DỰNG...........................................................5

1.1 Tổng quan về hệ thống thông tin quản lý ........................................................... 5

1.1.1. Khái niệm về hệ thống và hệ thống thông tin quản lý ............................................5

1.1.1.1. Hệ thống và hệ thống quản lý ...............................................................................5

1.1.1.2. Hệ thống thông tin quản lý ....................................................................................5

1.1.1.3. Các loại thông tin quản lý......................................................................................6

1.1.2. Cấu trúc hệ thống thông tin quản lý.........................................................................6

1.1.3. Quy trình phát triển hệ thống thông tin quản lý ......................................................7

1.1.3.1. Khái niệm về quy trình phát triển hệ thống thông tin quản lý ............................7

1.1.3.2. Giới thiệu về mô hình thác nước...........................................................................7

1.2. Hệ quản trị cơ sở dữ liệu SQL Server................................................................ 9

1.2.1. Ngôn ngữ truy vấn dữ liệu có cấu trúc (SQL – Structure Query Language) .............9

1.2.1.1. Khái niệm về SQL ...................................................................................................9

i

1.2.1.2. Đặc điểm của SQL.................................................................................................10

1.2.1.3. Vai trò của SQL.....................................................................................................10

1.2.2. Microsoft SQL Server ..............................................................................................11

1.2.2.1. Tổng quan về Microsoft SQL Server ....................................................................11

1.2.2.2. Thành phần của Microsoft SQL Server.................................................................11

1.3. Tổng quan về nền tảng lập trình .NET Framework........................................ 12

1.3.1. Giới thiệu về .NET Framework ................................................................................12

1.3.2. Các tính năng của .NET Framework 4.0 ..................................................................13

1.4. Ngôn ngữ lập trình C# ...................................................................................... 15

1.4.1 Giới thiệt ngôn ngữ lập trình C# ...............................................................................15

1.4.2. Mô hình ba lớp .........................................................................................................17

1.4.2.1. Presentation Layer (Lớp giao tiếp người dùng) ....................................................17

1.4.2.2. Bussiness Logic Layer (Lớp xử lý chính dữ liệu) .................................................18

1.4.2.3. Data Access Layer (Lớp thao tác trực tiếp với cơ sở dữ liệu)...............................18

1.4.2.4. Quy trình hoạt động...............................................................................................18

1.4.3. Tổng quan về lập trình hướng chức năng.................................................................20

1.4.3.1. Giới thiệu ...............................................................................................................20

1.4.3.2. Các khái niệm ........................................................................................................20

CHƯƠNG 2: BÀI TOÁN QUẢN LÝ HOẠT ĐỘNG BÁN HÀNG TẠI CÔNG TY

TNHH SX TM & DV NGỌC THẢO ...............................................................................23

2.1. Tổng quan về Công ty Ngọc Thảo .................................................................... 23

2.1.1. Thông tin tổng quan về Công ty.............................................................................23

2.1.2. Cơ cấu tổ chức của Công ty Ngọc Thảo ................................................................24

2.1.3. Nhiệm vụ của các bộ phận........................................................................................24

2.1.4. Tình hình hoạt động sản xuất kinh doanh ................................................................25

2.1.5. Tình hình ứng dụng công nghệ thông tin của công ty..............................................26

ii

2.2. Quy trình hoạt động quản lý bán hàng của Công ty ...................................... 27

CHƯƠNG 3 : XÂY DỰNG PHẦN MỀM QUẢN LÝ BÁN HÀNG CHO CÔNG TY

TNHH SX TM & DV NGỌC THẢO ...............................................................................29

3.1. Phân tích hệ thống Quản lý bán hàng Công ty TNHH SX TM & DV

Ngọc Thảo ............................................................................................................... 29

3.1.1. Phân tích yêu cầu......................................................................................................29

3.1.1.1. Quản lý hệ thống ..................................................................................................29

3.1.1.2. Quản lý thông tin các đối tượng..........................................................................30

3.1.1.3. Quản lý xuất nhập..................................................................................................30

3.1.1.4. Tìm kiếm ................................................................................................................30

3.1.1.5. Báo cáo, thống kê ...................................................................................................30

3.1.2. Sơ đồ chức năng (BFD- Business Function Diagram)..........................................30

3.1.3. Sơ đồ ngữ cảnh(CD- Context Diagram) ................................................................33

3.1.4. Sơ đồ luồng dữ liệu(DFD- Data Flow Diagram)...................................................34

3.1.4.1. Sơ đồ phân rã mức 0 ............................................................................................35

3.1.4.2. Sơ đồ phân ra mức 1 cho chức năng 1.0.............................................................36

3.1.4.3. Sơ đồ luồng dữ liệu mức 1 cho chức năng 2.0 ......................................................36

3.1.4.4. Sơ đồ luồng dữ liệu mức 1 cho chức năng 3.0 ......................................................37

3.1.4.5. Sơ đồ luồng dữ liệu mức 1 cho chức năng 4.0 ......................................................37

3.1.4.6. Sơ đồ luồng dữ liệu mức 1 cho chức năng 4.0 ......................................................38

3.1.5. Sơ đồ luồng thông tin(IFD- Information Flow Diagram).....................................39

3.1.5.1. Sơ đồ luồng thông tin nhập kho ..........................................................................39

3.1.5.2 Sơ đồ luồng thông tin bán hàng ...........................................................................39

3.2. Thiết kế cơ sở dữ liệu........................................................................................ 40

3.2.1. Sơ đồ thực thể mối quan hệ (ERD – Entity Relationship Diagram) ........................41

3.2.2. Chuyển các mối quan hệ thành lược đồ quan hệ...................................................41

iii

3.2.3. Chuẩn hóa cơ sở dữ liệu ...........................................................................................42

3.3. Thiết kế thuật toán............................................................................................ 46

3.3.1. Kí hiệu sử dụng.........................................................................................................46

3.3.2. Một số giải thuật trong chương trình........................................................................47

3.3.2.1. Giải thuật đăng nhập..............................................................................................47

3.3.2.2. Giải thuật cập nhật dữ liệu.....................................................................................47

3.3.2.3. Giải thuật xóa dữ liệu ............................................................................................48

3.3.2.4. Giải thuật nhập kho ...............................................................................................48

3.3.2.5. Giải thuật bán hàng................................................................................................49

3.4. Thiết kế giao diện.............................................................................................. 49

PHẦN KẾT LUẬN ............................................................................................................51

TÀI LIỆU THAM KHẢO ..................................................................................................53

iv

DANH MỤC CÁC KÍ HIỆU VÀ CHỮ VIẾT TẮT

Diễn giải Ký hiệu (viết tắt)

BLL Business Logic Layers (lớp logic nghiệp vụ)

DAL Data Access Layers (lớp truy cập dữ liệu)

NCC Nhà cung cấp

SQL Structured Query Language (ngôn ngữ truy vấn có cấu trúc)

SX Sản xuất

SXKD Sản xuất kinh doanh

TNHH Trách nhiệm hữu hạn

TM & DV Thương mại và dịch vụ

v

DANH MỤC HÌNH ẢNH, SƠ ĐỒ, BIỂU ĐỒ

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

Hình 2.1. Sơ đồ tổ chức Công ty TNHH SX TM & DV Ngọc Thảo .............................24

Hình 3.1. Sơ đồ chức năng Quản lý bán hàng tại công ty Ngọc Thảo ...............................31

Hình 3.2. Sơ đồ chức năng Quản lý hệ thống.....................................................................31

Hình 3.3. Sơ đồ chức năng Quản lý danh mục...................................................................32

Hình 3.4. Sơ đồ chức năng Quản lý xuất nhập...................................................................32

Hình 3.5. Sơ đồ chức năng Tìm kiếm.................................................................................33

Hình 3.6. Sơ đồ chức năng Báo cáo thống kê ....................................................................33

Hình 3.7. Sơ đồ ngữ cảnh hệ thống quản lý bán hàng tại Công ty Ngọc Thảo..................34

Hình 3.8. Sơ đồ luồng dữ liệu mức 0 .................................................................................35

Hình 3.9. Sơ đồ luồng dữ liệu mức 1 cho chức năng 1.0 ...................................................36

Hình 3.10. Sơ đồ luồng dữ liệu mức 1 cho chức năng 2.0 .................................................36

Hình 3.11. Sơ đồ luồng dữ liệu mức 1 cho chức năng 3.0 .................................................37

Hình 3.12. Sơ đồ luồng dữ liệu mức 1 cho chức năng 4.0 .................................................37

Hình 3.13. Sơ đồ luồng dữ liệu mức 1 cho chức năng 4.0 .................................................38

Hình 3.14. Sơ đồ luồng thông tin nhập kho......................................................................39

Hình 3.15. Sơ đồ luồng thông tin bán hàng ......................................................................39

Hình 3.16. Sơ đồ thực thể mối quan hệ ..............................................................................41

Hình 3.17. Lược đồ cơ sở dữ liệu.......................................................................................46

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

vi

Hình 3.20. Giải thuật xóa dữ liệu .......................................................................................48

Hình 3.21. Giải thuật nhập kho ..........................................................................................48

Hình 3.22. Giải thuật bán hàng...........................................................................................49

Hình 3.23. Giao diện trang chủ ..........................................................................................49

Hình 3.24. Giao diện thống kê tồn kho ..............................................................................50

Hình 3.25. Giao diện thống kê khách hàng ........................................................................50

vii

DANH MỤC BẢNG BIỂU

Trang

Bảng 3.1. Cấu trúc dữ liệu bảng HoaDonBan ....................................................................42

Bảng 3.2. Cấu trúc dữ liệu bảng ChiTietHoaDonBan........................................................43

Bảng 3.3. Cấu trúc dữ liệu bảng HoaDonNhap..................................................................43

Bảng 3.4. Cấu trúc dữ liệu bảng ChiTietHoaDonNhap .....................................................43

Bảng 3.5. Cấu trúc dữ liệu bảng KhachHang .....................................................................43

Bảng 3.6. Cấu trúc dữ liệu bảng LoaiHang ........................................................................44

Bảng 3.7. Cấu trúc dữ liệu bảng MatHang .........................................................................44

Bảng 3.8. Cấu trúc dữ liệu bảng NhaCungCap ..................................................................44

Bảng 3.9. Cấu trúc dữ liệu bảng NhanVien........................................................................45

Bảng 3.10. Cấu trúc dữ liệu bảng DangNhap.....................................................................45

Bảng 3.11. Bảng kí hiệu sơ đồ thuật toán...........................................................................46

viii

PHẦN MỞ ĐẦU

1. Lý do chọn đề tài

Trong những năm gần đây, khoa học công nghệ Việt Nam đã từng bước hội nhập

vào dòng chảy của khoa học và công nghệ tiên tiến trên thế giới. Công nghệ thông tin ở

nước ta tuy mới, song tốc độ phát triển của nó rất nhanh và mạnh, đã chiếm một vị trí

quan trọng trong các ngành khoa học công nghệ, len lỏi vào tất cả các khía cạnh trong

đời sống xã hội cũng như trong công tác tổ chức, sản xuất quản lý.

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 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 của mình.

Hiện nay, các công ty làm về các mảng sản xuất, buôn bán và dịch vụ có quy mô

ngày càng lớn. Với nhiều khâu, trải qua nhiều công đoạn. Lượng hàng hóa thì sản xuất

và bán ra ngày càng nhiều. Số lượng khách hàng ngày càng tăng và thay đổi liên tục.

Với sự phát triển về quy mô của công ty qua các năm thì công tác quản lý ngày càng

trở nên phức tạp. Vì vậy, việc áp dụng công nghệ thông tin vào công việc quản lý đang

trở thành một nhu cầu thiết yếu và sống còn đối với mỗi công ty.

Với việc có nhiều hơn một cơ sở, mỗi lần bán hàng phải viết lại một hóa đơn và

lưu trữ chúng. Nếu muốn tìm lại những hóa đơn đó thì cần phải mất nhiều thời gian mà

có khi còn không tìm được đúng hóa đơn đó.

Việc thống kê báo cáo hàng tháng, hàng năm sẽ gặp rất nhiều khó khăn vì lượng

hóa đơn bán tăng quá nhiều. Nếu hàng ngày cứ lặp đi lặp lại nhiều lần như vậy thì

người quản lý sẽ gặp rất nhiều khó khăn trong công tác lưu trữ và quản lý.

Quản lý bán hàng là một vấn đề mà bất cứ công ty bán hàng nào cũng phải quan

tâm và phát triển nó hoàn thiện, tương thích với việc bán hàng của mình. Chúng ta luôn

thấy có những sai sót trong bán hàng, nhập hàng hay là những thông tin về khách hàng,

1

nhà cung cấp... Vì vậy yêu cầu đặt ra ở đây là làm thế nào cho việc bán hàng trở nên

hiệu quả nhất, giúp cho việc quản lý dễ dàng.

Tại Công ty TNHH SX TM & DV Ngọc Thảo, các quy trình quản lý bán hàng

hay quy trình kế toán vẫn đang rất thủ công và giám đốc công ty cũng như các nhân

viên bán hàng rất mong muốn có một phần mềm để nhằm giảm sức lao động của nhân

viên, giúp công tác quản lý nhanh chóng và nâng cao hiệu quả kinh doanh của công ty.

Chính vì các lý do trên mà em đã quyết định chọn đề tài “Xây dựng phần mềm quản lý

bán hàng cho Công ty Trách nhiệm hữu hạn Sản xuất Thương mại và Dịch vụ Ngọc

Thảo” để nghiên cứu trong quá trình thực tập này.

2. Mục tiêu nghiên cứu

* Mục tiêu tổng quát

Phân tích các nghiệp vụ quản lý và hoạt động kinh doanh của công ty Ngọc Thảo

nhằm tìm hiểu nhu cầu trao đổi thông tin, hoạt động kinh doanh của Công ty. Trên cơ sở

đó tiến hành xây dựng phần mềm quản lý bán hàng nhằm tin học hóa công tác quản lý của

Công ty một cách kịp thời và nhanh chóng.

* Mục tiêu cụ thể

- Nghiên cứu và nắm vững quy trình bán hàng, nhập hàng, quản lý thông tin.

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

C Sharp, MS SQL Server 2012, ADO.NET.

- Nắm vững cơ sở lý thuyết 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ý hoạt động bán hàng cho công ty Ngọc Thảo.

3. Đối tượng, phạm vi nghiên cứu

* Đối tượng nghiên cứu:

- Cơ chế, cách thức hoạt động của các nghiệp vụ bán hàng, quản lý thông tin, nhập

hàng tại Công ty Ngọc Thảo.

- Các công cụ, nền tảng lập trình để xây dựng hệ thống: ADO.NET, C Sharp, MS

SQL Server 2012.

- Quy trình xây dựng, phát triển hệ thống thông tin quản lý.

2

* Phạm vi nghiên cứu:

- Không gian: Hệ thống được xây dựng dựa trên việc khảo sát thực tế tại Công ty

Ngọc Thảo.

- Thời gian: 18/01/2016 – 15/5/2016.

4. Phương pháp nghiên cứu

Để nghiên cứu và xây dựng phần mềm quản lý phù hợp với yêu cầu thực tế hiện

nay ở Công ty Ngọc Thảo, đề tài đã sử dụng các phương pháp sau:

- Phương pháp thu thập thông tin:

+ Phương pháp quan sát trực tiếp: Trực tiếp quan sát tại công ty

+ Phương pháp thu thập tài liệu: Thông qua các nguồn thu thập tài liệu như sách

báo, mạng internet, tổng hợp các tài liệu, ngôn ngữ và công nghệ liên quan giúp nắm

vững quy định quản lý kinh doanh ở Công ty, từ đó xây dựng hệ thống hoàn thiện hơn.

+ Phương pháp phỏng vấn: Hỏi đáp nhân viên đang sử dụng phần mềm hiện tại,

nhu cầu và mong muốn của các nhân viên trong việc quản lý nhằm khắc phục và nâng

cao hiệu quả hơn trong quá trình quản lý.

- 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ý hoạt động kinh doanh tại Công ty.

- Phương pháp phát triển hệ thống thông tin: Dựa trên những thông tin đã thu

thập tiến hành phân tích, thiết kế hệ thống bao gồm các chức năng chính của phần

mềm sẽ xây dựng, 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 yêu cầu.

5. Dự kiến kết quả đạt được

- Nắm vững các quy trình nghiệp vụ bán hàng.

- Hiểu rõ các thông tin về hóa đơn nhập, xuất.

- 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 và phát triển hệ thống thông tin.

- Phần mềm Quản lý bán hàng cho Công ty Ngọc Thảo.

3

6. 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ề xây dựng phần mềm quản lý bán hàng

Chương 2: Bài toán quản lý hoạt động bán hàng tại Công ty TNHH SX TM & DV

Ngọc Thảo.

Chương 3: Xây dựng phần mềm quản lý bán hàng cho Công ty TNHH SX TM

& DV Ngọc Thảo.

4

NỘI DUNG NGHIÊN CỨU

CHƯƠNG 1: CƠ SỞ LÝ LUẬN VỀ XÂY DỰNG

PHẦN MỀM QUẢN LÝ BÁN HÀNG

1.1 Tổng quan về hệ thống thông tin quản lý

1.1.1. Khái niệm về hệ thống và hệ thống thông tin quản lý

1.1.1.1. Hệ thống và hệ thống quản lý

Hệ thống là tập hợp các phần tử tương tác được tổ chức nhằm thực hiện một

mục đích xác định. Các phần tử ở đây là tập hợp các phương tiện vật chất và nhân lực.

Tổ chức tạo thành một hệ thống mở, nghĩa là liên hệ với một môi trường. Một số phần

tử của hệ thống có sự tương tác với bên ngoài (cung ứng, thương mại, v.v…).

Đặc điểm cơ bản của hệ thống là tính tự động. Hệ thống quản lý là một hệ thống

có mục đích mang lại lợi nhuận hoặc lợi ích nào đó. Đặc điểm của hệ thống là có sự

tham gia của con người và có trao đổi thông tin.

1.1.1.2. Hệ thống thông tin quản lý

Hệ thống thông tin quản lý là hệ thống cung cấp thông tin cho công tác 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 và 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.

5

1.1.1.3. 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 sang 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 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ục vụ cho người giám sát hoạt động tác nghiệp của tổ chức.

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

6

1.1.3. Quy trình phát triển hệ thống thông tin quản lý

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

1.1.3.2. Giới thiệu về mô hình thác nước

Để xây dựng phần mềm, khóa luận này 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.

Nguồn: Mô hình thác nước (Waterfall model) - http://trantronglekhanh.wordpress.com

Hình 1.1. Mô hình thác nước

7

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 một phần

mềm:

Bướ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ả 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 một 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.

8

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.

Bướ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. Hệ quản trị cơ sở dữ liệu SQL Server

1.2.1. Ngôn ngữ truy vấn dữ liệu có cấu trúc (SQL – Structure Query Language)

1.2.1.1. Khái niệm về SQL

SQL (Structure Query Language) 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#…

9

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

- : Integer, number (n,p), varchar(n), char(n), nvarchar(n), data, …

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

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

10

- 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.2.2. Microsoft SQL Server

1.2.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.2.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ó một 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 - Constraint: 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.

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

11

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

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

.NET Framework là một nền tảng lập trình và cũng là một nền tảng thực thi ứng

dụng chủ yếu trên hệ điều hành Microsoft Windows được phát triển bởi Microsoft. Các

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ới mô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 ảo trong đó cung cấp

12

các dịch vụ như an ninh phần mềm (security), quản lý bộ nhớ (memory management), 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ối cơ

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

1.3.2. Các tính năng của .NET Framework 4.0

* Quản lý bộ nhớ:

Trong ứng dụng .NET Framework, CLR cung cấp các dịch vụ thay mặt cho các

ứng dụng. Nó giúp quản lý chặt chẽ bộ nhớ máy tính, kiểm tra và trả về các thông báo

13

như cài đặt ứng dụng mới, xóa ứng dụng cũ, dung lượng của các ổ đĩa có liên quan trong

hệ thống.

* Thư viện lập trình lớn:

Đây là nơi lưu trữ một lượng khá lớn các mã để xử lý các hoạt động ở mức độ thấp

thông thường để sử dụng khi cần thiết thay vì phải viết một lượng lớn các mã thông

thường. Nó cho phép bạn thiết lập kết nối cơ sở dữ liệu, truy cập Web, thực hiện các giải

thuật, cấu trúc dữ liệu, giao tiếp thông qua mạng và nhiều tính năng khác nữa.

* Tạo nguồn phát triển công nghệ:

.NET Framework bao gồm các thư viện cho các khu vực cụ thể phát triển ứng

dụng 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ụ.

* Ngôn ngữ có khả năng tương tác lớn:

Với tính năng này, thói quen viết bằng một ngôn ngữ có thể truy cập vào các ngôn

ngữ khác, và các lập trình viên có thể tập trung vào việc tạo ra các ứng dụng trong ngôn

ngữ hoặc ngôn ngữ ưa thích của họ.

* Cung cấp môi trường lập trình phù hợp:

Chương trình được thiết kế giúp cung cấp môi trường lập trình hướng đối tượng

đối với các mã phù hợp, cung cấp môi trường mã nhằm thúc đẩy thực thi an toàn.

* Chỉ thực hiện tắt khi lập trình và tự động tắt:

.NET Framework 4.0 sẽ tự động hoạt động khi bạn thực hiện những công việc liên

quan đến việc thiết kế Web, sử dụng những ngôn ngữ lập trình như Visual Basic, C#....

Chương trình sẽ tự động tắt ngay khi công việc của bạn kết thúc.

* Tự động nâng cấp phiên bản mới:

Một thông báo sẽ được hiển thị ngay khi nhà sản xuất đưa ra thị trường phiên bản

mới nhất, bạn có thể dựa theo những thông tin này để tải về máy phiên bản mới nhất để sử

dụng những tính năng mới mà nhà sản xuất cung cấp. Bạn sẽ không phải mất công lên

14

mạng tìm kiếm những phiên bản mới mà có thể download ngay lập tức nhờ việc click

chuột vào thông báo này.

* Hỗ trợ nhiều loại ngôn ngữ khác nhau:

Với việc liên tục cập nhật những phiên bản mới nhất giúp người dùng lựa chọn sử

dụng loại ngôn ngữ nào phù hợp nhất với mình. Chương trình cung cấp các loại ngôn ngữ

khác nhau như Anh, Pháp, Đức, Ý, Nhật, Tây Ban Nha, Hy Lạp. Ngoài ra, sau khi cài đặt,

chương trình cũng được mặc định mở bằng giao diện Tiếng Anh.

* Tương thích với hệ điều hành của Windows:

Microsoft .NET Framework 4.0 hoàn toàn tương thích với mọi phiên bản của hệ

điều hành Windown như Windows 9x/ME, Windows XP, Windows Vista, Windows 7 và

cả phiên bản mới nhất Windows 8.

1.4. Ngôn ngữ lập trình C#

1.4.1 Giới thiệt 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 và đội

thiết kế của ông, 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

MSIL (một dạng mã trung gian) 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à CLR (.NET Common Language Runtime), 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++

15

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 dừ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#

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

16

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

1.4.2. Mô hình ba lớp

Trong phát triển ứng dụng, để dễ quản lý các thành phần của hệ thống, cũng như

không bị ảnh hưởng về các thay đổi, người ta hay nhóm các thành phần có cùng chức

năng lại với nhau và phân chia trách nhiệm cho từng nhóm để công việc không bị chồng

chéo và ảnh hưởng lẫn nhau.

Trong phát triển phần mềm, người ta cũng áp dụng cách phân chia chức năng này.

Thuật ngữ kiến trúc đa tầng/nhiều lớp, mỗi lớp sẽ thực hiện một số chức năng nào đó,

trong đó mô hình ba lớp là phổ biến nhất.

Ba lớp đó là: Presentation Layer (Lớp giao tiếp người dùng), Bussines Logic (Lớp

sử lý chính dữ liệu) và Data Accses (Lớp thao tác). Các lớp này sẽ giao tiếp với nhau qua

thông qua các dịch vụ 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 lớp kia làm gì mà chỉ cần biết lớp kia cung cấp dịch vụ gì cho mình và sử dụng nó mà

thôi.

1.4.2.1. Presentation Layer (Lớp giao tiếp người dùng)

Lớp này làm nhiệm vụ giao tiếp với người dùng cuối để thu thập dữ liệu và hiển thị

kết quả/dữ liệu thông qua các thành phần trong giao diện người sử dụng. Lớp này sẽ sử

dụng các dịch vụ do lớp Bussiness Logic cung cấp.

Trong nền tảng .NET thì có thể dùng Windows Forms, ASP.NET để hiện thực lớp

này.

+ Là những phần tử chịu trách nhiệm thu thập và hiển thị thông tin cho người dùng

cuối. Trong Windows Forms đó là các TextBox, các Button, DataGridView…

+ Có nhiệm vụ kiểm tra, xử lý các dữ liệu nhập vào (ví dụ như TextBox nhập số

điện thoại thì chỉ nhập được số…)

17

+ Tiếp nhận các Event của người dùng, kiểm tra dữ liệu được nhập vào, gửi yêu

cầu xử lý xuống tầng kế tiếp.

Với lớp giao tiếp người dùng chúng ta không nên sử dụng trực tiếp dịch vụ của lớp

Data Access mà nên sử dụng thông qua các dịch vụ của lớp Bussiness Logic vì khi bạn sử

dụng trực tiếp như vậy, bạn có thể bỏ qua các rang buộc, các logic nghiệp vụ mà ứng

dụng cần có.

1.4.2.2. Bussiness Logic Layer (Lớp xử lý chính dữ liệu)

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 lớp

Data Access cung cấp, và cung cấp các dịch vụ cho lớp Presentation. 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.

Đây là lớp chính xử lý các dữ liệu trước khi được đưa lên hiển thị trên màn hình

hoặc xử lý các dữ liệu trước khi lưu dữ liệu xuống cơ sở dữ liệu. Đây là nơi kiểm tra các

yêu cầu nghiệp vụ, tính toán các yêu cầu nghiệp vụ.

1.4.2.3. Data Access Layer (Lớp thao tác trực tiếp với cơ sở dữ liệu)

Lớp này thực hiện các nghiệp vụ liên quan đến lưu trữ và truy suất dữ liệu của ứng

dụng. Thường lớp này sử dụng dịch vụ của các hệ quản trị cơ sở dữ liệu như SQL Server,

Ocracle… để thực hiện các nhiệm vụ của mình. Trong lớp này các thành phần chính là

Data Access Logic, Data Soucres.

Lớp này có nhiệm vụ chính là đọc cơ sở dữ liệu lên, cập nhật cơ sở dữ liệu, sửa cơ

sở dữ liệu…

1.4.2.4. Quy trình hoạt động

* Quy trình hiển thị dữ liệu

Data Access Layer sẽ kết nối với Database và lấy dữ liệu có thể bằng câu lệnh

select hoặc từ một thủ tục Proceduce, sau khi lấy được dữ liệu nó sẽ đẩy lên Bussiness

layer, tại đây Bussiness điều chỉnh tùy biến phù hợp với yêu cầu rồi đẩy nó lên GUI và tại

GUI nó sẽ hiển thị lên cho người dùng.

18

* Quy trình đưa dữ liệu xuống

Người dùng thao tác với GUI layer sau đó ra lệnh thực hiện (ví dụ như insert) sau

đó hệ thống sẽ kiểm tra các thông tin người dùng nhập vào nếu thảo điều kiện thì đi

xuống tiếp Bussiness layer để tiếp tục thực hiện các nghiệp vụ trong đó, sau khi xong thì

dữ liệu được đẩy xuống Data Access Layer sau đó Data Access Layer sẽ thực thi nó

xuống database.

* Những ưu điểm khi sử dụng mô hình ba 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 để

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

* Cách xử lý lỗi trong mô hình ba lớp

Mỗi khi gặp lỗi (các trường hợp không đúng dữ liệu) thì đang ở lớp nào thì đưa lên

trên lớp cao hơn nó một bậc cho tới GUI thì sẽ đưa ra có người dùng biết.

19

1.4.3. Tổng quan về lập trình hướng chức năng

1.4.3.1. Giới thiệu

Lập trình hướng chức năng (Procedure – Oriented Programming, viết tắt là POP).

Khi máy tính được phát minh lần đầu tiên, chúng cần được lập trình một cách rõ ràng với

những cấu trúc đơn giản và “phần mềm” chỉ đơn thuần là một tập hợp của các lệnh rất

đơn giản này kết hợp với nhau mà có thể chạy theo trình tự.

Phươ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.4.3.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

20

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.

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

21

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

22

CHƯƠNG 2: BÀI TOÁN QUẢN LÝ HOẠT ĐỘNG BÁN HÀNG TẠI

CÔNG TY TNHH SX TM & DV NGỌC THẢO

2.1. Tổng quan về Công ty Ngọc Thảo

2.1.1. Thông tin tổng quan về Công ty

Tên công ty: Công ty TNHH Sản Xuất Thương Mại và Dịch Vụ Ngọc Thảo.

Địa Chỉ: 157 Phan Đăng Lưu, Phường Phú Hòa, Thành Phố Huế, Thừa Thiên

Huế.

Người đại diện theo pháp luật: Nguyễn Thị Hiếu.

Ngày 20/08/2008 Công ty được ra đời và chính thức đi vào hoạt động.

Công ty hoạt động theo phương thức tự quản lý, tự bỏ vốn và chịu trách nhiệm với

phần vốn của mình, luôn đáp ứng đủ yêu cầu Nhà nước đề ra đối với loại hình Công ty

TNHH, Công ty TNHH SX TM & DV Ngọc Thảo đã tiến hành triển khai những chiến

lược kinh tế, tuyển dụng lao động, cán bộ nhân viên có nghiệp vụ vững vàng, có ý thức

chấp hành ký luật cao, năng động sáng tạo trong công việc, luôn chịu khó học hỏi, tiếp

thu khoa học kỹ thuật mới, áp dụng thực tế vào công việc.

Vì vậy, công ty đã từng bước hào nhập vào thị trường trong nước, chủ động trong

việc kinh doanh, cũng như các mặt hàng phân phối trên thị trường chất lượng tốt, tạo uy

tín cho khách hàng.

Công ty kinh doanh 4 ngành nghề chính gồm:

- Sữa chữa máy móc, thiết bị - mã ngành: 33120.

- Bán buôn thiết bị và linh kiện điện tử, viễn thông – mã ngành: 46520.

- Bán buôn máy móc, thiết bị và phụ tùng khác – mã ngành: 4659.

- Bán lẻ đồ điện gia dụng, giường, tủ, bàn, ghế và đồ nội thất tương tự, đèn và

bộ đèn điện, đồ dùng gia đình khác – mã ngành: 4759.

23

2.1.2. Cơ cấu tổ chức của Công ty Ngọc Thảo

Hình 2.1. Sơ đồ tổ chức Công ty TNHH SX TM & DV Ngọc Thảo

(Nguồn: Công ty TNHH SX TM &DV Ngọc Thảo)

2.1.3. Nhiệm vụ của các bộ phận

- Giám đốc: Là người đứng tên giấy phép kinh doanh, trực tiếp điều hành mọi hoạt

động của Công ty, khai thác và tìm kiếm thị trường, chủ động trong các phương thức quản

lý khoa học để nâng cao hiệu quả kinh doanh và khả năng cạnh tranh. Mục tiêu là phải

làm sao để đưa doanh nghiệp mình ngày cảng phát triển, nâng cao uy tín của doanh

nghiệp, đáp ứng nhu cầu của khách hàng một cách tốt nhất.

- Phòng kế toán

+ Kế toán thuế: Kiểm tra định kỳ hàng hóa, tài sản, tiền mặt của doanh nghiệp.

Hạch toán đầy đủ, chính xác hiệu quả sản xuất kinh doanh để báo cáo cho giám đốc cũng

như các cơ quan có thẩm quyền. Lập đầy đủ và đúng các báo cáo kế toán theo quy định,

thực hiện kê khai báo cáo thuế, tính toán và trích nộp đủ, kịp thời các khoản nộp ngân

sách, các quỹ để lại Công ty. Phải cập nhật thông tin về thuế thật nhanh chóng và chính

xác vì luật thuế luôn thay đổi.

+ Kế toán bán hàng: Ghi chép, phản ánh kịp thời, đầy đủ và chính xác tình hình

bán hàng của Công ty trong kỳ. Theo dõi mặt hàng bán trong ngày, hàng tồn trong kho;

lập hóa đơn và phiếu xuất hàng khi có yêu cầu mua hàng từ khách hàng, lên kế hoạch

24

nhập hàng khi có yêu cầu nhập hàng từ kho. Kiểm tra, đốc thúc tình hình thu hồi tiền

hàng, quản lý khách hàng nợ và tiền nợ.

+ Thủ quỹ: Là người cân đối thu chi cũng như quản lý các khoản xuất nhập về tiền

mặt, tài sản. Theo dõi hàng hóa và định giá sản phẩm bán ra. Hàng ngày thủ quỹ có nhiệm

vụ kiểm kê quỹ tiền mặt thực tế phát sinh và đối chiếu sổ sách ký vào sổ quỹ.

- Thủ kho: chịu trách nhiệm quản lý nhân viên bốc xếp và tài xế, đảm bảo hàng

xuất – nhập đúng số lượng. Thường xuyên cập nhật hàng tồn để thông báo với kế toán

bán hàng khi có nhu cầu nhập hàng.

+ Nhân viên bốc xếp và tài xế: Gồm có 8 người (4 nhân viên bốc xếp và 4 tài xế),

chịu trách nhiệm giao hàng theo đúng đơn hàng từ bộ phận bán hàng.

- Bộ phận bán hàng: tìm hiểu nhu cầu khách hàng, phục vụ, chăm sóc khách

hàng, tìm kiếm khách hàng mới, mở rộng thị trường.

2.1.4. Tình hình hoạt động sản xuất kinh doanh

Để biết được tình hình hoạt động sản xuất kinh doanh của Công ty ta dựa vào bảng

kết quả hoạt động kinh doanh, bảng kết quả này có ý nghĩa quan trọng phản ánh hiệu quả

kinh doanh của Công ty trong một thời gian nhất định, nó cho biết liệu hoạt động kinh

doanh của doanh nghiệp có đem lại lợi nhuận hay không, cho biết Công ty chi bao nhiêu

tiền để sinh lời.

Bảng 2.1. Kết quả hoạt động sản xuất kinh doanh qua 3 năm 2012 – 2014

ĐVT: Đồng

2013/2012

2014/2013

Năm 2012

Năm 2013

Năm 2014

Chỉ tiêu

+/-

%

+/-

%

(VNĐ)

(VNĐ)

(VNĐ)

Doanh thu bán hàng

650.400.000 711.250.000 850.550.000 60.850.000

9,36 139.300.000 19,59

641.100.000 701.093.000 770.870.000 59.993.000

9,35

69.777.000

9,95

Doanh thu thuần

456.800.000 525.700.000 550.300.000 68.900.000

15,08

24.600.000

4,68

Giá vốn hàng bán

120.700.000 142.735.000 150.267.000 22.035.000

18,26

7.532.000

5,28

Lợi nhuận gộp

Chi phí bán hàng

16.700.000

19.350.000

21.000.000

2.650.000

15,87

1.650.000

8,53

25

15.950.000

16.860.000

19.220.000

910.000

5,71

2.360.000 14,00

Chi phí quản lý

90.240.000 120.625.000 131.520.000 30.385.000

33,67

10.895.000

9,03

Lợi nhuận từ SXKD

5.000.000

7.100.000

7.000.000

2.100.000

42,00

2.000.000 40,00

Lợi nhuận khác

100.560.000 129.030.000 145.270.000 28.470.000

28,31

6.240.000 4,84

Lợi nhuận trước thuế

80.152.000 100.890.000 120.207.000 20.738.000

25,87

19.317.000 19,14

Lợi nhuận sau thuế

(Nguồn: Phòng Kế toán của công ty)

Tình hình tài chính của công ty qua mỗi năm đều tăng nhanh và đạt được những thành

công nhất định. Mặc dù trong nền kinh tế còn gặp nhiều khó khăn, nhưng bằng sự nỗ lực của

toàn bộ ban lãnh đạo công ty và các nhân viên trong công ty, hay sự đổi mới về máy móc thiết

bị, cũng như có nhiều chính sách ưu đãi cho các cán bộ nhân viên thúc đẩy sự hăng say làm

việc của họ, làm cho doanh thu mỗi năm tăng lên đáng kể. Cụ thể năm 2013 tăng 60,850,000

VND so với năm 2012, năm 2014 tăng 139,300,000 VND so với năm 2013. Từ đó dẫn đến lợi

nhuận của công ty qua các năm cũng tăng. Điều đó chứng tỏ công ty đang ngày càng đạt được

nhiều thành công và đang từng bước phát triển vững chắc. Là một công ty với quy mô không

lớn nhưng doanh thu hằng năm mà công ty thu về vẫn là những con số không hề nhỏ, điều này

chứng tỏ khả năng kinh doanh của công ty so với các đối thủ cạnh tranh không thể xem

thường. Công ty đang từng bước phát triển và đang trên đà đưa thương hiệu của mình sánh vai

với các thương hiệu khác.

2.1.5. Tình hình ứng dụng công nghệ thông tin của công ty

Mặc dù công ty đã thành lập và có 8 năm kinh nghiệm trên thị trường, nhưng khả

năng ứng dụng công nghệ thông tin của công ty còn chưa tốt. Tính đến thời điểm hiện tại,

công ty vẫn chưa có phần mềm bán hàng hay phần mềm kế toán nào cả, chưa có website

để giới thiệu, quảng bá sản phẩm cách bán hàng vẫn theo kiểu truyền thống. Đây là những

yếu thế của công ty.

Số máy tính hiện có tại công ty chỉ có 5 cái. Trong đó có 3 cái tại 2 quầy bán hàng

của công ty và 2 cái là của kế toán. Việc sử dụng phần mềm hay là thương mại điện tử

vẫn còn là một điều lạ lẫm với nhân viên cũng như giám đốc công ty.

26

2.2. Quy trình hoạt động quản lý bán hàng của Công ty

* Mô tả bài toán

Công ty Ngọc Thảo với 2 cơ sở chính đặt tại 107 và 109 Phan Đăng Lưu, là 1

công ty chuyên mua bán các thiết bị điện tử và điện dân dụng.

Doanh nghiệp hiện kinh doanh trong lĩnh vực hàng điện máy, điện lạnh (tivi, tủ

lạnh, điều hòa, máy giặt..), số lượng chủng loại mặt hàng khá đa dạng, với các mặt

hàng phổ biến của các nhãn hiệu uy tín như: TOSHIBA, SAMSUNG, LG, SONY,…

Cửa hàng có nhu cầu quản lý việc nhập hàng, bán hàng, báo cáo số lượng doanh

thu, quản lý các chứng từ liên quan tới việc bán hàng.

Hiện tại cửa hàng còn quản lý bằng các phương pháp thủ công. Cửa hàng đang

cần tin học hóa việc quản lý này.

Với các hoạt động chính là:

*Bán hàng:

+ Bán lẻ: khách hàng đến trực tiếp mua hàng. Sau khi mua sẽ có 1 hóa đơn mua

hàng với các thông tin: tên hàng, số lượng, thành tiền chi tiết, tổng tiền hóa đơn, nhân

viên lập hóa đơn.

+ Bán sỉ: Việc bán sỉ ở Công ty Ngọc Thảo khá hạn chế. Khi nhận được đơn đặt

hàng từ các đại lý nhỏ hơn, theo yêu cầu của khách hàng. Nhân viên bán hàng sẽ xem

xét lại kho và sẽ trả lời lại cho khách hàng …

* Nhập hàng:

Nguồn hàng được lấy từ các nhà đại lý lớn hơn ở các Công ty ở Đà Nẵng, Hồ

Chí Minh…

Mỗi lần công ty có nhu cầu mua hàng tại Công ty hoặc các đại lý lớn hơn thì sẽ

lập ra một danh sách hàng cần mua để đưa lên cho nhà cung cấp biết để họ có thể

chuẩn bị các mặt hàng. Khi nhận được hàng sẽ có phiếu mua hàng do bên nhà cung

cấp đưa xuống và công ty sẽ dùng nó để lưu lại các thông tin cho kì tổng kết cuối

27

tháng cũng như đó là chứng từ dùng để thanh toán cho nhà cung cấp và để dùng cho

việc quyết toán thuế sau này.

Phiếu nhập hàng gồm các thông tin sau: ngày nhập, số lượng, đơn giá, thành

tiền, các thông tin về công ty và thông tin nhà cung cấp hàng đó.

Nhân viên:

Nhân viên giao hàng: chuyên phụ trách công việc chở hàng tới địa chỉ do khách

hàng yêu cầu nếu như họ có nhu cầu hoặc vận chuyển hàng về công ty.

Nhân viên bán hàng: phụ trách công việc bán hàng, lập các hóa đơn và lưu lại

các thông tin của khách hàng khi tới mua hàng.

Nhân viên kế toán: quyết toán sổ sách, kế khai thuế, và các công việc liên quan

tới kế toán.

Nhân viên kho: chuyên phụ trách công việc nhập - xuất hàng vào kho.

Nhân viên của công ty được lưu giữ lại các thông tin như: họ tên, ngày sinh, quê

quán, địa chỉ, điên thoại.

Ngoài ra nhân viên còn có nhiệm vụ nhận hàng từ các nhà cung cấp thông qua

đơn hàng mua có ngày đặt hàng, nhà cung cấp và tổng giá tiền là bao nhiêu. Mỗi đơn

hàng sẽ có chi tiết đơn hàng mua riêng cho biết đã mua những mặt hàng nào với số

lượng bao nhiêu và thành tiền là bao nhiêu.

28

CHƯƠNG 3 : XÂY DỰNG PHẦN MỀM QUẢN LÝ BÁN HÀNG CHO

CÔNG TY TNHH SX TM & DV NGỌC THẢO

3.1. Phân tích hệ thống Quản lý bán hàng Công ty TNHH SX TM & DV

Ngọc Thảo

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.

3.1.1.1. Quản lý hệ thống

Phần mềm có nhiệm vụ quản lý thông tin về các tài khoản sử dụng phần mềm của

đơn vị và công việc này chỉ được sử dụng bởi người quản trị. Mỗi nhân viên trong công ty

được cấp một tài khoản để sử dụng phần mềm.

Mỗi tài khoản được phân quyền theo từng nhiệm vụ của các bộ phận mà nhân

viên đó làm việc. Phần mềm sẽ cung cấp một tài khoản cao nhất cho giám đốc công ty

cũng là người quản trị phần mềm, tài khoản có thể sử dụng tất cả các chức năng của

phần mềm và có thể cấp phát, quản lý các tài khoản khác.

29

3.1.1.2. Quản lý thông tin các đối tượng

Phần mềm có nhiệm vụ quản lý thông tin khách hàng, nhà cung cấp, hàng hóa,

loại hàng. Chức năng này cho phép người dùng cập nhật thông tin mới hoặc sửa đổi

thông tin các đối tượng bởi người quản lý.

3.1.1.3. Quản lý xuất nhập

Chức năng này quản lý việc bán hàng cho khách hàng và thu tiền của khách hàng,

quản lý việc nhập mua hàng hóa từ nhà cung cấp, cũng như việc xuất kho đối với một hàng

hóa nào đó.

3.1.1.4. Tìm kiếm

Chức năng này quản lý việc tìm kiếm các thông tin của các đối tượng như: nhà cung

cấp, khách hàng, hóa đơn.

3.1.1.5. Báo cáo, thống kê

Chức năng này có nhiệm vụ thống kê hàng tồn kho và báo cáo doanh thu cho người

được phân quyền xem.

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ôi đưa ra sơ đồ chức năng của phần mềm với 5 chức năng sau:

30

Hình 3.1. Sơ đồ chức năng Quản lý bán hàng tại công ty Ngọc Thảo

Hình 3.2. Sơ đồ chức năng Quản lý hệ thống

31

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ý xuất nhập

32

Hình 3.5. Sơ đồ chức năng Tìm kiếm

Hình 3.6. Sơ đồ chức năng Báo cáo thống kê

3.1.3. Sơ đồ ngữ cảnh(CD- 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à:

33

- 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 Công ty Ngọc Thảo

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:

34

3.1.4.1. Sơ đồ phân rã mức 0

Hình 3.8. Sơ đồ luồng dữ liệu mức 0

35

3.1.4.2. Sơ đồ phân ra mức 1 cho chức năng 1.0

Hình 3.9. Sơ đồ luồng dữ liệu mức 1 cho chức năng 1.0

3.1.4.3. Sơ đồ luồng dữ liệu mức 1 cho chức năng 2.0

Hình 3.10. Sơ đồ luồng dữ liệu mức 1 cho chức năng 2.0

36

3.1.4.4. Sơ đồ luồng dữ liệu mức 1 cho chức năng 3.0

Hình 3.11. Sơ đồ luồng dữ liệu mức 1 cho chức năng 3.0

3.1.4.5. Sơ đồ luồng dữ liệu mức 1 cho chức năng 4.0

Hình 3.12. Sơ đồ luồng dữ liệu mức 1 cho chức năng 4.0

37

3.1.4.6. Sơ đồ luồng dữ liệu mức 1 cho chức năng 4.0

Hình 3.13. Sơ đồ luồng dữ liệu mức 1 cho chức năng 4.0

38

3.1.5. Sơ đồ luồng thông tin(IFD- Information Flow Diagram)

3.1.5.1. Sơ đồ luồng thông tin nhập kho

Hình 3.14. Sơ đồ luồng thông tin nhập kho

3.1.5.2 Sơ đồ luồng thông tin bán hàng

Hình 3.15. Sơ đồ luồng thông tin bán hàng

39

3.2. Thiết kế cơ sở dữ liệu

Từ sơ đồ chức năng, sơ đồ luồng dữ liệu và các đầu vào đầu ra của hệ thống hiện

tại, có thể tìm ra các tập thực thể và các mối quan hệ giữa các tập thực thể trong hệ thống

Quản lý bán hàng của Công ty Ngọc Thảo, bao gồm:

* Thực thể: Nhân viên

- Quản lý thông tin nhân viên.

- Thuộc tính: Mã nhân viên, tên nhân viên, giới tính, ngày sinh, địa chỉ, số điện

thoại, email, lương, phụ cấp, mật khẩu đăng nhập.

*Thực thể: Nhà cung cấp

- Quản lý thông tin nhà cung cấp.

- Thuộc tính: Mã nhà cung cấp, tên nhà cung cấp, địa chỉ, số điện thoại, email,

số tài khoản, ghi chú.

* Thực thể: Khách hàng

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

- Thuộc tính: Mã khách hàng, tên khách hàng, địa chỉ, số điện thoại, email.

* Thực thể: Mặt hàng

- Quản lý thông tin các mặt hàng.

- Thuộc tính: Mã mặt hàng, tên mặt hàng, đơn giá bán, thời gian bảo hành, ghi

chú, hình ảnh.

* Thực thể: Loại hàng

- Quản lý thông tin các loại hàng để từ đó có thể quản lý các mặt hàng.

- Thuộc tính: Mã loại hàng, tên loại hàng, mô tả loại hàng.

* Thực thể: Hóa đơn nhập

- Quản lý thông tin nhập hàng từ nhà cung cấp.

- Thuộc tính: Mã hóa đơn nhập, ngày nhập, ghi chú, tổng tiền nhập.

* Thực thể: Chi tiết hóa đơn nhập

- Quản lý các chi tiết trong hóa đơn nhập.

40

- Thuộc tính: Giá nhập, số lượng, thành tiền chi tiết.

* Thực thể: Hóa đơn bán

- Quản lý thông tin bán hàng cho khách hàng.

- Thuộc tính: Mã hóa đơn bán, ngày bán, ghi chú, tổng tiền bán.

* Thực thể: Chi tiết hóa đơn bán

- Quản lý chi tiết trong hóa đơn bán.

- Thuộc tính: Giá bán, số lượng bán, mức giảm giá, tổng tiền.

3.2.1. Sơ đồ thực thể mối quan hệ (ERD – Entity Relationship Diagram)

Hình 3.16. Sơ đồ thực thể mối quan hệ

3.2.2. Chuyển các mối quan hệ thành lược đồ quan hệ

- Mỗi mối quan hệ giữa các tập thực thể sẽ được chuyển thành một lược đồ quan

hệ có tên là tên của mối quan hệ và nhận các thuộc tính là khóa của các tập thực thể tham

gia vào mối quan hệ và có thể thêm vào thuộc tính riêng (nếu có).

+ Giữa hai tập thực thể có mối quan hệ n-1 thì khóa chính của tập thực thể bên 1 sẽ

làm khóa phụ của tập thực thể bên n.

41

+ Giữa hai tập thực thể có mối quan hệ n-n thì tập thực thể mới được xây dựng nên

sẽ lấy khóa chính của hai tập thực thể tham gia vào mối quan hệ n-n làm khóa chính.

Lược đồ: CHITIETHOADON (MaHoaDon, MaMatHang, GiaBan, SoLuong,

ThanhTien)

Diễn giải: Chi tiết hóa đơn bán (Mã hóa đơn, mã hàng, giá bán,số lượng, thành

tiền)

Lược đồ: CHITIETPHIEUNHAP (MaHoaDonNhap, MaMatHang, DonGia,

SoLuong, ThanhTien)

Diễn giải: Quá trình công tác (Mã phiếu nhập, mã hàng, đơn giá nhập, số

lượng, thành tiền)

3.2.3. Chuẩn hóa cơ sở dữ liệu

Sau khi tiến hành chuẩn hóa các tập thực thể và các mối quan hệ, ta thu được các

bảng dữ liệu sau:

Bảng 3.1. Cấu trúc dữ liệu bảng HoaDonBan

Thuộc tính Kiểu dữ liệu Diễn giải

MaHDB Nchar(10) Mã hóa đơn bán hàng

MaKH Nchar(10) Mã khách hàng

MaNV Nchar(10) Mã nhân viên

NgayBan Datetime Ngày bán hàng

GhiChu Nvarchar(200) Ghi chú

TongTien Float Tổng tiền hàng khách hàng mua

42

Bảng 3.2. Cấu trúc dữ liệu bảng ChiTietHoaDonBan

Thuộc tính Kiểu dữ liệu Diễn giải

MaHDB Nchar(10) Mã hóa đơn bán hàng

MaMH Nchar(10) Mã mặt hàng

GiaBan Decimal(18,0) Giá bán

SoLuong Int Số lượng hàng được bán

MucGiamGia Decimal(18,0) Mức giảm giá với từng mặt hàng

ThanhTien Decimal(18,0) Thành tiền từng mặt hàng có trong chi tiết

Bảng 3.3. Cấu trúc dữ liệu bảng HoaDonNhap

Thuộc tính Kiểu dữ liệu Diễn giải

Nchar(10) MaHDN Mã hóa đơn nhập hàng

Nchar(10) MaNCC Mã nhà cung cấp

Nchar(10) Mã nhân viên MaNV

Datetime NgayNhap Ngày nhập hàng

Nvarchar(200) Ghi chú GhiChu

Float TongTien Tổng tiền hàng công ty nhập vào

Bảng 3.4. Cấu trúc dữ liệu bảng ChiTietHoaDonNhap

Thuộc tính Kiểu dữ liệu Diễn giải

Nchar(10) MaHDN Mã hóa đơn bán hàng

Nchar(10) Mã khách hàng MaMH

Float GiaNhap Giá nhà cung cấp đưa ra

Int SoLuong Số lượng hàng nhập

Float ThanhTien Thành tiền

Bảng 3.5. Cấu trúc dữ liệu bảng KhachHang

Thuộc tính Kiểu dữ liệu Diễn giải

MaKH Nchar(10) Mã khách hàng

43

Nvarchar(50) Tên khách hàng TenKH

Nvarchar(200) DiaChi Địa chỉ

Nchar(11) SDT Số điện thoại

Nvarchar(50) Email Email

Bảng 3.6. Cấu trúc dữ liệu bảng LoaiHang

Thuộc tính Kiểu dữ liệu Diễn giải

Nchar(10) MaLH Mã loại hàng

Nvarchar(200) TenLH Tên loại hàng

Nvarchar(200) MoTa Mô tả loại hàng

Bảng 3.7. Cấu trúc dữ liệu bảng MatHang

Thuộc tính Kiểu dữ liệu Diễn giải

Nchar(10) MaMH Mã mặt hàng

Nchar(10) MaLH Mã loại hàng

Nvarchar(50) TenMH Tên mặt hàng

Float DonGia Đơn giá hàng

Nvarchar(50) TGBH Thời gian bảo hành

Nvarchar(200) Ghi chú GhiChu

HinhAnh Image Hình ảnh về hàng hóa

Bảng 3.8. Cấu trúc dữ liệu bảng NhaCungCap

Thuộc tính Kiểu dữ liệu Diễn giải

MaNCC Nchar(10) Mã nhà cung cấp

TenNCC Nvarchar(50) Tên nhà cung cấp

DiaChi Nvarchar(200) Địa chỉ

SDT Nchar(11) Số điện thoại

Email Nvarchar(50) Email

STK Nvarchar(50) Số tài khoản

44

GhiChu Nvarchar(200) Ghi chú

Bảng 3.9. Cấu trúc dữ liệu bảng NhanVien

Thuộc tính Kiểu dữ liệu Diễn giải

MaNV Nchar(10) Mã nhân viên

TenNV Nvarchar(50) Tên nhân viên

GioiTinh Bit Giới tính

NgaySinh Datetime Ngày sinh

DiaChi Nvarchar(200) Địa chỉ

SDT Nchar(11) Số điện thoại

Email Nvarchar(50) Email

Luong Float Lương

PhuCap Float Phụ cấp

MaCV Nchar(10) Mã chức vụ

MatKhau Nvarchar(50) Mật khẩu đăng nhập

Bảng 3.10. Cấu trúc dữ liệu bảng DangNhap

Thuộc tính Kiểu dữ liệu Diễn giải

MaCV Nchar(10) Mã chức vụ

TenCV Nvarchar(50) Tên chức vụ

PhanQuyen Nvarchar(50) Phân quyền

NhanVien Nvarchar(50) Nhân viên

NhaCungCap Nvarchar(50) Nhà cung cấo

BanHang Nvarchar(50) Bán hàng

NhapHang Nvarchar(50) Nhập hàng

ThongKe Nvarchar(50) Thống kê

45

3.2.4. Lược đồ quan hệ của cơ sở dữ liệu

Hình 3.17. Lược đồ cơ sở dữ liệu

3.3. Thiết kế thuật toán

3.3.1. Kí hiệu sử dụng

Bảng 3.11. Bảng kí hiệu sơ đồ thuật toán

Hình vẽ Ý nghĩa

Bắt đầu hoặc kết thúc quy

trình

Khối xử lý

So sánh, rẽ nhánh

Hướng đi của luồng xử lý

46

3.3.2. Một số giải thuật trong chương trình

3.3.2.1. Giải thuật đăng nhập

Hình 3.18. Giải thuật đăng nhập 3.3.2.2. Giải thuật cập nhật dữ liệu

Hình 3.19. Giải thuật cập nhật dữ liệu

47

3.3.2.3. Giải thuật xóa dữ liệu

Hình 3.20. Giải thuật xóa dữ liệu 3.3.2.4. Giải thuật nhập kho

Hình 3.21. Giải thuật nhập kho

48

3.3.2.5. Giải thuật bán hàng

Hình 3.22. Giải thuật bán hàng

3.4. Thiết kế giao diện

Hình 3.23. Giao diện trang chủ

49

Hình 3.24. Giao diện thống kê tồn kho

Hình 3.25. Giao diện thống kê khách hàng

50

PHẦN KẾT LUẬN

Hiện nay, công nghệ thông tin đang được ứng dụng rộng rãi trong hầu hết các lĩnh

vực đời sống và đang ngày càng được mở rộng, đặc biệt nó là công cụ hỗ trợ đắc lực cho

công tác quản lý. Đối với công tác quản lý bán hàng hết sức phức tạp, dễ nhầm lẫn và sai

sót thì nhu cầu tin học hóa, hiện đại hóa là hết sức cần thiết. Việc sử dụng phần mềm quản

lý bán hàng giúp các doanh nghiệp nâng cao hiệu quả trong công tác quản lý, tạo điều

kiện cho các doanh nghiệp hoạt động bền vững và ổn định hơn.

Với mong muốn xây dựng một phần mềm quản lý bán hàng dành riêng cho công ty

Ngọc Thảo nhằm hỗ trợ và đem lại hiệu quả cao nhất cho công tác quản lý bán hàng, nó

cho phép giám đốc kiểm soát và điều khiển hoạt động kinh doanh một cách hiệu quả nhất,

tác giả đã tiến hành xây dựng phần mềm quản lý bán hàng cho công ty Ngọc Thảo.

Khóa luận được thực hiện nhằm giúp cho các cá nhân, tổ chức tiếp cận và hiểu rõ

hơn về một hệ thống quản lý thông tin được xây dựng bằng công nghệ .NET trên nền tảng

mô hình 3 lớp. Trong quá trình thực hiện đề tài, tác giả đã đạt được những kết quả như

sau:

- Về mặt lý luận tác giả đã nắm vững các quy trình về quản lý bán hàng, nắm bắt

được cơ bản cách thức xây dựng một phần mềm quản lý bán hàng dựa vào bộ công cụ

Visual Studio 2013. Vận dụng Visual Studio 2013 và các nền tảng lập trình đã xây dựng

được phần mềm Quản lý bán hàng tại công ty Ngọc Thảo.

- Về mặt thực tiễn phần mềm do tác giả xây dựng đã đạt được những kết quả sau:

+ Cho phép người quản lý kiểm soát và điều khiển toàn bộ quá trình quản lý,

cung cấp các thông tin phản hồi chính xác. Ngoài ra, còn giúp cho chủ doanh nghiệp nắm

vững được tình hình sản xuất kinh doanh của doanh nghiệp thông qua các bản báo cáo mà

không mất nhiều thời gian và đưa ra các quyết định hợp lý và kịp thời cho việc kinh

doanh của doanh nghiệp.

51

+ Phần mềm có giao diện thân thiện, thuận tiện cho người sử dụng, dễ dàng

sử dụng và quản lý. Hỗ trợ nhiều chức năng phù hợp với thực tế của việc tìm kiếm, trao

đổi, cập nhật, và quản lý thông tin.

Nhìn chung, phần mềm ứng dụng vào việc quản lý bán hàng hoàn toàn khả thi, đáp

ứng được nhiều nhu cầu cho công tác quản lý bán hàng. Tuy nhiên phần mềm vẫn còn tồn

tại hạn chế như: thống kê, báo cáo còn đơn giản; lưu trữ dữ liệu chưa tối ưu. Hy vọng

trong thời gian sắp tới với sự trau dồi thêm kiến thức sẽ có thể hoàn thiện được những

thiếu sót để phần mềm có thể quản lý tốt hơn nữa. Bổ sung và điều chỉnh thêm một số

tính năng để phần mềm ngày càng hoạt động có hiệu quả hơn. Ứng dụng công nghệ mới

nhất vào việc quản lý cơ sở dữ liệu và phần mềm.

52

TÀI LIỆU THAM KHẢO

[1] Trần Nguyên Phong. Giáo trình SQL. Trường đại học Khoa học Huế. Khoa công nghệ

thông tin. Huế, 2004.

[2] Hàn Viết Thuận. Giáo trình hệ thống thông tin quản lý, Trường đại học Kinh tế quốc

dân, Khoa tin học kinh tế. Nhà xuất bản đại học Kinh tế quốc dân Hà Nội, 2008.

[3] Dương Quang Thiện, Lập trình căn cứ dữ liệu dùng ADO.NET và C#. Nhà xuất bản

tổng hợp TP.HCM, xuất bản 2005.

Trang web:

http://vi.wikipedia.org/

http://text.123doc.org/.

http://voer.edu.vn/

53